Message ID | 1231910512-8420-1-git-send-email-stanley.miao@windriver.com |
---|---|
State | Superseded, archived |
Delegated to: | David Miller |
Headers | show |
On Wed, Jan 14, 2009 at 01:21:52PM +0800, Stanley.Miao wrote: > When calling request IRQ it is desirable to allow platforms > to specific flags for the call to request_irq. Adding irq_flags > to smsc911x_platform_config allows these flags to be passed. > > Signed-off-by: Stanley.Miao <stanley.miao@windriver.com> > --- > drivers/net/smsc911x.c | 6 ++++-- > include/linux/smsc911x.h | 1 + > 2 files changed, 5 insertions(+), 2 deletions(-) > > diff --git a/drivers/net/smsc911x.c b/drivers/net/smsc911x.c > index f513bdf..1092517 100644 > --- a/drivers/net/smsc911x.c > +++ b/drivers/net/smsc911x.c > @@ -1896,6 +1896,7 @@ static int __devinit smsc911x_drv_probe(struct platform_device *pdev) > unsigned int intcfg = 0; > int res_size; > int retval; > + irq_flags; This looks wrong. > DECLARE_MAC_BUF(mac); > > pr_info("%s: Driver version %s.\n", SMSC_CHIPNAME, SMSC_DRV_VERSION); > @@ -1968,8 +1969,9 @@ static int __devinit smsc911x_drv_probe(struct platform_device *pdev) > smsc911x_reg_write(pdata, INT_EN, 0); > smsc911x_reg_write(pdata, INT_STS, 0xFFFFFFFF); > > - retval = request_irq(dev->irq, smsc911x_irqhandler, IRQF_DISABLED, > - dev->name, dev); > + irq_flags = IRQF_DISABLED | pdata->config.irq_flags; > + retval = request_irq(dev->irq, smsc911x_irqhandler, irq_flags, > + dev->name, dev); If you need shared interrupt support, pass always pass IRQF_SHARED. IRQF_SHARED and IRQF_DISABLED are a property of the driver. Edge/level configuration should come from the struct resource. -- To unsubscribe from this list: send the line "unsubscribe netdev" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
On Wed, 2009-01-14 at 17:06 +0000, Russell King - ARM Linux wrote: > On Wed, Jan 14, 2009 at 01:21:52PM +0800, Stanley.Miao wrote: > > When calling request IRQ it is desirable to allow platforms > > to specific flags for the call to request_irq. Adding irq_flags > > to smsc911x_platform_config allows these flags to be passed. > > > > Signed-off-by: Stanley.Miao <stanley.miao@windriver.com> > > --- > > drivers/net/smsc911x.c | 6 ++++-- > > include/linux/smsc911x.h | 1 + > > 2 files changed, 5 insertions(+), 2 deletions(-) > > > > diff --git a/drivers/net/smsc911x.c b/drivers/net/smsc911x.c > > index f513bdf..1092517 100644 > > --- a/drivers/net/smsc911x.c > > +++ b/drivers/net/smsc911x.c > > @@ -1896,6 +1896,7 @@ static int __devinit smsc911x_drv_probe(struct platform_device *pdev) > > unsigned int intcfg = 0; > > int res_size; > > int retval; > > + irq_flags; > > This looks wrong. Sorry, I have send the V2 version. I should send a notice to ignore this email. Stanley -- To unsubscribe from this list: send the line "unsubscribe netdev" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
diff --git a/drivers/net/smsc911x.c b/drivers/net/smsc911x.c index f513bdf..1092517 100644 --- a/drivers/net/smsc911x.c +++ b/drivers/net/smsc911x.c @@ -1896,6 +1896,7 @@ static int __devinit smsc911x_drv_probe(struct platform_device *pdev) unsigned int intcfg = 0; int res_size; int retval; + irq_flags; DECLARE_MAC_BUF(mac); pr_info("%s: Driver version %s.\n", SMSC_CHIPNAME, SMSC_DRV_VERSION); @@ -1968,8 +1969,9 @@ static int __devinit smsc911x_drv_probe(struct platform_device *pdev) smsc911x_reg_write(pdata, INT_EN, 0); smsc911x_reg_write(pdata, INT_STS, 0xFFFFFFFF); - retval = request_irq(dev->irq, smsc911x_irqhandler, IRQF_DISABLED, - dev->name, dev); + irq_flags = IRQF_DISABLED | pdata->config.irq_flags; + retval = request_irq(dev->irq, smsc911x_irqhandler, irq_flags, + dev->name, dev); if (retval) { SMSC_WARNING(PROBE, "Unable to claim requested irq: %d", dev->irq); diff --git a/include/linux/smsc911x.h b/include/linux/smsc911x.h index 1cbf031..0330f57 100644 --- a/include/linux/smsc911x.h +++ b/include/linux/smsc911x.h @@ -28,6 +28,7 @@ struct smsc911x_platform_config { unsigned int irq_polarity; unsigned int irq_type; + unsigned int irq_flags; unsigned int flags; phy_interface_t phy_interface; };
When calling request IRQ it is desirable to allow platforms to specific flags for the call to request_irq. Adding irq_flags to smsc911x_platform_config allows these flags to be passed. Signed-off-by: Stanley.Miao <stanley.miao@windriver.com> --- drivers/net/smsc911x.c | 6 ++++-- include/linux/smsc911x.h | 1 + 2 files changed, 5 insertions(+), 2 deletions(-)