1. 01 Feb, 2024 39 commits
  2. 31 Jan, 2024 1 commit
    • Andrew Lunn's avatar
      net: dsa: mv88e6xxx: Fix failed probe due to unsupported C45 reads · 585b40e2
      Andrew Lunn authored
      Not all mv88e6xxx device support C45 read/write operations. Those
      which do not return -EOPNOTSUPP. However, when phylib scans the bus,
      it considers this fatal, and the probe of the MDIO bus fails, which in
      term causes the mv88e6xxx probe as a whole to fail.
      
      When there is no device on the bus for a given address, the pull up
      resistor on the data line results in the read returning 0xffff. The
      phylib core code understands this when scanning for devices on the
      bus. C45 allows multiple devices to be supported at one address, so
      phylib will perform a few reads at each address, so although thought
      not the most efficient solution, it is a way to avoid fatal
      errors. Make use of this as a minimal fix for stable to fix the
      probing problems.
      
      Follow up patches will rework how C45 operates to make it similar to
      C22 which considers -ENODEV as a none-fatal, and swap mv88e6xxx to
      using this.
      
      Cc: stable@vger.kernel.org
      Fixes: 743a19e3 ("net: dsa: mv88e6xxx: Separate C22 and C45 transactions")
      Reported-by: default avatarTim Menninger <tmenninger@purestorage.com>
      Signed-off-by: default avatarAndrew Lunn <andrew@lunn.ch>
      Link: https://lore.kernel.org/r/20240129224948.1531452-1-andrew@lunn.chSigned-off-by: default avatarJakub Kicinski <kuba@kernel.org>
      585b40e2