Message ID | 05f6912b-d529-ae7d-183e-efa6951e94b7@inbox.ru |
---|---|
State | Changes Requested |
Delegated to: | David Miller |
Headers | show |
Series | [v2,01/02] net: phy: marvell: Add Marvell 88E1340 support | expand |
On Wed, Jun 17, 2020 at 07:52:45AM +0300, Maxim Kochetkov wrote: > Add Marvell 88E1340 support > Signed-off-by: Maxim Kochetkov <fido_max@inbox.ru> > --- > drivers/net/phy/marvell.c | 23 +++++++++++++++++++++++ > include/linux/marvell_phy.h | 1 + > 2 files changed, 24 insertions(+) > > diff --git a/drivers/net/phy/marvell.c b/drivers/net/phy/marvell.c > index 7fc8e10c5f33..4cc4e25fed2d 100644 > --- a/drivers/net/phy/marvell.c > +++ b/drivers/net/phy/marvell.c > @@ -2459,6 +2459,28 @@ static struct phy_driver marvell_drivers[] = { > .get_tunable = m88e1540_get_tunable, > .set_tunable = m88e1540_set_tunable, > }, > + { > + .phy_id = MARVELL_PHY_ID_88E1340S, > + .phy_id_mask = MARVELL_PHY_ID_MASK, > + .name = "Marvell 88E1340S", > + .probe = m88e1510_probe, > + /* PHY_GBIT_FEATURES */ > + .config_init = &marvell_config_init, > + .config_aneg = &m88e1510_config_aneg, > + .read_status = &marvell_read_status, > + .ack_interrupt = &marvell_ack_interrupt, > + .config_intr = &marvell_config_intr, > + .did_interrupt = &m88e1121_did_interrupt, > + .resume = &genphy_resume, > + .suspend = &genphy_suspend, > + .read_page = marvell_read_page, > + .write_page = marvell_write_page, > + .get_sset_count = marvell_get_sset_count, > + .get_strings = marvell_get_strings, > + .get_stats = marvell_get_stats, > + .get_tunable = m88e1540_get_tunable, > + .set_tunable = m88e1540_set_tunable, Can we use a single style for referencing functions please? The kernel in general does not use &func, it's more typing than is necessary. The C99 standard says: 6.3.2.1 Lvalues, arrays, and function designators 4 A function designator is an expression that has function type. Except when it is the operand of the sizeof operator or the unary & operator, a function designator with type ``function returning type'' is converted to an expression that has type ``pointer to function returning type''. Hence, .resume = &genphy_resume and .resume = genphy_resume are equivalent but sizeof(genphy_resume) and sizeof(&genphy_resume) are not. Thanks.
I just copied this part from another marvell PHY description. I can remove &-style reference for all marvell PHY's at next patch. 17.06.2020 11:47, Russell King - ARM Linux admin wrote: > On Wed, Jun 17, 2020 at 07:52:45AM +0300, Maxim Kochetkov wrote: >> Add Marvell 88E1340 support >> Signed-off-by: Maxim Kochetkov <fido_max@inbox.ru> >> --- >> drivers/net/phy/marvell.c | 23 +++++++++++++++++++++++ >> include/linux/marvell_phy.h | 1 + >> 2 files changed, 24 insertions(+) >> >> diff --git a/drivers/net/phy/marvell.c b/drivers/net/phy/marvell.c >> index 7fc8e10c5f33..4cc4e25fed2d 100644 >> --- a/drivers/net/phy/marvell.c >> +++ b/drivers/net/phy/marvell.c >> @@ -2459,6 +2459,28 @@ static struct phy_driver marvell_drivers[] = { >> .get_tunable = m88e1540_get_tunable, >> .set_tunable = m88e1540_set_tunable, >> }, >> + { >> + .phy_id = MARVELL_PHY_ID_88E1340S, >> + .phy_id_mask = MARVELL_PHY_ID_MASK, >> + .name = "Marvell 88E1340S", >> + .probe = m88e1510_probe, >> + /* PHY_GBIT_FEATURES */ >> + .config_init = &marvell_config_init, >> + .config_aneg = &m88e1510_config_aneg, >> + .read_status = &marvell_read_status, >> + .ack_interrupt = &marvell_ack_interrupt, >> + .config_intr = &marvell_config_intr, >> + .did_interrupt = &m88e1121_did_interrupt, >> + .resume = &genphy_resume, >> + .suspend = &genphy_suspend, >> + .read_page = marvell_read_page, >> + .write_page = marvell_write_page, >> + .get_sset_count = marvell_get_sset_count, >> + .get_strings = marvell_get_strings, >> + .get_stats = marvell_get_stats, >> + .get_tunable = m88e1540_get_tunable, >> + .set_tunable = m88e1540_set_tunable, > > Can we use a single style for referencing functions please? The kernel > in general does not use &func, it's more typing than is necessary. The > C99 standard says: > > 6.3.2.1 Lvalues, arrays, and function designators > > 4 A function designator is an expression that has function type. > Except when it is the operand of the sizeof operator or the unary > & operator, a function designator with type ``function returning > type'' is converted to an expression that has type ``pointer to > function returning type''. > > Hence, > > .resume = &genphy_resume > > and > > .resume = genphy_resume > > are equivalent but sizeof(genphy_resume) and sizeof(&genphy_resume) are > not. > > Thanks. >
These patches have been corrupted by your email client, try to apply what ended up in the mailing list and you will see, from "git am": Applying: net: phy: marvell: Add Marvell 88E1340 support error: corrupt patch at line 40
diff --git a/drivers/net/phy/marvell.c b/drivers/net/phy/marvell.c index 7fc8e10c5f33..4cc4e25fed2d 100644 --- a/drivers/net/phy/marvell.c +++ b/drivers/net/phy/marvell.c @@ -2459,6 +2459,28 @@ static struct phy_driver marvell_drivers[] = { .get_tunable = m88e1540_get_tunable, .set_tunable = m88e1540_set_tunable, }, + { + .phy_id = MARVELL_PHY_ID_88E1340S, + .phy_id_mask = MARVELL_PHY_ID_MASK, + .name = "Marvell 88E1340S", + .probe = m88e1510_probe, + /* PHY_GBIT_FEATURES */ + .config_init = &marvell_config_init, + .config_aneg = &m88e1510_config_aneg, + .read_status = &marvell_read_status, + .ack_interrupt = &marvell_ack_interrupt, + .config_intr = &marvell_config_intr, + .did_interrupt = &m88e1121_did_interrupt, + .resume = &genphy_resume, + .suspend = &genphy_suspend, + .read_page = marvell_read_page, + .write_page = marvell_write_page, + .get_sset_count = marvell_get_sset_count, + .get_strings = marvell_get_strings, + .get_stats = marvell_get_stats, + .get_tunable = m88e1540_get_tunable, + .set_tunable = m88e1540_set_tunable, + }, }; module_phy_driver(marvell_drivers); @@ -2479,6 +2501,7 @@ static struct mdio_device_id __maybe_unused marvell_tbl[] = { { MARVELL_PHY_ID_88E1545, MARVELL_PHY_ID_MASK }, { MARVELL_PHY_ID_88E3016, MARVELL_PHY_ID_MASK }, { MARVELL_PHY_ID_88E6390, MARVELL_PHY_ID_MASK }, + { MARVELL_PHY_ID_88E1340S, MARVELL_PHY_ID_MASK }, { } }; diff --git a/include/linux/marvell_phy.h b/include/linux/marvell_phy.h index af6b11d4d673..39e8c382defb 100644 --- a/include/linux/marvell_phy.h +++ b/include/linux/marvell_phy.h @@ -15,6 +15,7 @@ #define MARVELL_PHY_ID_88E1149R 0x01410e50 #define MARVELL_PHY_ID_88E1240 0x01410e30 #define MARVELL_PHY_ID_88E1318S 0x01410e90 +#define MARVELL_PHY_ID_88E1340S 0x01410dc0 #define MARVELL_PHY_ID_88E1116R 0x01410e40 #define MARVELL_PHY_ID_88E1510 0x01410dd0 #define MARVELL_PHY_ID_88E1540 0x01410eb0
Add Marvell 88E1340 support Signed-off-by: Maxim Kochetkov <fido_max@inbox.ru> --- drivers/net/phy/marvell.c | 23 +++++++++++++++++++++++ include/linux/marvell_phy.h | 1 + 2 files changed, 24 insertions(+)