Re: [PATCH 00/15] can: m_can: Optimizations for tcan and peripheral chips
From: Markus Schneider-Pargmann
Date: Mon Dec 05 2022 - 04:10:58 EST
Good Morning Marc,
On Fri, Dec 02, 2022 at 03:03:06PM +0100, Marc Kleine-Budde wrote:
> On 16.11.2022 21:52:53, Markus Schneider-Pargmann wrote:
> > Hi,
> >
> > this series is aimed at optimizing the driver code for tcan chips and
> > more generally for peripheral m_can chips.
> >
> > I did different things to improve the performance:
> > - Reduce the number of SPI transfers.
> > - Reduce the number of interrupts.
> > - Enable use of FIFOs.
> >
> > I am working with a tcan4550 in loopback mode attached to a beaglebone
> > black. I am currently working on optimizing the receive path as well
> > which will be submitted in another series once it is done.
>
> The patches I've not commented on look fine. If you re-spin the series
> only containing those, I'll include them in my next pull request, which
> I'll send out soonish.
Ok, thank you, I will send a subset of the patches today.
>
> regards,
> Marc
>
> > Best,
> > Markus
> >
> > Markus Schneider-Pargmann (15):
> > can: m_can: Eliminate double read of TXFQS in tx_handler
> > can: m_can: Wakeup net queue once tx was issued
> > can: m_can: Cache tx putidx and transmits in flight
> > can: m_can: Use transmit event FIFO watermark level interrupt
> > can: m_can: Disable unused interrupts
> > can: m_can: Avoid reading irqstatus twice
> > can: m_can: Read register PSR only on error
> > can: m_can: Count TXE FIFO getidx in the driver
> > can: m_can: Count read getindex in the driver
> > can: m_can: Batch acknowledge rx fifo
> > can: m_can: Batch acknowledge transmit events
> > can: tcan4x5x: Remove invalid write in clear_interrupts
> > can: tcan4x5x: Fix use of register error status mask
> > can: tcan4x5x: Fix register range of first block
> > can: tcan4x5x: Specify separate read/write ranges
> >
> > drivers/net/can/m_can/m_can.c | 140 +++++++++++++++---------
> > drivers/net/can/m_can/m_can.h | 5 +
> > drivers/net/can/m_can/tcan4x5x-core.c | 19 ++--
> > drivers/net/can/m_can/tcan4x5x-regmap.c | 45 ++++++--
> > 4 files changed, 141 insertions(+), 68 deletions(-)
> >
> >
> > base-commit: 094226ad94f471a9f19e8f8e7140a09c2625abaa
> > prerequisite-patch-id: e9df6751d43bb0d1e3b8938d7e93bc1cfa22cef2
> > prerequisite-patch-id: dad9ec37af766bcafe54cb156f896267a0f47fe1
> > prerequisite-patch-id: f4e6f1a213a31df2741a5fa3baa87aa45ef6707a
>
> BTW: I don't have access to these prerequisite-patch-id.
I think I messed up here. I have three patches, SPI fixes and devicetree
snippet that this series is based on. I guess I shouldn't have used
--base then or rebase on something without these patches first.
Thanks,
Markus