From: Sergei Shtylyov <sshtylyov@mvista.com>
To: Jiri Slaby <jslaby@suse.cz>
Cc: jbarnes@virtuousgeek.org, linux-pci@vger.kernel.org,
linux-ide@vger.kernel.org, linux-kernel@vger.kernel.org,
jirislaby@gmail.com, Bjorn Helgaas <bjorn.helgaas@hp.com>,
"David S. Miller" <davem@davemloft.net>,
Thomas Renninger <trenn@suse.de>,
Linus Torvalds <torvalds@linux-foundation.org>
Subject: Re: [PATCH option B 2/2] PCI: do not create quirk I/O regions below PCIBIOS_MIN_IO for ICH
Date: Fri, 11 Feb 2011 15:09:40 +0300 [thread overview]
Message-ID: <4D552704.1000509@ru.mvista.com> (raw)
In-Reply-To: <1295001146-14910-2-git-send-email-jslaby@suse.cz>
Hello.
On 14-01-2011 13:32, Jiri Slaby wrote:
> Some broken BIOSes on ICH4 chipset report an ACPI region which is in
> conflict with legacy IDE ports when ACPI is disabled. Even though the
> regions overlap, IDE ports are working correctly (we cannot find out
> the decoding rules on chipsets).
>
> So the only problem is the reported region itself, if we don't reserve
> the region in the quirk everything works as expected.
> This patch avoids reserving any quirk regions below PCIBIOS_MIN_IO
> which is 0x1000. Some regions might be (and are by a fast google
> query) below this border, but the only difference is that they won't
> be reserved anymore. They should still work though the same as before.
> The conflicts look like (1f.0 is bridge, 1f.1 is IDE ctrl):
> pci 0000:00:1f.1: address space collision: [io 0x0170-0x0177] conflicts with 0000:00:1f.0 [io 0x0100-0x017f]
> At 0x0100 a 128 bytes long ACPI region is reported in the quirk for
> ICH4. ata_piix then fails to find disks because the IDE legacy ports
> are zeroed:
> ata_piix 0000:00:1f.1: device not available (can't reserve [io 0x0000-0x0007])
> References: https://bugzilla.novell.com/show_bug.cgi?id=558740
> Signed-off-by: Jiri Slaby <jslaby@suse.cz>
> Cc: Bjorn Helgaas <bjorn.helgaas@hp.com>
> Cc: Jesse Barnes <jbarnes@virtuousgeek.org>
> Cc: "David S. Miller" <davem@davemloft.net>
> Cc: Thomas Renninger <trenn@suse.de>
> Cc: Linus Torvalds <torvalds@linux-foundation.org>
[...]
> diff --git a/drivers/pci/quirks.c b/drivers/pci/quirks.c
> index 8db2426..b3ab2f7 100644
> --- a/drivers/pci/quirks.c
> +++ b/drivers/pci/quirks.c
> @@ -554,18 +554,30 @@ static void __devinit quirk_ich4_lpc_acpi(struct pci_dev *dev)
> u32 region;
> u8 enable;
>
> + /*
> + * The check for PCIBIOS_MIN_IO is to ensure we won't create a conflict
> + * with low legacy (and fixed) ports. We don't know the decoding
> + * priority and can't tell whether the legacy device or the one created
> + * here is really at that address. This happens on boards with broken
> + * BIOSes.
> + */
> +
> pci_read_config_byte(dev, ICH_ACPI_CNTL,&enable);
> if (enable& ICH4_ACPI_EN) {
> pci_read_config_dword(dev, ICH_PMBASE,®ion);
> - quirk_io_region(dev, region, 128, PCI_BRIDGE_RESOURCES,
> - "ICH4 ACPI/GPIO/TCO");
> + region &= PCI_BASE_ADDRESS_IO_MASK;
Why don't you do the masking right in the patch #1? And is it really
necessary if the region size is known to be 128 bytes?
WBR, Sergei
next prev parent reply other threads:[~2011-02-11 12:10 UTC|newest]
Thread overview: 25+ messages / expand[flat|nested] mbox.gz Atom feed top
2011-01-06 15:17 [PATCH 1/1] PCI: tune up ICH4 quirk for broken BIOSes Jiri Slaby
2011-01-06 19:24 ` Bjorn Helgaas
2011-01-07 20:44 ` Jiri Slaby
2011-01-07 22:37 ` Jesse Barnes
2011-01-07 23:13 ` Jiri Slaby
2011-01-07 23:03 ` Bjorn Helgaas
2011-01-07 23:29 ` Jiri Slaby
2011-01-08 0:16 ` Bjorn Helgaas
2011-01-08 9:58 ` Jiri Slaby
2011-01-10 18:40 ` Bjorn Helgaas
2011-01-13 10:07 ` Jiri Slaby
2011-01-13 10:07 ` Jiri Slaby
2011-01-13 23:19 ` Bjorn Helgaas
2011-01-14 0:15 ` Linus Torvalds
2011-01-14 10:31 ` Jiri Slaby
2011-01-14 10:32 ` [PATCH 1/2] PCI: add more checking to ICH region quirks Jiri Slaby
2011-01-14 10:32 ` [PATCH option B 2/2] PCI: do not create quirk I/O regions below PCIBIOS_MIN_IO for ICH Jiri Slaby
2011-02-11 12:09 ` Sergei Shtylyov [this message]
2011-02-11 14:16 ` Jiri Slaby
2011-01-14 10:32 ` [PATCH option A 2/2] PCI: do not create quirk I/O regions below PCIBIOS_MIN_IO Jiri Slaby
2011-01-14 16:10 ` [PATCH 1/1] PCI: tune up ICH4 quirk for broken BIOSes Bjorn Helgaas
2011-01-15 15:39 ` Robert Hancock
2011-02-08 9:55 ` Jiri Slaby
2011-02-08 21:20 ` Jesse Barnes
2011-02-11 10:32 ` Jiri Slaby
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=4D552704.1000509@ru.mvista.com \
--to=sshtylyov@mvista.com \
--cc=bjorn.helgaas@hp.com \
--cc=davem@davemloft.net \
--cc=jbarnes@virtuousgeek.org \
--cc=jirislaby@gmail.com \
--cc=jslaby@suse.cz \
--cc=linux-ide@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-pci@vger.kernel.org \
--cc=torvalds@linux-foundation.org \
--cc=trenn@suse.de \
/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.