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!
next prev parent 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 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).