From: Bartlomiej Zolnierkiewicz <bzolnier@gmail.com>
To: jayakumar ide <jayakumar.ide@gmail.com>
Cc: linux-ide@vger.kernel.org
Subject: Re: eighty_ninty_three
Date: Thu, 22 Sep 2005 11:36:20 +0200 [thread overview]
Message-ID: <58cb370e05092202364ddf0e5f@mail.gmail.com> (raw)
In-Reply-To: <ed723e8205092200315d6d1f2a@mail.gmail.com>
On 9/22/05, jayakumar ide <jayakumar.ide@gmail.com> wrote:
> quick question:
>
> 598 /*
> 599 * All hosts that use the 80c ribbon must use!
> 600 * The name is derived from upper byte of word 93 and the 80c ribbon.
> 601 */
> 602 u8 eighty_ninty_three (ide_drive_t *drive)
> 603 {
> 604 if(HWIF(drive)->udma_four == 0)
> 605 return 0;
> 606 if (!(drive->id->hw_config & 0x6000))
> 607 return 0;
> 608 #ifndef CONFIG_IDEDMA_IVB
> 609 if(!(drive->id->hw_config & 0x4000))
> 610 return 0;
> 611 #endif /* CONFIG_IDEDMA_IVB */
> 612 return 1;
> 613 }
>
> does that mean that 893() will return 0 if the drive is not udma4
No, hwif->udma_four is 1 if host detects 80-wires cable
(0 otherwise except when forced by "ide?=ata66" kernel parameter).
> capable? what's the rest of the stuff about 0x6000 and 0x4000? i took
> a quick look at a diamondmax spec and it says:
>
> http://www.maxtor.com/_files/maxtor/en_us/documentation/manuals/diamondmax_plus_9_manual.pdf
>
> Word 93 Hardware reset result. The contents of bits (12:0) of this
> word shall change only
> during the execution of a hardware reset
> 15: Shall be cleared to zero.
> 14: Shall be set to one.
> 13: 1 = device detected CBLID- above ViH. 0 = device detected CBLID- below
> ViL
> 12-8: Device 1 hardware reset result. Device 0 shall clear these bits to zero.
> Device shall set these bits as follows:
> 12: Reserved.
> 11: 0 = Device 1 did not assert PDIAG
>
> So I'm not sure I understand what the 0x6000 and 0x4000 check does. I
Drive side cable detection, some older drives get it wrong.
> was kind of hoping it would be some way to detect whether the cable
> was 40 core or 80 core. The reason I'm asking is because I'm trying to
> figure out the appropriate usage for eighty_ninty_three, ratemask and
> ide_rate_filter. I think I should call eighty93 in ratemask() and then
> use that to decide what the maximum mode should be. so if eighty93
> returned 0, then I would set max mode to 3 if my device spec claimed
> it was UDMA66 0-4 capable. Actually, I'm not sure about the UDMA66 0-4
Values returned by ->ratemask() are of internal use of IDE layer
so for UDMA66 capable host (not device!) ->ratemask() should return
2 if eighty_ninty_three() returns true and 1 otherwise.
Could you explain what exactly are you trying to do?
> stuff. I haven't yet understood the relationship between the
> XFER_UDMA_n and the UDMA/33/66/100 0-4 modes. If anyone has advice,
> I'm all ears.
XFER_UDMA_n is used for SETFEATURES command
(which is described in ATA spec - http://www.t13.org).
Bartlomiej
prev parent reply other threads:[~2005-09-22 9:36 UTC|newest]
Thread overview: 2+ messages / expand[flat|nested] mbox.gz Atom feed top
2005-09-22 7:31 eighty_ninty_three jayakumar ide
2005-09-22 9:36 ` Bartlomiej Zolnierkiewicz [this message]
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=58cb370e05092202364ddf0e5f@mail.gmail.com \
--to=bzolnier@gmail.com \
--cc=jayakumar.ide@gmail.com \
--cc=linux-ide@vger.kernel.org \
/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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.