Re: IDE janitoring comments

Benjamin Herrenschmidt (benh@kernel.crashing.org)
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/