[PATCH v2 0/3] can: kvaser_usb: CAN clock frequency regression

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



When fixing the CAN clock frequency,
fb12797ab1fe ("can: kvaser_usb: get CAN clock frequency from device"),
I introduced a regression.

For Leaf devices based on M32C, the firmware expects bittiming parameters
calculated for 16MHz clock. Regardless of the actual clock frequency.

This regression affects M32C based Leaf devices with non-16MHz clock.

Also correct the bittiming constants in kvaser_usb_leaf.c, where the limits
are different depending on which firmware/device being used.

Once merged to mainline, I'll backport these fixes for the stable kernels.

Changes in v2:
  - Add struct kvaser_usb_driver_info as suggested by Marc Kleine-Budde [1],
    instead of adding dev->card_data.quirks.

[1] https://lore.kernel.org/linux-can/20220602063031.415858-1-extja@xxxxxxxxxx/T/#maf9cd66c368ce43eb509a27c69d0323cfc776809

Jimmy Assarsson (3):
  can: kvaser_usb: Replace run-time checks with struct
    kvaser_usb_driver_info
  can: kvaser_usb: kvaser_usb_leaf: Fix CAN clock frequency regression
  can: kvaser_usb: kvaser_usb_leaf: Fix bittiming limits

 drivers/net/can/usb/kvaser_usb/kvaser_usb.h   |  73 ++++-
 .../net/can/usb/kvaser_usb/kvaser_usb_core.c  | 253 +++++++++---------
 .../net/can/usb/kvaser_usb/kvaser_usb_hydra.c |  14 +-
 .../net/can/usb/kvaser_usb/kvaser_usb_leaf.c  | 119 ++++----
 4 files changed, 255 insertions(+), 204 deletions(-)

-- 
2.36.1




[Index of Archives]     [Automotive Discussions]     [Linux ARM Kernel]     [Linux ARM]     [Linux Omap]     [Fedora ARM]     [IETF Annouce]     [Security]     [Bugtraq]     [Linux]     [Linux OMAP]     [Linux MIPS]     [eCos]     [Asterisk Internet PBX]     [Linux API]     [CAN Bus]

  Powered by Linux