Hi Michael,
On Thu, Jun 20, 2019 at 10:47 PM Michael Schmitz <[email protected]> wrote:
> Autoloading of Falcon IDE driver modules requires converting
> these drivers to platform drivers.
>
> Add platform device for Falcon IDE interface in Atari platform
> setup code in preparation for this.
>
> Add Falcon IDE base address in Atari hardware address header.
>
> Signed-off-by: Michael Schmitz <[email protected]>
Thanks for your patch!
> --- a/arch/m68k/atari/config.c
> +++ b/arch/m68k/atari/config.c
> @@ -896,6 +896,21 @@ static void isp1160_delay(struct device *dev, int delay)
> };
> #endif
>
> +#if IS_ENABLED(CONFIG_PATA_FALCON)
I wouldn't bother making this depend on a config symbol, as it is
builtin hardware (EtherNEC/NAT isn't), and prevents compiling a module
later.
arch/m68k/amiga/platform.c has everything unconditional.
I know there's such a dependency for SCSI, perhaps it should be removed?
> +static const struct resource atari_falconide_rsrc[] __initconst = {
> + {
> + .flags = IORESOURCE_MEM,
> + .start = FALCON_IDE_BASE,
> + .end = FALCON_IDE_BASE+0x40,
> + },
> + {
> + .flags = IORESOURCE_IRQ,
> + .start = IRQ_MFP_FSCSI,
> + .end = IRQ_MFP_FSCSI,
> + },
> +};
> +#endif
> +
> int __init atari_platform_init(void)
> {
> int rv = 0;
> @@ -939,6 +954,11 @@ int __init atari_platform_init(void)
> atari_scsi_tt_rsrc, ARRAY_SIZE(atari_scsi_tt_rsrc));
> #endif
>
> +#if IS_ENABLED(CONFIG_PATA_FALCON)
> + if (ATARIHW_PRESENT(IDE))
> + platform_device_register_simple("pata_falcon", -1,
> + atari_falconide_rsrc,
> ARRAY_SIZE(atari_falconide_rsrc));
> +#endif
> return rv;
> }
>
> diff --git a/arch/m68k/include/asm/atarihw.h b/arch/m68k/include/asm/atarihw.h
> index 5330082..4bea923 100644
> --- a/arch/m68k/include/asm/atarihw.h
> +++ b/arch/m68k/include/asm/atarihw.h
> @@ -813,6 +813,12 @@ struct MSTE_RTC {
> #define mste_rtc ((*(volatile struct MSTE_RTC *)MSTE_RTC_BAS))
>
> /*
> +** Falcon IDE interface
> +*/
> +
> +#define FALCON_IDE_BASE 0xfff00000
Is it worth having this as a #define in a global header file?
You still need a hardcoded region size in config.c.
Gr{oetje,eeting}s,
Geert
--
Geert Uytterhoeven -- There's lots of Linux beyond ia32 -- [email protected]
In personal conversations with technical people, I call myself a hacker. But
when I'm talking to journalists I just say "programmer" or something like that.
-- Linus Torvalds