Hello, Mark.
Mark Lord wrote:
> Mark Lord wrote:
>> An alternative to all this, might be to expose the "select_pmp()"
>> function shown in the sample code, and have libata-pmp.c call that,
>> instead of having the new new .pmp_{read,write} functions.
> ..
>
> I wonder if this might be more viable than first thought.
>
> Say the LLD, be it ata_piix or sata_mv or sata_svw, were to provide
> an option ata_operations method for "select_pmp_port(pmp)",
> which the core could invoke prior to any direct manipulation
> of the shadow registers.
I don't really think that's a good solution. That's the quickest
solution for sata_mv but it just works around more fundamental problem
of assuming SFF behavior in core layer which we need to drop anyway.
> I really would like to keep the LLD code small, and have good solid
> core routines for non-hardware specific functionality. All of this stuff
> I'm beginning to do with sata_mv would be trivial if I wanted to bloat
> the LLD, but really.. only a tiny bit of it need be custom to sata_mv.
>
> The existing SFF reset/probe/pmp stuff is just about exactly what
> sata_mv needs.. and I feel a strong desire to not clone/duplicate
> that hard-won functionality.
I strongly agree but am having difficult time agreeing with the proposed
approach.
> Much of it I can see being shared with other half-and-half chipset drivers
> as we add PMP functionality to those.
Do we have other chips which have PMP support but still uses mixed SFF
interface?
> Maybe that's just the embedded side me showing through?
>
> It is tricky to define the right interfaces, though, as each chipset
> does throw its own unique curve balls at us.
Yeah, exactly. I think what needs to be done is to separate out SFF
assumptions from core layer, factor out SFF-proper helpers and use them
to implement LLDs for quasi-SFF controllers.
Thanks.
--
tejun
-
To unsubscribe from this list: send the line "unsubscribe linux-ide" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at http://vger.kernel.org/majordomo-info.html