Re: [Bug 41722] Clevo M5X0JE hangs in ACPI init

From: Yinghai Lu
Date: Thu Jan 12 2012 - 00:06:58 EST


On Tue, Jan 10, 2012 at 11:04 PM, Rogério Brito <rbrito@xxxxxxxxxx> wrote:
> Hi, Yinghai.
>
> On Tue, Jan 10, 2012 at 03:07, Yinghai Lu <yinghai@xxxxxxxxxx> wrote:
>> On Mon, Jan 9, 2012 at 6:41 PM, Rogério Brito <rbrito@xxxxxxxxxx> wrote:
>> I have some pending patches that may fix bridge resource resizing.
>>
>> Can you try them at
>>
>>      git://git.kernel.org/pub/scm/linux/kernel/git/yinghai/linux-yinghai.git
>> for-pci2
>>
>> also please boot with "debug ignore_loglevel"
>
> Grabbing it right now. Will report it after I get some sleep (5AM here).

please try attached patch, it will fix one bios wrong setting.

>
>> BTW, did you try boot with "pci=use_crs" and not with "acpi=off" ?
>
> I tried, but I got a hang (both with Linux---many versions---and with
> FreeBSD). With Linux I get:
>
>   http://www.ime.usp.br/~rbrito/linux/clevo/boot-without-acpi-off.jpg
>

need to work on that later.

Yinghai
Subject: [PATCH] PCI: Disable cardbus bridge MEM1 pref CTL

Some BIOS enable both pref for MEM0 and MEM1.

but we assume MEM1 is non-pref...

Signed-off-by: Yinghai Lu <yinghai@xxxxxxxxxx>

---
drivers/pci/setup-bus.c | 8 ++++++++
1 file changed, 8 insertions(+)

Index: linux-2.6/drivers/pci/setup-bus.c
===================================================================
--- linux-2.6.orig/drivers/pci/setup-bus.c
+++ linux-2.6/drivers/pci/setup-bus.c
@@ -774,6 +774,14 @@ static void pci_bus_size_cardbus(struct
if (realloc_head)
add_to_list(realloc_head, bridge, b_res+1, pci_cardbus_io_size, 0 /* dont care */);

+ /* MEM1 must not be pref mmio */
+ pci_read_config_word(bridge, PCI_CB_BRIDGE_CONTROL, &ctrl);
+ if (ctrl & PCI_CB_BRIDGE_CTL_PREFETCH_MEM1) {
+ ctrl &= ~PCI_CB_BRIDGE_CTL_PREFETCH_MEM1;
+ pci_write_config_word(bridge, PCI_CB_BRIDGE_CONTROL, ctrl);
+ pci_read_config_word(bridge, PCI_CB_BRIDGE_CONTROL, &ctrl);
+ }
+
/*
* Check whether prefetchable memory is supported
* by this bridge.