lkml.org 
[lkml]   [2004]   [Dec]   [14]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
Patch in this message
/
Date
From
SubjectRe: [2.6.10-rc2+] ide1=ata66 -- OBSOLETE OPTION, WILL BE REMOVED SOON!
Bartlomiej Zolnierkiewicz wrote:

>>I do need a way to force an 80c cable on this AMD756 (ATA66 max) board,
>>since the BIOS doesn't seem to be setting the cable bits correctly.
>
>
> Ugh, I checked AMD datasheets and AMD756 doesn't support host
> side cable detection. Well, we can try doing disk side only for it.
> [ ATi and ITE (in -ac kernels) drivers are also doing this. ]
>
> --- amd74xx.c.orig 2004-11-02 14:17:14.000000000 +0100
> +++ amd74xx.c 2004-12-13 22:41:50.406229168 +0100
> @@ -344,10 +344,8 @@
> break;
>
> case AMD_UDMA_66:
> - pci_read_config_dword(dev, AMD_UDMA_TIMING, &u);
> - for (i = 24; i >= 0; i -= 8)
> - if ((u >> i) & 4)
> - amd_80w |= (1 << (1 - (i >> 4)));
> + /* no host side cable detection */
> + amd_80w = 0x03;
> break;
> }
>

Well, yes, works for me I guess. Was playing around to see if I could
find something a bit more subtle but it seems nothing's available. My
BIOS does show hdc (a DVD-ROM by the way) to be udma4 in its summary
screen but it does not enable udma for it. I saw AMD_DRIVE_TIMINGS is
not used for udma (and programmed by my BIOS to the highest PIO mode the
device offers for all devices present) so also of no use...

Attached patch combines this and deleting a "use ide0=ata66" advice from
the driver.

One slight cosmetic problem, with amd_80w set unconditionally the
/proc/ide/amd74xx file's "cable type" line will now always show "80w"
and seems likely to confuse people that have 40w cables installed. I
believe the proc file may be on its way out anyway? If not, one option
could be to print "n/a" for amd_config->flags & AMD_UDMA == AMD_UDMA_66
(<= ?).

Rene.
--- linux-2.6.10-rc3/drivers/ide/pci/amd74xx.c.orig 2004-12-14 11:33:21.000000000 +0100
+++ linux-2.6.10-rc3/drivers/ide/pci/amd74xx.c 2004-12-14 16:31:22.000000000 +0100
@@ -344,10 +344,8 @@
break;

case AMD_UDMA_66:
- pci_read_config_dword(dev, AMD_UDMA_TIMING, &u);
- for (i = 24; i >= 0; i -= 8)
- if ((u >> i) & 4)
- amd_80w |= (1 << (1 - (i >> 4)));
+ /* no host side cable detection */
+ amd_80w = 0x03;
break;
}

@@ -383,8 +381,6 @@
if (amd_clock < 20000 || amd_clock > 50000) {
printk(KERN_WARNING "%s: User given PCI clock speed impossible (%d), using 33 MHz instead.\n",
amd_chipset->name, amd_clock);
- printk(KERN_WARNING "%s: Use ide0=ata66 if you want to assume 80-wire cable\n",
- amd_chipset->name);
amd_clock = 33333;
}
\
 
 \ /
  Last update: 2005-03-22 14:08    [W:0.067 / U:0.052 seconds]
©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site