On Sun, Dec 5, 2021 at 1:01 AM Vladimir Oltean <vladimir.olt...@nxp.com> wrote:
>
> The sja1105_check_device_id() function contains logic to work without
> changing the device tree on reworked boards, one of which I have (the
> NXP LS1021A-TSN normally has a SJA1105T, but I have a version with a
> resoldered SJA1105Q which is pin compatible). This logic is taken from
> the Linux driver.
>
> However this logic gets shortcircuited in U-Boot by an earlier check for
> the exact device ID specified in the device tree. So the reworked board
> does not probe the SJA1105Q switch. Remove this duplicated logic and let
> the automatic device ID detection do its job.
>
> Fixes: f24b666b2204 ("net: dsa: add driver for NXP SJA1105 L2 switch")
> Signed-off-by: Vladimir Oltean <vladimir.olt...@nxp.com>
> ---
> drivers/net/sja1105.c | 6 ------
> 1 file changed, 6 deletions(-)
>
> diff --git a/drivers/net/sja1105.c b/drivers/net/sja1105.c
> index 17bab33eddb7..4ca8709e347c 100644
> --- a/drivers/net/sja1105.c
> +++ b/drivers/net/sja1105.c
> @@ -3276,12 +3276,6 @@ static int sja1105_check_device_id(struct
> sja1105_private *priv)
> sja1105_packing(packed_buf, &device_id, 31, 0, SJA1105_SIZE_DEVICE_ID,
> UNPACK);
>
> - if (device_id != priv->info->device_id) {
> - printf("Expected device ID 0x%llx but read 0x%llx\n",
> - priv->info->device_id, device_id);
> - return -ENODEV;
> - }
> -
> rc = sja1105_xfer_buf(priv, SPI_READ, regs->prod_id, packed_buf,
> SJA1105_SIZE_DEVICE_ID);
> if (rc < 0)
> --
> 2.25.1
>
Reviewed-by: Ramon Fried <rfried....@gmail.com>