Re: new ata_port_operations for .pmp_{read,write} ?
From: Mark Lord <hidden>
Date: 2008-02-25 04:28:17
Tejun Heo wrote:
Hello, Mark. Mark Lord wrote:quoted
Mark Lord wrote:quoted
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.quoted
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.
.. Okay, then. MASSIVE code-duplication, here I come! -ml