mbox series

[0/2] fix the issue when xfer by spi-altera

Message ID 1609219662-27057-1-git-send-email-yilun.xu@intel.com
Headers show
Series fix the issue when xfer by spi-altera | expand

Message

Xu Yilun Dec. 29, 2020, 5:27 a.m. UTC
When doing spi xfer by spi-altera, divide by 0 exception happens in
spi_transfer_wait(), This is because the xfer->speed_hz is always
clamped to 0 by spi->controller->max_speed_hz, the feature is
introduced in:

commit 9326e4f1e5dd ("spi: Limit the spi device max speed to controller's max speed")

The spi-altera doesn't have hardware indication for controller's
max_speed_hz, so its value is uninitialized as 0.

Patch #1 fixes the issue of spi_altera driver. When doing polling
mode xfer, its transfer_one() callback should return 1, to indicate
the xfer is finished. It should return 0 for irq mode xfer. With
this patch the polling mode xfer is OK as it needs no
spi_transfer_wait() anymore.

But the irq mode xfer is still broken. So Patch #2 assumes 1khz xfer
speed if the xfer->speed_hz is not assigned. I try to avoid the
divide by 0 issue and ensures a reasonable tolerant waiting time in
a generic way.

Xu Yilun (2):
  spi: altera: fix return value for altera_spi_txrx()
  spi: fix the divide by 0 error when calculating xfer waiting time

 drivers/spi/spi-altera.c | 26 ++++++++++++++------------
 drivers/spi/spi.c        |  4 +++-
 2 files changed, 17 insertions(+), 13 deletions(-)

Comments

Mark Brown Dec. 29, 2020, 2:33 p.m. UTC | #1
On Tue, 29 Dec 2020 13:27:40 +0800, Xu Yilun wrote:
> When doing spi xfer by spi-altera, divide by 0 exception happens in
> spi_transfer_wait(), This is because the xfer->speed_hz is always
> clamped to 0 by spi->controller->max_speed_hz, the feature is
> introduced in:
> 
> commit 9326e4f1e5dd ("spi: Limit the spi device max speed to controller's max speed")
> 
> [...]

Applied to

   https://git.kernel.org/pub/scm/linux/kernel/git/broonie/spi.git for-next

Thanks!

[1/2] spi: altera: fix return value for altera_spi_txrx()
      commit: ede090f5a438e97d0586f64067bbb956e30a2a31

All being well this means that it will be integrated into the linux-next
tree (usually sometime in the next 24 hours) and sent to Linus during
the next merge window (or sooner if it is a bug fix), however if
problems are discovered then the patch may be dropped or reverted.

You may get further e-mails resulting from automated or manual testing
and review of the tree, please engage with people reporting problems and
send followup patches addressing any issues that are reported if needed.

If any updates are required or you are submitting further changes they
should be sent as incremental updates against current git, existing
patches will not be replaced.

Please add any relevant lists and maintainers to the CCs when replying
to this mail.

Thanks,
Mark