All of lore.kernel.org
 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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.