linux-kernel.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: DHollenbeck <dick@softplc.com>
To: Linus Torvalds <torvalds@osdl.org>
Cc: linux-kernel@vger.kernel.org, Alan Cox <alan@lxorguk.ukuu.org.uk>,
	magnus.damm@gmail.com
Subject: Re: yenta_socket rapid fires interrupts
Date: Tue, 11 Jan 2005 16:32:48 -0600	[thread overview]
Message-ID: <41E45410.7070004@softplc.com> (raw)
In-Reply-To: <Pine.LNX.4.58.0501111340570.2373@ppc970.osdl.org>

Linus Torvalds wrote:

>On Tue, 11 Jan 2005, DHollenbeck wrote:
>  
>
>>Add to my last post, the information that IRQ 11 is only being used by
>>the two yenta sockets. So the "toggling" is not really toggling, but the
>>printing of the two card sockets which are both on the same IRQ?
>>    
>>
>
>Ahh. Good catch, silly me. No toggling, so you can ignore my last post. 
>There's no cycle going on, and the ports are stable, and the interrupt is 
>coming from somewhere else entirely.
>
>You could still enable debugging, but at that point I'd actually be 
>interested in the _first_ part of the debug output, not the long tail of 
>dead interrupts. You'd need a serial console or netconsole to catch it, 
>I'm afraid.
>
>		Linus
>
>  
>
My modfied, throw away, debug patch:

