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 15:16:56 -0600	[thread overview]
Message-ID: <41E44248.2000500@softplc.com> (raw)
In-Reply-To: <Pine.LNX.4.58.0501111143370.2373@ppc970.osdl.org>

Linus Torvalds wrote:

>Can you add a "printk()" to "yenta_events()" that shows the value of both 
>"csc" and "cb_event", and additionally shows CB_STATUS. Something like 
>the appended (and totally untested) patch..
>
>It's going to be very noisy when the problem happens (you'll see 10000 
>lines scroll by very quickly), but it would be good to see what the last 
>lines were. Just to see if some event/state seems stuck..
>
>		Linus
>
>===== drivers/pcmcia/yenta_socket.c 1.65 vs edited =====
>--- 1.65/drivers/pcmcia/yenta_socket.c	2004-12-01 00:14:04 -08:00
>+++ edited/drivers/pcmcia/yenta_socket.c	2005-01-11 11:52:10 -08:00
>@@ -401,7 +401,7 @@
> static unsigned int yenta_events(struct yenta_socket *socket)
> {
> 	u8 csc;
>-	u32 cb_event;
>+	u32 cb_event, cb_state;
> 	unsigned int events;
> 
> 	/* Clear interrupt status for the event */
>@@ -409,6 +409,9 @@
> 	cb_writel(socket, CB_SOCKET_EVENT, cb_event);
> 
> 	csc = exca_readb(socket, I365_CSC);
>+
>+	cb_state = cb_readl(socket, CB_SOCKET_STATE);
>+	printk("yenta: event %08x state %08x csc %02x\n", cb_event, cb_state, csc);
> 
> 	events = (cb_event & (CB_CD1EVENT | CB_CD2EVENT)) ? SS_DETECT : 0 ;
> 	events |= (csc & I365_CSC_DETECT) ? SS_DETECT : 0;
>
>  
>

TI 1520 data sheet URL:   http://www-s.ti.com/sc/ds/pci1520.pdf

output from printk:

only the last several lines were caught.  There is toggling between two 
states, the very first state was not captured.
:
:
yenta: event 00000000 state 30000006 csc 00
yenta: event 00000000 state 30000829 csc 00
yenta: event 00000000 state 30000006 csc 00
yenta: event 00000000 state 30000829 csc 00
yenta: event 00000000 state 30000006 csc 00
yenta: event 00000000 state 30000829 csc 00
yenta: event 00000000 state 30000006 csc 00
yenta: event 00000000 state 30000829 csc 00
:
:
:
yenta: event 00000000 state 30000006 csc 00
yenta: event 00000000 state 30000829 csc 00
yenta: event 00000000 state 30000006 csc 00
yenta: event 00000000 state 30000829 csc 00
yenta: event 00000000 state 30000006 csc 00
yenta: event 00000000 state 30000829 csc 00
yenta: event 00000000 state 30000006 csc 00
yenta: event 00000000 state 30000829 csc 00
yenta: event 00000000 state 30000006 csc 00
yenta: event 00000000 state 30000829 csc 00
yenta: event 00000000 state 30000006 csc 00
yenta: event 00000000 state 30000829 csc 00
yenta: event 00000000 state 30000006 csc 00
yenta: event 00000000 state 30000829 csc 00
yenta: event 00000000 state 30000006 csc 00
yenta: event 00000000 state 30000829 csc 00
yenta: event 00000000 state 30000006 csc 00
yenta: event 00000000 state 30000829 csc 00
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
 [<c012af99>] handle_IRQ_event+0x29/0x70
 [<c012b0b1>] __do_IRQ+0xd1/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:
[<c2838950>] (yenta_interrupt+0x0/0x40 [yenta_socket])
[<c2838950>] (yenta_interrupt+0x0/0x40 [yenta_socket])
Disabling IRQ #11

I can read bits in a datasheet, but their meaning in the context of this 
driver is better interpreted by somebody with more PCMCIA experience 
than me.  Thanks for your help!



  reply	other threads:[~2005-01-11 21:20 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 [this message]
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
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=41E44248.2000500@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.