Message ID | 20220228140510.20883-2-arun.ramadoss@microchip.com (mailing list archive) |
---|---|
State | RFC |
Delegated to: | Netdev Maintainers |
Headers | show |
Series | Add support for LAN937x T1 Phy | 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, 69 lines checked |
netdev/kdoc | success | Errors and warnings before: 0 this patch: 0 |
netdev/source_inline | success | Was 0 now: 0 |
On Mon, Feb 28, 2022 at 07:35:07PM +0530, Arun Ramadoss wrote: > Replaced current code for soft resetting phy to genphy_soft_reset > function. And added the macro for LAN87xx Phy ID. Hi Arun Please don't mix multiple things in one patch. Looking at the actual path, you have: > +#define LAN87XX_PHY_ID 0x0007c150 > +#define MICROCHIP_PHY_ID_MASK 0xfffffff0 Part of macros for PHY ID. > + > /* External Register Control Register */ > #define LAN87XX_EXT_REG_CTL (0x14) > #define LAN87XX_EXT_REG_CTL_RD_CTL (0x1000) > @@ -197,20 +200,10 @@ static int lan87xx_phy_init(struct phy_device *phydev) > if (rc < 0) > return rc; > > - /* Soft Reset the SMI block */ > - rc = access_ereg_modify_changed(phydev, PHYACC_ATTR_BANK_SMI, > - 0x00, 0x8000, 0x8000); > - if (rc < 0) > - return rc; > - > - /* Check to see if the self-clearing bit is cleared */ > - usleep_range(1000, 2000); > - rc = access_ereg(phydev, PHYACC_ATTR_MODE_READ, > - PHYACC_ATTR_BANK_SMI, 0x00, 0); > + /* phy Soft reset */ > + rc = genphy_soft_reset(phydev); > if (rc < 0) > return rc; > - if ((rc & 0x8000) != 0) > - return -ETIMEDOUT; Soft reset. > > /* PHY Initialization */ > for (i = 0; i < ARRAY_SIZE(init); i++) { > @@ -273,6 +266,9 @@ static int lan87xx_config_init(struct phy_device *phydev) > { > int rc = lan87xx_phy_init(phydev); > > + if (rc < 0) > + phydev_err(phydev, "failed to initialize phy\n"); > + A new error message. > return rc < 0 ? rc : 0; > } > > @@ -506,18 +502,14 @@ static int lan87xx_cable_test_get_status(struct phy_device *phydev, > > static struct phy_driver microchip_t1_phy_driver[] = { > { > - .phy_id = 0x0007c150, > - .phy_id_mask = 0xfffffff0, > - .name = "Microchip LAN87xx T1", > + .phy_id = LAN87XX_PHY_ID, > + .phy_id_mask = MICROCHIP_PHY_ID_MASK, 2nd part of the PHY ID macros. > + .name = "LAN87xx T1", A change in name. > .flags = PHY_POLL_CABLE_TEST, > - > .features = PHY_BASIC_T1_FEATURES, > - > .config_init = lan87xx_config_init, > - > .config_intr = lan87xx_phy_config_intr, > .handle_interrupt = lan87xx_handle_interrupt, > - White space changes. You can also use PHY_ID_MATCH_MODEL(). Andrew
On Wed, 2022-03-02 at 04:19 +0100, Andrew Lunn wrote: > EXTERNAL EMAIL: Do not click links or open attachments unless you > know the content is safe > > On Mon, Feb 28, 2022 at 07:35:07PM +0530, Arun Ramadoss wrote: > > Replaced current code for soft resetting phy to genphy_soft_reset > > function. And added the macro for LAN87xx Phy ID. > > Hi Arun > > Please don't mix multiple things in one patch. > > Looking at the actual path, you have: > > > +#define LAN87XX_PHY_ID 0x0007c150 > > +#define MICROCHIP_PHY_ID_MASK 0xfffffff0 > > Part of macros for PHY ID. > > > + > > /* External Register Control Register */ > > #define LAN87XX_EXT_REG_CTL (0x14) > > #define LAN87XX_EXT_REG_CTL_RD_CTL (0x1000) > > @@ -197,20 +200,10 @@ static int lan87xx_phy_init(struct phy_device > > *phydev) > > if (rc < 0) > > return rc; > > > > - /* Soft Reset the SMI block */ > > - rc = access_ereg_modify_changed(phydev, PHYACC_ATTR_BANK_SMI, > > - 0x00, 0x8000, 0x8000); > > - if (rc < 0) > > - return rc; > > - > > - /* Check to see if the self-clearing bit is cleared */ > > - usleep_range(1000, 2000); > > - rc = access_ereg(phydev, PHYACC_ATTR_MODE_READ, > > - PHYACC_ATTR_BANK_SMI, 0x00, 0); > > + /* phy Soft reset */ > > + rc = genphy_soft_reset(phydev); > > if (rc < 0) > > return rc; > > - if ((rc & 0x8000) != 0) > > - return -ETIMEDOUT; > > Soft reset. > > > > > /* PHY Initialization */ > > for (i = 0; i < ARRAY_SIZE(init); i++) { > > @@ -273,6 +266,9 @@ static int lan87xx_config_init(struct > > phy_device *phydev) > > { > > int rc = lan87xx_phy_init(phydev); > > > > + if (rc < 0) > > + phydev_err(phydev, "failed to initialize phy\n"); > > + > > A new error message. > > > return rc < 0 ? rc : 0; > > } > > > > @@ -506,18 +502,14 @@ static int > > lan87xx_cable_test_get_status(struct phy_device *phydev, > > > > static struct phy_driver microchip_t1_phy_driver[] = { > > { > > - .phy_id = 0x0007c150, > > - .phy_id_mask = 0xfffffff0, > > - .name = "Microchip LAN87xx T1", > > + .phy_id = LAN87XX_PHY_ID, > > + .phy_id_mask = MICROCHIP_PHY_ID_MASK, > > 2nd part of the PHY ID macros. > > > + .name = "LAN87xx T1", > > A change in name. > > > .flags = PHY_POLL_CABLE_TEST, > > - > > .features = PHY_BASIC_T1_FEATURES, > > - > > .config_init = lan87xx_config_init, > > - > > .config_intr = lan87xx_phy_config_intr, > > .handle_interrupt = lan87xx_handle_interrupt, > > - > > White space changes. > > You can also use PHY_ID_MATCH_MODEL(). > > Andrew Thanks for the comment. I will keep one change per patch and split this patch & resend.
diff --git a/drivers/net/phy/microchip_t1.c b/drivers/net/phy/microchip_t1.c index bc50224d43dd..ece21c1e5716 100644 --- a/drivers/net/phy/microchip_t1.c +++ b/drivers/net/phy/microchip_t1.c @@ -9,6 +9,9 @@ #include <linux/ethtool.h> #include <linux/ethtool_netlink.h> +#define LAN87XX_PHY_ID 0x0007c150 +#define MICROCHIP_PHY_ID_MASK 0xfffffff0 + /* External Register Control Register */ #define LAN87XX_EXT_REG_CTL (0x14) #define LAN87XX_EXT_REG_CTL_RD_CTL (0x1000) @@ -197,20 +200,10 @@ static int lan87xx_phy_init(struct phy_device *phydev) if (rc < 0) return rc; - /* Soft Reset the SMI block */ - rc = access_ereg_modify_changed(phydev, PHYACC_ATTR_BANK_SMI, - 0x00, 0x8000, 0x8000); - if (rc < 0) - return rc; - - /* Check to see if the self-clearing bit is cleared */ - usleep_range(1000, 2000); - rc = access_ereg(phydev, PHYACC_ATTR_MODE_READ, - PHYACC_ATTR_BANK_SMI, 0x00, 0); + /* phy Soft reset */ + rc = genphy_soft_reset(phydev); if (rc < 0) return rc; - if ((rc & 0x8000) != 0) - return -ETIMEDOUT; /* PHY Initialization */ for (i = 0; i < ARRAY_SIZE(init); i++) { @@ -273,6 +266,9 @@ static int lan87xx_config_init(struct phy_device *phydev) { int rc = lan87xx_phy_init(phydev); + if (rc < 0) + phydev_err(phydev, "failed to initialize phy\n"); + return rc < 0 ? rc : 0; } @@ -506,18 +502,14 @@ static int lan87xx_cable_test_get_status(struct phy_device *phydev, static struct phy_driver microchip_t1_phy_driver[] = { { - .phy_id = 0x0007c150, - .phy_id_mask = 0xfffffff0, - .name = "Microchip LAN87xx T1", + .phy_id = LAN87XX_PHY_ID, + .phy_id_mask = MICROCHIP_PHY_ID_MASK, + .name = "LAN87xx T1", .flags = PHY_POLL_CABLE_TEST, - .features = PHY_BASIC_T1_FEATURES, - .config_init = lan87xx_config_init, - .config_intr = lan87xx_phy_config_intr, .handle_interrupt = lan87xx_handle_interrupt, - .suspend = genphy_suspend, .resume = genphy_resume, .cable_test_start = lan87xx_cable_test_start, @@ -528,7 +520,7 @@ static struct phy_driver microchip_t1_phy_driver[] = { module_phy_driver(microchip_t1_phy_driver); static struct mdio_device_id __maybe_unused microchip_t1_tbl[] = { - { 0x0007c150, 0xfffffff0 }, + { LAN87XX_PHY_ID, MICROCHIP_PHY_ID_MASK}, { } };