linux-kernel.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [PATCH] [V2]r8152: Add support for MAC address pass through on RTL8153-BD
@ 2019-02-18 14:00 David Chen
  2019-02-18 14:22 ` Jiri Slaby
  0 siblings, 1 reply; 3+ messages in thread
From: David Chen @ 2019-02-18 14:00 UTC (permalink / raw)
  To: linux-usb, netdev, linux-kernel
  Cc: davem, hayeswang, mario.limonciello, bigeasy, edumazet, jslaby,
	f.fainelli, david.chen7, kai.heng.feng, zhongjiang

From: David Chen <david.chen7@dell.com>

RTL8153-BD is used in Dell DA300 type-C dongle.
It should be added to the whitelist of devices to activate MAC address
pass through.

Per confirming with Realtek all devices containing RTL8153-BD should
activate MAC pass through and there won't use pass through bit on efuse
like in RTL8153-AD.

Signed-off-by: David Chen <david.chen7@dell.com>
---
 drivers/net/usb/r8152.c | 5 +++--
 1 file changed, 3 insertions(+), 2 deletions(-)

diff --git a/drivers/net/usb/r8152.c b/drivers/net/usb/r8152.c
index 60dd1ec1665f..86c8c64fbb0f 100644
--- a/drivers/net/usb/r8152.c
+++ b/drivers/net/usb/r8152.c
@@ -557,6 +557,7 @@ enum spd_duplex {
 /* MAC PASSTHRU */
 #define AD_MASK			0xfee0
 #define BND_MASK		0x0004
+#define BD_MASK			0x0001
 #define EFUSE			0xcfdb
 #define PASS_THRU_MASK		0x1
 
@@ -1176,9 +1177,9 @@ static int vendor_mac_passthru_addr_read(struct r8152 *tp, struct sockaddr *sa)
 			return -ENODEV;
 		}
 	} else {
-		/* test for RTL8153-BND */
+		/* test for RTL8153-BND and RTL8153-BD */
 		ocp_data = ocp_read_byte(tp, MCU_TYPE_USB, USB_MISC_1);
-		if ((ocp_data & BND_MASK) == 0) {
+		if ((ocp_data & BND_MASK) == 0 && (ocp_data & BD_MASK) == 0) {
 			netif_dbg(tp, probe, tp->netdev,
 				  "Invalid variant for MAC pass through\n");
 			return -ENODEV;
-- 
2.19.1


^ permalink raw reply related	[flat|nested] 3+ messages in thread

* Re: [PATCH] [V2]r8152: Add support for MAC address pass through on RTL8153-BD
  2019-02-18 14:00 [PATCH] [V2]r8152: Add support for MAC address pass through on RTL8153-BD David Chen
@ 2019-02-18 14:22 ` Jiri Slaby
  2019-02-22  5:44   ` David Chen
  0 siblings, 1 reply; 3+ messages in thread
From: Jiri Slaby @ 2019-02-18 14:22 UTC (permalink / raw)
  To: David Chen, linux-usb, netdev, linux-kernel
  Cc: davem, hayeswang, mario.limonciello, bigeasy, edumazet,
	f.fainelli, david.chen7, kai.heng.feng, zhongjiang

On 18. 02. 19, 15:00, David Chen wrote:
> From: David Chen <david.chen7@dell.com>
> 
> RTL8153-BD is used in Dell DA300 type-C dongle.
> It should be added to the whitelist of devices to activate MAC address
> pass through.
> 
> Per confirming with Realtek all devices containing RTL8153-BD should
> activate MAC pass through and there won't use pass through bit on efuse
> like in RTL8153-AD.
> 
> Signed-off-by: David Chen <david.chen7@dell.com>
> ---
>  drivers/net/usb/r8152.c | 5 +++--
>  1 file changed, 3 insertions(+), 2 deletions(-)
> 
> diff --git a/drivers/net/usb/r8152.c b/drivers/net/usb/r8152.c
> index 60dd1ec1665f..86c8c64fbb0f 100644
> --- a/drivers/net/usb/r8152.c
> +++ b/drivers/net/usb/r8152.c
> @@ -557,6 +557,7 @@ enum spd_duplex {
>  /* MAC PASSTHRU */
>  #define AD_MASK			0xfee0
>  #define BND_MASK		0x0004
> +#define BD_MASK			0x0001
>  #define EFUSE			0xcfdb
>  #define PASS_THRU_MASK		0x1
>  
> @@ -1176,9 +1177,9 @@ static int vendor_mac_passthru_addr_read(struct r8152 *tp, struct sockaddr *sa)
>  			return -ENODEV;
>  		}
>  	} else {
> -		/* test for RTL8153-BND */
> +		/* test for RTL8153-BND and RTL8153-BD */
>  		ocp_data = ocp_read_byte(tp, MCU_TYPE_USB, USB_MISC_1);
> -		if ((ocp_data & BND_MASK) == 0) {
> +		if ((ocp_data & BND_MASK) == 0 && (ocp_data & BD_MASK) == 0) {

Can you ensure that BND won't have the BD's bit set and vice versa? I.e.
should the check be something like:
  if (isBND() && (ocp_data & BND_MASK) == 0 ||
      isBD() && (ocp_data & BD_MASK) == 0)
instead?

thanks,
-- 
js
suse labs

^ permalink raw reply	[flat|nested] 3+ messages in thread

* Re: [PATCH] [V2]r8152: Add support for MAC address pass through on RTL8153-BD
  2019-02-18 14:22 ` Jiri Slaby
