Re: 80 wire cable detection patch

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Signed-off-by: George Kibardin <george-kibardin@xxxxxxxxx>

--- drivers/ide/ide-iops.c.orig 2008-01-03 18:35:23.000000000 +0300
+++ drivers/ide/ide-iops.c      2008-01-03 18:12:29.000000000 +0300
@@ -612,12 +612,12 @@
              printk(KERN_DEBUG "%s: skipping word 93 validity check\n",
                                drive->name);

-       if (hwif->cbl != ATA_CBL_PATA80 && !ivb)
-               goto no_80w;
-
      if (ide_dev_is_sata(id) && !ivb)
              return 1;

+       if (hwif->cbl != ATA_CBL_PATA80 && !ivb)
+               goto no_80w;
+
      /*
       * FIXME:
       * - change master/slave IDENTIFY order

Best,
George


Hi,

On Thursday 03 January 2008, George Kibardin wrote:
Hi Bartlomiej,

I hope that you are the right person to look at my proposal.
I use 2.6.23-gentoo-r3 kernel on VIA Epia EX motherboard with WD SATA HDD connected to it. (I don't understand exactly why, but kernel thinks that this is not SATA HDD. It assigns name hda to it, there is no words SATA in logs, loading via_sata modules doesn't change situation, via82cxxx module detect this chipset correctly, there is no word SATA in BIOS etc.). During boot I get:

There is probably PATA->SATA bridge on the motherboard.

host side 80-wire cable detection failed, limiting max speed to UDMA33

(of course it is true - I don't have even 40 wires :-)
Digging the code I've figured out that for some reason checking that there is 80 wire cable connected happens before checking that drive is SATA. I've changed the order and this fixed my problem. Unfortunately, I have not enough hardware to test this. The only thing I'm wondering - is this bug or feature? Maybe you know the reason why sata check should go almost last?

Your fix looks fine and is similar to how libata handles PATA->SATA bridges.

Please add "Signed-off-by:" line,

--- drivers/ide/ide-iops.c.orig 2008-01-03 18:35:23.000000000 +0300
+++ drivers/ide/ide-iops.c      2008-01-03 18:12:29.000000000 +0300
@@ -612,12 +612,12 @@
                printk(KERN_DEBUG "%s: skipping word 93 validity check\n",
                                  drive->name);

-       if (hwif->cbl != ATA_CBL_PATA80 && !ivb)
-               goto no_80w;
-
        if (ide_dev_is_sata(id))
                return 1;

change it to 'if (ide_dev_is_sata(id) && !ivb)' (some ATAPI devices needing
IVB quirk like to identify themselves like SATA ones, but they aren't),

+       if (hwif->cbl != ATA_CBL_PATA80 && !ivb)
+               goto no_80w;
+
        /*
         * FIXME:
         * - change master/slave IDENTIFY order


and resubmit (cc:ing linux-ide@xxxxxxxxxxxxxxx mailing list).

Thanks,
Bart


-
To unsubscribe from this list: send the line "unsubscribe linux-ide" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html

[Index of Archives]     [Linux Filesystems]     [Linux SCSI]     [Linux RAID]     [Git]     [Kernel Newbies]     [Linux Newbie]     [Security]     [Netfilter]     [Bugtraq]     [Yosemite News]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Samba]     [Device Mapper]

  Powered by Linux