* hisax isdn card (Sedlbauer Speed Fax+) does not get an interrupt
@ 2007-05-31 13:44 Thomas Voegtle
2007-06-05 15:52 ` [Patch] sane irq initialization in sedlbauer/hisax (was: hisax isdn card (Sedlbauer Speed Fax+) does not get an interrupt) Thomas Voegtle
0 siblings, 1 reply; 5+ messages in thread
From: Thomas Voegtle @ 2007-05-31 13:44 UTC (permalink / raw)
To: linux-kernel
[-- Attachment #1: Type: TEXT/PLAIN, Size: 6201 bytes --]
Hi,
after finally upgrading our systems from Kernel 2.4 to 2.6 we experienced
problems with the ISDN cards, a hisax driven Sedlbauer Speed Fax+.
A "modprobe hisax type=28 protocol=2" ends in this mess:
==========================================================================
<05>2007 May 30 14:21:40 cbs kern: ISDN subsystem Rev: 1.1.2.3/1.1.2.3/1.1.2.2/1.1.2.3/1.1.2.2/1.1.2.2 loaded
<06>2007 May 30 14:21:40 cbs kern: HiSax: Linux Driver for passive ISDN cards
<06>2007 May 30 14:21:40 cbs kern: HiSax: Version 3.5 (module)
<06>2007 May 30 14:21:40 cbs kern: HiSax: Layer1 Revision 2.46.2.5
<06>2007 May 30 14:21:40 cbs kern: HiSax: Layer2 Revision 2.30.2.4
<06>2007 May 30 14:21:40 cbs kern: HiSax: TeiMgr Revision 2.20.2.3
<06>2007 May 30 14:21:40 cbs kern: HiSax: Layer3 Revision 2.22.2.3
<06>2007 May 30 14:21:40 cbs kern: HiSax: LinkLayer Revision 2.59.2.4
<06>2007 May 30 14:21:40 cbs kern: HiSax module removed
<06>2007 May 30 14:21:40 cbs kern: HiSax: Linux Driver for passive ISDN cards
<06>2007 May 30 14:21:40 cbs kern: HiSax: Version 3.5 (module)
<06>2007 May 30 14:21:40 cbs kern: HiSax: Layer1 Revision 2.46.2.5
<06>2007 May 30 14:21:40 cbs kern: HiSax: Layer2 Revision 2.30.2.4
<06>2007 May 30 14:21:40 cbs kern: HiSax: TeiMgr Revision 2.20.2.3
<06>2007 May 30 14:21:40 cbs kern: HiSax: Layer3 Revision 2.22.2.3
<06>2007 May 30 14:21:40 cbs kern: HiSax: LinkLayer Revision 2.59.2.4
<07>2007 May 30 14:21:40 cbs kern: HiSax: Total 1 card defined
<06>2007 May 30 14:21:40 cbs kern: HiSax: Card 1 Protocol EDSS1 Id=isdn0 (0)
<06>2007 May 30 14:21:40 cbs kern: HiSax: Sedlbauer driver Rev. 1.34.2.6
<06>2007 May 30 14:21:40 cbs kern: ACPI: PCI Interrupt 0000:01:03.0[A] -> Link [LNKD] -> GSI 11 (level, low) -> IRQ 11
<06>2007 May 30 14:21:40 cbs kern: Sedlbauer: PCI subvendor:51 subid 1
<06>2007 May 30 14:21:40 cbs kern: Sedlbauer: PCI base adr 0xa800
<03>2007 May 30 14:21:40 cbs kern: irq 11: nobody cared (try booting with the \"irqpoll\" option)
<04>2007 May 30 14:21:40 cbs kern: [<c012f243>] __report_bad_irq+0x2b/0x69
<04>2007 May 30 14:21:40 cbs kern: [<c012f3e7>] note_interrupt+0x166/0x193
<04>2007 May 30 14:21:40 cbs kern: [<c03089c0>] usb_hcd_irq+0x23/0x4f
<04>2007 May 30 14:21:40 cbs kern: [<c012ee7c>] handle_IRQ_event+0x21/0x4a
<04>2007 May 30 14:21:40 cbs kern: [<c012ef0d>] __do_IRQ+0x68/0x8f
<04>2007 May 30 14:21:40 cbs kern: [<c01050de>] do_IRQ+0x5c/0x77
<04>2007 May 30 14:21:40 cbs kern: =======================
<04>2007 May 30 14:21:40 cbs kern: [<c0103ada>] common_interrupt+0x1a/0x20
<04>2007 May 30 14:21:40 cbs kern: [<c011a87c>] __do_softirq+0x2c/0x7d
<04>2007 May 30 14:21:40 cbs kern: [<c0105131>] do_softirq+0x38/0x3f
<04>2007 May 30 14:21:40 cbs kern: =======================
<04>2007 May 30 14:21:40 cbs kern: [<c01050f0>] do_IRQ+0x6e/0x77
<04>2007 May 30 14:21:40 cbs kern: [<c0103ada>] common_interrupt+0x1a/0x20
<04>2007 May 30 14:21:40 cbs kern: [<d894007b>] W6692B_interrupt+0x23c/0x559 [hisax]
<04>2007 May 30 14:21:40 cbs kern: [<c010b893>] delay_pmtmr+0xb/0x13
<04>2007 May 30 14:21:40 cbs kern: [<c01b73f5>] __delay+0x9/0xa
<04>2007 May 30 14:21:40 cbs kern: [<d892f834>] setup_sedlbauer+0x1ee/0x534 [hisax]
<04>2007 May 30 14:21:40 cbs kern: [<c01175e8>] printk+0x12/0x16
<04>2007 May 30 14:21:40 cbs kern: [<d890dcdb>] checkcard+0x201/0x566 [hisax]
<04>2007 May 30 14:21:40 cbs kern: [<d890dd62>] checkcard+0x288/0x566 [hisax]
<04>2007 May 30 14:21:40 cbs kern: [<d88554dc>] HiSax_init+0x4dc/0x57a [hisax]
<04>2007 May 30 14:21:40 cbs kern: [<c0159693>] new_inode+0x14/0x76
<04>2007 May 30 14:21:40 cbs kern: [<c017340c>] sysfs_add_file+0x1f/0x52
<04>2007 May 30 14:21:40 cbs kern: [<c01275fc>] debug_mutex_add_waiter+0x14/0x24
<04>2007 May 30 14:21:40 cbs kern: [<c0173995>] sysfs_new_dirent+0x17/0x56
<04>2007 May 30 14:21:40 cbs kern: [<c012a782>] sys_init_module+0x1364/0x1439
<04>2007 May 30 14:21:40 cbs kern: [<c013711c>] vma_prio_tree_insert+0x17/0x2a
<04>2007 May 30 14:21:40 cbs kern: [<c013ac54>] vma_link+0x85/0x8b
<04>2007 May 30 14:21:40 cbs kern: [<c013c7a4>] do_mmap_pgoff+0x4e7/0x634
<04>2007 May 30 14:21:40 cbs kern: [<c0106f44>] sys_mmap2+0x61/0x90
<04>2007 May 30 14:21:40 cbs kern: [<c0102a79>] syscall_call+0x7/0xb
<03>2007 May 30 14:21:40 cbs kern: handlers:
<03>2007 May 30 14:21:40 cbs kern: [<c030899d>] (usb_hcd_irq+0x0/0x4f)
<00>2007 May 30 14:21:40 cbs kern: Disabling IRQ #11
<06>2007 May 30 14:21:40 cbs kern: Sedlbauer: defined at 0xa800-0xa900 IRQ 11
<06>2007 May 30 14:21:40 cbs kern: Sedlbauer: speed fax+ pyramid detected
<06>2007 May 30 14:21:40 cbs kern: Sedlbauer: ISAC version (0): 2086/2186 V1.1
<06>2007 May 30 14:21:40 cbs kern: Sedlbauer: resetting card
<06>2007 May 30 14:21:40 cbs kern: Sedlbauer: ISAR version 1
<06>2007 May 30 14:21:40 cbs kern: Sedlbauer Speed Fax +: IRQ 11 count 100000
<06>2007 May 30 14:21:40 cbs kern: Sedlbauer: resetting card
<06>2007 May 30 14:21:40 cbs kern: Sedlbauer Speed Fax +: IRQ 11 count 100000
<04>2007 May 30 14:21:40 cbs kern: Sedlbauer Speed Fax +: IRQ(11) getting no interrupts during init 1
<06>2007 May 30 14:21:40 cbs kern: Sedlbauer: resetting card
<06>2007 May 30 14:21:40 cbs kern: Sedlbauer: resetting card
<06>2007 May 30 14:21:40 cbs kern: Sedlbauer Speed Fax +: IRQ 11 count 100000
<04>2007 May 30 14:21:40 cbs kern: Sedlbauer Speed Fax +: IRQ(11) getting no interrupts during init 2
<06>2007 May 30 14:21:40 cbs kern: Sedlbauer: resetting card
<06>2007 May 30 14:21:40 cbs kern: Sedlbauer: resetting card
<06>2007 May 30 14:21:40 cbs kern: Sedlbauer Speed Fax +: IRQ 11 count 100000
<04>2007 May 30 14:21:40 cbs kern: Sedlbauer Speed Fax +: IRQ(11) getting no interrupts during init 3
<06>2007 May 30 14:21:40 cbs kern: Sedlbauer: resetting card
<04>2007 May 30 14:21:40 cbs kern: HiSax: Card Sedlbauer Speed Fax + not installed !
==========================================================================
While the output seems to suggest a hardware problem, the same system
loads the hisax driver perfectly on recent 2.4 kernels.
We tried several kernel versions, up to 2.6.21.3
Any hints are appreciated :)
Best,
Thomas
--
Thomas Vögtle email: thomas@voegtle-clan.de
----- http://www.voegtle-clan.de/thomas ------
^ permalink raw reply [flat|nested] 5+ messages in thread* Re: [Patch] sane irq initialization in sedlbauer/hisax (was: hisax isdn card (Sedlbauer Speed Fax+) does not get an interrupt) 2007-05-31 13:44 hisax isdn card (Sedlbauer Speed Fax+) does not get an interrupt Thomas Voegtle @ 2007-06-05 15:52 ` Thomas Voegtle 0 siblings, 0 replies; 5+ messages in thread From: Thomas Voegtle @ 2007-06-05 15:52 UTC (permalink / raw) To: linux-kernel, Robert Hancock, akpm; +Cc: Bastian Friedrich [-- Attachment #1: Type: TEXT/PLAIN, Size: 2900 bytes --] Hi, On Thu, 31 May 2007, Thomas Voegtle wrote: > ========================================================================== [...] > <06>2007 May 30 14:21:40 cbs kern: Sedlbauer: PCI base adr 0xa800 > <03>2007 May 30 14:21:40 cbs kern: irq 11: nobody cared (try booting with the \"irqpoll\" option) [...] > <03>2007 May 30 14:21:40 cbs kern: handlers: > <03>2007 May 30 14:21:40 cbs kern: [<c030899d>] (usb_hcd_irq+0x0/0x4f) > <00>2007 May 30 14:21:40 cbs kern: Disabling IRQ #11 As described, the interrupt handler is registered too late, so early incoming interrupts lead to the original problem. The patch first disables the interrupts (byteout(..., 0)), then registers the irq, and finally enables the irqs again (byteout(..., 2) as was done at the first point before). Please note that the patch was developed without access to technical specifications; the /exact/ meaning of the constants being written to the registers are unknown. Patch applies to 2.6.22-rc4. Signed-off-by: Bastian Friedrich <bastian@bastian-friedrich.de> Signed-off-by: Thomas Voegtle <tv@lio96.de> diff -uNr linux-2.6.22rc4/drivers/isdn/hisax/config.c linux-2.6.22rc4/drivers/isdn/hisax/config.c --- linux-2.6.22rc4/drivers/isdn/hisax/config.c 2007-06-05 17:16:24.000000000 +0200 +++ linux-2.6.22rc4/drivers/isdn/hisax/config.c 2007-06-05 17:20:28.000000000 +0200 @@ -511,6 +511,7 @@ #if CARD_SEDLBAUER extern int setup_sedlbauer(struct IsdnCard *card); +extern void sedlbauer_enable_interrupts(struct IsdnCardState *cs); #endif #if CARD_SPORTSTER @@ -822,6 +823,7 @@ cs->irq); return 1; } + sedlbauer_enable_interrupts(cs); while (cnt) { cs->cardmsg(cs, CARD_INIT, NULL); /* Timeout 10ms */ diff -uNr linux-2.6.22rc4/drivers/isdn/hisax/sedlbauer.c linux-2.6.22rc4/drivers/isdn/hisax/sedlbauer.c --- linux-2.6.22rc4/drivers/isdn/hisax/sedlbauer.c 2007-04-26 05:08:32.000000000 +0200 +++ linux-2.6.22rc4/drivers/isdn/hisax/sedlbauer.c 2007-06-05 17:20:28.000000000 +0200 @@ -529,6 +529,19 @@ static struct pnp_card *pnp_c __devinitdata = NULL; #endif +int +sedlbauer_enable_interrupts(struct IsdnCardState *cs) +{ +#ifdef CONFIG_PCI + if ((cs->typ == ISDN_CTYPE_SEDLBAUER) || + (cs->typ == ISDN_CTYPE_SEDLBAUER_FAX)) { + byteout(cs->hw.sedl.cfg_reg+ 5, 0x02); + } +#endif + return 0; +} + + int __devinit setup_sedlbauer(struct IsdnCard *card) { @@ -667,7 +680,8 @@ byteout(cs->hw.sedl.cfg_reg, 0xff); byteout(cs->hw.sedl.cfg_reg, 0x00); byteout(cs->hw.sedl.cfg_reg+ 2, 0xdd); - byteout(cs->hw.sedl.cfg_reg+ 5, 0x02); + byteout(cs->hw.sedl.cfg_reg+ 5, 0x00); + /* 0 seems to be "disable". Enable (-> 0x02) later! */ byteout(cs->hw.sedl.cfg_reg +3, cs->hw.sedl.reset_on); mdelay(2); byteout(cs->hw.sedl.cfg_reg +3, cs->hw.sedl.reset_off); -- Thomas Vögtle email: thomas@voegtle-clan.de ----- http://www.voegtle-clan.de/thomas ------ ^ permalink raw reply [flat|nested] 5+ messages in thread
[parent not found: <fa./GDxiXMgfJlsQXnkvKu3TibPJV8@ifi.uio.no>]
* Re: hisax isdn card (Sedlbauer Speed Fax+) does not get an interrupt [not found] <fa./GDxiXMgfJlsQXnkvKu3TibPJV8@ifi.uio.no> @ 2007-05-31 14:37 ` Robert Hancock 2007-06-04 9:24 ` Thomas Voegtle 0 siblings, 1 reply; 5+ messages in thread From: Robert Hancock @ 2007-05-31 14:37 UTC (permalink / raw) To: Thomas Voegtle; +Cc: linux-kernel Thomas Voegtle wrote: > Hi, > > after finally upgrading our systems from Kernel 2.4 to 2.6 we experienced > problems with the ISDN cards, a hisax driven Sedlbauer Speed Fax+. > > > A "modprobe hisax type=28 protocol=2" ends in this mess: > > ========================================================================== > <05>2007 May 30 14:21:40 cbs kern: ISDN subsystem Rev: 1.1.2.3/1.1.2.3/1.1.2.2/1.1.2.3/1.1.2.2/1.1.2.2 loaded > <06>2007 May 30 14:21:40 cbs kern: HiSax: Linux Driver for passive ISDN cards > <06>2007 May 30 14:21:40 cbs kern: HiSax: Version 3.5 (module) > <06>2007 May 30 14:21:40 cbs kern: HiSax: Layer1 Revision 2.46.2.5 > <06>2007 May 30 14:21:40 cbs kern: HiSax: Layer2 Revision 2.30.2.4 > <06>2007 May 30 14:21:40 cbs kern: HiSax: TeiMgr Revision 2.20.2.3 > <06>2007 May 30 14:21:40 cbs kern: HiSax: Layer3 Revision 2.22.2.3 > <06>2007 May 30 14:21:40 cbs kern: HiSax: LinkLayer Revision 2.59.2.4 > <06>2007 May 30 14:21:40 cbs kern: HiSax module removed > <06>2007 May 30 14:21:40 cbs kern: HiSax: Linux Driver for passive ISDN cards > <06>2007 May 30 14:21:40 cbs kern: HiSax: Version 3.5 (module) > <06>2007 May 30 14:21:40 cbs kern: HiSax: Layer1 Revision 2.46.2.5 > <06>2007 May 30 14:21:40 cbs kern: HiSax: Layer2 Revision 2.30.2.4 > <06>2007 May 30 14:21:40 cbs kern: HiSax: TeiMgr Revision 2.20.2.3 > <06>2007 May 30 14:21:40 cbs kern: HiSax: Layer3 Revision 2.22.2.3 > <06>2007 May 30 14:21:40 cbs kern: HiSax: LinkLayer Revision 2.59.2.4 > <07>2007 May 30 14:21:40 cbs kern: HiSax: Total 1 card defined > <06>2007 May 30 14:21:40 cbs kern: HiSax: Card 1 Protocol EDSS1 Id=isdn0 (0) > <06>2007 May 30 14:21:40 cbs kern: HiSax: Sedlbauer driver Rev. 1.34.2.6 > <06>2007 May 30 14:21:40 cbs kern: ACPI: PCI Interrupt 0000:01:03.0[A] -> Link [LNKD] -> GSI 11 (level, low) -> IRQ 11 > <06>2007 May 30 14:21:40 cbs kern: Sedlbauer: PCI subvendor:51 subid 1 > <06>2007 May 30 14:21:40 cbs kern: Sedlbauer: PCI base adr 0xa800 > <03>2007 May 30 14:21:40 cbs kern: irq 11: nobody cared (try booting with the \"irqpoll\" option) > <04>2007 May 30 14:21:40 cbs kern: [<c012f243>] __report_bad_irq+0x2b/0x69 > <04>2007 May 30 14:21:40 cbs kern: [<c012f3e7>] note_interrupt+0x166/0x193 > <04>2007 May 30 14:21:40 cbs kern: [<c03089c0>] usb_hcd_irq+0x23/0x4f > <04>2007 May 30 14:21:40 cbs kern: [<c012ee7c>] handle_IRQ_event+0x21/0x4a > <04>2007 May 30 14:21:40 cbs kern: [<c012ef0d>] __do_IRQ+0x68/0x8f > <04>2007 May 30 14:21:40 cbs kern: [<c01050de>] do_IRQ+0x5c/0x77 > <04>2007 May 30 14:21:40 cbs kern: ======================= > <04>2007 May 30 14:21:40 cbs kern: [<c0103ada>] common_interrupt+0x1a/0x20 > <04>2007 May 30 14:21:40 cbs kern: [<c011a87c>] __do_softirq+0x2c/0x7d > <04>2007 May 30 14:21:40 cbs kern: [<c0105131>] do_softirq+0x38/0x3f > <04>2007 May 30 14:21:40 cbs kern: ======================= > <04>2007 May 30 14:21:40 cbs kern: [<c01050f0>] do_IRQ+0x6e/0x77 > <04>2007 May 30 14:21:40 cbs kern: [<c0103ada>] common_interrupt+0x1a/0x20 > <04>2007 May 30 14:21:40 cbs kern: [<d894007b>] W6692B_interrupt+0x23c/0x559 [hisax] > <04>2007 May 30 14:21:40 cbs kern: [<c010b893>] delay_pmtmr+0xb/0x13 > <04>2007 May 30 14:21:40 cbs kern: [<c01b73f5>] __delay+0x9/0xa > <04>2007 May 30 14:21:40 cbs kern: [<d892f834>] setup_sedlbauer+0x1ee/0x534 [hisax] > <04>2007 May 30 14:21:40 cbs kern: [<c01175e8>] printk+0x12/0x16 > <04>2007 May 30 14:21:40 cbs kern: [<d890dcdb>] checkcard+0x201/0x566 [hisax] > <04>2007 May 30 14:21:40 cbs kern: [<d890dd62>] checkcard+0x288/0x566 [hisax] > <04>2007 May 30 14:21:40 cbs kern: [<d88554dc>] HiSax_init+0x4dc/0x57a [hisax] > <04>2007 May 30 14:21:40 cbs kern: [<c0159693>] new_inode+0x14/0x76 > <04>2007 May 30 14:21:40 cbs kern: [<c017340c>] sysfs_add_file+0x1f/0x52 > <04>2007 May 30 14:21:40 cbs kern: [<c01275fc>] debug_mutex_add_waiter+0x14/0x24 > <04>2007 May 30 14:21:40 cbs kern: [<c0173995>] sysfs_new_dirent+0x17/0x56 > <04>2007 May 30 14:21:40 cbs kern: [<c012a782>] sys_init_module+0x1364/0x1439 > <04>2007 May 30 14:21:40 cbs kern: [<c013711c>] vma_prio_tree_insert+0x17/0x2a > <04>2007 May 30 14:21:40 cbs kern: [<c013ac54>] vma_link+0x85/0x8b > <04>2007 May 30 14:21:40 cbs kern: [<c013c7a4>] do_mmap_pgoff+0x4e7/0x634 > <04>2007 May 30 14:21:40 cbs kern: [<c0106f44>] sys_mmap2+0x61/0x90 > <04>2007 May 30 14:21:40 cbs kern: [<c0102a79>] syscall_call+0x7/0xb > <03>2007 May 30 14:21:40 cbs kern: handlers: > <03>2007 May 30 14:21:40 cbs kern: [<c030899d>] (usb_hcd_irq+0x0/0x4f) > <00>2007 May 30 14:21:40 cbs kern: Disabling IRQ #11 > <06>2007 May 30 14:21:40 cbs kern: Sedlbauer: defined at 0xa800-0xa900 IRQ 11 > <06>2007 May 30 14:21:40 cbs kern: Sedlbauer: speed fax+ pyramid detected > <06>2007 May 30 14:21:40 cbs kern: Sedlbauer: ISAC version (0): 2086/2186 V1.1 > <06>2007 May 30 14:21:40 cbs kern: Sedlbauer: resetting card > <06>2007 May 30 14:21:40 cbs kern: Sedlbauer: ISAR version 1 > <06>2007 May 30 14:21:40 cbs kern: Sedlbauer Speed Fax +: IRQ 11 count 100000 > <06>2007 May 30 14:21:40 cbs kern: Sedlbauer: resetting card > <06>2007 May 30 14:21:40 cbs kern: Sedlbauer Speed Fax +: IRQ 11 count 100000 > <04>2007 May 30 14:21:40 cbs kern: Sedlbauer Speed Fax +: IRQ(11) getting no interrupts during init 1 > <06>2007 May 30 14:21:40 cbs kern: Sedlbauer: resetting card > <06>2007 May 30 14:21:40 cbs kern: Sedlbauer: resetting card > <06>2007 May 30 14:21:40 cbs kern: Sedlbauer Speed Fax +: IRQ 11 count 100000 > <04>2007 May 30 14:21:40 cbs kern: Sedlbauer Speed Fax +: IRQ(11) getting no interrupts during init 2 > <06>2007 May 30 14:21:40 cbs kern: Sedlbauer: resetting card > <06>2007 May 30 14:21:40 cbs kern: Sedlbauer: resetting card > <06>2007 May 30 14:21:40 cbs kern: Sedlbauer Speed Fax +: IRQ 11 count 100000 > <04>2007 May 30 14:21:40 cbs kern: Sedlbauer Speed Fax +: IRQ(11) getting no interrupts during init 3 > <06>2007 May 30 14:21:40 cbs kern: Sedlbauer: resetting card > <04>2007 May 30 14:21:40 cbs kern: HiSax: Card Sedlbauer Speed Fax + not installed ! > ========================================================================== > > While the output seems to suggest a hardware problem, the same system > loads the hisax driver perfectly on recent 2.4 kernels. > > We tried several kernel versions, up to 2.6.21.3 > > Any hints are appreciated :) Likely a driver problem - the device is using IRQ 11, but the driver never actually registered a handler for that interrupt (it's not in the list of handlers, only USB is). Maybe retrieving the interrupt before pci_enable_device? (I haven't looked at the code in question.) -- Robert Hancock Saskatoon, SK, Canada To email, remove "nospam" from hancockr@nospamshaw.ca Home Page: http://www.roberthancock.com/ ^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: hisax isdn card (Sedlbauer Speed Fax+) does not get an interrupt 2007-05-31 14:37 ` hisax isdn card (Sedlbauer Speed Fax+) does not get an interrupt Robert Hancock @ 2007-06-04 9:24 ` Thomas Voegtle 2007-06-04 14:31 ` Robert Hancock 0 siblings, 1 reply; 5+ messages in thread From: Thomas Voegtle @ 2007-06-04 9:24 UTC (permalink / raw) To: Robert Hancock; +Cc: linux-kernel [-- Attachment #1: Type: TEXT/PLAIN, Size: 4108 bytes --] Hi Robert, On Thu, 31 May 2007, Robert Hancock wrote: > Thomas Voegtle wrote: > > > > ========================================================================== [...] > > <03>2007 May 30 14:21:40 cbs kern: irq 11: nobody cared (try booting with > > the \"irqpoll\" option) > > <04>2007 May 30 14:21:40 cbs kern: [<c012f243>] __report_bad_irq+0x2b/0x69 > > <04>2007 May 30 14:21:40 cbs kern: [<c012f3e7>] note_interrupt+0x166/0x193 > > <04>2007 May 30 14:21:40 cbs kern: [<c03089c0>] usb_hcd_irq+0x23/0x4f > > <04>2007 May 30 14:21:40 cbs kern: [<c012ee7c>] handle_IRQ_event+0x21/0x4a > > <04>2007 May 30 14:21:40 cbs kern: [<c012ef0d>] __do_IRQ+0x68/0x8f > > <04>2007 May 30 14:21:40 cbs kern: [<c01050de>] do_IRQ+0x5c/0x77 > > <04>2007 May 30 14:21:40 cbs kern: ======================= > > <04>2007 May 30 14:21:40 cbs kern: [<c0103ada>] common_interrupt+0x1a/0x20 > > <04>2007 May 30 14:21:40 cbs kern: [<c011a87c>] __do_softirq+0x2c/0x7d > > <04>2007 May 30 14:21:40 cbs kern: [<c0105131>] do_softirq+0x38/0x3f > > <04>2007 May 30 14:21:40 cbs kern: ======================= > > <04>2007 May 30 14:21:40 cbs kern: [<c01050f0>] do_IRQ+0x6e/0x77 > > <04>2007 May 30 14:21:40 cbs kern: [<c0103ada>] common_interrupt+0x1a/0x20 > > <04>2007 May 30 14:21:40 cbs kern: [<d894007b>] W6692B_interrupt+0x23c/0x559 > > [hisax] > > <04>2007 May 30 14:21:40 cbs kern: [<c010b893>] delay_pmtmr+0xb/0x13 > > <04>2007 May 30 14:21:40 cbs kern: [<c01b73f5>] __delay+0x9/0xa > > <04>2007 May 30 14:21:40 cbs kern: [<d892f834>] setup_sedlbauer+0x1ee/0x534 > > [hisax] > > <04>2007 May 30 14:21:40 cbs kern: [<c01175e8>] printk+0x12/0x16 > > <04>2007 May 30 14:21:40 cbs kern: [<d890dcdb>] checkcard+0x201/0x566 > > [hisax] > > <04>2007 May 30 14:21:40 cbs kern: [<d890dd62>] checkcard+0x288/0x566 > > [hisax] > > <04>2007 May 30 14:21:40 cbs kern: [<d88554dc>] HiSax_init+0x4dc/0x57a > > [hisax] > > <04>2007 May 30 14:21:40 cbs kern: [<c0159693>] new_inode+0x14/0x76 > > <04>2007 May 30 14:21:40 cbs kern: [<c017340c>] sysfs_add_file+0x1f/0x52 > > <04>2007 May 30 14:21:40 cbs kern: [<c01275fc>] > > debug_mutex_add_waiter+0x14/0x24 > > <04>2007 May 30 14:21:40 cbs kern: [<c0173995>] sysfs_new_dirent+0x17/0x56 > > <04>2007 May 30 14:21:40 cbs kern: [<c012a782>] > > sys_init_module+0x1364/0x1439 > > <04>2007 May 30 14:21:40 cbs kern: [<c013711c>] > > vma_prio_tree_insert+0x17/0x2a > > <04>2007 May 30 14:21:40 cbs kern: [<c013ac54>] vma_link+0x85/0x8b > > <04>2007 May 30 14:21:40 cbs kern: [<c013c7a4>] do_mmap_pgoff+0x4e7/0x634 > > <04>2007 May 30 14:21:40 cbs kern: [<c0106f44>] sys_mmap2+0x61/0x90 > > <04>2007 May 30 14:21:40 cbs kern: [<c0102a79>] syscall_call+0x7/0xb > > <03>2007 May 30 14:21:40 cbs kern: handlers: > > <03>2007 May 30 14:21:40 cbs kern: [<c030899d>] (usb_hcd_irq+0x0/0x4f) > > <00>2007 May 30 14:21:40 cbs kern: Disabling IRQ #11 [...] > > Likely a driver problem - the device is using IRQ 11, but the driver never > actually registered a handler for that interrupt (it's not in the list of > handlers, only USB is). Maybe retrieving the interrupt before > pci_enable_device? (I haven't looked at the code in question.) Thx for your answer. Unfortunately, it didn't help us yet in finding a fix for the problem. The first IRQs are received after the call to pci_enable_device, but before the IRQ handler itself is registered (register_irq). The IRQs seem to be triggered by the write operations to the card registers (byteout()/outb() calls around lines 676ff in sedlbauer.c); the IRQ handler is registered much later, though. The dump above suggests that the kernel relays the interrupts to the USB handler (on the same IRQ) instead - which obviously is wrong. In short: * pci_enable_device * writing to card registers -> triggering interrupts (handler not yet installed -> error) * register interrupt -> fails, as it already was disabled due to the errors Again: thx for your comments. Do you have any further ideas/advice on how to get the driver running? Thomas -- Thomas Vögtle email: thomas@voegtle-clan.de ----- http://www.voegtle-clan.de/thomas ------ ^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: hisax isdn card (Sedlbauer Speed Fax+) does not get an interrupt 2007-06-04 9:24 ` Thomas Voegtle @ 2007-06-04 14:31 ` Robert Hancock 0 siblings, 0 replies; 5+ messages in thread From: Robert Hancock @ 2007-06-04 14:31 UTC (permalink / raw) To: Thomas Voegtle; +Cc: linux-kernel Thomas Voegtle wrote: > Thx for your answer. Unfortunately, it didn't help us yet in finding a fix > for the problem. > > The first IRQs are received after the call to pci_enable_device, but > before the IRQ handler itself is registered (register_irq). The IRQs seem > to be triggered by the write operations to the card registers > (byteout()/outb() calls around lines 676ff in sedlbauer.c); the IRQ > handler is registered much later, though. The dump above suggests that the > kernel relays the interrupts to the USB handler (on the same IRQ) instead > - which obviously is wrong. > > In short: > * pci_enable_device > * writing to card registers -> triggering interrupts > (handler not yet installed -> error) > * register interrupt -> fails, as it already was disabled due to the > errors > > Again: thx for your comments. Do you have any further ideas/advice on how > to get the driver running? Presumably whatever writes the driver is doing there are enabling the card to generate interrupts - in this case the IRQ handler needs to be registered before this point, and not after.. -- Robert Hancock Saskatoon, SK, Canada To email, remove "nospam" from hancockr@nospamshaw.ca Home Page: http://www.roberthancock.com/ ^ permalink raw reply [flat|nested] 5+ messages in thread
end of thread, other threads:[~2007-06-05 15:52 UTC | newest]
Thread overview: 5+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2007-05-31 13:44 hisax isdn card (Sedlbauer Speed Fax+) does not get an interrupt Thomas Voegtle
2007-06-05 15:52 ` [Patch] sane irq initialization in sedlbauer/hisax (was: hisax isdn card (Sedlbauer Speed Fax+) does not get an interrupt) Thomas Voegtle
[not found] <fa./GDxiXMgfJlsQXnkvKu3TibPJV8@ifi.uio.no>
2007-05-31 14:37 ` hisax isdn card (Sedlbauer Speed Fax+) does not get an interrupt Robert Hancock
2007-06-04 9:24 ` Thomas Voegtle
2007-06-04 14:31 ` Robert Hancock
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox
all inboxes | Powered by JetHome®