From: Christian Lamparter <chunkeey@googlemail.com>
To: Quintin Pitts <geek4linux@gmail.com>
Cc: Larry Finger <Larry.Finger@lwfinger.net>,
"linux-wireless" <linux-wireless@vger.kernel.org>
Subject: Re: [RFC] p54pci: skb_over_panic, soft lockup, stall under flood
Date: Mon, 12 Oct 2009 10:57:10 +0200 [thread overview]
Message-ID: <200910121057.10381.chunkeey@googlemail.com> (raw)
In-Reply-To: <4AD273B2.5000607@gmail.com>
[-- Attachment #1: Type: Text/Plain, Size: 1358 bytes --]
On Monday 12 October 2009 02:09:22 Quintin Pitts wrote:
> On Sun Oct 11 2009 10:31:42 GMT-0500 (CDT), Larry Finger wrote:
> > On 10/11/2009 09:28 AM, Quintin Pitts wrote:
> > As I understand it, this patch is to fix the driver to work around
> > firmware errors. If that is correct, please state that clearly. If
> > only partially correct, then indicate which parts are to fix firmware
> > errors, and which are to fix driver errors. Has your analysis included
> > thinking about where the driver might delay to avoid firmware problems.
>
> I think Christian has hit the nail on the head.
> Mostly flaky hardware or implementation (it8152 pci bridge) when pushed.
hmm, flaky hardware or simply incomplete linux support.
you've said that it works with win ce,
so I suppose the code is missing some important bits.
e.g.:
00:06.0 Network controller: Intersil Corporation ISL3886 [Prism Javelin/Prism Xbow] (rev 01)
Subsystem: Intersil Corporation Device 0000
Flags: bus master, medium devsel, latency 56, IRQ 217
by the looks of it, something could wrong with the latency timer value.
(what's lspci -vvnnxxx output for the card?)
I've attached a minimal patch which c&p some latency-timer related logic
from the original prism54 driver code to p54pci.
Can you please give this a try?
I don't have a p54pci available for testing right now.
Regards,
Chr
[-- Attachment #2: p54-latency.diff --]
[-- Type: text/x-patch, Size: 865 bytes --]
diff --git a/drivers/net/wireless/p54/p54pci.c b/drivers/net/wireless/p54/p54pci.c
index d348c26..c1b1bee 100644
--- a/drivers/net/wireless/p54/p54pci.c
+++ b/drivers/net/wireless/p54/p54pci.c
@@ -473,6 +473,7 @@ static int __devinit p54p_probe(struct pci_dev *pdev,
struct ieee80211_hw *dev;
unsigned long mem_addr, mem_len;
int err;
+ u8 latency;
err = pci_enable_device(pdev);
if (err) {
@@ -493,6 +494,12 @@ static int __devinit p54p_probe(struct pci_dev *pdev,
goto err_disable_dev;
}
+ pci_read_config_byte(pdev, PCI_LATENCY_TIMER, &latency);
+ if (latency < 64) {
+ dev_info(&pdev->dev, "set latency timer\n");
+ pci_write_config_byte(pdev, PCI_LATENCY_TIMER, 80);
+ }
+
if (pci_set_dma_mask(pdev, DMA_BIT_MASK(32)) ||
pci_set_consistent_dma_mask(pdev, DMA_BIT_MASK(32))) {
dev_err(&pdev->dev, "No suitable DMA available\n");
next prev parent reply other threads:[~2009-10-12 8:57 UTC|newest]
Thread overview: 7+ messages / expand[flat|nested] mbox.gz Atom feed top
2009-10-11 14:28 [RFC] p54pci: skb_over_panic, soft lockup, stall under flood Quintin Pitts
2009-10-11 15:31 ` Larry Finger
2009-10-11 19:41 ` Christian Lamparter
2009-10-12 0:26 ` Quintin Pitts
2009-10-12 0:09 ` Quintin Pitts
2009-10-12 8:57 ` Christian Lamparter [this message]
2009-10-12 13:34 ` Quintin Pitts
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=200910121057.10381.chunkeey@googlemail.com \
--to=chunkeey@googlemail.com \
--cc=Larry.Finger@lwfinger.net \
--cc=geek4linux@gmail.com \
--cc=linux-wireless@vger.kernel.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.