Re: [PATCH] updates to Vitesse SATA driver
From: Jeff Garzik <hidden>
Date: 2004-09-30 03:28:35
Jeremy Higdon wrote:
On Wed, Sep 29, 2004 at 03:32:34PM -0700, Dave wrote:quoted
On Wed, 29 Sep 2004 18:19:40 -0400, Jeff Garzik [off-list ref] wrote:quoted
So where did the discussion on this patch land?The only part that made sense to me was the LED patch, which should just be a single line of code.
So maybe you or Dave could be convinced to roll that into a separate patch, since we have consensus on that item?
quoted
I believe waiting for you to comment on whether to put in a hook for controllers that do not support ATA_NIEN so it can mask/unmask IRQ with a fixup. Even though the spec for this particular SATA controller says the bit is reserved, it seems to work just fine. From my understanding, the registers are actually on the drives, and the ones we write to the HBAs are just shadow registers right? I suppose either we can use the "undocumented" reserved bit for ATA_NIEN, or provide some sort of special hook in lib_ata core to clear the interrupt bit....I don't think we need this. In vsc_sata_tf_load(), we see if the ATA_NIEN bit has changed and call vsc_intr_mask_update() as necessary.quoted
Obviosly if it is working on IA32 or IA64, this code must be only scanning device 0 per port and not device 1. Not sure why it is only scanning 1 device on IA platforms, but both on XScale. Either way we have a corner case here that should be addressed....Jeff, I don't remember how libata knows how many devices a port can have. Which field is it?
By default it only scans device 0, since SATA is a point-to-point connection where there is no possibility for more than one device :) However, some hardware chooses to emulate master/slave mode. Use of this, particularly on Vitesse/Intel, is highly discouraged in favor of DPA mode. I would prefer to not support master/slave mode at all. Technically speaking, one sets the ATA_FLAG_SLAVE_POSS flag to tell the libata core to scan for device 1. If we are talking about Port Multipliers, those aren't supported at all yet. Jeff