[RFC] IDE 80-core cable detect - chipset-specific code to over-ride eighty_ninty_three()

From: Athol Mullen
Date: Sat Feb 07 2004 - 01:05:44 EST


(Don't CC. I read lkml via linux.kernel newsgroup.)

Specific to parallel IDE with UDMA. Relates to code that is the same from
2.4.22 to 2.6.1.

After looking through the Intel specs for the ICH5, I discovered that they
specify that the BIOS is supposed to initialise bit flags for the presence of
80-core ribbon for each drive. According to Intel, the OS is supposed to
rely upon those flags in preference to the word-93 bit. This appears to
cover all ICH chipsets capable of UDMA modes that require 80-core cabling,
and works on both the ICH4 and ICH5 I have here.

I have a drive that fails the word93 bit test with a known 80-core cable. The
piix driver sets the drive up to UDMA5, but dmesg reports UDMA(33) because
eighty_ninty_three() returns 0. If this had really been a 40-core cable, I'm
not sure what would happen.

Proposal:

I'm not certain exactly how this would be implemented, but I'd like to see
eighty_ninty_three() check for chipset-specific detection code, and use the
existing word93 validation otherwise.

I have written and tested code for the intel ICH chipsets, but can't post a
patch until I know where to stick it. :-)

Related:

eighty_ninty_three() should only be called if there is a possibility of using
a mode where it matters. I intend to submit some patches that rearrange the
logic to avoid calling it if the best mode doesn't need it.

--
Athol
<http://cust.idl.com.au/athol>
Linux Registered User # 254000
I'm a Libran Engineer. I don't argue, I discuss.

--
Regards,

Athol
--
Athol Mullen
Mullen Automotive Engineering
athol@xxxxxxxxxx
24 Newcastle St CARDIFF NSW 2285
Ph/Fax (02) 4956 8030, Mob. 0414 685537
---
Confidentiality Statement:
Information in this message is provided to the intended recipient in
confidence and is provided conditional upon its not being made available to
any other party without the express permission of the author. Release of any
part of this message under freedom of information or similar legislation is
specifically not permitted and if such release is a condition of acceptance,
the recipient must not accept this message.

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