From: Stefan Richter <stefanr@s5r6.in-berlin.de>
To: Benjamin Herrenschmidt <benh@kernel.crashing.org>
Cc: linuxppc-dev@ozlabs.org, Gioele Barabucci <dev@gioelebarabucci.com>
Subject: Re: [Fwd: [Bug 7431] New: ohci1394 Oops after a rmmod/modprobe cycle]
Date: Sun, 05 Nov 2006 12:22:45 +0100 [thread overview]
Message-ID: <454DC985.2020203@s5r6.in-berlin.de> (raw)
In-Reply-To: <1162724083.28571.235.camel@localhost.localdomain>
Benjamin Herrenschmidt wrote:
> The machine check means basically that the chip didn't respond on the
> PCI bus. The most probable cause is that something is wrong with the
> platform code that switches the chip clock on/off or with the PCI D
> state change.
>
> One thing you can check is wether that's always called properly,
> especially when starting the chip.
Actually, we have platform code in ohci1394's pci_driver.suspend(),
.resume(), and .remove(), but not in .probe().
.suspend() has:
pmac_call_feature(PMAC_FTR_1394_ENABLE, of_node, 0, 0);
.resume() has:
pmac_call_feature(PMAC_FTR_1394_ENABLE, of_node, 0, 1);
.remove() has:
pmac_call_feature(PMAC_FTR_1394_ENABLE, of_node, 0, 0);
pmac_call_feature(PMAC_FTR_1394_CABLE_POWER, of_node, 0, 0);
How about this patch:
--- linux.orig/drivers/ieee1394/ohci1394.c 2006-11-02 22:35:16.000000000 +0100
+++ linux/drivers/ieee1394/ohci1394.c 2006-11-05 12:19:52.000000000 +0100
@@ -3215,6 +3215,18 @@ static int __devinit ohci1394_pci_probe(
struct ti_ohci *ohci; /* shortcut to currently handled device */
resource_size_t ohci_base;
+#ifdef CONFIG_PPC_PMAC
+ /* Necessary if ohci1394 was loaded and unloaded before */
+ if (machine_is(powermac)) {
+ struct device_node *of_node = pci_device_to_OF_node(dev);
+
+ if (of_node)
+ pmac_call_feature(PMAC_FTR_1394_CABLE_POWER, of_node,
+ 0, 1);
+ pmac_call_feature(PMAC_FTR_1394_ENABLE, of_node, 0, 1);
+ }
+#endif /* CONFIG_PPC_PMAC */
+
if (pci_enable_device(dev))
FAIL(-ENXIO, "Failed to enable OHCI hardware");
pci_set_master(dev);
(Diff is against linux1394-2.6.git or the patchsets at
http://me.in-berlin.de/~s5r6/linux1394/updates/. But perhaps it applies
to stock ohci1394 of recent kernels too.)
> Another possibly might be that the
> chip needs some time after the clocks are restored to be back online,
> thus you might need a delay after the platform code and/or the PCI D
> state change before you start poking at registers.
>
> A couple of thing to make sure of:
>
> - On init, call platform code first to bring clocks back up, then only
> do the PCI D state transition to D0 (maybe with a delay)
>
> - On rmmod or suspend, call the platform code last, after the D3 state
> transition (if any), and make sure the chip's been properly stopped
> first.
>
> It might also be useful if there isn't some sort of bad interaction with
> sungem which on the same PCI bus and has similar clock control as I've
> heard about possible issues on some older chips. Thus, the user could
> verify that sungem is allways up and running (link on) during the test
> and check if that makes any difference.
Yes, PowerBook G3 Pismo seems affected.
https://bugzilla.novell.com/show_bug.cgi?id=115228
Thanks for the help.
--
Stefan Richter
-=====-=-==- =-== --=-=
http://arcgraph.de/sr/
next prev parent reply other threads:[~2006-11-05 11:22 UTC|newest]
Thread overview: 22+ messages / expand[flat|nested] mbox.gz Atom feed top
2006-11-05 10:41 [Fwd: [Bug 7431] New: ohci1394 Oops after a rmmod/modprobe cycle] Stefan Richter
2006-11-05 10:54 ` Benjamin Herrenschmidt
2006-11-05 11:22 ` Stefan Richter [this message]
2006-11-05 11:37 ` Stefan Richter
2006-11-05 12:59 ` Benjamin Herrenschmidt
2006-11-10 22:43 ` [PATCH 1/2] ieee1394: ohci1394: add PPC_PMAC platform code to driver probe Stefan Richter
2006-11-10 22:44 ` [PATCH 2/2] ieee1394: ohci1394: reformat PPC_PMAC platform code Stefan Richter
2006-11-06 16:58 ` [Fwd: [Bug 7431] New: ohci1394 Oops after a rmmod/modprobe cycle] Olaf Hering
2006-11-06 22:19 ` Benjamin Herrenschmidt
2006-11-07 7:08 ` Olaf Hering
2006-11-07 7:17 ` Benjamin Herrenschmidt
2006-11-10 22:39 ` Stefan Richter
2006-11-10 23:07 ` Stefan Richter
2006-11-10 23:10 ` Benjamin Herrenschmidt
2006-11-10 23:22 ` [PATCH update 1/3] ieee1394: ohci1394: add PPC_PMAC platform code to driver probe Stefan Richter
2006-11-10 23:23 ` [PATCH update 2/3] ieee1394: ohci1394: reformat PPC_PMAC platform code Stefan Richter
2006-11-10 23:26 ` [PATCH update 3/3] ieee1394: ohci1394: call PMac code in shutdown only for proper machines Stefan Richter
2006-11-10 23:55 ` [Fwd: [Bug 7431] New: ohci1394 Oops after a rmmod/modprobe cycle] Stefan Richter
2006-11-11 1:31 ` Benjamin Herrenschmidt
2006-11-13 17:58 ` Olaf Hering
2006-11-13 19:08 ` Stefan Richter
2006-11-14 2:09 ` Benjamin Herrenschmidt
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=454DC985.2020203@s5r6.in-berlin.de \
--to=stefanr@s5r6.in-berlin.de \
--cc=benh@kernel.crashing.org \
--cc=dev@gioelebarabucci.com \
--cc=linuxppc-dev@ozlabs.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).