Message ID | 1340118216-20859-2-git-send-email-luis.henriques@canonical.com |
---|---|
State | New |
Headers | show |
On Tue, Jun 19, 2012 at 04:03:36PM +0100, Luis Henriques wrote: > commit 9ef449c6b31bb6a8e6dedc24de475a3b8c79be20 ("[media] rc: Postpone ISR > registration") fixed an early ISR registration on several drivers. It did > however also introduced a bug by moving the invocation of pnp_port_start() > to the end of the probe function. > > This patch fixes this issue by moving the invocation of pnp_port_start() to > an earlier stage in the probe function. > > Cc: stable@vger.kernel.org > Signed-off-by: Luis Henriques <luis.henriques@canonical.com> > --- > drivers/media/rc/ene_ir.c | 3 ++- > 1 file changed, 2 insertions(+), 1 deletion(-) > > diff --git a/drivers/media/rc/ene_ir.c b/drivers/media/rc/ene_ir.c > index ed77c6d..5327061 100644 > --- a/drivers/media/rc/ene_ir.c > +++ b/drivers/media/rc/ene_ir.c > @@ -1018,6 +1018,8 @@ static int ene_probe(struct pnp_dev *pnp_dev, const struct pnp_device_id *id) > > spin_lock_init(&dev->hw_lock); > > + dev->hw_io = pnp_port_start(pnp_dev, 0); > + Ack, dev->hw_io needs to be set early for hardware initialization functions to work. And reporter confirmed the fix. > pnp_set_drvdata(pnp_dev, dev); > dev->pnp_dev = pnp_dev; > > @@ -1072,7 +1074,6 @@ static int ene_probe(struct pnp_dev *pnp_dev, const struct pnp_device_id *id) > > /* claim the resources */ > error = -EBUSY; > - dev->hw_io = pnp_port_start(pnp_dev, 0); > if (!request_region(dev->hw_io, ENE_IO_SIZE, ENE_DRIVER_NAME)) { > dev->hw_io = -1; > dev->irq = -1; > -- > 1.7.9.5 > > > -- > kernel-team mailing list > kernel-team@lists.ubuntu.com > https://lists.ubuntu.com/mailman/listinfo/kernel-team >
diff --git a/drivers/media/rc/ene_ir.c b/drivers/media/rc/ene_ir.c index ed77c6d..5327061 100644 --- a/drivers/media/rc/ene_ir.c +++ b/drivers/media/rc/ene_ir.c @@ -1018,6 +1018,8 @@ static int ene_probe(struct pnp_dev *pnp_dev, const struct pnp_device_id *id) spin_lock_init(&dev->hw_lock); + dev->hw_io = pnp_port_start(pnp_dev, 0); + pnp_set_drvdata(pnp_dev, dev); dev->pnp_dev = pnp_dev; @@ -1072,7 +1074,6 @@ static int ene_probe(struct pnp_dev *pnp_dev, const struct pnp_device_id *id) /* claim the resources */ error = -EBUSY; - dev->hw_io = pnp_port_start(pnp_dev, 0); if (!request_region(dev->hw_io, ENE_IO_SIZE, ENE_DRIVER_NAME)) { dev->hw_io = -1; dev->irq = -1;
commit 9ef449c6b31bb6a8e6dedc24de475a3b8c79be20 ("[media] rc: Postpone ISR registration") fixed an early ISR registration on several drivers. It did however also introduced a bug by moving the invocation of pnp_port_start() to the end of the probe function. This patch fixes this issue by moving the invocation of pnp_port_start() to an earlier stage in the probe function. Cc: stable@vger.kernel.org Signed-off-by: Luis Henriques <luis.henriques@canonical.com> --- drivers/media/rc/ene_ir.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-)