linux-kernel.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Greg KH <gregkh@suse.de>
To: linux-kernel@vger.kernel.org, stable@kernel.org
Cc: Justin Forbes <jmforbes@linuxtx.org>,
	Zwane Mwaikambo <zwane@arm.linux.org.uk>,
	"Theodore Ts'o" <tytso@mit.edu>,
	Randy Dunlap <rdunlap@xenotime.net>,
	Dave Jones <davej@redhat.com>,
	Chuck Wolber <chuckw@quantumlinux.com>,
	Chris Wedgwood <reviews@ml.cw.f00f.org>,
	Michael Krufky <mkrufky@linuxtv.org>,
	Chuck Ebbert <cebbert@redhat.com>,
	Domenico Andreoli <cavokz@gmail.com>, Willy Tarreau <w@1wt.eu>,
	Rodrigo Rubira Branco <rbranco@la.checkpoint.com>,
	Jake Edge <jake@lwn.net>, Eugene Teo <eteo@redhat.com>,
	torvalds@linux-foundation.org, akpm@linux-foundation.org,
	alan@lxorguk.ukuu.org.uk, Tejun Heo <tj@kernel.org>,
	Jeff Garzik <jgarzik@redhat.com>
Subject: [patch 10/32] ata_piix: add workaround for Samsung DB-P70
Date: Fri, 20 Mar 2009 15:26:21 -0700	[thread overview]
Message-ID: <20090320222710.508333389@mini.kroah.org> (raw)
In-Reply-To: <20090320231037.GA2732@kroah.com>

[-- Attachment #1: ata_piix-add-workaround-for-samsung-db-p70.patch --]
[-- Type: text/plain, Size: 2840 bytes --]

2.6.27-stable review patch.  If anyone has any objections, please let us know.

------------------

From: Tejun Heo <tj@kernel.org>

commit e9c1670c2a14ef9cc20d86b24b829f3947aad34e upstream.

Samsung DB-P70 somehow botched the first ICH9 SATA port.  The board
doesn't expose the first port but somehow SStatus reports link online
while failing SRST protocol leading to repeated probe failures and
thus long boot delay.

Because the BIOS doesn't carry any identifying DMI information, the
port can't be blacklisted safely.  Fortunately, the controller does
have subsystem vendor and ID set.  It's unclear whether the subsystem
IDs are used only for the board but it can be safely worked around by
disabling SIDPR access and just using SRST works around the problem.
Even when the workaround is triggered on an unaffected board the only
side effect will be missing SCR access.

Signed-off-by: Tejun Heo <tj@kernel.org>
Reported-by: Joseph Jang <josephjang@gmail.com>
Reported-by: Jonghyon Sohn <mrsohn@gmail.com>
Signed-off-by: Jeff Garzik <jgarzik@redhat.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>

---
 drivers/ata/ata_piix.c |   37 +++++++++++++++++++++++++++++++++++++
 1 file changed, 37 insertions(+)

--- a/drivers/ata/ata_piix.c
+++ b/drivers/ata/ata_piix.c
@@ -1363,6 +1363,39 @@ static const int *__devinit piix_init_sa
 	return map;
 }
 
