public inbox for linux-kernel@vger.kernel.org
 help / color / mirror / Atom feed
* Specialix SX cards not detected in kernels >=2.6.20
@ 2007-07-09 14:00 Graham Murray
  2007-07-10  7:17 ` Jiri Slaby
  2007-07-10  7:28 ` Andrew Morton
  0 siblings, 2 replies; 4+ messages in thread
From: Graham Murray @ 2007-07-09 14:00 UTC (permalink / raw)
  To: linux-kernel

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
	Control: I/O+ Mem+ BusMaster- SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR+ FastB2B-
	Status: Cap- 66MHz- UDF- FastB2B+ ParErr- DEVSEL=medium >TAbort- <TAbort- <MAbort- >SERR- <PERR-
	Interrupt: pin A routed to IRQ 11
	Region 0: Memory at df2ffc00 (32-bit, non-prefetchable) [size=128]
	Region 1: I/O ports at 9c80 [size=128]
	Region 2: Memory at df200000 (32-bit, non-prefetchable) [size=512K]
	Region 3: Memory at df280000 (32-bit, non-prefetchable) [size=256K]

I have enabled CONFIG_PCI_DEBUG and see the following:-

PCI: Probing PCI hardware (bus 00)
...
PCI: Scanning bus 0000:10
PCI: Found 0000:10:01.0 [11cb/2000] 000780 00
PCI: Calling quirk c0362041 for 0000:10:01.0
...
PCI: Calling quirk c027a199 for 0000:10:01.0
PCI: Calling quirk c033cb9e for 0000:10:01.0


Where should I look for and how should I obtain further debug to
determine where the problem lies?


^ permalink raw reply	[flat|nested] 4+ messages in thread

* Re: Specialix SX cards not detected in kernels >=2.6.20
  2007-07-09 14:00 Specialix SX cards not detected in kernels >=2.6.20 Graham Murray
@ 2007-07-10  7:17 ` Jiri Slaby
  2007-07-10  9:19   ` Graham Murray
  2007-07-10  7:28 ` Andrew Morton
  1 sibling, 1 reply; 4+ messages in thread
From: Jiri Slaby @ 2007-07-10  7:17 UTC (permalink / raw)
  To: Graham Murray; +Cc: linux-kernel

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 <jirislaby@gmail.com>

---
commit fdf11b85b74221d25a3abf38a9ebf947959d0fe1
tree 289b5f58dc2774019ed3f3bedef99344be76d7bc
parent 10d4605a5a9d86c467b78f602ef43067da5d9dfe
author Jiri Slaby <jirislaby@gmail.com> Tue, 10 Jul 2007 09:13:22 +0200
committer Jiri Slaby <jirislaby@gmail.com> 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 }
 };
 

^ permalink raw reply related	[flat|nested] 4+ messages in thread

* Re: Specialix SX cards not detected in kernels >=2.6.20
  2007-07-09 14:00 Specialix SX cards not detected in kernels >=2.6.20 Graham Murray
  2007-07-10  7:17 ` Jiri Slaby
@ 2007-07-10  7:28 ` Andrew Morton
  1 sibling, 0 replies; 4+ messages in thread
From: Andrew Morton @ 2007-07-10  7:28 UTC (permalink / raw)
  To: Graham Murray; +Cc: linux-kernel, Jiri Slaby

On Mon, 09 Jul 2007 15:00:17 +0100 Graham Murray <gmurray@webwayone.co.uk> wrote:

> There were multiple changes to the char/sx.c driver in kernel 2.6.20.

Let's cc Jiri.

> 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
> 	Control: I/O+ Mem+ BusMaster- SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR+ FastB2B-
> 	Status: Cap- 66MHz- UDF- FastB2B+ ParErr- DEVSEL=medium >TAbort- <TAbort- <MAbort- >SERR- <PERR-
> 	Interrupt: pin A routed to IRQ 11
> 	Region 0: Memory at df2ffc00 (32-bit, non-prefetchable) [size=128]
> 	Region 1: I/O ports at 9c80 [size=128]
> 	Region 2: Memory at df200000 (32-bit, non-prefetchable) [size=512K]
> 	Region 3: Memory at df280000 (32-bit, non-prefetchable) [size=256K]
> 
> I have enabled CONFIG_PCI_DEBUG and see the following:-
> 
> PCI: Probing PCI hardware (bus 00)
> ...
> PCI: Scanning bus 0000:10
> PCI: Found 0000:10:01.0 [11cb/2000] 000780 00
> PCI: Calling quirk c0362041 for 0000:10:01.0
> ...
> PCI: Calling quirk c027a199 for 0000:10:01.0
> PCI: Calling quirk c033cb9e for 0000:10:01.0
> 
> 
> Where should I look for and how should I obtain further debug to
> determine where the problem lies?
> 

A git-bisect should find this fairly quickly.

^ permalink raw reply	[flat|nested] 4+ messages in thread

* Re: Specialix SX cards not detected in kernels >=2.6.20
  2007-07-10  7:17 ` Jiri Slaby
@ 2007-07-10  9:19   ` Graham Murray
  0 siblings, 0 replies; 4+ messages in thread
From: Graham Murray @ 2007-07-10  9:19 UTC (permalink / raw)
  To: linux-kernel

Jiri Slaby <jirislaby@gmail.com> writes:

> In switched ids. Could you try the patch below?

Thanks. That fixed the problem - the card works again now.

^ permalink raw reply	[flat|nested] 4+ messages in thread

end of thread, other threads:[~2007-07-10  9:41 UTC | newest]

Thread overview: 4+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2007-07-09 14:00 Specialix SX cards not detected in kernels >=2.6.20 Graham Murray
2007-07-10  7:17 ` Jiri Slaby
2007-07-10  9:19   ` Graham Murray
2007-07-10  7:28 ` Andrew Morton

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox