--- libata-pmp.c.old 2013-01-13 13:42:56.582780772 -0800
+++ libata-pmp.c 2013-01-13 13:43:33.670964680 -0800
@@ -289,24 +289,24 @@

  /* Disable sending Early R_OK.
  * With "cached read" HDD testing and multiple ports busy on a SATA
- * host controller, 3726 PMP will very rarely drop a deferred
+ * host controller, 3x26 PMP will very rarely drop a deferred
  * R_OK that was intended for the host. Symptom will be all
  * 5 drives under test will timeout, get reset, and recover.
  */
- if (vendor == 0x1095 && devid == 0x3726) {
+ if (vendor == 0x1095 && (devid == 0x3726 || devid == 0x3826)) {
  u32 reg;

  err_mask = sata_pmp_read(&ap->link, PMP_GSCR_SII_POL, &reg);
  if (err_mask) {
  rc = -EIO;
- reason = "failed to read Sil3726 Private Register";
+ reason = "failed to read Sil3x26 Private Register";
  goto fail;
  }
  reg &= ~0x1;
  err_mask = sata_pmp_write(&ap->link, PMP_GSCR_SII_POL, reg);
  if (err_mask) {
  rc = -EIO;
- reason = "failed to write Sil3726 Private Register";
+ reason = "failed to write Sil3x26 Private Register";
  goto fail;
  }
  }
@@ -383,8 +383,8 @@
  u16 devid = sata_pmp_gscr_devid(gscr);
  struct ata_link *link;

- if (vendor == 0x1095 && devid == 0x3726) {
- /* sil3726 quirks */
+ if (vendor == 0x1095 && (devid == 0x3726 || devid == 0x3826)) {
+ /* sil3x26 quirks */
  ata_for_each_link(link, ap, EDGE) {
  /* link reports offline after LPM */
  link->flags |= ATA_LFLAG_NO_LPM;
