[PATCH v3 08/10] phy: socionext: Add UniPhier USB3 PHY driver
Kunihiko Hayashi
hayashi.kunihiko at socionext.com
Mon Feb 13 04:08:13 CET 2023
Hi Marek,
On 2023/02/10 23:09, Marek Vasut wrote:
> On 2/8/23 10:15, Kunihiko Hayashi wrote:
>
> [...]
>
>> +static int uniphier_usb3phy_init(struct phy *phy)
>> +{
>> + struct uniphier_usb3phy_priv *priv = dev_get_priv(phy->dev);
>> + int ret;
>> +
>> + ret = clk_enable_bulk(&priv->clks);
>> + if (ret)
>> + goto out_clk;
>
> This should be just 'return ret;'
>
>> + ret = reset_deassert_bulk(&priv->rsts);
>> + if (ret)
>> + goto out_rst;
>
> This should be goto out_rst, however ...
>
>> + return 0;
>> +
>> +out_rst:
>> + reset_release_bulk(&priv->rsts);
>> +out_clk:
>> + clk_release_bulk(&priv->clks);
>
> ... the out_rst: should only do:
>
> out_rst:
> clk_disable_bulk();
> return ret
>
> out_clk part can be removed.
I see. These operations are unpaired.
I'll fix them.
>> + return ret;
>> +}
>> +
>> +static int uniphier_usb3phy_probe(struct udevice *dev)
>> +{
>> + struct uniphier_usb3phy_priv *priv = dev_get_priv(dev);
>> + int ret;
>> +
>> + ret = clk_get_bulk(dev, &priv->clks);
>> + if (ret) {
>> + if (ret != -ENOSYS && ret != -ENOENT) {
>
> This can be single line:
>
> if (ret && ret != -ENOSYS && ret != -ENOENT)
> return ret;
OK, This will be fixed.
>> + printf("Failed to get clocks\n");
>> + return ret;
>> + }
>> + }
>> +
>> + ret = reset_get_bulk(dev, &priv->rsts);
>> + if (ret) {
>> + if (ret != -ENOSYS && ret != -ENOENT) {
>
> Same here.
>
>> + printf("Failed to get resets\n");
>> + clk_release_bulk(&priv->clks);
>
> Better use goto out_clk fail path.
>
>> + return ret;
>> + }
>> + }
>> +
>> + return 0;
>> +}
>> +
>> +static struct phy_ops uniphier_usb3phy_ops = {
>> + .init = uniphier_usb3phy_init,
>
> You should implement .exit callback too, that one should do these two steps:
>
> reset_assert_bulk()
> clk_disable_bulk()
I think so, however, when I added .exit() and executed "usb stop;usb start",
unfortunately the command got stuck.
Currently uniphier clk doesn't support CLK_CCF and can't be nested.
I think more changes are needed.
Thank you,
---
Best Regards
Kunihiko Hayashi
More information about the U-Boot
mailing list