Message ID | 20220313002153.11280-3-michael@walle.cc (mailing list archive) |
---|---|
State | Superseded |
Delegated to: | Netdev Maintainers |
Headers | show |
Series | net: mscc-miim: add integrated PHY reset support | expand |
Context | Check | Description |
---|---|---|
netdev/tree_selection | success | Clearly marked for net-next |
netdev/fixes_present | success | Fixes tag not required for -next series |
netdev/subject_prefix | success | Link |
netdev/cover_letter | success | Series has a cover letter |
netdev/patch_count | success | Link |
netdev/header_inline | success | No static functions without inline keyword in header files |
netdev/build_32bit | success | Errors and warnings before: 0 this patch: 0 |
netdev/cc_maintainers | success | CCed 6 of 6 maintainers |
netdev/build_clang | success | Errors and warnings before: 0 this patch: 0 |
netdev/module_param | success | Was 0 now: 0 |
netdev/verify_signedoff | success | Signed-off-by tag matches author and committer |
netdev/verify_fixes | success | No Fixes tag |
netdev/build_allmodconfig_warn | success | Errors and warnings before: 0 this patch: 0 |
netdev/checkpatch | success | total: 0 errors, 0 warnings, 0 checks, 30 lines checked |
netdev/kdoc | success | Errors and warnings before: 0 this patch: 0 |
netdev/source_inline | success | Was 0 now: 0 |
> diff --git a/drivers/net/mdio/mdio-mscc-miim.c b/drivers/net/mdio/mdio-mscc-miim.c > index 64fb76c1e395..7773d5019e66 100644 > --- a/drivers/net/mdio/mdio-mscc-miim.c > +++ b/drivers/net/mdio/mdio-mscc-miim.c > @@ -158,18 +158,18 @@ static int mscc_miim_reset(struct mii_bus *bus) > { > struct mscc_miim_dev *miim = bus->priv; > int offset = miim->phy_reset_offset; > + int mask = PHY_CFG_PHY_ENA | PHY_CFG_PHY_COMMON_RESET | > + PHY_CFG_PHY_RESET; > - ret = regmap_write(miim->phy_regs, > - MSCC_PHY_REG_PHY_CFG + offset, 0x1ff); > + ret = regmap_write(miim->phy_regs, offset, mask); Is mask the correct name? It is not being used in the typical way for a mask. Andrew
Am 2022-03-13 01:51, schrieb Andrew Lunn: >> diff --git a/drivers/net/mdio/mdio-mscc-miim.c >> b/drivers/net/mdio/mdio-mscc-miim.c >> index 64fb76c1e395..7773d5019e66 100644 >> --- a/drivers/net/mdio/mdio-mscc-miim.c >> +++ b/drivers/net/mdio/mdio-mscc-miim.c >> @@ -158,18 +158,18 @@ static int mscc_miim_reset(struct mii_bus *bus) >> { >> struct mscc_miim_dev *miim = bus->priv; >> int offset = miim->phy_reset_offset; >> + int mask = PHY_CFG_PHY_ENA | PHY_CFG_PHY_COMMON_RESET | >> + PHY_CFG_PHY_RESET; > >> - ret = regmap_write(miim->phy_regs, >> - MSCC_PHY_REG_PHY_CFG + offset, 0x1ff); >> + ret = regmap_write(miim->phy_regs, offset, mask); > > Is mask the correct name? It is not being used in the typical way for > a mask. It is the mask of all the reset bits, see also patch 3/3. Either all these bits are set or none. Do you have any suggestion? I thought about adding mask and value for the remap_update_bits() in patch 3/3 but decided against it, just because it doesn't add any value because mask and value are the same. -michael
On Sun, Mar 13, 2022 at 02:17:55AM +0100, Michael Walle wrote: > Am 2022-03-13 01:51, schrieb Andrew Lunn: > > > diff --git a/drivers/net/mdio/mdio-mscc-miim.c > > > b/drivers/net/mdio/mdio-mscc-miim.c > > > index 64fb76c1e395..7773d5019e66 100644 > > > --- a/drivers/net/mdio/mdio-mscc-miim.c > > > +++ b/drivers/net/mdio/mdio-mscc-miim.c > > > @@ -158,18 +158,18 @@ static int mscc_miim_reset(struct mii_bus *bus) > > > { > > > struct mscc_miim_dev *miim = bus->priv; > > > int offset = miim->phy_reset_offset; > > > + int mask = PHY_CFG_PHY_ENA | PHY_CFG_PHY_COMMON_RESET | > > > + PHY_CFG_PHY_RESET; > > > > > - ret = regmap_write(miim->phy_regs, > > > - MSCC_PHY_REG_PHY_CFG + offset, 0x1ff); > > > + ret = regmap_write(miim->phy_regs, offset, mask); > > > > Is mask the correct name? It is not being used in the typical way for > > a mask. > > It is the mask of all the reset bits, see also patch 3/3. Either all > these bits are set or none. Yes, it is you just don't use it in the typical way for a mask foo = bar & mask; The name mask made me look for a read-modify-write or similar. And that then makes me thing of race conditions. > Do you haave any suggestion? value everywhere? Or phy_reset_bits? Andrew
diff --git a/drivers/net/mdio/mdio-mscc-miim.c b/drivers/net/mdio/mdio-mscc-miim.c index 64fb76c1e395..7773d5019e66 100644 --- a/drivers/net/mdio/mdio-mscc-miim.c +++ b/drivers/net/mdio/mdio-mscc-miim.c @@ -158,18 +158,18 @@ static int mscc_miim_reset(struct mii_bus *bus) { struct mscc_miim_dev *miim = bus->priv; int offset = miim->phy_reset_offset; + int mask = PHY_CFG_PHY_ENA | PHY_CFG_PHY_COMMON_RESET | + PHY_CFG_PHY_RESET; int ret; if (miim->phy_regs) { - ret = regmap_write(miim->phy_regs, - MSCC_PHY_REG_PHY_CFG + offset, 0); + ret = regmap_write(miim->phy_regs, offset, 0); if (ret < 0) { WARN_ONCE(1, "mscc reset set error %d\n", ret); return ret; } - ret = regmap_write(miim->phy_regs, - MSCC_PHY_REG_PHY_CFG + offset, 0x1ff); + ret = regmap_write(miim->phy_regs, offset, mask); if (ret < 0) { WARN_ONCE(1, "mscc reset clear error %d\n", ret); return ret; @@ -272,7 +272,7 @@ static int mscc_miim_probe(struct platform_device *pdev) miim = bus->priv; miim->phy_regs = phy_regmap; - miim->phy_reset_offset = 0; + miim->phy_reset_offset = MSCC_PHY_REG_PHY_CFG; ret = of_mdiobus_register(bus, pdev->dev.of_node); if (ret < 0) {
Replace the magic numbers by macros which are already defined. It seems the original commit missed to use them. Signed-off-by: Michael Walle <michael@walle.cc> --- drivers/net/mdio/mdio-mscc-miim.c | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-)