Graham Murray wrote:
> There were multiple changes to the char/sx.c driver in kernel 2.6.20. In
> kernels 2.6.19 and earlier, the SX multiport serial card works OK, but
> in 2.6.20 and later the driver does not seemt to detect the presence of
> the card. 
> 
> I have enabled sx_debug=-1 and added some printk statements to try and
> detect why the card is not detected. These show that sx_init is entered
> and within that function the call to pci_register_driver returns 0. I do
> not see any other routines in the driver being entered either at startup
> (when the module is loaded, which indicates that the system recognises
> the PCI ID) or when running 'modprobe sx'. In particular, sx_pci_probe()
> is never entered.
> 
> lspci -vv for the card
> 
>  10:01.0 Communication controller: Specialix Research Ltd. PCI_9050
>       Subsystem: Specialix Research Ltd. Unknown device 0300
[...]
> Where should I look for and how should I obtain further debug to
> determine where the problem lies?

In switched ids. Could you try the patch below?

--

sx, switch subven and subid values

This is because card is not found.

Signed-off-by: Jiri Slaby <[EMAIL PROTECTED]>

---
commit fdf11b85b74221d25a3abf38a9ebf947959d0fe1
tree 289b5f58dc2774019ed3f3bedef99344be76d7bc
parent 10d4605a5a9d86c467b78f602ef43067da5d9dfe
author Jiri Slaby <[EMAIL PROTECTED]> Tue, 10 Jul 2007 09:13:22 +0200
committer Jiri Slaby <[EMAIL PROTECTED]> Tue, 10 Jul 2007 09:13:22 +0200

 drivers/char/sx.c |    4 ++--
 1 files changed, 2 insertions(+), 2 deletions(-)

diff --git a/drivers/char/sx.c b/drivers/char/sx.c
index 1da92a6..85a2328 100644
--- a/drivers/char/sx.c
+++ b/drivers/char/sx.c
@@ -2721,9 +2721,9 @@ static void __devexit sx_pci_remove(struct pci_dev *pdev)
    its because the standard requires it. So check for SUBVENDOR_ID. */
 static struct pci_device_id sx_pci_tbl[] = {
        { PCI_VENDOR_ID_SPECIALIX, PCI_DEVICE_ID_SPECIALIX_SX_XIO_IO8,
-               .subvendor = 0x0200,.subdevice = PCI_ANY_ID },
+               .subvendor = PCI_ANY_ID, .subdevice = 0x0200 },
        { PCI_VENDOR_ID_SPECIALIX, PCI_DEVICE_ID_SPECIALIX_SX_XIO_IO8,
-               .subvendor = 0x0300,.subdevice = PCI_ANY_ID },
+               .subvendor = PCI_ANY_ID, .subdevice = 0x0300 },
        { 0 }
 };
 
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/

Reply via email to