Commit 627a0d20 authored by Sergei Shtylyov's avatar Sergei Shtylyov Committed by David S. Miller

sh_eth: WARN_ON() access to unimplemented TSU register

Commit 3365711d ("sh_eth: WARN on access to a register not implemented
in a particular chip") added  WARN_ON() to sh_eth_{read|write}() but not
to sh_eth_tsu_{read|write}(). Now that we've routed almost all TSU register
accesses  (except TSU_ADR{H|L}<n> -- which are special) thru the latter
pair of accessors, it makes sense to check for the unimplemented TSU
registers as well...
Signed-off-by: default avatarSergei Shtylyov <sergei.shtylyov@cogentembedded.com>
Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
parent 77cb065f
...@@ -442,12 +442,22 @@ static void sh_eth_modify(struct net_device *ndev, int enum_index, u32 clear, ...@@ -442,12 +442,22 @@ static void sh_eth_modify(struct net_device *ndev, int enum_index, u32 clear,
static void sh_eth_tsu_write(struct sh_eth_private *mdp, u32 data, static void sh_eth_tsu_write(struct sh_eth_private *mdp, u32 data,
int enum_index) int enum_index)
{ {
iowrite32(data, mdp->tsu_addr + mdp->reg_offset[enum_index]); u16 offset = mdp->reg_offset[enum_index];
if (WARN_ON(offset == SH_ETH_OFFSET_INVALID))
return;
iowrite32(data, mdp->tsu_addr + offset);
} }
static u32 sh_eth_tsu_read(struct sh_eth_private *mdp, int enum_index) static u32 sh_eth_tsu_read(struct sh_eth_private *mdp, int enum_index)
{ {
return ioread32(mdp->tsu_addr + mdp->reg_offset[enum_index]); u16 offset = mdp->reg_offset[enum_index];
if (WARN_ON(offset == SH_ETH_OFFSET_INVALID))
return ~0U;
return ioread32(mdp->tsu_addr + offset);
} }
static void sh_eth_select_mii(struct net_device *ndev) static void sh_eth_select_mii(struct net_device *ndev)
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment