mirror of
https://github.com/openwrt/openwrt.git
synced 2024-12-29 01:59:02 +00:00
76d079204d
Changelogs: * https://www.kernel.org/pub/linux/kernel/v3.x/ChangeLog-3.18.12 * https://www.kernel.org/pub/linux/kernel/v3.x/ChangeLog-3.18.13 * https://www.kernel.org/pub/linux/kernel/v3.x/ChangeLog-3.18.14 Build tested on brcm63xx and ipq806x, runtested on brcm63xx. Signed-off-by: Jonas Gorski <jogo@openwrt.org> SVN-Revision: 45711
83 lines
2.2 KiB
Diff
83 lines
2.2 KiB
Diff
--- a/drivers/usb/gadget/udc/at91_udc.c
|
|
+++ b/drivers/usb/gadget/udc/at91_udc.c
|
|
@@ -870,8 +870,6 @@ static void clk_on(struct at91_udc *udc)
|
|
return;
|
|
udc->clocked = 1;
|
|
|
|
- if (IS_ENABLED(CONFIG_COMMON_CLK))
|
|
- clk_enable(udc->uclk);
|
|
clk_enable(udc->iclk);
|
|
clk_enable(udc->fclk);
|
|
}
|
|
@@ -884,8 +882,6 @@ static void clk_off(struct at91_udc *udc
|
|
udc->gadget.speed = USB_SPEED_UNKNOWN;
|
|
clk_disable(udc->fclk);
|
|
clk_disable(udc->iclk);
|
|
- if (IS_ENABLED(CONFIG_COMMON_CLK))
|
|
- clk_disable(udc->uclk);
|
|
}
|
|
|
|
/*
|
|
@@ -1766,27 +1762,18 @@ static int at91udc_probe(struct platform
|
|
udc_reinit(udc);
|
|
|
|
/* get interface and function clocks */
|
|
- udc->iclk = clk_get(dev, "udc_clk");
|
|
- udc->fclk = clk_get(dev, "udpck");
|
|
- if (IS_ENABLED(CONFIG_COMMON_CLK))
|
|
- udc->uclk = clk_get(dev, "usb_clk");
|
|
- if (IS_ERR(udc->iclk) || IS_ERR(udc->fclk) ||
|
|
- (IS_ENABLED(CONFIG_COMMON_CLK) && IS_ERR(udc->uclk))) {
|
|
+ udc->iclk = clk_get(dev, "pclk");
|
|
+ udc->fclk = clk_get(dev, "hclk");
|
|
+ if (IS_ERR(udc->iclk) || IS_ERR(udc->fclk)) {
|
|
DBG("clocks missing\n");
|
|
retval = -ENODEV;
|
|
goto fail1;
|
|
}
|
|
|
|
- /* don't do anything until we have both gadget driver and VBUS */
|
|
- if (IS_ENABLED(CONFIG_COMMON_CLK)) {
|
|
- clk_set_rate(udc->uclk, 48000000);
|
|
- retval = clk_prepare(udc->uclk);
|
|
- if (retval)
|
|
- goto fail1;
|
|
- }
|
|
+ clk_set_rate(udc->fclk, 48000000);
|
|
retval = clk_prepare(udc->fclk);
|
|
if (retval)
|
|
- goto fail1a;
|
|
+ goto fail1;
|
|
|
|
retval = clk_prepare_enable(udc->iclk);
|
|
if (retval)
|
|
@@ -1860,12 +1847,7 @@ fail1c:
|
|
clk_unprepare(udc->iclk);
|
|
fail1b:
|
|
clk_unprepare(udc->fclk);
|
|
-fail1a:
|
|
- if (IS_ENABLED(CONFIG_COMMON_CLK))
|
|
- clk_unprepare(udc->uclk);
|
|
fail1:
|
|
- if (IS_ENABLED(CONFIG_COMMON_CLK) && !IS_ERR(udc->uclk))
|
|
- clk_put(udc->uclk);
|
|
if (!IS_ERR(udc->fclk))
|
|
clk_put(udc->fclk);
|
|
if (!IS_ERR(udc->iclk))
|
|
@@ -1911,15 +1893,11 @@ static int __exit at91udc_remove(struct
|
|
res = platform_get_resource(pdev, IORESOURCE_MEM, 0);
|
|
release_mem_region(res->start, resource_size(res));
|
|
|
|
- if (IS_ENABLED(CONFIG_COMMON_CLK))
|
|
- clk_unprepare(udc->uclk);
|
|
clk_unprepare(udc->fclk);
|
|
clk_unprepare(udc->iclk);
|
|
|
|
clk_put(udc->iclk);
|
|
clk_put(udc->fclk);
|
|
- if (IS_ENABLED(CONFIG_COMMON_CLK))
|
|
- clk_put(udc->uclk);
|
|
|
|
return 0;
|
|
}
|