linuxppc-dev.lists.ozlabs.org archive mirror
 help / color / mirror / Atom feed
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/

  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).