Package: linux-patch-xenomai Version: 2.5.4-1 Tags: patch there is a fix for dual channel can cards which got forgotten in the upstream 2.5.4 release. [1]
patch attached. Regards, Stefan [1] https://mail.gna.org/public/xenomai-help/2010-08/msg00085.html
From 5c7bec10b099fd1973394b2a6ca388a5e3742b64 Mon Sep 17 00:00:00 2001 From: Peter Soetens <pe...@thesourceworks.com> Date: Fri, 9 Jul 2010 15:21:53 +0200 Subject: [PATCH] rtcan: Mask the SJA_MOD register when probing for channels Inspired by the plx_pci.c driver which does the same. Tested on IXXAT PC-I 04 Signed-off-by: Peter Soetens <pe...@thesourceworks.com> --- ksrc/drivers/can/sja1000/rtcan_ixxat_pci.c | 3 ++- 1 files changed, 2 insertions(+), 1 deletions(-) diff --git a/ksrc/drivers/can/sja1000/rtcan_ixxat_pci.c b/ksrc/drivers/can/sja1000/rtcan_ixxat_pci.c index 5faa763..8c91efd 100644 --- a/ksrc/drivers/can/sja1000/rtcan_ixxat_pci.c +++ b/ksrc/drivers/can/sja1000/rtcan_ixxat_pci.c @@ -63,6 +63,7 @@ struct rtcan_ixxat_pci #define IXXAT_INTCSR_OFFSET 0x4c /* Offset in PLX9050 conf registers */ #define IXXAT_INTCSR_SLAVE 0x41 /* LINT1 and PCI interrupt enabled */ #define IXXAT_INTCSR_MASTER 0x08 /* LINT2 enabled */ +#define IXXAT_SJA_MOD_MASK 0xa1 /* Mask for reading dual/single channel */ /* PCI vender, device and sub-device ID */ #define IXXAT_PCI_VENDOR_ID 0x10b5 @@ -238,7 +239,7 @@ static int __devinit ixxat_pci_init_one (struct pci_dev *pdev, writeb(0x1, base_addr + CHANNEL_MASTER_RESET); writeb(0x1, base_addr + CHANNEL_SLAVE_RESET); udelay(100); - if (readb(base_addr + CHANNEL_OFFSET + SJA_MOD) != 0x21 || + if ( (readb(base_addr + CHANNEL_OFFSET + SJA_MOD) & IXXAT_SJA_MOD_MASK ) != 0x21 || readb(base_addr + CHANNEL_OFFSET + SJA_SR ) != 0x0c || readb(base_addr + CHANNEL_OFFSET + SJA_IR ) != 0xe0) channel = CHANNEL_SINGLE; -- 1.6.3.3
signature.asc
Description: OpenPGP digital signature