usb: phy: tegra: Add clarifying comments about the shared registers
Subsystems (2)
PATCH 1/1 usb: phy: tegra: Add clarifying comments about the shared registers
Tools like Coccinelle may erroneously recommend to use the devm_platform_ioremap_resource() API for the registers mapping because these tools are not aware about the implementation details of the driver. Let's add a clarifying comments to the code, which should help to stop future attempts to break the driver.
--- drivers/usb/phy/phy-tegra-usb.c | 8 ++++++++ 1 file changed, 8 insertions(+)
drivers/usb/phy/phy-tegra-usb.c +8 -0
@@ -969,6 +969,10 @@ static int utmi_phy_probe(struct tegra_usb_phy *tegra_phy,return -ENXIO ; } +/* +* Note that UTMI pad registers are shared by all PHYs, therefore +* devm_platform_ioremap_resource() can't be used here. +*/ tegra_phy->pad_regs =devm_ioremap (&pdev->dev, res->start,resource_size (res));if (!tegra_phy->pad_regs) {
@@ -1087,6 +1091,10 @@ static int tegra_usb_phy_probe(struct platform_device *pdev)return -ENXIO ; } +/* +* Note that PHY and USB controller are using shared registers, +* therefore devm_platform_ioremap_resource() can't be used here. +*/ tegra_phy->regs =devm_ioremap (&pdev->dev, res->start,resource_size (res));if (!tegra_phy->regs) {
Signature · 1 line
2.24.0
Quoted 27 lines · Dmitry Osipenko
Tools like Coccinelle may erroneously recommend to use the
devm_platform_ioremap_resource()API for the registers mapping because these tools are not aware about the implementation details of the driver. Let's add a clarifying comments to the code, which should help to stop future attempts to break the driver.Signed-off-by Dmitry Osipenko <[email protected]>--- drivers/usb/phy/phy-tegra-usb.c | 8 ++++++++ 1 file changed, 8 insertions(+)drivers/usb/phy/phy-tegra-usb.c +4
-0@@ -969,6 +969,10 @@ static int utmi_phy_probe(struct tegra_usb_phy *tegra_phy,return -ENXIO ; } +/* +* Note that UTMI pad registers are shared by all PHYs, therefore +* devm_platform_ioremap_resource() can't be used here. +*/ tegra_phy->pad_regs =devm_ioremap (&pdev->dev, res->start,resource_size (res));if (!tegra_phy->pad_regs) {
drivers/usb/phy/phy-tegra-usb.c static int tegra_usb_phy_probe(struct platform_device *pdev) · line 1100
Quoted 10 lines
drivers/usb/phy/phy-tegra-usb.c +4
-0@@ -1087,6 +1091,10 @@ static int tegra_usb_phy_probe(struct platform_device *pdev)return -ENXIO ; } +/* +* Note that PHY and USB controller are using shared registers, +* therefore devm_platform_ioremap_resource() can't be used here. +*/ tegra_phy->regs =devm_ioremap (&pdev->dev, res->start,resource_size (res));if (!tegra_phy->regs) {
I'm not sure it's really going to stop *all* attempts. But at least for people that go through the trouble of reading the comments, yes, this should do the trick, so:
03.02.2020 14:28, Thierry Reding пишет:
Quoted 43 lines · Dmitry Osipenko
Quoted 27 lines
Tools like Coccinelle may erroneously recommend to use the
devm_platform_ioremap_resource()API for the registers mapping because these tools are not aware about the implementation details of the driver. Let's add a clarifying comments to the code, which should help to stop future attempts to break the driver.Signed-off-by Dmitry Osipenko <[email protected]>--- drivers/usb/phy/phy-tegra-usb.c | 8 ++++++++ 1 file changed, 8 insertions(+)drivers/usb/phy/phy-tegra-usb.c +4
-0@@ -969,6 +969,10 @@ static int utmi_phy_probe(struct tegra_usb_phy *tegra_phy,return -ENXIO ; } +/* +* Note that UTMI pad registers are shared by all PHYs, therefore +* devm_platform_ioremap_resource() can't be used here. +*/ tegra_phy->pad_regs =devm_ioremap (&pdev->dev, res->start,resource_size (res));if (!tegra_phy->pad_regs) {drivers/usb/phy/phy-tegra-usb.c static int tegra_usb_phy_probe(struct platform_device *pdev) · line 1100
Quoted 10 lines
drivers/usb/phy/phy-tegra-usb.c +4
-0@@ -1087,6 +1091,10 @@ static int tegra_usb_phy_probe(struct platform_device *pdev)return -ENXIO ; } +/* +* Note that PHY and USB controller are using shared registers, +* therefore devm_platform_ioremap_resource() can't be used here. +*/ tegra_phy->regs =devm_ioremap (&pdev->dev, res->start,resource_size (res));if (!tegra_phy->regs) {I'm not sure it's really going to stop *all* attempts. But at least for people that go through the trouble of reading the comments, yes, this should do the trick, so:
Quoted 1 line
Acked-by Thierry Reding <[email protected]>
Will see, thanks :)