]> git.baikalelectronics.ru Git - kernel.git/commit
bgmac: fix *initial* chip reset to support BCM5358
authorRafał Miłecki <rafal@milecki.pl>
Mon, 27 Feb 2023 09:11:56 +0000 (10:11 +0100)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Fri, 17 Mar 2023 07:50:22 +0000 (08:50 +0100)
commit6508e0fc6f4552b66b51b276c281807dbd5b9833
tree9e67f75145c2c9c02aff94cfc6d33199e5b75d8d
parent4f1298394e5f12441f10bec262dd7102628f3a90
bgmac: fix *initial* chip reset to support BCM5358

[ Upstream commit 193e689b2e6b55d519384ff8accd17681e23cc17 ]

While bringing hardware up we should perform a full reset including the
switch bit (BGMAC_BCMA_IOCTL_SW_RESET aka SICF_SWRST). It's what
specification says and what reference driver does.

This seems to be critical for the BCM5358. Without this hardware doesn't
get initialized properly and doesn't seem to transmit or receive any
packets.

Originally bgmac was calling bgmac_chip_reset() before setting
"has_robosw" property which resulted in expected behaviour. That has
changed as a side effect of adding platform device support which
regressed BCM5358 support.

Fixes: 70249cd3bc62 ("net: ethernet: bgmac: Add platform device support")
Cc: Jon Mason <jdmason@kudzu.us>
Signed-off-by: Rafał Miłecki <rafal@milecki.pl>
Reviewed-by: Leon Romanovsky <leonro@nvidia.com>
Reviewed-by: Florian Fainelli <f.fainelli@gmail.com>
Link: https://lore.kernel.org/r/20230227091156.19509-1-zajec5@gmail.com
Signed-off-by: Paolo Abeni <pabeni@redhat.com>
Signed-off-by: Sasha Levin <sashal@kernel.org>
drivers/net/ethernet/broadcom/bgmac.c
drivers/net/ethernet/broadcom/bgmac.h