Messages in this thread | | | From | "Benjamin Herrenschmidt" <> | Subject | Re: IDE janitoring comments | Date | Tue, 24 Sep 2002 13:35:35 +0200 |
| |
>I need different transfer functions depending on whether drive >control data(like IDENT,SMART) or HD sectors are to be transfered. >Control data requires byteswapping to correct bus-byteorder >whereas sector r/w has to be raw for compatibility. > >So that will require 2 additional iops pointers and some change >in ide_handler_parser or ide_cmd_type_parser to select the >appropriate version depending on the drive command.
No, it doesn't. There are already separate iops for control and datas, typically {in,out}{b,w,l} are for control (though only "b" versions are really useful and {in,out}s{b,w,l} are for datas.
There are cases where ide_{input,output}_data my try to "re-invent" the "s" functions with a loop of non-s ones, but you shouldn't have to care about that case. It might actually work for you because of your weird wiring, but it's definitely broken for other BE archs, and so drive->slow shouldn't be set on anything but x86.
Actually, the whole set of iops could probably be shrunk down to just {in,out}b for control and {in,out}s{w,l} for datas. Though we probably want, ultimately, to change that to some different (higher level ?) kind of abstraction.
Ben.
- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
| |