All of lore.kernel.org
 help / color / mirror / Atom feed
From: Murali Karicheri <m-karicheri2@ti.com>
To: Andrew Lunn <andrew@lunn.ch>
Cc: <robh+dt@kernel.org>, <mark.rutland@arm.com>,
	<ssantosh@kernel.org>, <malat@debian.org>, <w-kwok2@ti.com>,
	<devicetree@vger.kernel.org>, <linux-kernel@vger.kernel.org>,
	<linux-arm-kernel@lists.infradead.org>, <davem@davemloft.net>,
	<netdev@vger.kernel.org>
Subject: Re: [net-next PATCH v2 05/10] net: netcp: ethss: use rgmii link status for 2u cpsw hardware
Date: Tue, 27 Mar 2018 17:07:35 -0400	[thread overview]
Message-ID: <33e89328-4f0b-cc9f-96cc-4b45747b9f34@ti.com> (raw)
In-Reply-To: <20180327172953.GP5862@lunn.ch>

On 03/27/2018 01:29 PM, Andrew Lunn wrote:
> On Tue, Mar 27, 2018 at 12:31:44PM -0400, Murali Karicheri wrote:
>> Introduce rgmii link status to handle link state events for 2u
>> cpsw hardware on K2G.
>>
>> Signed-off-by: Murali Karicheri <m-karicheri2@ti.com>
>> ---
>>  drivers/net/ethernet/ti/netcp_ethss.c | 27 +++++++++++++++++++++++----
>>  1 file changed, 23 insertions(+), 4 deletions(-)
>>
>> diff --git a/drivers/net/ethernet/ti/netcp_ethss.c b/drivers/net/ethernet/ti/netcp_ethss.c
>> index ab9d369..078a1b8 100644
>> --- a/drivers/net/ethernet/ti/netcp_ethss.c
>> +++ b/drivers/net/ethernet/ti/netcp_ethss.c
>> @@ -552,6 +552,7 @@ struct gbe_ss_regs {
>>  struct gbe_ss_regs_ofs {
>>  	u16	id_ver;
>>  	u16	control;
>> +	u16	rgmii_status; /* 2U */
>>  };
>>  
>>  struct gbe_switch_regs {
>> @@ -2120,23 +2121,39 @@ static bool gbe_phy_link_status(struct gbe_slave *slave)
>>  	 return !slave->phy || slave->phy->link;
>>  }
>>  
>> +#define RGMII_REG_STATUS_LINK	BIT(0)
>> +
>> +static void netcp_2u_rgmii_get_port_link(struct gbe_priv *gbe_dev, bool *status)
>> +{
>> +	u32 val = 0;
>> +
>> +	val = readl(GBE_REG_ADDR(gbe_dev, ss_regs, rgmii_status));
>> +	*status = false;
>> +	if ((val & RGMII_REG_STATUS_LINK) != 0)
>> +		*status = true;
> 
>   *status = !!(val & RGMII_REG_STATUS_LINK);
> 
> 
>> +}
>> +
>>  static void netcp_ethss_update_link_state(struct gbe_priv *gbe_dev,
>>  					  struct gbe_slave *slave,
>>  					  struct net_device *ndev)
>>  {
>> -	int sp = slave->slave_num;
>> -	int phy_link_state, sgmii_link_state = 1, link_state;
>> +	bool sw_link_state = true, phy_link_state;
>> +	int sp = slave->slave_num, link_state;
>>  
>>  	if (!slave->open)
>>  		return;
>>  
>>  	if (!SLAVE_LINK_IS_XGMII(slave)) {
>> -		sgmii_link_state =
>> +		if (SLAVE_LINK_IS_RGMII(slave))
>> +			netcp_2u_rgmii_get_port_link(gbe_dev,
>> +						     &sw_link_state);
>> +		else
>> +			sw_link_state =
>>  			netcp_sgmii_get_port_link(SGMII_BASE(gbe_dev, sp), sp);
> 
> This would be more readable as
> 
>      if (SLAVE_LINK_IS_RGMII(slave))
> 		netcp_2u_rgmii_get_port_link(gbe_dev,
> 					     &sw_link_state);
>      if (SLAVE_LINK_IS_SGMII(slave))
> 	sw_link_state = netcp_sgmii_get_port_link(
> 	   SGMII_BASE(gbe_dev, sp), sp);
> 
Probably better to use a switch statement in this case for better readability?
handle only SGMII and RGMII cases in the switch statement.

Murali

>    Andrew
> 


-- 
Murali Karicheri
Linux Kernel, Keystone

WARNING: multiple messages have this Message-ID (diff)
From: Murali Karicheri <m-karicheri2@ti.com>
To: Andrew Lunn <andrew@lunn.ch>
Cc: mark.rutland@arm.com, devicetree@vger.kernel.org,
	malat@debian.org, netdev@vger.kernel.org,
	linux-kernel@vger.kernel.org, w-kwok2@ti.com, robh+dt@kernel.org,
	ssantosh@kernel.org, davem@davemloft.net,
	linux-arm-kernel@lists.infradead.org
Subject: Re: [net-next PATCH v2 05/10] net: netcp: ethss: use rgmii link status for 2u cpsw hardware
Date: Tue, 27 Mar 2018 17:07:35 -0400	[thread overview]
Message-ID: <33e89328-4f0b-cc9f-96cc-4b45747b9f34@ti.com> (raw)
In-Reply-To: <20180327172953.GP5862@lunn.ch>

On 03/27/2018 01:29 PM, Andrew Lunn wrote:
> On Tue, Mar 27, 2018 at 12:31:44PM -0400, Murali Karicheri wrote:
>> Introduce rgmii link status to handle link state events for 2u
>> cpsw hardware on K2G.
>>
>> Signed-off-by: Murali Karicheri <m-karicheri2@ti.com>
>> ---
>>  drivers/net/ethernet/ti/netcp_ethss.c | 27 +++++++++++++++++++++++----
>>  1 file changed, 23 insertions(+), 4 deletions(-)
>>
>> diff --git a/drivers/net/ethernet/ti/netcp_ethss.c b/drivers/net/ethernet/ti/netcp_ethss.c
>> index ab9d369..078a1b8 100644
>> --- a/drivers/net/ethernet/ti/netcp_ethss.c
>> +++ b/drivers/net/ethernet/ti/netcp_ethss.c
>> @@ -552,6 +552,7 @@ struct gbe_ss_regs {
>>  struct gbe_ss_regs_ofs {
>>  	u16	id_ver;
>>  	u16	control;
>> +	u16	rgmii_status; /* 2U */
>>  };
>>  
>>  struct gbe_switch_regs {
>> @@ -2120,23 +2121,39 @@ static bool gbe_phy_link_status(struct gbe_slave *slave)
>>  	 return !slave->phy || slave->phy->link;
>>  }
>>  
>> +#define RGMII_REG_STATUS_LINK	BIT(0)
>> +
>> +static void netcp_2u_rgmii_get_port_link(struct gbe_priv *gbe_dev, bool *status)
>> +{
>> +	u32 val = 0;
>> +
>> +	val = readl(GBE_REG_ADDR(gbe_dev, ss_regs, rgmii_status));
>> +	*status = false;
>> +	if ((val & RGMII_REG_STATUS_LINK) != 0)
>> +		*status = true;
> 
>   *status = !!(val & RGMII_REG_STATUS_LINK);
> 
> 
>> +}
>> +
>>  static void netcp_ethss_update_link_state(struct gbe_priv *gbe_dev,
>>  					  struct gbe_slave *slave,
>>  					  struct net_device *ndev)
>>  {
>> -	int sp = slave->slave_num;
>> -	int phy_link_state, sgmii_link_state = 1, link_state;
>> +	bool sw_link_state = true, phy_link_state;
>> +	int sp = slave->slave_num, link_state;
>>  
>>  	if (!slave->open)
>>  		return;
>>  
>>  	if (!SLAVE_LINK_IS_XGMII(slave)) {
>> -		sgmii_link_state =
>> +		if (SLAVE_LINK_IS_RGMII(slave))
>> +			netcp_2u_rgmii_get_port_link(gbe_dev,
>> +						     &sw_link_state);
>> +		else
>> +			sw_link_state =
>>  			netcp_sgmii_get_port_link(SGMII_BASE(gbe_dev, sp), sp);
> 
> This would be more readable as
> 
>      if (SLAVE_LINK_IS_RGMII(slave))
> 		netcp_2u_rgmii_get_port_link(gbe_dev,
> 					     &sw_link_state);
>      if (SLAVE_LINK_IS_SGMII(slave))
> 	sw_link_state = netcp_sgmii_get_port_link(
> 	   SGMII_BASE(gbe_dev, sp), sp);
> 
Probably better to use a switch statement in this case for better readability?
handle only SGMII and RGMII cases in the switch statement.

Murali

>    Andrew
> 


-- 
Murali Karicheri
Linux Kernel, Keystone

WARNING: multiple messages have this Message-ID (diff)
From: m-karicheri2@ti.com (Murali Karicheri)
To: linux-arm-kernel@lists.infradead.org
Subject: [net-next PATCH v2 05/10] net: netcp: ethss: use rgmii link status for 2u cpsw hardware
Date: Tue, 27 Mar 2018 17:07:35 -0400	[thread overview]
Message-ID: <33e89328-4f0b-cc9f-96cc-4b45747b9f34@ti.com> (raw)
In-Reply-To: <20180327172953.GP5862@lunn.ch>

On 03/27/2018 01:29 PM, Andrew Lunn wrote:
> On Tue, Mar 27, 2018 at 12:31:44PM -0400, Murali Karicheri wrote:
>> Introduce rgmii link status to handle link state events for 2u
>> cpsw hardware on K2G.
>>
>> Signed-off-by: Murali Karicheri <m-karicheri2@ti.com>
>> ---
>>  drivers/net/ethernet/ti/netcp_ethss.c | 27 +++++++++++++++++++++++----
>>  1 file changed, 23 insertions(+), 4 deletions(-)
>>
>> diff --git a/drivers/net/ethernet/ti/netcp_ethss.c b/drivers/net/ethernet/ti/netcp_ethss.c
>> index ab9d369..078a1b8 100644
>> --- a/drivers/net/ethernet/ti/netcp_ethss.c
>> +++ b/drivers/net/ethernet/ti/netcp_ethss.c
>> @@ -552,6 +552,7 @@ struct gbe_ss_regs {
>>  struct gbe_ss_regs_ofs {
>>  	u16	id_ver;
>>  	u16	control;
>> +	u16	rgmii_status; /* 2U */
>>  };
>>  
>>  struct gbe_switch_regs {
>> @@ -2120,23 +2121,39 @@ static bool gbe_phy_link_status(struct gbe_slave *slave)
>>  	 return !slave->phy || slave->phy->link;
>>  }
>>  
>> +#define RGMII_REG_STATUS_LINK	BIT(0)
>> +
>> +static void netcp_2u_rgmii_get_port_link(struct gbe_priv *gbe_dev, bool *status)
>> +{
>> +	u32 val = 0;
>> +
>> +	val = readl(GBE_REG_ADDR(gbe_dev, ss_regs, rgmii_status));
>> +	*status = false;
>> +	if ((val & RGMII_REG_STATUS_LINK) != 0)
>> +		*status = true;
> 
>   *status = !!(val & RGMII_REG_STATUS_LINK);
> 
> 
>> +}
>> +
>>  static void netcp_ethss_update_link_state(struct gbe_priv *gbe_dev,
>>  					  struct gbe_slave *slave,
>>  					  struct net_device *ndev)
>>  {
>> -	int sp = slave->slave_num;
>> -	int phy_link_state, sgmii_link_state = 1, link_state;
>> +	bool sw_link_state = true, phy_link_state;
>> +	int sp = slave->slave_num, link_state;
>>  
>>  	if (!slave->open)
>>  		return;
>>  
>>  	if (!SLAVE_LINK_IS_XGMII(slave)) {
>> -		sgmii_link_state =
>> +		if (SLAVE_LINK_IS_RGMII(slave))
>> +			netcp_2u_rgmii_get_port_link(gbe_dev,
>> +						     &sw_link_state);
>> +		else
>> +			sw_link_state =
>>  			netcp_sgmii_get_port_link(SGMII_BASE(gbe_dev, sp), sp);
> 
> This would be more readable as
> 
>      if (SLAVE_LINK_IS_RGMII(slave))
> 		netcp_2u_rgmii_get_port_link(gbe_dev,
> 					     &sw_link_state);
>      if (SLAVE_LINK_IS_SGMII(slave))
> 	sw_link_state = netcp_sgmii_get_port_link(
> 	   SGMII_BASE(gbe_dev, sp), sp);
> 
Probably better to use a switch statement in this case for better readability?
handle only SGMII and RGMII cases in the switch statement.

Murali

>    Andrew
> 


-- 
Murali Karicheri
Linux Kernel, Keystone

  reply	other threads:[~2018-03-27 21:05 UTC|newest]

Thread overview: 70+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2018-03-27 16:31 [net-next PATCH v2 00/10] Add support for netcp driver on K2G SoC Murali Karicheri
2018-03-27 16:31 ` Murali Karicheri
2018-03-27 16:31 ` Murali Karicheri
2018-03-27 16:31 ` [net-next PATCH v2 01/10] soc: ti: K2G: enhancement to support QMSS in NSS Murali Karicheri
2018-03-27 16:31   ` Murali Karicheri
2018-03-27 16:31   ` Murali Karicheri
2018-03-28 19:01   ` [net-next,v2,01/10] " Grygorii Strashko
2018-03-28 19:01     ` [net-next, v2, 01/10] " Grygorii Strashko
2018-03-28 19:01     ` [net-next,v2,01/10] " Grygorii Strashko
2018-03-29 14:50     ` Murali Karicheri
2018-03-29 14:50       ` [net-next, v2, 01/10] " Murali Karicheri
2018-03-29 14:50       ` Murali Karicheri
2018-03-29 14:50       ` Murali Karicheri
2018-03-29 14:59     ` [net-next,v2,01/10] " Murali Karicheri
2018-03-29 14:59       ` [net-next, v2, 01/10] " Murali Karicheri
2018-03-29 14:59       ` [net-next,v2,01/10] " Murali Karicheri
2018-03-27 16:31 ` [net-next PATCH v2 02/10] soc: ti: K2G: provide APIs to support driver probe deferral Murali Karicheri
2018-03-27 16:31   ` Murali Karicheri
2018-03-27 16:31   ` Murali Karicheri
2018-03-27 16:31 ` [net-next PATCH v2 03/10] net: netcp: ethss: make call to gbe_sgmii_config() conditional Murali Karicheri
2018-03-27 16:31   ` Murali Karicheri
2018-03-27 16:31   ` Murali Karicheri
2018-03-27 17:13   ` Andrew Lunn
2018-03-27 17:13     ` Andrew Lunn
2018-03-27 19:20     ` Murali Karicheri
2018-03-27 19:20       ` Murali Karicheri
2018-03-27 19:20       ` Murali Karicheri
2018-03-27 17:18   ` Andrew Lunn
2018-03-27 17:18     ` Andrew Lunn
2018-03-27 17:18     ` Andrew Lunn
2018-03-27 19:39     ` Murali Karicheri
2018-03-27 19:39       ` Murali Karicheri
2018-03-27 19:39       ` Murali Karicheri
2018-03-29 16:27     ` Murali Karicheri
2018-03-29 16:27       ` Murali Karicheri
2018-03-29 16:27       ` Murali Karicheri
2018-03-27 16:31 ` [net-next PATCH v2 04/10] net: netcp: ethss: add support for handling sgmii link interface Murali Karicheri
2018-03-27 16:31   ` Murali Karicheri
2018-03-27 16:31   ` Murali Karicheri
2018-03-27 16:31 ` [net-next PATCH v2 05/10] net: netcp: ethss: use rgmii link status for 2u cpsw hardware Murali Karicheri
2018-03-27 16:31   ` Murali Karicheri
2018-03-27 16:31   ` Murali Karicheri
2018-03-27 17:29   ` Andrew Lunn
2018-03-27 17:29     ` Andrew Lunn
2018-03-27 21:07     ` Murali Karicheri [this message]
2018-03-27 21:07       ` Murali Karicheri
2018-03-27 21:07       ` Murali Karicheri
2018-03-29 16:35     ` Murali Karicheri
2018-03-29 16:35       ` Murali Karicheri
2018-03-29 16:35       ` Murali Karicheri
2018-03-27 16:31 ` [net-next PATCH v2 06/10] net: netcp: ethss: map vlan priorities to zero flow Murali Karicheri
2018-03-27 16:31   ` Murali Karicheri
2018-03-27 16:31   ` Murali Karicheri
2018-03-27 16:31 ` [net-next PATCH v2 07/10] net: netcp: ethss: re-use stats handling code for 2u hardware Murali Karicheri
2018-03-27 16:31   ` Murali Karicheri
2018-03-27 16:31   ` Murali Karicheri
2018-03-27 16:31 ` [net-next PATCH v2 08/10] net: netcp: ethss: use of_get_phy_mode() to support different RGMII modes Murali Karicheri
2018-03-27 16:31   ` Murali Karicheri
2018-03-27 16:31   ` Murali Karicheri
2018-03-27 17:35   ` Andrew Lunn
2018-03-27 17:35     ` Andrew Lunn
2018-03-29 20:03     ` Murali Karicheri
2018-03-29 20:03       ` Murali Karicheri
2018-03-29 20:03       ` Murali Karicheri
2018-03-27 16:31 ` [net-next PATCH v2 09/10] Revert "net: netcp: remove dead code from the driver" Murali Karicheri
2018-03-27 16:31   ` Murali Karicheri
2018-03-27 16:31   ` Murali Karicheri
2018-03-27 16:31 ` [net-next PATCH v2 10/10] net: netcp: support probe deferral Murali Karicheri
2018-03-27 16:31   ` Murali Karicheri
2018-03-27 16:31   ` Murali Karicheri

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=33e89328-4f0b-cc9f-96cc-4b45747b9f34@ti.com \
    --to=m-karicheri2@ti.com \
    --cc=andrew@lunn.ch \
    --cc=davem@davemloft.net \
    --cc=devicetree@vger.kernel.org \
    --cc=linux-arm-kernel@lists.infradead.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=malat@debian.org \
    --cc=mark.rutland@arm.com \
    --cc=netdev@vger.kernel.org \
    --cc=robh+dt@kernel.org \
    --cc=ssantosh@kernel.org \
    --cc=w-kwok2@ti.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.