Re: [PATCH net 0/4] Fix bit timings for m_can_pci (Elkhart Lake)

From: Matthias Schiffer
Date: Thu Nov 18 2021 - 09:47:57 EST


On Wed, 2021-11-17 at 14:14 +0200, Jarkko Nikula wrote:
> Hi
>
> On 11/16/21 3:58 PM, Matthias Schiffer wrote:
> > I just noticed that m_can_pci is completely broken on 5.15.2, while
> > it's working fine on 5.14.y.
> >
>
> Hmm.. so that may explain why I once saw candump received just zeroes on
> v5.15-rc something but earlier kernels were ok. What's odd then next
> time v5.15-rc was ok so went blaming sun spots instead of bisecting.
>
> > I assume something simliar to [1] will be necessary in m_can_pci as
> > well, however I'm not really familiar with the driver. There is no
> > "mram_base" in m_can_plat_pci, only "base". Is using "base" with
> > iowrite32/ioread32 + manual increment the correct solution here?
> >
> >
> > [1] https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=99d173fbe8944861a00ebd1c73817a1260d21e60
> >
>
> If your test case after 5.15 reliably fails are you able to bisect or
> check does the regression originate from the same commit?
>
> Jarkko

The Fixes tag of 99d173fbe894 ("can: m_can: fix iomap_read_fifo() and
iomap_write_fifo()") is off AFAICT, the actual breakage happened with
812270e5445b ("can: m_can: Batch FIFO writes during CAN transmit") and
1aa6772f64b4 ("can: m_can: Batch FIFO reads during CAN receive");
reverting these two patches fixes the regression.

I just sent a patch for m_can_pci that applies the same fix that was
done in m_can_platform in 99d173fbe894, and verified that this makes
CAN communication work on Elkhart Lake with Linux 5.15.y together with
my other patches.

Matthias