Re: [PATCH] Add SWIM floppy support for m68k Macs.

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 




Le 9 nov. 08 à 17:16, Geert Uytterhoeven a écrit :

On Mon, 3 Nov 2008, Finn Thain wrote:
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.

Ideally, the _probe() routine should not look at the bits in macintosh_config,
but only at the platform device and its resources.

The creation of the platform device should be moved to arch/m68k/mac/ config,
which would create the platform device, and only if the bits in
macintosh_config indicate that the hardware is present. The actual value of swim_base can be stored in a struct resource linked to the platform device.

So far the only platform device for m68k (not in mainline) is Michael's EtherNAT driver, cfr. arch/m68k/atari/config.c. Note that that one registers the platform device unconditionally, as there's no magic predictor for its
presence in the firmware or machine tables.

OK, I'll copy what is done for ethernat driver.
Thank you for the explanation.

Laurent
----------------------- Laurent Vivier ----------------------
"The best way to predict the future is to invent it."
- Alan Kay





--
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

[Index of Archives]     [Video for Linux]     [Yosemite News]     [Linux S/390]     [Linux Kernel]     [Linux SCSI]

  Powered by Linux