+static bool piix_no_sidpr(struct ata_host *host)
+{
+	struct pci_dev *pdev = to_pci_dev(host->dev);
+
+	/*
+	 * Samsung DB-P70 only has three ATA ports exposed and
+	 * curiously the unconnected first port reports link online
+	 * while not responding to SRST protocol causing excessive
+	 * detection delay.
+	 *
+	 * Unfortunately, the system doesn't carry enough DMI
+	 * information to identify the machine but does have subsystem
+	 * vendor and device set.  As it's unclear whether the
+	 * subsystem vendor/device is used only for this specific
+	 * board, the port can't be disabled solely with the
+	 * information; however, turning off SIDPR access works around
+	 * the problem.  Turn it off.
+	 *
+	 * This problem is reported in bnc#441240.
+	 *
+	 * https://bugzilla.novell.com/show_bug.cgi?id=441420
+	 */
+	if (pdev->vendor == PCI_VENDOR_ID_INTEL && pdev->device == 0x2920 &&
+	    pdev->subsystem_vendor == PCI_VENDOR_ID_SAMSUNG &&
+	    pdev->subsystem_device == 0xb049) {
+		dev_printk(KERN_WARNING, host->dev,
+			   "Samsung DB-P70 detected, disabling SIDPR\n");
+		return true;
+	}
+
+	return false;
+}
+
 static void __devinit piix_init_sidpr(struct ata_host *host)
 {
 	struct pci_dev *pdev = to_pci_dev(host->dev);
@@ -1376,6 +1409,10 @@ static void __devinit piix_init_sidpr(st
 		if (hpriv->map[i] == IDE)
 			return;
 
+	/* is it blacklisted? */
+	if (piix_no_sidpr(host))
+		return;
+
 	if (!(host->ports[0]->flags & PIIX_FLAG_SIDPR))
 		return;
 



  parent reply	other threads:[~2009-03-20 23:17 UTC|newest]

Thread overview: 33+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
     [not found] <20090320222611.872315885@mini.kroah.org>
2009-03-20 23:10 ` [patch 00/32] 2.6.27.21-stable review Greg KH
2009-03-20 22:26   ` [patch 01/32] [IA64] Build fix for __early_pfn_to_nid() undefined link error Greg KH
2009-03-20 22:26   ` [patch 02/32] Add -fwrapv to gcc CFLAGS Greg KH
2009-03-20 22:26   ` [patch 03/32] Move cc-option to below arch-specific setup Greg KH
2009-03-20 22:26   ` [patch 04/32] nfsd: nfsd should drop CAP_MKNOD for non-root Greg KH
2009-03-20 22:26   ` [patch 05/32] NFSD: provide encode routine for OP_OPENATTR Greg KH
2009-03-20 22:26   ` [patch 06/32] ALSA: Fix vunmap and free order in snd_free_sgbuf_pages() Greg KH
2009-03-20 22:26   ` [patch 07/32] ALSA: hda - Fix DMA mask for ATI controllers Greg KH
2009-03-20 22:26   ` [patch 08/32] ALSA: mixart, fix lock imbalance Greg KH
2009-03-20 22:26   ` [patch 09/32] ALSA: pcm_oss, fix locking typo Greg KH
2009-03-20 22:26   ` Greg KH [this message]
2009-03-20 22:26   ` [patch 11/32] dm crypt: fix kcryptd_async_done parameter Greg KH
2009-03-20 22:26   ` [patch 12/32] dm ioctl: validate name length when renaming Greg KH
2009-03-20 22:26   ` [patch 13/32] dm io: respect BIO_MAX_PAGES limit Greg KH
2009-03-20 22:26   ` [patch 14/32] eventfd: remove fput() call from possible IRQ context Greg KH
2009-03-20 22:26   ` [patch 15/32] S390: __div64_31 broken for CONFIG_MARCH_G5 Greg KH
2009-03-20 22:26   ` [patch 16/32] thinkpad-acpi: fix module autoloading for older models Greg KH
2009-03-20 22:26   ` [patch 17/32] V4L/DVB (10218): cx23885: Fix Oops for mixed install of analog and digital only cards Greg KH
2009-03-20 22:26   ` [patch 18/32] Fix misreporting of #cores as #hyperthreads for Q9550 Greg KH
2009-03-20 22:26   ` [patch 19/32] powerpc: Remove extra semicolon in fsl_soc.c Greg KH
2009-03-20 22:26   ` [patch 20/32] USB: EHCI: expedite unlinks when the root hub is suspended Greg KH
2009-03-20 22:26   ` [patch 21/32] USB: EHCI: Fix isochronous URB leak Greg KH
2009-03-20 22:26   ` [patch 22/32] USB: Add Vendor/Product ID for new CDMA U727 to option driver Greg KH
2009-03-20 22:26   ` [patch 23/32] USB: option.c: add ZTE 622 modem device Greg KH
2009-03-20 22:26   ` [patch 24/32] USB: Add device id for Option GTM380 to option driver Greg KH
2009-03-20 22:26   ` [patch 25/32] USB: Option: let cdc-acm handle Sony Ericsson F3507g / Dell 5530 Greg KH
2009-03-20 22:26   ` [patch 26/32] USB: serial: add FTDI USB/Serial converter devices Greg KH
2009-03-20 22:26   ` [patch 27/32] USB: serial: ftdi: enable UART detection on gnICE JTAG adaptors blacklist interface0 Greg KH
2009-03-20 22:26   ` [patch 28/32] USB: serial: new cp2101 device id Greg KH
2009-03-20 22:26   ` [patch 29/32] USB: storage: Unusual USB device Prolific 2507 variation added Greg KH
2009-03-20 22:26   ` [patch 30/32] USB: unusual_devs: Add support for GI 0431 SD-Card interface Greg KH
2009-03-20 22:26   ` [patch 31/32] USB: Updated unusual-devs entry for USB mass storage on Nokia 6233 Greg KH
2009-03-20 22:26   ` [patch 32/32] USB: usbfs: keep async URBs until the device file is closed Greg KH

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=20090320222710.508333389@mini.kroah.org \
    --to=gregkh@suse.de \
    --cc=akpm@linux-foundation.org \
    --cc=alan@lxorguk.ukuu.org.uk \
    --cc=cavokz@gmail.com \
    --cc=cebbert@redhat.com \
    --cc=chuckw@quantumlinux.com \
    --cc=davej@redhat.com \
    --cc=eteo@redhat.com \
    --cc=jake@lwn.net \
    --cc=jgarzik@redhat.com \
    --cc=jmforbes@linuxtx.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=mkrufky@linuxtv.org \
    --cc=rbranco@la.checkpoint.com \
    --cc=rdunlap@xenotime.net \
    --cc=reviews@ml.cw.f00f.org \
    --cc=stable@kernel.org \
    --cc=tj@kernel.org \
    --cc=torvalds@linux-foundation.org \
    --cc=tytso@mit.edu \
    --cc=w@1wt.eu \
    --cc=zwane@arm.linux.org.uk \
    /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).