@ 2019-02-22  5:44   ` David Chen
  0 siblings, 0 replies; 3+ messages in thread
From: David Chen @ 2019-02-22  5:44 UTC (permalink / raw)
  To: Jiri Slaby
  Cc: linux-usb, netdev, linux-kernel, davem, hayeswang,
	mario.limonciello, bigeasy, edumazet, f.fainelli, david.chen7,
	kai.heng.feng, zhongjiang

Hi Jiri,

Thanks for your comments.  BND_MASK and BD_MASK are defined separately, and I have tested RTL8153-BD and RTL8153-BND devices, both work as expected.

Thanks and Regards,
-David


> Jiri Slaby <jslaby@suse.cz> 於 2019年2月18日 下午10:22 寫道:
> 
>> On 18. 02. 19, 15:00, David Chen wrote:
>> From: David Chen <david.chen7@dell.com>
>> 
>> RTL8153-BD is used in Dell DA300 type-C dongle.
>> It should be added to the whitelist of devices to activate MAC address
>> pass through.
>> 
>> Per confirming with Realtek all devices containing RTL8153-BD should
>> activate MAC pass through and there won't use pass through bit on efuse
>> like in RTL8153-AD.
>> 
>> Signed-off-by: David Chen <david.chen7@dell.com>
>> ---
>> drivers/net/usb/r8152.c | 5 +++--
>> 1 file changed, 3 insertions(+), 2 deletions(-)
>> 
>> diff --git a/drivers/net/usb/r8152.c b/drivers/net/usb/r8152.c
>> index 60dd1ec1665f..86c8c64fbb0f 100644
>> --- a/drivers/net/usb/r8152.c
>> +++ b/drivers/net/usb/r8152.c
>> @@ -557,6 +557,7 @@ enum spd_duplex {
>> /* MAC PASSTHRU */
>> #define AD_MASK            0xfee0
>> #define BND_MASK        0x0004
>> +#define BD_MASK            0x0001
>> #define EFUSE            0xcfdb
>> #define PASS_THRU_MASK        0x1
>> 
>> @@ -1176,9 +1177,9 @@ static int vendor_mac_passthru_addr_read(struct r8152 *tp, struct sockaddr *sa)
>>            return -ENODEV;
>>        }
>>    } else {
>> -        /* test for RTL8153-BND */
>> +        /* test for RTL8153-BND and RTL8153-BD */
>>        ocp_data = ocp_read_byte(tp, MCU_TYPE_USB, USB_MISC_1);
>> -        if ((ocp_data & BND_MASK) == 0) {
>> +        if ((ocp_data & BND_MASK) == 0 && (ocp_data & BD_MASK) == 0) {
> 
> Can you ensure that BND won't have the BD's bit set and vice versa? I.e.
> should the check be something like:
>  if (isBND() && (ocp_data & BND_MASK) == 0 ||
>      isBD() && (ocp_data & BD_MASK) == 0)
> instead?
> 
> thanks,
> -- 
> js
> suse labs

^ permalink raw reply	[flat|nested] 3+ messages in thread

end of thread, other threads:[~2019-02-22  5:44 UTC | newest]

Thread overview: 3+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2019-02-18 14:00 [PATCH] [V2]r8152: Add support for MAC address pass through on RTL8153-BD David Chen
2019-02-18 14:22 ` Jiri Slaby
2019-02-22  5:44   ` David Chen

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).