From 17204f70f303677d1dc93fd95a507d9f0e3f31fb Mon Sep 17 00:00:00 2001 From: Gabor Juhos Date: Fri, 2 Mar 2012 18:03:59 +0000 Subject: ppc40x: fix build errors in the CF and ISP116X drivers git-svn-id: svn://svn.openwrt.org/openwrt/trunk@30789 3c298f89-4303-0410-b956-a3cf2f4a3e73 --- .../120-usb-isp116x-hcd-add-of-binding.patch | 42 ++++++++++------------ 1 file changed, 19 insertions(+), 23 deletions(-) (limited to 'target/linux/ppc40x/patches/120-usb-isp116x-hcd-add-of-binding.patch') diff --git a/target/linux/ppc40x/patches/120-usb-isp116x-hcd-add-of-binding.patch b/target/linux/ppc40x/patches/120-usb-isp116x-hcd-add-of-binding.patch index 6bc5a9fc46..d869cffc07 100644 --- a/target/linux/ppc40x/patches/120-usb-isp116x-hcd-add-of-binding.patch +++ b/target/linux/ppc40x/patches/120-usb-isp116x-hcd-add-of-binding.patch @@ -8,7 +8,7 @@ static int isp116x_remove(struct platform_device *pdev) { struct usb_hcd *hcd = platform_get_drvdata(pdev); -@@ -1708,22 +1709,253 @@ static struct platform_driver isp116x_dr +@@ -1708,22 +1709,249 @@ static struct platform_driver isp116x_dr }, }; @@ -30,8 +30,6 @@ + +#ifdef CONFIG_USB_ISP116X_HCD_OF + -+#include -+#include +#include + +#ifdef USE_PLATFORM_DELAY @@ -43,13 +41,12 @@ +#define isp116x_of_delay NULL +#endif + -+static int __devinit isp116x_of_probe(struct of_device *op, -+ const struct of_device_id *match) ++static int __devinit isp116x_of_probe(struct platform_device *op) +{ -+ struct device_node *dn = op->node; ++ struct device_node *dn = op->dev.of_node; + struct usb_hcd *hcd; + struct isp116x *isp116x; -+ struct resource addr, data, ires; ++ struct resource addr, data; + struct isp116x_platform_data *board; + void __iomem *addr_reg; + void __iomem *data_reg; @@ -65,12 +62,6 @@ + if (ret) + return ret; + -+ ret = of_irq_to_resource(dn, 1, &ires); -+ if (ret) -+ return ret; -+ -+ irqflags = ires.flags & IRQF_TRIGGER_MASK; -+ + board = kzalloc(sizeof(struct isp116x_platform_data), GFP_KERNEL); + if (board == NULL) + return -ENOMEM; @@ -97,7 +88,7 @@ + goto err_release_data; + } + -+ irq = irq_of_parse_and_map(op->node, 0); ++ irq = irq_of_parse_and_map(dn, 0); + if (irq == NO_IRQ) { + ret = -EINVAL; + goto err_unmap_data; @@ -132,6 +123,13 @@ + if (of_get_property(dn, "int_edge_triggered", NULL)) + board->int_edge_triggered = 1; + ++ if (board->int_edge_triggered) ++ irqflags = board->int_act_high ? IRQF_TRIGGER_RISING : ++ IRQF_TRIGGER_FALLING; ++ else ++ irqflags = board->int_act_high ? IRQF_TRIGGER_HIGH : ++ IRQF_TRIGGER_LOW; ++ + ret = usb_add_hcd(hcd, irq, irqflags | IRQF_DISABLED); + if (ret) + goto err_put_hcd; @@ -163,7 +161,7 @@ + return ret; +} + -+static __devexit int isp116x_of_remove(struct of_device *op) ++static __devexit int isp116x_of_remove(struct platform_device *op) +{ + struct usb_hcd *hcd = dev_get_drvdata(&op->dev); + struct isp116x *isp116x; @@ -181,11 +179,11 @@ + irq_dispose_mapping(hcd->irq); + + iounmap(isp116x->data_reg); -+ (void) of_address_to_resource(op->node, 0, &res); ++ (void) of_address_to_resource(op->dev.of_node, 0, &res); + release_mem_region(res.start, resource_size(&res)); + + iounmap(isp116x->addr_reg); -+ (void) of_address_to_resource(op->node, 1, &res); ++ (void) of_address_to_resource(op->dev.of_node, 1, &res); + release_mem_region(res.start, resource_size(&res)); + + kfree(isp116x->board); @@ -199,26 +197,24 @@ + {}, +}; + -+static struct of_platform_driver isp116x_of_platform_driver = { -+ .owner = THIS_MODULE, -+ .name = "isp116x-hcd-of", -+ .match_table = isp116x_of_match, ++static struct platform_driver isp116x_of_platform_driver = { + .probe = isp116x_of_probe, + .remove = __devexit_p(isp116x_of_remove), + .driver = { + .name = "isp116x-hcd-of", + .owner = THIS_MODULE, ++ .of_match_table = isp116x_of_match, + }, +}; + +static int __init isp116x_of_register(void) +{ -+ return of_register_platform_driver(&isp116x_of_platform_driver); ++ return platform_driver_register(&isp116x_of_platform_driver); +} + +static void __exit isp116x_of_unregister(void) +{ -+ of_unregister_platform_driver(&isp116x_of_platform_driver); ++ platform_driver_unregister(&isp116x_of_platform_driver); +} + +MODULE_DEVICE_TABLE(of, isp116x_of_match); -- cgit v1.2.3