diff mbox

sh_eth: fix SH7619/771x support

Message ID 201406032342.27160.sergei.shtylyov@cogentembedded.com (mailing list archive)
State Changes Requested
Headers show

Commit Message

Sergei Shtylyov June 3, 2014, 7:42 p.m. UTC
Commit 4a55530f38e4 (net: sh_eth: modify the definitions of register) managed
to leave out the E-DMAC register entries in sh_eth_offset_fast_sh3_sh2[], thus
totally breaking SH7619/771x support.  Add the missing entries using  the data
from before that commit.

Signed-off-by: Sergei Shtylyov <sergei.shtylyov@cogentembedded.com>

---
The patch is against Dave Miller's 'net.git' repo.
Although there have been no complaints during 3+ years of this being broken, I
think it's probably worth queuing the patch for the stable trees...

 drivers/net/ethernet/renesas/sh_eth.c |   21 +++++++++++++++++++++
 1 file changed, 21 insertions(+)

--
To unsubscribe from this list: send the line "unsubscribe linux-sh" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Comments

Yoshihiro Shimoda June 4, 2014, 12:34 a.m. UTC | #1
Hi Sergei,

Thank you for the patch!

(2014/06/04 4:42), Sergei Shtylyov wrote:
> Commit 4a55530f38e4 (net: sh_eth: modify the definitions of register) managed
> to leave out the E-DMAC register entries in sh_eth_offset_fast_sh3_sh2[], thus
> totally breaking SH7619/771x support.  Add the missing entries using  the data
> from before that commit.
> 
> Signed-off-by: Sergei Shtylyov <sergei.shtylyov@cogentembedded.com>
> 
> ---
> The patch is against Dave Miller's 'net.git' repo.
> Although there have been no complaints during 3+ years of this being broken, I
> think it's probably worth queuing the patch for the stable trees...
> 
>  drivers/net/ethernet/renesas/sh_eth.c |   21 +++++++++++++++++++++
>  1 file changed, 21 insertions(+)
> 
> Index: net/drivers/net/ethernet/renesas/sh_eth.c
> ===================================================================
> --- net.orig/drivers/net/ethernet/renesas/sh_eth.c
> +++ net/drivers/net/ethernet/renesas/sh_eth.c
> @@ -307,6 +307,27 @@ static const u16 sh_eth_offset_fast_sh4[
>  };
>  
>  static const u16 sh_eth_offset_fast_sh3_sh2[SH_ETH_MAX_REGISTER_OFFSET] = {
> +	[EDMR]		= 0x0000,
> +	[EDTRR]		= 0x0004,
> +	[EDRRR]		= 0x0008,
> +	[TDLAR]		= 0x000c,
> +	[RDLAR]		= 0x0010,
> +	[EESR]		= 0x0014,
> +	[EESIPR]	= 0x0018,
> +	[TRSCER]	= 0x001c,
> +	[RMFCR]		= 0x0020,
> +	[TFTR]		= 0x0024,
> +	[FDR]		= 0x0028,
> +	[RMCR]		= 0x002c,
> +	[EDOCR]		= 0x0030,
> +	[FCFTR]		= 0x0034,
> +	[RPADIR]	= 0x0038,

I checked sh7710 and sh7619 datasheet, but they don't have RPADIR register.
Since I would like to check a datasheet you looked into, would you tell me about this?

Best regards,
Yoshihiro Shimoda

> +	[TRIMD]		= 0x003c,
> +	[RBWAR]		= 0x0040,
> +	[RDFAR]		= 0x0044,
> +	[TBRAR]		= 0x004c,
> +	[TDFAR]		= 0x0050,
> +
>  	[ECMR]		= 0x0160,
>  	[ECSR]		= 0x0164,
>  	[ECSIPR]	= 0x0168,
> 
--
To unsubscribe from this list: send the line "unsubscribe linux-sh" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
David Miller June 4, 2014, 2:02 a.m. UTC | #2
From: Yoshihiro Shimoda <yoshihiro.shimoda.uh@renesas.com>
Date: Wed, 4 Jun 2014 09:34:56 +0900

> (2014/06/04 4:42), Sergei Shtylyov wrote:
>> Commit 4a55530f38e4 (net: sh_eth: modify the definitions of register) managed
>> to leave out the E-DMAC register entries in sh_eth_offset_fast_sh3_sh2[], thus
>> totally breaking SH7619/771x support.  Add the missing entries using  the data
>> from before that commit.
>> 
>> Signed-off-by: Sergei Shtylyov <sergei.shtylyov@cogentembedded.com>
 ...
> I checked sh7710 and sh7619 datasheet, but they don't have RPADIR register.
> Since I would like to check a datasheet you looked into, would you tell me about this?

I think what Sergei simply did is take what was used for register offsets
before the mentioned commits.

The RPADIR register write is guarded by "mdp->cd->rpadir" being non-zero,
so his change is very safe.
--
To unsubscribe from this list: send the line "unsubscribe linux-sh" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Yoshihiro Shimoda June 4, 2014, 2:20 a.m. UTC | #3
Hi David,

(2014/06/04 11:02), David Miller wrote:
> From: Yoshihiro Shimoda <yoshihiro.shimoda.uh@renesas.com>
> Date: Wed, 4 Jun 2014 09:34:56 +0900
> 
>> (2014/06/04 4:42), Sergei Shtylyov wrote:
>>> Commit 4a55530f38e4 (net: sh_eth: modify the definitions of register) managed
>>> to leave out the E-DMAC register entries in sh_eth_offset_fast_sh3_sh2[], thus
>>> totally breaking SH7619/771x support.  Add the missing entries using  the data
>>> from before that commit.
>>>
>>> Signed-off-by: Sergei Shtylyov <sergei.shtylyov@cogentembedded.com>
>  ...
>> I checked sh7710 and sh7619 datasheet, but they don't have RPADIR register.
>> Since I would like to check a datasheet you looked into, would you tell me about this?
> 
> I think what Sergei simply did is take what was used for register offsets
> before the mentioned commits.
> 
> The RPADIR register write is guarded by "mdp->cd->rpadir" being non-zero,
> so his change is very safe.

Thank you for the reply. I understood it.

Since I checked all of the registers offset in this patch and they are good:
Acked-by: Yoshihiro Shimoda <yoshihiro.shimoda.uh@renesas.com>

Best regards,
Yoshihiro Shimoda
--
To unsubscribe from this list: send the line "unsubscribe linux-sh" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
David Miller June 4, 2014, 2:29 a.m. UTC | #4
From: Sergei Shtylyov <sergei.shtylyov@cogentembedded.com>
Date: Tue, 3 Jun 2014 23:42:26 +0400

> Commit 4a55530f38e4 (net: sh_eth: modify the definitions of register) managed
> to leave out the E-DMAC register entries in sh_eth_offset_fast_sh3_sh2[], thus
> totally breaking SH7619/771x support.  Add the missing entries using  the data
> from before that commit.
> 
> Signed-off-by: Sergei Shtylyov <sergei.shtylyov@cogentembedded.com>

Applied.

I'll queue both of these sh_eth changes for -stable.
--
To unsubscribe from this list: send the line "unsubscribe linux-sh" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Sergei Shtylyov June 4, 2014, 12:37 p.m. UTC | #5
Hello.

On 06/04/2014 04:34 AM, Yoshihiro Shimoda wrote:

>> Commit 4a55530f38e4 (net: sh_eth: modify the definitions of register) managed
>> to leave out the E-DMAC register entries in sh_eth_offset_fast_sh3_sh2[], thus
>> totally breaking SH7619/771x support.  Add the missing entries using  the data
>> from before that commit.

>> Signed-off-by: Sergei Shtylyov <sergei.shtylyov@cogentembedded.com>

>> ---
>> The patch is against Dave Miller's 'net.git' repo.
>> Although there have been no complaints during 3+ years of this being broken, I
>> think it's probably worth queuing the patch for the stable trees...

>>   drivers/net/ethernet/renesas/sh_eth.c |   21 +++++++++++++++++++++
>>   1 file changed, 21 insertions(+)

>> Index: net/drivers/net/ethernet/renesas/sh_eth.c
>> ===================================================================
>> --- net.orig/drivers/net/ethernet/renesas/sh_eth.c
>> +++ net/drivers/net/ethernet/renesas/sh_eth.c
>> @@ -307,6 +307,27 @@ static const u16 sh_eth_offset_fast_sh4[
>>   };
>>
>>   static const u16 sh_eth_offset_fast_sh3_sh2[SH_ETH_MAX_REGISTER_OFFSET] = {
>> +	[EDMR]		= 0x0000,
>> +	[EDTRR]		= 0x0004,
>> +	[EDRRR]		= 0x0008,
>> +	[TDLAR]		= 0x000c,
>> +	[RDLAR]		= 0x0010,
>> +	[EESR]		= 0x0014,
>> +	[EESIPR]	= 0x0018,
>> +	[TRSCER]	= 0x001c,
>> +	[RMFCR]		= 0x0020,
>> +	[TFTR]		= 0x0024,
>> +	[FDR]		= 0x0028,
>> +	[RMCR]		= 0x002c,
>> +	[EDOCR]		= 0x0030,
>> +	[FCFTR]		= 0x0034,
>> +	[RPADIR]	= 0x0038,

> I checked sh7710 and sh7619 datasheet, but they don't have RPADIR register.
> Since I would like to check a datasheet you looked into, would you tell me about this?

    As I wrote in the changelog, I used the driver source. I don't have access 
to SH7619/771x datasheets.

WBR, Sergei

--
To unsubscribe from this list: send the line "unsubscribe linux-sh" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
diff mbox

Patch

Index: net/drivers/net/ethernet/renesas/sh_eth.c
===================================================================
--- net.orig/drivers/net/ethernet/renesas/sh_eth.c
+++ net/drivers/net/ethernet/renesas/sh_eth.c
@@ -307,6 +307,27 @@  static const u16 sh_eth_offset_fast_sh4[
 };
 
 static const u16 sh_eth_offset_fast_sh3_sh2[SH_ETH_MAX_REGISTER_OFFSET] = {
+	[EDMR]		= 0x0000,
+	[EDTRR]		= 0x0004,
+	[EDRRR]		= 0x0008,
+	[TDLAR]		= 0x000c,
+	[RDLAR]		= 0x0010,
+	[EESR]		= 0x0014,
+	[EESIPR]	= 0x0018,
+	[TRSCER]	= 0x001c,
+	[RMFCR]		= 0x0020,
+	[TFTR]		= 0x0024,
+	[FDR]		= 0x0028,
+	[RMCR]		= 0x002c,
+	[EDOCR]		= 0x0030,
+	[FCFTR]		= 0x0034,
+	[RPADIR]	= 0x0038,
+	[TRIMD]		= 0x003c,
+	[RBWAR]		= 0x0040,
+	[RDFAR]		= 0x0044,
+	[TBRAR]		= 0x004c,
+	[TDFAR]		= 0x0050,
+
 	[ECMR]		= 0x0160,
 	[ECSR]		= 0x0164,
 	[ECSIPR]	= 0x0168,