summaryrefslogtreecommitdiff
path: root/recipes/linux/linux-omap-2.6.29/smsc/smsc911x-1.patch
diff options
context:
space:
mode:
Diffstat (limited to 'recipes/linux/linux-omap-2.6.29/smsc/smsc911x-1.patch')
-rw-r--r--recipes/linux/linux-omap-2.6.29/smsc/smsc911x-1.patch71
1 files changed, 71 insertions, 0 deletions
diff --git a/recipes/linux/linux-omap-2.6.29/smsc/smsc911x-1.patch b/recipes/linux/linux-omap-2.6.29/smsc/smsc911x-1.patch
new file mode 100644
index 0000000000..1efe181872
--- /dev/null
+++ b/recipes/linux/linux-omap-2.6.29/smsc/smsc911x-1.patch
@@ -0,0 +1,71 @@
+From: Steve Glendinning <steve.glendinning@smsc.com>
+
+This patch adds support for the platform_device's resources to indicate
+additional flags to use when registering the irq, for example
+IORESOURCE_IRQ_LOWLEVEL (which corresponds to IRQF_TRIGGER_LOW). These
+should be set in the irq resource flags field.
+
+Signed-off-by: Steve Glendinning <steve.glendinning@smsc.com>
+---
+ drivers/net/smsc911x.c | 19 ++++++++++++++-----
+ 1 files changed, 14 insertions(+), 5 deletions(-)
+
+diff --git a/drivers/net/smsc911x.c b/drivers/net/smsc911x.c
+index f513bdf..3565df1 100644
+--- a/drivers/net/smsc911x.c
++++ b/drivers/net/smsc911x.c
+@@ -1892,9 +1892,9 @@ static int __devinit smsc911x_drv_probe(struct platform_device *pdev)
+ struct net_device *dev;
+ struct smsc911x_data *pdata;
+ struct smsc911x_platform_config *config = pdev->dev.platform_data;
+- struct resource *res;
++ struct resource *res, *irq_res;
+ unsigned int intcfg = 0;
+- int res_size;
++ int res_size, irq_flags;
+ int retval;
+ DECLARE_MAC_BUF(mac);
+
+@@ -1919,6 +1919,14 @@ static int __devinit smsc911x_drv_probe(struct platform_device *pdev)
+ }
+ res_size = res->end - res->start;
+
++ irq_res = platform_get_resource(pdev, IORESOURCE_IRQ, 0);
++ if (!irq_res) {
++ pr_warning("%s: Could not allocate irq resource.\n",
++ SMSC_CHIPNAME);
++ retval = -ENODEV;
++ goto out_0;
++ }
++
+ if (!request_mem_region(res->start, res_size, SMSC_CHIPNAME)) {
+ retval = -EBUSY;
+ goto out_0;
+@@ -1935,7 +1943,8 @@ static int __devinit smsc911x_drv_probe(struct platform_device *pdev)
+
+ pdata = netdev_priv(dev);
+
+- dev->irq = platform_get_irq(pdev, 0);
++ dev->irq = irq_res->start;
++ irq_flags = irq_res->flags & IRQF_TRIGGER_MASK;
+ pdata->ioaddr = ioremap_nocache(res->start, res_size);
+
+ /* copy config parameters across to pdata */
+@@ -1968,8 +1977,8 @@ 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);
++ retval = request_irq(dev->irq, smsc911x_irqhandler,
++ irq_flags | IRQF_DISABLED, dev->name, dev);
+ if (retval) {
+ SMSC_WARNING(PROBE,
+ "Unable to claim requested irq: %d", dev->irq);
+--
+1.6.0.6
+
+--
+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