| From foo@baz Wed Feb 28 16:16:23 CET 2018 |
| From: Sergei Shtylyov <sergei.shtylyov@cogentembedded.com> |
| Date: Sat, 6 Jan 2018 21:53:26 +0300 |
| Subject: SolutionEngine771x: fix Ether platform data |
| |
| From: Sergei Shtylyov <sergei.shtylyov@cogentembedded.com> |
| |
| |
| [ Upstream commit 195e2addbce09e5afbc766efc1e6567c9ce840d3 ] |
| |
| The 'sh_eth' driver's probe() method would fail on the SolutionEngine7710 |
| board and crash on SolutionEngine7712 board as the platform code is |
| hopelessly behind the driver's platform data -- it passes the PHY address |
| instead of 'struct sh_eth_plat_data *'; pass the latter to the driver in |
| order to fix the bug... |
| |
| Fixes: 71557a37adb5 ("[netdrvr] sh_eth: Add SH7619 support") |
| Signed-off-by: Sergei Shtylyov <sergei.shtylyov@cogentembedded.com> |
| Signed-off-by: David S. Miller <davem@davemloft.net> |
| Signed-off-by: Sasha Levin <alexander.levin@microsoft.com> |
| Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org> |
| --- |
| arch/sh/boards/mach-se/770x/setup.c | 10 ++++++++-- |
| 1 file changed, 8 insertions(+), 2 deletions(-) |
| |
| --- a/arch/sh/boards/mach-se/770x/setup.c |
| +++ b/arch/sh/boards/mach-se/770x/setup.c |
| @@ -8,6 +8,7 @@ |
| */ |
| #include <linux/init.h> |
| #include <linux/platform_device.h> |
| +#include <linux/sh_eth.h> |
| #include <mach-se/mach/se.h> |
| #include <mach-se/mach/mrshpc.h> |
| #include <asm/machvec.h> |
| @@ -114,6 +115,11 @@ static struct platform_device heartbeat_ |
| #if defined(CONFIG_CPU_SUBTYPE_SH7710) ||\ |
| defined(CONFIG_CPU_SUBTYPE_SH7712) |
| /* SH771X Ethernet driver */ |
| +static struct sh_eth_plat_data sh_eth_plat = { |
| + .phy = PHY_ID, |
| + .phy_interface = PHY_INTERFACE_MODE_MII, |
| +}; |
| + |
| static struct resource sh_eth0_resources[] = { |
| [0] = { |
| .start = SH_ETH0_BASE, |
| @@ -131,7 +137,7 @@ static struct platform_device sh_eth0_de |
| .name = "sh771x-ether", |
| .id = 0, |
| .dev = { |
| - .platform_data = PHY_ID, |
| + .platform_data = &sh_eth_plat, |
| }, |
| .num_resources = ARRAY_SIZE(sh_eth0_resources), |
| .resource = sh_eth0_resources, |
| @@ -154,7 +160,7 @@ static struct platform_device sh_eth1_de |
| .name = "sh771x-ether", |
| .id = 1, |
| .dev = { |
| - .platform_data = PHY_ID, |
| + .platform_data = &sh_eth_plat, |
| }, |
| .num_resources = ARRAY_SIZE(sh_eth1_resources), |
| .resource = sh_eth1_resources, |