On Fri, Apr 25, 2008 at 12:15:50PM +0200, Takashi Iwai wrote:
Now, you want to make it general so that you can use it for other purposes -- but what are the other purpose exactly?
In the case of the WM97xx touchscreen driver it is providing information about non-standard functionality provided by the chips which depends very strongly on how the chip has been built into the system. The touch functionality of the devices can use several multi-function pins on the device to improve performance, usually in conjunction with multi-function pins on the SoC. The driver can also use callback functions to synchronise touchscreen samples with display updates in order to minimise electrical interference to the touch panel caused by activity sending data to the LCD.
This part of the devices is effectively using AC97 as a generic device access bus rather than using the standard device classes AC97 codecs normally implement (there is standard AC97 codec functionality in the devices as well, this is in addition to that).
IOW, such data
must be passed through ac97 struct inevitably?
Well, the wm97xx-ts driver is currently using an alternative method of getting what it needs but the way it does that leaves something to be desired. This comes back to what I was saying about providing a generic way of getting platform-specific data into devices enumerated via auto probed buses.