--- linux/drivers/pcmcia/yenta_socket..orig    2004-12-24 
15:35:00.000000000 -0600
+++ linux/drivers/pcmcia/yenta_socket.c    2005-01-11 16:16:47.000000000 
-0600
@@ -401,7 +401,7 @@
 static unsigned int yenta_events(struct yenta_socket *socket)
 {
     u8 csc;
-    u32 cb_event;
+    u32 cb_event, intctl;
     unsigned int events;
 
     /* Clear interrupt status for the event */
@@ -412,13 +412,31 @@
 
     events = (cb_event & (CB_CD1EVENT | CB_CD2EVENT)) ? SS_DETECT : 0 ;
     events |= (csc & I365_CSC_DETECT) ? SS_DETECT : 0;
-    if (exca_readb(socket, I365_INTCTL) & I365_PC_IOCARD) {
+    if ( (intctl=exca_readb(socket, I365_INTCTL)) & I365_PC_IOCARD) {
         events |= (csc & I365_CSC_STSCHG) ? SS_STSCHG : 0;
     } else {
         events |= (csc & I365_CSC_BVD1) ? SS_BATDEAD : 0;
         events |= (csc & I365_CSC_BVD2) ? SS_BATWARN : 0;
         events |= (csc & I365_CSC_READY) ? SS_READY : 0;
     }
+       
+/* RHH: per Linus */
+#if 1
+        {
+            u32 cb_state;
+           
+            static int intCount = 20;
+           
+            if( intCount > 0 )
+            {
+                --intCount;
+                cb_state = cb_readl(socket, CB_SOCKET_STATE);
+                printk("yenta: event %08x state %08x csc %02x intctl 
%02x events=%08x\n",
+                    cb_event, cb_state, csc, intctl, events );
+            }
+        }
+#endif       
+       
     return events;
 }
 

And the dmesg output.  Please look at intctl.  Is this our unsatisfied 
noise maker?


Linux Kernel Card Services
  options:  [pci] [cardbus]
PCI: Found IRQ 11 for device 0000:00:0d.0
PCI: Sharing IRQ 11 with 0000:00:0d.1
Yenta: CardBus bridge found at 0000:00:0d.0 [0000:0000]
Yenta: Enabling burst memory read transactions
Yenta: Using CSCINT to route CSC interrupts to PCI
Yenta: Routing CardBus interrupts to PCI
Yenta TI: socket 0000:00:0d.0, mfunc 0x00001022, devctl 0x64
Yenta: ISA IRQ mask 0x00a8, PCI irq 11
Socket status: 30000006
PCI: Found IRQ 11 for device 0000:00:0d.1
PCI: Sharing IRQ 11 with 0000:00:0d.0
Yenta: CardBus bridge found at 0000:00:0d.1 [0000:0000]
Yenta: Using CSCINT to route CSC interrupts to PCI
Yenta: Routing CardBus interrupts to PCI
Yenta TI: socket 0000:00:0d.1, mfunc 0x00001022, devctl 0x64
yenta: event 00000000 state 30000006 csc 00 intctl 50 events=00000000
Yenta: ISA IRQ mask 0x00a8, PCI irq 11
Socket status: 30000020
yenta: event 00000000 state 30000006 csc 00 intctl 50 events=00000000
yenta: event 00000000 state 30000829 csc 00 intctl 10 events=00000000
yenta: event 00000000 state 30000006 csc 00 intctl 50 events=00000000
yenta: event 00000008 state 30000829 csc 00 intctl 10 events=00000000
yenta: event 00000000 state 30000006 csc 00 intctl 50 events=00000000
yenta: event 00000000 state 30000829 csc 00 intctl 10 events=00000000
yenta: event 00000000 state 30000006 csc 00 intctl 50 events=00000000
yenta: event 00000000 state 30000829 csc 00 intctl 10 events=00000000
yenta: event 00000000 state 30000006 csc 00 intctl 50 events=00000000
yenta: event 00000000 state 30000829 csc 00 intctl 10 events=00000000
yenta: event 00000000 state 30000006 csc 00 intctl 50 events=00000000
yenta: event 00000000 state 30000829 csc 00 intctl 10 events=00000000
yenta: event 00000000 state 30000006 csc 00 intctl 50 events=00000000
yenta: event 00000000 state 30000829 csc 00 intctl 10 events=00000000
yenta: event 00000000 state 30000006 csc 00 intctl 50 events=00000000
yenta: event 00000000 state 30000829 csc 00 intctl 10 events=00000000
yenta: event 00000000 state 30000006 csc 00 intctl 50 events=00000000
yenta: event 00000000 state 30000829 csc 00 intctl 10 events=00000000
yenta: event 00000000 state 30000006 csc 00 intctl 50 events=00000000
irq 11: nobody cared (try booting with the "irqpoll" option.
 [<c012b752>] __report_bad_irq+0x22/0x90
 [<c012b868>] note_interrupt+0x78/0xc0
 [<c012b11d>] __do_IRQ+0x13d/0x160
 [<c0104aba>] do_IRQ+0x1a/0x30
 [<c010337a>] common_interrupt+0x1a/0x20
 [<c012007b>] sys_getresgid+0xb/0xa0
 [<c0117750>] __do_softirq+0x30/0xa0
 [<c0120060>] sys_setresgid+0x120/0x130
 [<c01177f5>] do_softirq+0x35/0x40
 [<c012af65>] irq_exit+0x35/0x40
 [<c0104abf>] do_IRQ+0x1f/0x30
 [<c010337a>] common_interrupt+0x1a/0x20
 [<c01005b0>] default_idle+0x0/0x40
 [<c038007b>] ic_setup_if+0xcb/0xd0
 [<c01005d3>] default_idle+0x23/0x40
 [<c010064c>] cpu_idle+0x1c/0x50
 [<c036873c>] start_kernel+0x13c/0x160
handlers:
[<c2838980>] (yenta_interrupt+0x0/0x40 [yenta_socket])
[<c2838980>] (yenta_interrupt+0x0/0x40 [yenta_socket])
Disabling IRQ #11
root@EMBEDDED[~]#



  reply	other threads:[~2005-01-11 22:35 UTC|newest]

Thread overview: 16+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2005-01-10 17:33 yenta_socket rapid fires interrupts DHollenbeck
2005-01-10 19:24 ` Alan Cox
2005-01-11  3:17 ` Linus Torvalds
2005-01-11 19:18   ` DHollenbeck
2005-01-11 19:46     ` Grzegorz Kulewski
2005-01-11 19:54     ` Linus Torvalds
2005-01-11 21:16       ` DHollenbeck
2005-01-11 21:40         ` Linus Torvalds
2005-01-13 14:13           ` Stefan Seyfried
2005-01-13 15:42             ` DHollenbeck
2005-01-13 15:59             ` DHollenbeck
2005-01-11 21:38       ` DHollenbeck
2005-01-11 21:43         ` Linus Torvalds
2005-01-11 22:32           ` DHollenbeck [this message]
2005-01-12  0:03             ` Linus Torvalds
2005-01-12 23:14               ` DHollenbeck

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=41E45410.7070004@softplc.com \
    --to=dick@softplc.com \
    --cc=alan@lxorguk.ukuu.org.uk \
    --cc=linux-kernel@vger.kernel.org \
    --cc=magnus.damm@gmail.com \
    --cc=torvalds@osdl.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).