On Thu, Mar 06, 2008 at 06:22:25PM +0100, Sebastian Siewior wrote:
The problem is more or less that I can't pass the value to the other probe function and the global variable doesn't look all that pretty. Am I missing something here?
This is also a problem for the wm97xx touchscreen drivers. They have a similar issue with wanting to get platform configuration into a device probed off the AC97 bus with the additional issue that features like syncing with screen redraw will often require code to interface with other hardware in the system. If something is added to the AC97 data it'd be helpful if it were a void * so the wm97xx touch driver could use it to pass a struct with more data.
This is not really an AC97-specific issue - any device discoverd via a bus is going to have a similar thing if it needs to obtain platform data. I don't know how OpenFirmware normally handles these things? It's going to be an issue for other buses like PCI too in many systems, MAC addresses for NICs being the example I've run into myself in a previous life.
In the case of the wm97xx touchscreen we've avoided the problem by having the touch driver register platform devices; this isn't ideal but works well in the systems which are the typical targets for these devices. I had been intending to revisit this issue at some point but it's quite a way down my TODO list.
The wm97xx drivers touch aren't in mainline yet - if you want to have a look the most current upstream submission versions can be found in the upstream branch of:
git://opensource.wolfsonmicro.com/linux-2.6-touch
gitweb:
http://opensource.wolfsonmicro.com/cgi-bin/gitweb.cgi?p=linux-2.6-touch.git;...