Re: [PATCH 06/16] usb: host: xhci-plat: Add reset support

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Hi Biju,

CC Justin

On Mon, Dec 12, 2022 at 6:28 PM Biju Das <biju.das.jz@xxxxxxxxxxxxxx> wrote:
> Add optional reset support. This is in preparation to adding USB xHCI
> support for RZ/V2M SoC.
>
> Signed-off-by: Biju Das <biju.das.jz@xxxxxxxxxxxxxx>\

Thanks for your patch!

> --- a/drivers/usb/host/xhci-plat.c
> +++ b/drivers/usb/host/xhci-plat.c
> @@ -19,6 +19,7 @@
>  #include <linux/slab.h>
>  #include <linux/acpi.h>
>  #include <linux/usb/of.h>
> +#include <linux/reset.h>
>
>  #include "xhci.h"
>  #include "xhci-plat.h"
> @@ -263,10 +264,20 @@ static int xhci_plat_probe(struct platform_device *pdev)
>                 goto put_hcd;
>         }
>
> -       ret = clk_prepare_enable(xhci->reg_clk);
> +       xhci->reset = devm_reset_control_array_get_optional_shared(&pdev->dev);
> +       if (IS_ERR(xhci->reset)) {
> +               ret = PTR_ERR(xhci->reset);
> +               goto put_hcd;
> +       }
> +
> +       ret = reset_control_deassert(xhci->reset);
>         if (ret)
>                 goto put_hcd;
>
> +       ret = clk_prepare_enable(xhci->reg_clk);
> +       if (ret)
> +               goto err_reset;
> +
>         ret = clk_prepare_enable(xhci->clk);
>         if (ret)
>                 goto disable_reg_clk;
> @@ -377,6 +388,9 @@ static int xhci_plat_probe(struct platform_device *pdev)
>  disable_reg_clk:
>         clk_disable_unprepare(xhci->reg_clk);
>
> +err_reset:
> +       reset_control_assert(xhci->reset);
> +
>  put_hcd:
>         usb_put_hcd(hcd);
>
> @@ -412,6 +426,7 @@ static int xhci_plat_remove(struct platform_device *dev)
>
>         clk_disable_unprepare(clk);
>         clk_disable_unprepare(reg_clk);
> +       reset_control_assert(xhci->reset);
>         usb_put_hcd(hcd);
>
>         pm_runtime_disable(&dev->dev);

LGTM, so
Reviewed-by: Geert Uytterhoeven <geert+renesas@xxxxxxxxx>

Just wondering if the reset should be (de)asserted in the suspend/resume
path, too.  But that can only affect the Broadcom STB platforms, which
probably don't have the resets property.  I can't check as there no users
in upstream DTS.

Gr{oetje,eeting}s,

                        Geert

--
Geert Uytterhoeven -- There's lots of Linux beyond ia32 -- geert@xxxxxxxxxxxxxx

In personal conversations with technical people, I call myself a hacker. But
when I'm talking to journalists I just say "programmer" or something like that.
                                -- Linus Torvalds



[Index of Archives]     [Linux Media]     [Linux Input]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]     [Old Linux USB Devel Archive]

  Powered by Linux