tree ec6d2dff8878e47a9c9168a23c530b38e4fbd0bd
parent e5d5d23319565a7e48232707c3fe30bd4eb638cd
parent 1991a458528588ff34e98b6365362560d208710f
author Linus Torvalds <torvalds@linux-foundation.org> 1757104171 -0700
committer Linus Torvalds <torvalds@linux-foundation.org> 1757104171 -0700
mergetag object 1991a458528588ff34e98b6365362560d208710f
 type commit
 tag spi-fix-v6.17-rc3
 tagger Mark Brown <broonie@kernel.org> 1757096470 +0100
 
 spi: Fixes for v6.17
 
 The largest batch of fixes here is a series of fixes for the Freescale
 LPSPI driver which James Clark pulled out of their BSP while looking at
 support for the NXP S32G version of the controller.  The majority of
 this turned out to be bug fixes that affect existing systems with the
 actual S32G support being just a small quirk that would be unremarkable
 by itself, the whole series has had a good amount of testing and review
 and the individual patches are all pretty straightforward by themselves.
 
 We also have a few other driver specific fixes, including a relatively
 large but simple one for the Cadence QuadSPI driver.
 -----BEGIN PGP SIGNATURE-----
 
 iQEzBAABCgAdFiEEreZoqmdXGLWf4p/qJNaLcl1Uh9AFAmi7LmEACgkQJNaLcl1U
 h9AryAf8Df0+9Za/JDEfh1s8Ritm+0vbkrcSUPa0ZLRBVJP+upssBEEMwwLscrRI
 hommkOawazLfTisCil+dWwEjxoBQpXyTDs+TUkHNjUX8aYHuKIAWqLelBDTpGl1e
 ni3UynzuQ8QRDkQhWKQpV35Oi1DvfeHbux714mONw9bX4YCoZdMfsPv5eWYe2qqh
 J/Ukflvg1NrR/lrJDB/iQLzDfHbHiQDUEo5Dj22CqEvRIpQpQvoazTnA5eFyKoVd
 dKjSolY4UO8cQijaLBwzQvrvsvcWT/gZpQHjCgoVTwJO23H59ePtGTxpmZDEs1sm
 QyVqP/ieQq23jq15eKnhwBK6VpKLyQ==
 =/RyU
 -----END PGP SIGNATURE-----

Merge tag 'spi-fix-v6.17-rc3' of git://git.kernel.org/pub/scm/linux/kernel/git/broonie/spi

Pull spi fixes from Mark Brown:
 "The largest batch of fixes here is a series of fixes for the Freescale
  LPSPI driver which James Clark pulled out of their BSP while looking
  at support for the NXP S32G version of the controller.

  The majority of this turned out to be bug fixes that affect existing
  systems with the actual S32G support being just a small quirk that
  would be unremarkable by itself, the whole series has had a good
  amount of testing and review and the individual patches are all pretty
  straightforward by themselves.

  We also have a few other driver specific fixes, including a relatively
  large but simple one for the Cadence QuadSPI driver"

* tag 'spi-fix-v6.17-rc3' of git://git.kernel.org/pub/scm/linux/kernel/git/broonie/spi:
  spi: spi-qpic-snand: unregister ECC engine on probe error and device remove
  spi: cadence-quadspi: Implement refcount to handle unbind during busy
  spi: spi-fsl-lpspi: Add compatible for S32G
  spi: spi-fsl-lpspi: Parameterize reading num-cs from hardware
  spi: spi-fsl-lpspi: Treat prescale_max == 0 as no erratum
  spi: spi-fsl-lpspi: Constify devtype datas
  dt-bindings: lpspi: Document support for S32G
  spi: spi-fsl-lpspi: Clear status register after disabling the module
  spi: spi-fsl-lpspi: Reset FIFO and disable module on transfer abort
  spi: spi-fsl-lpspi: Set correct chip-select polarity bit
  spi: spi-fsl-lpspi: Fix transmissions when using CONT
  spi: microchip-core-qspi: stop checking viability of op->max_freq in supports_op callback
