usb: gadget: at91_udc: fix build warning
[platform/adaptation/renesas_rcar/renesas_kernel.git] / drivers / usb / gadget / at91_udc.c
index d9a6add..c3f49fd 100644 (file)
@@ -834,7 +834,7 @@ static void udc_reinit(struct at91_udc *udc)
                ep->ep.desc = NULL;
                ep->stopped = 0;
                ep->fifo_bank = 0;
-               ep->ep.maxpacket = ep->maxpacket;
+               usb_ep_set_maxpacket_limit(&ep->ep, ep->maxpacket);
                ep->creg = (void __iomem *) udc->udp_baseaddr + AT91_UDP_CSR(i);
                /* initialize one queue per endpoint */
                INIT_LIST_HEAD(&ep->queue);
@@ -870,6 +870,11 @@ static void clk_on(struct at91_udc *udc)
        if (udc->clocked)
                return;
        udc->clocked = 1;
+
+       if (IS_ENABLED(CONFIG_COMMON_CLK)) {
+               clk_set_rate(udc->uclk, 48000000);
+               clk_prepare_enable(udc->uclk);
+       }
        clk_prepare_enable(udc->iclk);
        clk_prepare_enable(udc->fclk);
 }
@@ -882,6 +887,8 @@ static void clk_off(struct at91_udc *udc)
        udc->gadget.speed = USB_SPEED_UNKNOWN;
        clk_disable_unprepare(udc->fclk);
        clk_disable_unprepare(udc->iclk);
+       if (IS_ENABLED(CONFIG_COMMON_CLK))
+               clk_disable_unprepare(udc->uclk);
 }
 
 /*
@@ -1697,7 +1704,7 @@ static int at91udc_probe(struct platform_device *pdev)
        int             retval;
        struct resource *res;
 
-       if (!dev->platform_data && !pdev->dev.of_node) {
+       if (!dev_get_platdata(dev) && !pdev->dev.of_node) {
                /* small (so we copy it) but critical! */
                DBG("missing platform_data\n");
                return -ENODEV;
@@ -1728,7 +1735,7 @@ static int at91udc_probe(struct platform_device *pdev)
        if (IS_ENABLED(CONFIG_OF) && pdev->dev.of_node)
                at91udc_of_init(udc, pdev->dev.of_node);
        else
-               memcpy(&udc->board, dev->platform_data,
+               memcpy(&udc->board, dev_get_platdata(dev),
                       sizeof(struct at91_udc_data));
        udc->pdev = pdev;
        udc->enabled = 0;
@@ -1752,15 +1759,15 @@ static int at91udc_probe(struct platform_device *pdev)
 
        /* newer chips have more FIFO memory than rm9200 */
        if (cpu_is_at91sam9260() || cpu_is_at91sam9g20()) {
-               udc->ep[0].maxpacket = 64;
-               udc->ep[3].maxpacket = 64;
-               udc->ep[4].maxpacket = 512;
-               udc->ep[5].maxpacket = 512;
+               usb_ep_set_maxpacket_limit(&udc->ep[0].ep, 64);
+               usb_ep_set_maxpacket_limit(&udc->ep[3].ep, 64);
+               usb_ep_set_maxpacket_limit(&udc->ep[4].ep, 512);
+               usb_ep_set_maxpacket_limit(&udc->ep[5].ep, 512);
        } else if (cpu_is_at91sam9261() || cpu_is_at91sam9g10()) {
-               udc->ep[3].maxpacket = 64;
+               usb_ep_set_maxpacket_limit(&udc->ep[3].ep, 64);
        } else if (cpu_is_at91sam9263()) {
-               udc->ep[0].maxpacket = 64;
-               udc->ep[3].maxpacket = 64;
+               usb_ep_set_maxpacket_limit(&udc->ep[0].ep, 64);
+               usb_ep_set_maxpacket_limit(&udc->ep[3].ep, 64);
        }
 
        udc->udp_baseaddr = ioremap(res->start, resource_size(res));
@@ -1774,10 +1781,12 @@ static int at91udc_probe(struct platform_device *pdev)
        /* get interface and function clocks */
        udc->iclk = clk_get(dev, "udc_clk");
        udc->fclk = clk_get(dev, "udpck");
-       if (IS_ERR(udc->iclk) || IS_ERR(udc->fclk)) {
+       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))) {
                DBG("clocks missing\n");
                retval = -ENODEV;
-               /* NOTE: we "know" here that refcounts on these are NOPs */
                goto fail1;
        }
 
@@ -1851,6 +1860,12 @@ fail3:
 fail2:
        free_irq(udc->udp_irq, udc);
 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))
+               clk_put(udc->iclk);
        iounmap(udc->udp_baseaddr);
 fail0a:
        if (cpu_is_at91rm9200())
@@ -1894,6 +1909,8 @@ static int __exit at91udc_remove(struct platform_device *pdev)
 
        clk_put(udc->iclk);
        clk_put(udc->fclk);
+       if (IS_ENABLED(CONFIG_COMMON_CLK))
+               clk_put(udc->uclk);
 
        return 0;
 }