Checkout the attached files. Sorry for the delay - I was away from the Thanks for your time, Plamen=20 --=20 Plamen Petrov, network & system administrator Filial - Silistra RU "Angel Kantchev" http://fs.ru.acad.bg/ -------------------------------- this message is UTF8 encoded=20 _ ___ _____ ------------------------------------------ This message was sent by the mail server at fs.ru.acad.bg using the web interface: https://fs.ru.acad.bg/s/m/webmail E-mail postmaster@fs.ru.acad.bg with anything, regarding the server itself
Can you please try below patch?
The Slot 03:00.* of JMicron controller has two functions, but one is
PCIE endpoint the other isn't PCIE device, very strange. PCIE spec
defines all functions should have the same config for ASPM, so disable
ASPM for the whole slot in this case.
Signed-off-by: Shaohua Li <shaohua.li@intel.com>
Index: linux/drivers/pci/pcie/aspm.c
===================================================================
--- linux.orig/drivers/pci/pcie/aspm.c 2008-05-21 16:38:17.000000000 +0800
+++ linux/drivers/pci/pcie/aspm.c 2008-05-21 16:52:35.000000000 +0800
@@ -506,6 +506,23 @@ static void free_link_state(struct pci_d
pdev->link_state = NULL;
}
+static int pcie_aspm_sanity_check(struct pci_dev *pdev)
+{
+ struct pci_dev *child_dev;
+ int child_pos;
+
+ /*
+ * Some functions in a slot might not all be PCIE functions, very
+ * strange. Disable ASPM for the whole slot
+ */
+ list_for_each_entry(child_dev, &pdev->subordinate->devices, bus_list) {
+ child_pos = pci_find_capability(child_dev, PCI_CAP_ID_EXP);
+ if (!child_pos)
+ return -EINVAL;
+ }
+ return 0;
+}
+
/*
* pcie_aspm_init_link_state: Initiate PCI express link state.
* It is called after the pcie and its children devices are scaned.
@@ -526,6 +543,9 @@ void pcie_aspm_init_link_state(struct pc
if (list_empty(&pdev->subordinate->devices))
goto out;
+ if (pcie_aspm_sanity_check(pdev))
+ goto out;
+
mutex_lock(&aspm_lock);
link_state = kzalloc(sizeof(*link_state), GFP_KERNEL);
--
With the provided patch applied on top of latest git tree, the optical drive connected to the JMicron controller WORKS with CONFIG_PCIEASPM=y. Just in case - this is on a Gigabyte GA-P35-DS3R v2.1 motherboard, BIOS F11. Thanks! Plamen Petrov, network & system administrator Filial - Silistra RU "Angel Kantchev" http://fs.ru.acad.bg/ -------------------------------- this message is UTF8 encoded _ ___ _____ ------------------------------------------ This message was sent by the mail server at fs.ru.acad.bg using the web interface: https://fs.ru.acad.bg/s/m/webmail E-mail postmaster@fs.ru.acad.bg with anything, regarding the server itself --
T24gV2VkLCBNYXkgMjEsIDIwMDggYXQgMTA6NTggQU0sIFNoYW9odWEgTGkgPHNoYW9odWEubGlA aW50ZWwuY29tPiB3cm90ZToKPiBPbiBUdWUsIDIwMDgtMDUtMjAgYXQgMTk6MDkgKzAzMDAsIFBs YW1lbiBQZXRyb3Ygd3JvdGU6Cj4+IFNoYW9odWEgTGkg0L3QsNC/0LjRgdCwOgo+Pgo+PiA+IE9u IFR1ZSwgMjAwOC0wNS0yMCBhdCAwMTozNyArMDMwMCwgUGxhbWVuIFBldHJvdiB3cm90ZToKPj4g Pj4gSGVsbG8sIGZvbGtzIQo+PiA+Pgo+PiA+PiBBZnRlciAyLjYuMjYgbWVyZ2Ugd2luZG93IG9w ZW5lZCwgdGhlIG9wdGljYWwgZHJpdmVzIGluIG15Cj4+ID4+IGNvbXB1dGVyLCBoYW5naW5nIG9m ZiBhIEpNaWNyb24gY29udHJvbGVyIHdlcmUgbm90IGRldGVjdGVkCj4+ID4+IGJ5IGxpbnV4IGFu eSBtb3JlLgo+PiA+Pgo+PiA+PiBMdWNhIFRldHRhbWFudGkgcmVwb3J0ZWQgc2ltaWxhciB0cm91 YmxlczoKPj4gPj4gaHR0cDovL21hcmMuaW5mby8/bD1saW51eC1rZXJuZWwmbT0xMjA5NTg3OTEz MjM5MTEmdz0yCj4+ID4+Cj4+ID4+IEl0cyBiZWVuIDIwIGRheXMsIHNvIEkgZGVjaWRlZCB0byBi aXNlY3QuCj4+ID4+IGdpdCBiaXNlY3QgcmV2ZWFsZWQgdGhhdCBjb21taXQKPj4gPj4gN2Q3MTVh NmMxYWU1Nzg1ZDAwZmI5YTg3NmI1YWJkZmM0M2FiYzQ0Ygo+PiA+PiBpcyB0aGUgb25lIGNhdXNp bmcgcGF0YV9qbWljcm9uIHRvIGZhaWwgdG8gZGV0ZWN0IGRyaXZlcywKPj4gPj4gY29ubmVjdGVk IHRvIHRoZSBKTWljcm9uIGNvbnRyb2xlciBvbiBteSBtb3RoZXJib2FyZC4KPj4gPj4gQXQgbGVh c3QgaW4gbXkgY2FzZSwgYW55d2F5Li4uCj4+ID4+IENoYW5naW5nIGtlcm5lbCBjb25maWcgdG8g Q09ORklHX1BDSUVBU1BNPW4gbWFrZXMgdGhlIGRyaXZlcwo+PiA+PiBhdHRhY2hlZCB0byB0aGUg Sk1pY3JvbiBTQVRBL1BBVEEgY29udHJvbGxlciB1c2FibGUgYWdhaW4uCj4+ID4gV2hlbiB5b3Ug ZW5hYmxlIHRoaXMgb3B0aW9uLCBkaWQgeW91IGNoYW5nZSBhbnkgQVNQTSBwb2xpY3k/IEJ5IGRl ZmF1bHQsCj4+ID4gd2UgYXJlIHVzaW5nIHRoZSBCSU9TIHNldHRpbmcsIHNvIGl0IHNob3VsZG4n dCBjaGFuZ2UgYW55IHRoaW5nLgo+PiA+Cj4+Cj4+IE5vLCBJIGRpZCBub3QgY2hhbmdlIGFueSBB U1BNIHBvbGljeSwgbWFpbmx5IGJlY2F1c2UgSSBkbyBub3QgaG93Lgo+Pgo+PiA+IEFsc28gY2Fu IHlvdSBwbGVhc2Ugc2VuZCBtZSB0aGUgJ2xzcGNpIC12dnZ4eHh4JyBvdXRwdXQgd2l0aC93aXRo b3V0IHRoZQo+PiA+IEFTUE0gZW5hYmxlZD8KPj4gPgo+IENhbiB5b3UgcGxlYXNlIHRyeSBiZWxv dyBwYXRjaD8KCkkgY29uZmlybSB0aGF0IHRoZSBwYXRjaCBmaXhlcyB0aGUgaXNzdWUgd2hlbiBD T05GSUdfQVNQTSBpcyBlbmFibGVkLgoKPiBUaGUgU2xvdCAwMzowMC4qIG9mIEpNaWNyb24gY29u dHJvbGxlciBoYXMgdHdvIGZ1bmN0aW9ucywgYnV0IG9uZSBpcwo+IFBDSUUgZW5kcG9pbnQgdGhl IG90aGVyIGlzbid0 ...
Jesse, can you take this patch. It should be safe for 2.6.26. Thanks, Shaohua --
