On Sun, 2 Nov 2008, Brad Boyer wrote:
On Sun, Nov 02, 2008 at 12:21:23PM +0100, Laurent Vivier wrote:
Le 2 nov. 08 à 09:54, Geert Uytterhoeven a écrit :
The preferred way to do this these days is to create a platform
device with a struct resource that points to the SWIMBase.
Is this what Finn explains also in his answer ? If so, I agree.
Not exactly. What Finn suggested is to match the way we handle many of
the other on-board things like ADB and SCSI. What Geert suggests is a
much more recent way to do things that we generally haven't done for
Mac-only drivers. I think Finn used it for the new Sonic ethernet driver
because we share it with other systems. The code in macsonic.c also has
the extra complexity from having both NuBus and on-board hardware to
support, and NuBus also hasn't been updated to the new driver model.
Finn's suggestion of using the macintosh_config entry and data table is
the easiest way to get it working, but Geert's method would move to the
real device/driver model that most other systems are using now.
I agree with Geert. Ignore my comment about device_initcall -- I was
looking at via-cuda.c but that is not a good example.
drivers/scsi/mac_esp.c is a better example.
esp_mac_probe checks the macintosh_config entry. That and esp_mac_remove
are the platform device entry points Geert referred to. The module entry
points are mac_esp_init and mac_esp_exit. I think you could use either of
the platform device probe routine or the module init routine to set the
base address.
Finn
Ideally this would be a macio driver instead of a platform driver in my
opinion, but I haven't finished getting the macio bus code working on
m68k.
Brad Boyer
flar@xxxxxxxxxxxxx
--
To unsubscribe from this list: send the line "unsubscribe linux-m68k" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html