diff mbox series

[v2,01/02] net: phy: marvell: Add Marvell 88E1340 support

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

Commit Message

Maxim Kochetkov June 17, 2020, 4:52 a.m. UTC
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(+)

Comments

Russell King (Oracle) June 17, 2020, 8:47 a.m. UTC | #1
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.
Maxim Kochetkov June 17, 2020, 9:59 a.m. UTC | #2
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.
>
David Miller June 19, 2020, 3:24 a.m. UTC | #3
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 mbox series

Patch

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