提交 5ef30d74 编写于 作者: L Linus Torvalds

Merge tag 'm68k-for-v5.5-tag1' of git://git.kernel.org/pub/scm/linux/kernel/git/geert/linux-m68k

Pull m68k updates from Geert Uytterhoeven:

 - Atari Falcon IDE platform driver conversion for module autoload

 - defconfig updates (including enablement of Amiga ICY I2C)

 - small fixes and cleanups

* tag 'm68k-for-v5.5-tag1' of git://git.kernel.org/pub/scm/linux/kernel/git/geert/linux-m68k:
  m68k/atari: Convert Falcon IDE drivers to platform drivers
  m68k: defconfig: Enable ICY I2C and LTC2990 on Amiga
  m68k: defconfig: Update defconfigs for v5.4-rc1
  m68k: q40: Fix info-leak in rtc_ioctl
  nubus: Remove cast to void pointer
...@@ -869,8 +869,28 @@ static const struct resource atari_scsi_tt_rsrc[] __initconst = { ...@@ -869,8 +869,28 @@ static const struct resource atari_scsi_tt_rsrc[] __initconst = {
}; };
#endif #endif
/*
* Falcon IDE interface
*/
#define FALCON_IDE_BASE 0xfff00000
static const struct resource atari_falconide_rsrc[] __initconst = {
{
.flags = IORESOURCE_MEM,
.start = FALCON_IDE_BASE,
.end = FALCON_IDE_BASE + 0x39,
},
{
.flags = IORESOURCE_IRQ,
.start = IRQ_MFP_FSCSI,
.end = IRQ_MFP_FSCSI,
},
};
int __init atari_platform_init(void) int __init atari_platform_init(void)
{ {
struct platform_device *pdev;
int rv = 0; int rv = 0;
if (!MACH_IS_ATARI) if (!MACH_IS_ATARI)
...@@ -912,6 +932,13 @@ int __init atari_platform_init(void) ...@@ -912,6 +932,13 @@ int __init atari_platform_init(void)
atari_scsi_tt_rsrc, ARRAY_SIZE(atari_scsi_tt_rsrc)); atari_scsi_tt_rsrc, ARRAY_SIZE(atari_scsi_tt_rsrc));
#endif #endif
if (ATARIHW_PRESENT(IDE)) {
pdev = platform_device_register_simple("atari-falcon-ide", -1,
atari_falconide_rsrc, ARRAY_SIZE(atari_falconide_rsrc));
if (IS_ERR(pdev))
rv = PTR_ERR(pdev);
}
return rv; return rv;
} }
......
...@@ -355,6 +355,7 @@ CONFIG_DM_SNAPSHOT=m ...@@ -355,6 +355,7 @@ CONFIG_DM_SNAPSHOT=m
CONFIG_DM_THIN_PROVISIONING=m CONFIG_DM_THIN_PROVISIONING=m
CONFIG_DM_WRITECACHE=m CONFIG_DM_WRITECACHE=m
CONFIG_DM_ERA=m CONFIG_DM_ERA=m
CONFIG_DM_CLONE=m
CONFIG_DM_MIRROR=m CONFIG_DM_MIRROR=m
CONFIG_DM_RAID=m CONFIG_DM_RAID=m
CONFIG_DM_ZERO=m CONFIG_DM_ZERO=m
...@@ -420,11 +421,15 @@ CONFIG_INPUT_M68K_BEEP=m ...@@ -420,11 +421,15 @@ CONFIG_INPUT_M68K_BEEP=m
# CONFIG_LEGACY_PTYS is not set # CONFIG_LEGACY_PTYS is not set
CONFIG_PRINTER=m CONFIG_PRINTER=m
# CONFIG_HW_RANDOM is not set # CONFIG_HW_RANDOM is not set
CONFIG_I2C=m
CONFIG_I2C_CHARDEV=m
CONFIG_I2C_ICY=m
CONFIG_NTP_PPS=y CONFIG_NTP_PPS=y
CONFIG_PPS_CLIENT_LDISC=m CONFIG_PPS_CLIENT_LDISC=m
CONFIG_PPS_CLIENT_PARPORT=m CONFIG_PPS_CLIENT_PARPORT=m
CONFIG_PTP_1588_CLOCK=m CONFIG_PTP_1588_CLOCK=m
# CONFIG_HWMON is not set CONFIG_HWMON=m
CONFIG_SENSORS_LTC2990=m
CONFIG_FB=y CONFIG_FB=y
CONFIG_FB_CIRRUS=y CONFIG_FB_CIRRUS=y
CONFIG_FB_AMIGA=y CONFIG_FB_AMIGA=y
...@@ -432,8 +437,6 @@ CONFIG_FB_AMIGA_OCS=y ...@@ -432,8 +437,6 @@ CONFIG_FB_AMIGA_OCS=y
CONFIG_FB_AMIGA_ECS=y CONFIG_FB_AMIGA_ECS=y
CONFIG_FB_AMIGA_AGA=y CONFIG_FB_AMIGA_AGA=y
CONFIG_FB_FM2=y CONFIG_FB_FM2=y
# CONFIG_LCD_CLASS_DEVICE is not set
# CONFIG_BACKLIGHT_CLASS_DEVICE is not set
CONFIG_FRAMEBUFFER_CONSOLE=y CONFIG_FRAMEBUFFER_CONSOLE=y
CONFIG_LOGO=y CONFIG_LOGO=y
CONFIG_SOUND=m CONFIG_SOUND=m
...@@ -490,6 +493,7 @@ CONFIG_QNX4FS_FS=m ...@@ -490,6 +493,7 @@ CONFIG_QNX4FS_FS=m
CONFIG_QNX6FS_FS=m CONFIG_QNX6FS_FS=m
CONFIG_SYSV_FS=m CONFIG_SYSV_FS=m
CONFIG_UFS_FS=m CONFIG_UFS_FS=m
CONFIG_EROFS_FS=m
CONFIG_NFS_FS=y CONFIG_NFS_FS=y
CONFIG_NFS_V4=m CONFIG_NFS_V4=m
CONFIG_NFS_SWAP=y CONFIG_NFS_SWAP=y
...@@ -560,10 +564,6 @@ CONFIG_CRYPTO_ECDH=m ...@@ -560,10 +564,6 @@ CONFIG_CRYPTO_ECDH=m
CONFIG_CRYPTO_ECRDSA=m CONFIG_CRYPTO_ECRDSA=m
CONFIG_CRYPTO_CHACHA20POLY1305=m CONFIG_CRYPTO_CHACHA20POLY1305=m
CONFIG_CRYPTO_AEGIS128=m CONFIG_CRYPTO_AEGIS128=m
CONFIG_CRYPTO_AEGIS128L=m
CONFIG_CRYPTO_AEGIS256=m
CONFIG_CRYPTO_MORUS640=m
CONFIG_CRYPTO_MORUS1280=m
CONFIG_CRYPTO_CFB=m CONFIG_CRYPTO_CFB=m
CONFIG_CRYPTO_CTS=m CONFIG_CRYPTO_CTS=m
CONFIG_CRYPTO_LRW=m CONFIG_CRYPTO_LRW=m
......
...@@ -334,6 +334,7 @@ CONFIG_DM_SNAPSHOT=m ...@@ -334,6 +334,7 @@ CONFIG_DM_SNAPSHOT=m
CONFIG_DM_THIN_PROVISIONING=m CONFIG_DM_THIN_PROVISIONING=m
CONFIG_DM_WRITECACHE=m CONFIG_DM_WRITECACHE=m
CONFIG_DM_ERA=m CONFIG_DM_ERA=m
CONFIG_DM_CLONE=m
CONFIG_DM_MIRROR=m CONFIG_DM_MIRROR=m
CONFIG_DM_RAID=m CONFIG_DM_RAID=m
CONFIG_DM_ZERO=m CONFIG_DM_ZERO=m
...@@ -393,8 +394,6 @@ CONFIG_PPS_CLIENT_LDISC=m ...@@ -393,8 +394,6 @@ CONFIG_PPS_CLIENT_LDISC=m
CONFIG_PTP_1588_CLOCK=m CONFIG_PTP_1588_CLOCK=m
# CONFIG_HWMON is not set # CONFIG_HWMON is not set
CONFIG_FB=y CONFIG_FB=y
# CONFIG_LCD_CLASS_DEVICE is not set
# CONFIG_BACKLIGHT_CLASS_DEVICE is not set
CONFIG_FRAMEBUFFER_CONSOLE=y CONFIG_FRAMEBUFFER_CONSOLE=y
CONFIG_LOGO=y CONFIG_LOGO=y
# CONFIG_LOGO_LINUX_VGA16 is not set # CONFIG_LOGO_LINUX_VGA16 is not set
...@@ -450,6 +449,7 @@ CONFIG_QNX4FS_FS=m ...@@ -450,6 +449,7 @@ CONFIG_QNX4FS_FS=m
CONFIG_QNX6FS_FS=m CONFIG_QNX6FS_FS=m
CONFIG_SYSV_FS=m CONFIG_SYSV_FS=m
CONFIG_UFS_FS=m CONFIG_UFS_FS=m
CONFIG_EROFS_FS=m
CONFIG_NFS_FS=y CONFIG_NFS_FS=y
CONFIG_NFS_V4=m CONFIG_NFS_V4=m
CONFIG_NFS_SWAP=y CONFIG_NFS_SWAP=y
...@@ -520,10 +520,6 @@ CONFIG_CRYPTO_ECDH=m ...@@ -520,10 +520,6 @@ CONFIG_CRYPTO_ECDH=m
CONFIG_CRYPTO_ECRDSA=m CONFIG_CRYPTO_ECRDSA=m
CONFIG_CRYPTO_CHACHA20POLY1305=m CONFIG_CRYPTO_CHACHA20POLY1305=m
CONFIG_CRYPTO_AEGIS128=m CONFIG_CRYPTO_AEGIS128=m
CONFIG_CRYPTO_AEGIS128L=m
CONFIG_CRYPTO_AEGIS256=m
CONFIG_CRYPTO_MORUS640=m
CONFIG_CRYPTO_MORUS1280=m
CONFIG_CRYPTO_CFB=m CONFIG_CRYPTO_CFB=m
CONFIG_CRYPTO_CTS=m CONFIG_CRYPTO_CTS=m
CONFIG_CRYPTO_LRW=m CONFIG_CRYPTO_LRW=m
......
...@@ -350,6 +350,7 @@ CONFIG_DM_SNAPSHOT=m ...@@ -350,6 +350,7 @@ CONFIG_DM_SNAPSHOT=m
CONFIG_DM_THIN_PROVISIONING=m CONFIG_DM_THIN_PROVISIONING=m
CONFIG_DM_WRITECACHE=m CONFIG_DM_WRITECACHE=m
CONFIG_DM_ERA=m CONFIG_DM_ERA=m
CONFIG_DM_CLONE=m
CONFIG_DM_MIRROR=m CONFIG_DM_MIRROR=m
CONFIG_DM_RAID=m CONFIG_DM_RAID=m
CONFIG_DM_ZERO=m CONFIG_DM_ZERO=m
...@@ -417,8 +418,6 @@ CONFIG_PTP_1588_CLOCK=m ...@@ -417,8 +418,6 @@ CONFIG_PTP_1588_CLOCK=m
# CONFIG_HWMON is not set # CONFIG_HWMON is not set
CONFIG_FB=y CONFIG_FB=y
CONFIG_FB_ATARI=y CONFIG_FB_ATARI=y
# CONFIG_LCD_CLASS_DEVICE is not set
# CONFIG_BACKLIGHT_CLASS_DEVICE is not set
CONFIG_FRAMEBUFFER_CONSOLE=y CONFIG_FRAMEBUFFER_CONSOLE=y
CONFIG_LOGO=y CONFIG_LOGO=y
CONFIG_SOUND=m CONFIG_SOUND=m
...@@ -472,6 +471,7 @@ CONFIG_QNX4FS_FS=m ...@@ -472,6 +471,7 @@ CONFIG_QNX4FS_FS=m
CONFIG_QNX6FS_FS=m CONFIG_QNX6FS_FS=m
CONFIG_SYSV_FS=m CONFIG_SYSV_FS=m
CONFIG_UFS_FS=m CONFIG_UFS_FS=m
CONFIG_EROFS_FS=m
CONFIG_NFS_FS=y CONFIG_NFS_FS=y
CONFIG_NFS_V4=m CONFIG_NFS_V4=m
CONFIG_NFS_SWAP=y CONFIG_NFS_SWAP=y
...@@ -542,10 +542,6 @@ CONFIG_CRYPTO_ECDH=m ...@@ -542,10 +542,6 @@ CONFIG_CRYPTO_ECDH=m
CONFIG_CRYPTO_ECRDSA=m CONFIG_CRYPTO_ECRDSA=m
CONFIG_CRYPTO_CHACHA20POLY1305=m CONFIG_CRYPTO_CHACHA20POLY1305=m
CONFIG_CRYPTO_AEGIS128=m CONFIG_CRYPTO_AEGIS128=m
CONFIG_CRYPTO_AEGIS128L=m
CONFIG_CRYPTO_AEGIS256=m
CONFIG_CRYPTO_MORUS640=m
CONFIG_CRYPTO_MORUS1280=m
CONFIG_CRYPTO_CFB=m CONFIG_CRYPTO_CFB=m
CONFIG_CRYPTO_CTS=m CONFIG_CRYPTO_CTS=m
CONFIG_CRYPTO_LRW=m CONFIG_CRYPTO_LRW=m
......
...@@ -332,6 +332,7 @@ CONFIG_DM_SNAPSHOT=m ...@@ -332,6 +332,7 @@ CONFIG_DM_SNAPSHOT=m
CONFIG_DM_THIN_PROVISIONING=m CONFIG_DM_THIN_PROVISIONING=m
CONFIG_DM_WRITECACHE=m CONFIG_DM_WRITECACHE=m
CONFIG_DM_ERA=m CONFIG_DM_ERA=m
CONFIG_DM_CLONE=m
CONFIG_DM_MIRROR=m CONFIG_DM_MIRROR=m
CONFIG_DM_RAID=m CONFIG_DM_RAID=m
CONFIG_DM_ZERO=m CONFIG_DM_ZERO=m
...@@ -390,8 +391,6 @@ CONFIG_NTP_PPS=y ...@@ -390,8 +391,6 @@ CONFIG_NTP_PPS=y
CONFIG_PPS_CLIENT_LDISC=m CONFIG_PPS_CLIENT_LDISC=m
CONFIG_PTP_1588_CLOCK=m CONFIG_PTP_1588_CLOCK=m
# CONFIG_HWMON is not set # CONFIG_HWMON is not set
# CONFIG_LCD_CLASS_DEVICE is not set
# CONFIG_BACKLIGHT_CLASS_DEVICE is not set
CONFIG_HID=m CONFIG_HID=m
CONFIG_HIDRAW=y CONFIG_HIDRAW=y
CONFIG_UHID=m CONFIG_UHID=m
...@@ -443,6 +442,7 @@ CONFIG_QNX4FS_FS=m ...@@ -443,6 +442,7 @@ CONFIG_QNX4FS_FS=m
CONFIG_QNX6FS_FS=m CONFIG_QNX6FS_FS=m
CONFIG_SYSV_FS=m CONFIG_SYSV_FS=m
CONFIG_UFS_FS=m CONFIG_UFS_FS=m
CONFIG_EROFS_FS=m
CONFIG_NFS_FS=y CONFIG_NFS_FS=y
CONFIG_NFS_V4=m CONFIG_NFS_V4=m
CONFIG_NFS_SWAP=y CONFIG_NFS_SWAP=y
...@@ -513,10 +513,6 @@ CONFIG_CRYPTO_ECDH=m ...@@ -513,10 +513,6 @@ CONFIG_CRYPTO_ECDH=m
CONFIG_CRYPTO_ECRDSA=m CONFIG_CRYPTO_ECRDSA=m
CONFIG_CRYPTO_CHACHA20POLY1305=m CONFIG_CRYPTO_CHACHA20POLY1305=m
CONFIG_CRYPTO_AEGIS128=m CONFIG_CRYPTO_AEGIS128=m
CONFIG_CRYPTO_AEGIS128L=m
CONFIG_CRYPTO_AEGIS256=m
CONFIG_CRYPTO_MORUS640=m
CONFIG_CRYPTO_MORUS1280=m
CONFIG_CRYPTO_CFB=m CONFIG_CRYPTO_CFB=m
CONFIG_CRYPTO_CTS=m CONFIG_CRYPTO_CTS=m
CONFIG_CRYPTO_LRW=m CONFIG_CRYPTO_LRW=m
......
...@@ -333,6 +333,7 @@ CONFIG_DM_SNAPSHOT=m ...@@ -333,6 +333,7 @@ CONFIG_DM_SNAPSHOT=m
CONFIG_DM_THIN_PROVISIONING=m CONFIG_DM_THIN_PROVISIONING=m
CONFIG_DM_WRITECACHE=m CONFIG_DM_WRITECACHE=m
CONFIG_DM_ERA=m CONFIG_DM_ERA=m
CONFIG_DM_CLONE=m
CONFIG_DM_MIRROR=m CONFIG_DM_MIRROR=m
CONFIG_DM_RAID=m CONFIG_DM_RAID=m
CONFIG_DM_ZERO=m CONFIG_DM_ZERO=m
...@@ -395,8 +396,6 @@ CONFIG_PPS_CLIENT_LDISC=m ...@@ -395,8 +396,6 @@ CONFIG_PPS_CLIENT_LDISC=m
CONFIG_PTP_1588_CLOCK=m CONFIG_PTP_1588_CLOCK=m
# CONFIG_HWMON is not set # CONFIG_HWMON is not set
CONFIG_FB=y CONFIG_FB=y
# CONFIG_LCD_CLASS_DEVICE is not set
# CONFIG_BACKLIGHT_CLASS_DEVICE is not set
CONFIG_FRAMEBUFFER_CONSOLE=y CONFIG_FRAMEBUFFER_CONSOLE=y
CONFIG_LOGO=y CONFIG_LOGO=y
# CONFIG_LOGO_LINUX_MONO is not set # CONFIG_LOGO_LINUX_MONO is not set
...@@ -452,6 +451,7 @@ CONFIG_QNX4FS_FS=m ...@@ -452,6 +451,7 @@ CONFIG_QNX4FS_FS=m
CONFIG_QNX6FS_FS=m CONFIG_QNX6FS_FS=m
CONFIG_SYSV_FS=m CONFIG_SYSV_FS=m
CONFIG_UFS_FS=m CONFIG_UFS_FS=m
CONFIG_EROFS_FS=m
CONFIG_NFS_FS=y CONFIG_NFS_FS=y
CONFIG_NFS_V4=m CONFIG_NFS_V4=m
CONFIG_NFS_SWAP=y CONFIG_NFS_SWAP=y
...@@ -522,10 +522,6 @@ CONFIG_CRYPTO_ECDH=m ...@@ -522,10 +522,6 @@ CONFIG_CRYPTO_ECDH=m
CONFIG_CRYPTO_ECRDSA=m CONFIG_CRYPTO_ECRDSA=m
CONFIG_CRYPTO_CHACHA20POLY1305=m CONFIG_CRYPTO_CHACHA20POLY1305=m
CONFIG_CRYPTO_AEGIS128=m CONFIG_CRYPTO_AEGIS128=m
CONFIG_CRYPTO_AEGIS128L=m
CONFIG_CRYPTO_AEGIS256=m
CONFIG_CRYPTO_MORUS640=m
CONFIG_CRYPTO_MORUS1280=m
CONFIG_CRYPTO_CFB=m CONFIG_CRYPTO_CFB=m
CONFIG_CRYPTO_CTS=m CONFIG_CRYPTO_CTS=m
CONFIG_CRYPTO_LRW=m CONFIG_CRYPTO_LRW=m
......
...@@ -342,6 +342,7 @@ CONFIG_DM_SNAPSHOT=m ...@@ -342,6 +342,7 @@ CONFIG_DM_SNAPSHOT=m
CONFIG_DM_THIN_PROVISIONING=m CONFIG_DM_THIN_PROVISIONING=m
CONFIG_DM_WRITECACHE=m CONFIG_DM_WRITECACHE=m
CONFIG_DM_ERA=m CONFIG_DM_ERA=m
CONFIG_DM_CLONE=m
CONFIG_DM_MIRROR=m CONFIG_DM_MIRROR=m
CONFIG_DM_RAID=m CONFIG_DM_RAID=m
CONFIG_DM_ZERO=m CONFIG_DM_ZERO=m
...@@ -419,8 +420,6 @@ CONFIG_PTP_1588_CLOCK=m ...@@ -419,8 +420,6 @@ CONFIG_PTP_1588_CLOCK=m
CONFIG_FB=y CONFIG_FB=y
CONFIG_FB_VALKYRIE=y CONFIG_FB_VALKYRIE=y
CONFIG_FB_MAC=y CONFIG_FB_MAC=y
# CONFIG_LCD_CLASS_DEVICE is not set
# CONFIG_BACKLIGHT_CLASS_DEVICE is not set
CONFIG_FRAMEBUFFER_CONSOLE=y CONFIG_FRAMEBUFFER_CONSOLE=y
CONFIG_LOGO=y CONFIG_LOGO=y
CONFIG_HID=m CONFIG_HID=m
...@@ -474,6 +473,7 @@ CONFIG_QNX4FS_FS=m ...@@ -474,6 +473,7 @@ CONFIG_QNX4FS_FS=m
CONFIG_QNX6FS_FS=m CONFIG_QNX6FS_FS=m
CONFIG_SYSV_FS=m CONFIG_SYSV_FS=m
CONFIG_UFS_FS=m CONFIG_UFS_FS=m
CONFIG_EROFS_FS=m
CONFIG_NFS_FS=y CONFIG_NFS_FS=y
CONFIG_NFS_V4=m CONFIG_NFS_V4=m
CONFIG_NFS_SWAP=y CONFIG_NFS_SWAP=y
...@@ -544,10 +544,6 @@ CONFIG_CRYPTO_ECDH=m ...@@ -544,10 +544,6 @@ CONFIG_CRYPTO_ECDH=m
CONFIG_CRYPTO_ECRDSA=m CONFIG_CRYPTO_ECRDSA=m
CONFIG_CRYPTO_CHACHA20POLY1305=m CONFIG_CRYPTO_CHACHA20POLY1305=m
CONFIG_CRYPTO_AEGIS128=m CONFIG_CRYPTO_AEGIS128=m
CONFIG_CRYPTO_AEGIS128L=m
CONFIG_CRYPTO_AEGIS256=m
CONFIG_CRYPTO_MORUS640=m
CONFIG_CRYPTO_MORUS1280=m
CONFIG_CRYPTO_CFB=m CONFIG_CRYPTO_CFB=m
CONFIG_CRYPTO_CTS=m CONFIG_CRYPTO_CTS=m
CONFIG_CRYPTO_LRW=m CONFIG_CRYPTO_LRW=m
......
...@@ -386,6 +386,7 @@ CONFIG_DM_SNAPSHOT=m ...@@ -386,6 +386,7 @@ CONFIG_DM_SNAPSHOT=m
CONFIG_DM_THIN_PROVISIONING=m CONFIG_DM_THIN_PROVISIONING=m
CONFIG_DM_WRITECACHE=m CONFIG_DM_WRITECACHE=m
CONFIG_DM_ERA=m CONFIG_DM_ERA=m
CONFIG_DM_CLONE=m
CONFIG_DM_MIRROR=m CONFIG_DM_MIRROR=m
CONFIG_DM_RAID=m CONFIG_DM_RAID=m
CONFIG_DM_ZERO=m CONFIG_DM_ZERO=m
...@@ -480,11 +481,15 @@ CONFIG_SERIAL_PMACZILOG_TTYS=y ...@@ -480,11 +481,15 @@ CONFIG_SERIAL_PMACZILOG_TTYS=y
CONFIG_SERIAL_PMACZILOG_CONSOLE=y CONFIG_SERIAL_PMACZILOG_CONSOLE=y
CONFIG_PRINTER=m CONFIG_PRINTER=m
# CONFIG_HW_RANDOM is not set # CONFIG_HW_RANDOM is not set
CONFIG_I2C=m
CONFIG_I2C_CHARDEV=m
CONFIG_I2C_ICY=m
CONFIG_NTP_PPS=y CONFIG_NTP_PPS=y
CONFIG_PPS_CLIENT_LDISC=m CONFIG_PPS_CLIENT_LDISC=m
CONFIG_PPS_CLIENT_PARPORT=m CONFIG_PPS_CLIENT_PARPORT=m
CONFIG_PTP_1588_CLOCK=m CONFIG_PTP_1588_CLOCK=m
# CONFIG_HWMON is not set CONFIG_HWMON=m
CONFIG_SENSORS_LTC2990=m
CONFIG_FB=y CONFIG_FB=y
CONFIG_FB_CIRRUS=y CONFIG_FB_CIRRUS=y
CONFIG_FB_AMIGA=y CONFIG_FB_AMIGA=y
...@@ -495,8 +500,6 @@ CONFIG_FB_FM2=y ...@@ -495,8 +500,6 @@ CONFIG_FB_FM2=y
CONFIG_FB_ATARI=y CONFIG_FB_ATARI=y
CONFIG_FB_VALKYRIE=y CONFIG_FB_VALKYRIE=y
CONFIG_FB_MAC=y CONFIG_FB_MAC=y
# CONFIG_LCD_CLASS_DEVICE is not set
# CONFIG_BACKLIGHT_CLASS_DEVICE is not set
CONFIG_FRAMEBUFFER_CONSOLE=y CONFIG_FRAMEBUFFER_CONSOLE=y
CONFIG_LOGO=y CONFIG_LOGO=y
CONFIG_SOUND=m CONFIG_SOUND=m
...@@ -556,6 +559,7 @@ CONFIG_QNX4FS_FS=m ...@@ -556,6 +559,7 @@ CONFIG_QNX4FS_FS=m
CONFIG_QNX6FS_FS=m CONFIG_QNX6FS_FS=m
CONFIG_SYSV_FS=m CONFIG_SYSV_FS=m
CONFIG_UFS_FS=m CONFIG_UFS_FS=m
CONFIG_EROFS_FS=m
CONFIG_NFS_FS=y CONFIG_NFS_FS=y
CONFIG_NFS_V4=m CONFIG_NFS_V4=m
CONFIG_NFS_SWAP=y CONFIG_NFS_SWAP=y
...@@ -626,10 +630,6 @@ CONFIG_CRYPTO_ECDH=m ...@@ -626,10 +630,6 @@ CONFIG_CRYPTO_ECDH=m
CONFIG_CRYPTO_ECRDSA=m CONFIG_CRYPTO_ECRDSA=m
CONFIG_CRYPTO_CHACHA20POLY1305=m CONFIG_CRYPTO_CHACHA20POLY1305=m
CONFIG_CRYPTO_AEGIS128=m CONFIG_CRYPTO_AEGIS128=m
CONFIG_CRYPTO_AEGIS128L=m
CONFIG_CRYPTO_AEGIS256=m
CONFIG_CRYPTO_MORUS640=m
CONFIG_CRYPTO_MORUS1280=m
CONFIG_CRYPTO_CFB=m CONFIG_CRYPTO_CFB=m
CONFIG_CRYPTO_CTS=m CONFIG_CRYPTO_CTS=m
CONFIG_CRYPTO_LRW=m CONFIG_CRYPTO_LRW=m
......
...@@ -331,6 +331,7 @@ CONFIG_DM_SNAPSHOT=m ...@@ -331,6 +331,7 @@ CONFIG_DM_SNAPSHOT=m
CONFIG_DM_THIN_PROVISIONING=m CONFIG_DM_THIN_PROVISIONING=m
CONFIG_DM_WRITECACHE=m CONFIG_DM_WRITECACHE=m
CONFIG_DM_ERA=m CONFIG_DM_ERA=m
CONFIG_DM_CLONE=m
CONFIG_DM_MIRROR=m CONFIG_DM_MIRROR=m
CONFIG_DM_RAID=m CONFIG_DM_RAID=m
CONFIG_DM_ZERO=m CONFIG_DM_ZERO=m
...@@ -389,8 +390,6 @@ CONFIG_NTP_PPS=y ...@@ -389,8 +390,6 @@ CONFIG_NTP_PPS=y
CONFIG_PPS_CLIENT_LDISC=m CONFIG_PPS_CLIENT_LDISC=m
CONFIG_PTP_1588_CLOCK=m CONFIG_PTP_1588_CLOCK=m
# CONFIG_HWMON is not set # CONFIG_HWMON is not set
# CONFIG_LCD_CLASS_DEVICE is not set
# CONFIG_BACKLIGHT_CLASS_DEVICE is not set
CONFIG_HID=m CONFIG_HID=m
CONFIG_HIDRAW=y CONFIG_HIDRAW=y
CONFIG_UHID=m CONFIG_UHID=m
...@@ -442,6 +441,7 @@ CONFIG_QNX4FS_FS=m ...@@ -442,6 +441,7 @@ CONFIG_QNX4FS_FS=m
CONFIG_QNX6FS_FS=m CONFIG_QNX6FS_FS=m
CONFIG_SYSV_FS=m CONFIG_SYSV_FS=m
CONFIG_UFS_FS=m CONFIG_UFS_FS=m
CONFIG_EROFS_FS=m
CONFIG_NFS_FS=y CONFIG_NFS_FS=y
CONFIG_NFS_V4=m CONFIG_NFS_V4=m
CONFIG_NFS_SWAP=y CONFIG_NFS_SWAP=y
...@@ -512,10 +512,6 @@ CONFIG_CRYPTO_ECDH=m ...@@ -512,10 +512,6 @@ CONFIG_CRYPTO_ECDH=m
CONFIG_CRYPTO_ECRDSA=m CONFIG_CRYPTO_ECRDSA=m
CONFIG_CRYPTO_CHACHA20POLY1305=m CONFIG_CRYPTO_CHACHA20POLY1305=m
CONFIG_CRYPTO_AEGIS128=m CONFIG_CRYPTO_AEGIS128=m
CONFIG_CRYPTO_AEGIS128L=m
CONFIG_CRYPTO_AEGIS256=m
CONFIG_CRYPTO_MORUS640=m
CONFIG_CRYPTO_MORUS1280=m
CONFIG_CRYPTO_CFB=m CONFIG_CRYPTO_CFB=m
CONFIG_CRYPTO_CTS=m CONFIG_CRYPTO_CTS=m
CONFIG_CRYPTO_LRW=m CONFIG_CRYPTO_LRW=m
......
...@@ -332,6 +332,7 @@ CONFIG_DM_SNAPSHOT=m ...@@ -332,6 +332,7 @@ CONFIG_DM_SNAPSHOT=m
CONFIG_DM_THIN_PROVISIONING=m CONFIG_DM_THIN_PROVISIONING=m
CONFIG_DM_WRITECACHE=m CONFIG_DM_WRITECACHE=m
CONFIG_DM_ERA=m CONFIG_DM_ERA=m
CONFIG_DM_CLONE=m
CONFIG_DM_MIRROR=m CONFIG_DM_MIRROR=m
CONFIG_DM_RAID=m CONFIG_DM_RAID=m
CONFIG_DM_ZERO=m CONFIG_DM_ZERO=m
...@@ -390,8 +391,6 @@ CONFIG_NTP_PPS=y ...@@ -390,8 +391,6 @@ CONFIG_NTP_PPS=y
CONFIG_PPS_CLIENT_LDISC=m CONFIG_PPS_CLIENT_LDISC=m
CONFIG_PTP_1588_CLOCK=m CONFIG_PTP_1588_CLOCK=m
# CONFIG_HWMON is not set # CONFIG_HWMON is not set
# CONFIG_LCD_CLASS_DEVICE is not set
# CONFIG_BACKLIGHT_CLASS_DEVICE is not set
CONFIG_HID=m CONFIG_HID=m
CONFIG_HIDRAW=y CONFIG_HIDRAW=y
CONFIG_UHID=m CONFIG_UHID=m
...@@ -443,6 +442,7 @@ CONFIG_QNX4FS_FS=m ...@@ -443,6 +442,7 @@ CONFIG_QNX4FS_FS=m
CONFIG_QNX6FS_FS=m CONFIG_QNX6FS_FS=m
CONFIG_SYSV_FS=m CONFIG_SYSV_FS=m
CONFIG_UFS_FS=m CONFIG_UFS_FS=m
CONFIG_EROFS_FS=m
CONFIG_NFS_FS=y CONFIG_NFS_FS=y
CONFIG_NFS_V4=m CONFIG_NFS_V4=m
CONFIG_NFS_SWAP=y CONFIG_NFS_SWAP=y
...@@ -513,10 +513,6 @@ CONFIG_CRYPTO_ECDH=m ...@@ -513,10 +513,6 @@ CONFIG_CRYPTO_ECDH=m
CONFIG_CRYPTO_ECRDSA=m CONFIG_CRYPTO_ECRDSA=m
CONFIG_CRYPTO_CHACHA20POLY1305=m CONFIG_CRYPTO_CHACHA20POLY1305=m
CONFIG_CRYPTO_AEGIS128=m CONFIG_CRYPTO_AEGIS128=m
CONFIG_CRYPTO_AEGIS128L=m
CONFIG_CRYPTO_AEGIS256=m
CONFIG_CRYPTO_MORUS640=m
CONFIG_CRYPTO_MORUS1280=m
CONFIG_CRYPTO_CFB=m CONFIG_CRYPTO_CFB=m
CONFIG_CRYPTO_CTS=m CONFIG_CRYPTO_CTS=m
CONFIG_CRYPTO_LRW=m CONFIG_CRYPTO_LRW=m
......
...@@ -339,6 +339,7 @@ CONFIG_DM_SNAPSHOT=m ...@@ -339,6 +339,7 @@ CONFIG_DM_SNAPSHOT=m
CONFIG_DM_THIN_PROVISIONING=m CONFIG_DM_THIN_PROVISIONING=m
CONFIG_DM_WRITECACHE=m CONFIG_DM_WRITECACHE=m
CONFIG_DM_ERA=m CONFIG_DM_ERA=m
CONFIG_DM_CLONE=m
CONFIG_DM_MIRROR=m CONFIG_DM_MIRROR=m
CONFIG_DM_RAID=m CONFIG_DM_RAID=m
CONFIG_DM_ZERO=m CONFIG_DM_ZERO=m
...@@ -404,8 +405,6 @@ CONFIG_PPS_CLIENT_PARPORT=m ...@@ -404,8 +405,6 @@ CONFIG_PPS_CLIENT_PARPORT=m
CONFIG_PTP_1588_CLOCK=m CONFIG_PTP_1588_CLOCK=m
# CONFIG_HWMON is not set # CONFIG_HWMON is not set
CONFIG_FB=y CONFIG_FB=y
# CONFIG_LCD_CLASS_DEVICE is not set
# CONFIG_BACKLIGHT_CLASS_DEVICE is not set
CONFIG_FRAMEBUFFER_CONSOLE=y CONFIG_FRAMEBUFFER_CONSOLE=y
CONFIG_LOGO=y CONFIG_LOGO=y
CONFIG_SOUND=m CONFIG_SOUND=m
...@@ -461,6 +460,7 @@ CONFIG_QNX4FS_FS=m ...@@ -461,6 +460,7 @@ CONFIG_QNX4FS_FS=m
CONFIG_QNX6FS_FS=m CONFIG_QNX6FS_FS=m
CONFIG_SYSV_FS=m CONFIG_SYSV_FS=m
CONFIG_UFS_FS=m CONFIG_UFS_FS=m
CONFIG_EROFS_FS=m
CONFIG_NFS_FS=y CONFIG_NFS_FS=y
CONFIG_NFS_V4=m CONFIG_NFS_V4=m
CONFIG_NFS_SWAP=y CONFIG_NFS_SWAP=y
...@@ -531,10 +531,6 @@ CONFIG_CRYPTO_ECDH=m ...@@ -531,10 +531,6 @@ CONFIG_CRYPTO_ECDH=m
CONFIG_CRYPTO_ECRDSA=m CONFIG_CRYPTO_ECRDSA=m
CONFIG_CRYPTO_CHACHA20POLY1305=m CONFIG_CRYPTO_CHACHA20POLY1305=m
CONFIG_CRYPTO_AEGIS128=m CONFIG_CRYPTO_AEGIS128=m
CONFIG_CRYPTO_AEGIS128L=m
CONFIG_CRYPTO_AEGIS256=m
CONFIG_CRYPTO_MORUS640=m
CONFIG_CRYPTO_MORUS1280=m
CONFIG_CRYPTO_CFB=m CONFIG_CRYPTO_CFB=m
CONFIG_CRYPTO_CTS=m CONFIG_CRYPTO_CTS=m
CONFIG_CRYPTO_LRW=m CONFIG_CRYPTO_LRW=m
......
...@@ -329,6 +329,7 @@ CONFIG_DM_SNAPSHOT=m ...@@ -329,6 +329,7 @@ CONFIG_DM_SNAPSHOT=m
CONFIG_DM_THIN_PROVISIONING=m CONFIG_DM_THIN_PROVISIONING=m
CONFIG_DM_WRITECACHE=m CONFIG_DM_WRITECACHE=m
CONFIG_DM_ERA=m CONFIG_DM_ERA=m
CONFIG_DM_CLONE=m
CONFIG_DM_MIRROR=m CONFIG_DM_MIRROR=m
CONFIG_DM_RAID=m CONFIG_DM_RAID=m
CONFIG_DM_ZERO=m CONFIG_DM_ZERO=m
...@@ -390,8 +391,6 @@ CONFIG_PPS_CLIENT_LDISC=m ...@@ -390,8 +391,6 @@ CONFIG_PPS_CLIENT_LDISC=m
CONFIG_PTP_1588_CLOCK=m CONFIG_PTP_1588_CLOCK=m
# CONFIG_HWMON is not set # CONFIG_HWMON is not set
CONFIG_FB=y CONFIG_FB=y
# CONFIG_LCD_CLASS_DEVICE is not set
# CONFIG_BACKLIGHT_CLASS_DEVICE is not set
CONFIG_FRAMEBUFFER_CONSOLE=y CONFIG_FRAMEBUFFER_CONSOLE=y
CONFIG_LOGO=y CONFIG_LOGO=y
CONFIG_HID=m CONFIG_HID=m
...@@ -445,6 +444,7 @@ CONFIG_QNX4FS_FS=m ...@@ -445,6 +444,7 @@ CONFIG_QNX4FS_FS=m
CONFIG_QNX6FS_FS=m CONFIG_QNX6FS_FS=m
CONFIG_SYSV_FS=m CONFIG_SYSV_FS=m
CONFIG_UFS_FS=m CONFIG_UFS_FS=m
CONFIG_EROFS_FS=m
CONFIG_NFS_FS=y CONFIG_NFS_FS=y
CONFIG_NFS_V4=m CONFIG_NFS_V4=m
CONFIG_NFS_SWAP=y CONFIG_NFS_SWAP=y
...@@ -515,10 +515,6 @@ CONFIG_CRYPTO_ECDH=m ...@@ -515,10 +515,6 @@ CONFIG_CRYPTO_ECDH=m
CONFIG_CRYPTO_ECRDSA=m CONFIG_CRYPTO_ECRDSA=m
CONFIG_CRYPTO_CHACHA20POLY1305=m CONFIG_CRYPTO_CHACHA20POLY1305=m
CONFIG_CRYPTO_AEGIS128=m CONFIG_CRYPTO_AEGIS128=m
CONFIG_CRYPTO_AEGIS128L=m
CONFIG_CRYPTO_AEGIS256=m
CONFIG_CRYPTO_MORUS640=m
CONFIG_CRYPTO_MORUS1280=m
CONFIG_CRYPTO_CFB=m CONFIG_CRYPTO_CFB=m
CONFIG_CRYPTO_CTS=m CONFIG_CRYPTO_CTS=m
CONFIG_CRYPTO_LRW=m CONFIG_CRYPTO_LRW=m
......
...@@ -329,6 +329,7 @@ CONFIG_DM_SNAPSHOT=m ...@@ -329,6 +329,7 @@ CONFIG_DM_SNAPSHOT=m
CONFIG_DM_THIN_PROVISIONING=m CONFIG_DM_THIN_PROVISIONING=m
CONFIG_DM_WRITECACHE=m CONFIG_DM_WRITECACHE=m
CONFIG_DM_ERA=m CONFIG_DM_ERA=m
CONFIG_DM_CLONE=m
CONFIG_DM_MIRROR=m CONFIG_DM_MIRROR=m
CONFIG_DM_RAID=m CONFIG_DM_RAID=m
CONFIG_DM_ZERO=m CONFIG_DM_ZERO=m
...@@ -389,8 +390,6 @@ CONFIG_PPS_CLIENT_LDISC=m ...@@ -389,8 +390,6 @@ CONFIG_PPS_CLIENT_LDISC=m
CONFIG_PTP_1588_CLOCK=m CONFIG_PTP_1588_CLOCK=m
# CONFIG_HWMON is not set # CONFIG_HWMON is not set
CONFIG_FB=y CONFIG_FB=y
# CONFIG_LCD_CLASS_DEVICE is not set
# CONFIG_BACKLIGHT_CLASS_DEVICE is not set
CONFIG_FRAMEBUFFER_CONSOLE=y CONFIG_FRAMEBUFFER_CONSOLE=y
CONFIG_LOGO=y CONFIG_LOGO=y
CONFIG_HID=m CONFIG_HID=m
...@@ -444,6 +443,7 @@ CONFIG_QNX4FS_FS=m ...@@ -444,6 +443,7 @@ CONFIG_QNX4FS_FS=m
CONFIG_QNX6FS_FS=m CONFIG_QNX6FS_FS=m
CONFIG_SYSV_FS=m CONFIG_SYSV_FS=m
CONFIG_UFS_FS=m CONFIG_UFS_FS=m
CONFIG_EROFS_FS=m
CONFIG_NFS_FS=y CONFIG_NFS_FS=y
CONFIG_NFS_V4=m CONFIG_NFS_V4=m
CONFIG_NFS_SWAP=y CONFIG_NFS_SWAP=y
...@@ -514,10 +514,6 @@ CONFIG_CRYPTO_ECDH=m ...@@ -514,10 +514,6 @@ CONFIG_CRYPTO_ECDH=m
CONFIG_CRYPTO_ECRDSA=m CONFIG_CRYPTO_ECRDSA=m
CONFIG_CRYPTO_CHACHA20POLY1305=m CONFIG_CRYPTO_CHACHA20POLY1305=m
CONFIG_CRYPTO_AEGIS128=m CONFIG_CRYPTO_AEGIS128=m
CONFIG_CRYPTO_AEGIS128L=m
CONFIG_CRYPTO_AEGIS256=m
CONFIG_CRYPTO_MORUS640=m
CONFIG_CRYPTO_MORUS1280=m
CONFIG_CRYPTO_CFB=m CONFIG_CRYPTO_CFB=m
CONFIG_CRYPTO_CTS=m CONFIG_CRYPTO_CTS=m
CONFIG_CRYPTO_LRW=m CONFIG_CRYPTO_LRW=m
......
...@@ -264,6 +264,7 @@ static int q40_get_rtc_pll(struct rtc_pll_info *pll) ...@@ -264,6 +264,7 @@ static int q40_get_rtc_pll(struct rtc_pll_info *pll)
{ {
int tmp = Q40_RTC_CTRL; int tmp = Q40_RTC_CTRL;
pll->pll_ctrl = 0;
pll->pll_value = tmp & Q40_RTC_PLL_MASK; pll->pll_value = tmp & Q40_RTC_PLL_MASK;
if (tmp & Q40_RTC_PLL_SIGN) if (tmp & Q40_RTC_PLL_SIGN)
pll->pll_value = -pll->pll_value; pll->pll_value = -pll->pll_value;
......
...@@ -33,7 +33,6 @@ ...@@ -33,7 +33,6 @@
#define DRV_NAME "pata_falcon" #define DRV_NAME "pata_falcon"
#define DRV_VERSION "0.1.0" #define DRV_VERSION "0.1.0"
#define ATA_HD_BASE 0xfff00000
#define ATA_HD_CONTROL 0x39 #define ATA_HD_CONTROL 0x39
static struct scsi_host_template pata_falcon_sht = { static struct scsi_host_template pata_falcon_sht = {
...@@ -120,24 +119,22 @@ static struct ata_port_operations pata_falcon_ops = { ...@@ -120,24 +119,22 @@ static struct ata_port_operations pata_falcon_ops = {
.set_mode = pata_falcon_set_mode, .set_mode = pata_falcon_set_mode,
}; };
static int pata_falcon_init_one(void) static int __init pata_falcon_init_one(struct platform_device *pdev)
{ {
struct resource *res;
struct ata_host *host; struct ata_host *host;
struct ata_port *ap; struct ata_port *ap;
struct platform_device *pdev;
void __iomem *base; void __iomem *base;
if (!MACH_IS_ATARI || !ATARIHW_PRESENT(IDE)) dev_info(&pdev->dev, "Atari Falcon PATA controller\n");
return -ENODEV;
pr_info(DRV_NAME ": Atari Falcon PATA controller\n");
pdev = platform_device_register_simple(DRV_NAME, 0, NULL, 0); res = platform_get_resource(pdev, IORESOURCE_MEM, 0);
if (IS_ERR(pdev)) if (!res)
return PTR_ERR(pdev); return -ENODEV;
if (!devm_request_mem_region(&pdev->dev, ATA_HD_BASE, 0x40, DRV_NAME)) { if (!devm_request_mem_region(&pdev->dev, res->start,
pr_err(DRV_NAME ": resources busy\n"); resource_size(res), DRV_NAME)) {
dev_err(&pdev->dev, "resources busy\n");
return -EBUSY; return -EBUSY;
} }
...@@ -152,7 +149,7 @@ static int pata_falcon_init_one(void) ...@@ -152,7 +149,7 @@ static int pata_falcon_init_one(void)
ap->flags |= ATA_FLAG_SLAVE_POSS | ATA_FLAG_NO_IORDY; ap->flags |= ATA_FLAG_SLAVE_POSS | ATA_FLAG_NO_IORDY;
ap->flags |= ATA_FLAG_PIO_POLLING; ap->flags |= ATA_FLAG_PIO_POLLING;
base = (void __iomem *)ATA_HD_BASE; base = (void __iomem *)res->start;
ap->ioaddr.data_addr = base; ap->ioaddr.data_addr = base;
ap->ioaddr.error_addr = base + 1 + 1 * 4; ap->ioaddr.error_addr = base + 1 + 1 * 4;
ap->ioaddr.feature_addr = base + 1 + 1 * 4; ap->ioaddr.feature_addr = base + 1 + 1 * 4;
...@@ -174,9 +171,26 @@ static int pata_falcon_init_one(void) ...@@ -174,9 +171,26 @@ static int pata_falcon_init_one(void)
return ata_host_activate(host, 0, NULL, 0, &pata_falcon_sht); return ata_host_activate(host, 0, NULL, 0, &pata_falcon_sht);
} }
module_init(pata_falcon_init_one); static int __exit pata_falcon_remove_one(struct platform_device *pdev)
{
struct ata_host *host = platform_get_drvdata(pdev);
ata_host_detach(host);
return 0;
}
static struct platform_driver pata_falcon_driver = {
.remove = __exit_p(pata_falcon_remove_one),
.driver = {
.name = "atari-falcon-ide",
},
};
module_platform_driver_probe(pata_falcon_driver, pata_falcon_init_one);
MODULE_AUTHOR("Bartlomiej Zolnierkiewicz"); MODULE_AUTHOR("Bartlomiej Zolnierkiewicz");
MODULE_DESCRIPTION("low-level driver for Atari Falcon PATA"); MODULE_DESCRIPTION("low-level driver for Atari Falcon PATA");
MODULE_LICENSE("GPL v2"); MODULE_LICENSE("GPL v2");
MODULE_ALIAS("platform:atari-falcon-ide");
MODULE_VERSION(DRV_VERSION); MODULE_VERSION(DRV_VERSION);
...@@ -15,6 +15,7 @@ ...@@ -15,6 +15,7 @@
#include <linux/blkdev.h> #include <linux/blkdev.h>
#include <linux/ide.h> #include <linux/ide.h>
#include <linux/init.h> #include <linux/init.h>
#include <linux/platform_device.h>
#include <asm/setup.h> #include <asm/setup.h>
#include <asm/atarihw.h> #include <asm/atarihw.h>
...@@ -25,13 +26,7 @@ ...@@ -25,13 +26,7 @@
#define DRV_NAME "falconide" #define DRV_NAME "falconide"
/* /*
* Base of the IDE interface * Offsets from base address
*/
#define ATA_HD_BASE 0xfff00000
/*
* Offsets from the above base
*/ */
#define ATA_HD_CONTROL 0x39 #define ATA_HD_CONTROL 0x39
...@@ -114,18 +109,18 @@ static const struct ide_port_info falconide_port_info = { ...@@ -114,18 +109,18 @@ static const struct ide_port_info falconide_port_info = {
.chipset = ide_generic, .chipset = ide_generic,
}; };
static void __init falconide_setup_ports(struct ide_hw *hw) static void __init falconide_setup_ports(struct ide_hw *hw, unsigned long base)
{ {
int i; int i;
memset(hw, 0, sizeof(*hw)); memset(hw, 0, sizeof(*hw));
hw->io_ports.data_addr = ATA_HD_BASE; hw->io_ports.data_addr = base;
for (i = 1; i < 8; i++) for (i = 1; i < 8; i++)
hw->io_ports_array[i] = ATA_HD_BASE + 1 + i * 4; hw->io_ports_array[i] = base + 1 + i * 4;
hw->io_ports.ctl_addr = ATA_HD_BASE + ATA_HD_CONTROL; hw->io_ports.ctl_addr = base + ATA_HD_CONTROL;
hw->irq = IRQ_MFP_IDE; hw->irq = IRQ_MFP_IDE;
} }
...@@ -134,23 +129,29 @@ static void __init falconide_setup_ports(struct ide_hw *hw) ...@@ -134,23 +129,29 @@ static void __init falconide_setup_ports(struct ide_hw *hw)
* Probe for a Falcon IDE interface * Probe for a Falcon IDE interface
*/ */
static int __init falconide_init(void) static int __init falconide_init(struct platform_device *pdev)
{ {
struct resource *res;
struct ide_host *host; struct ide_host *host;
struct ide_hw hw, *hws[] = { &hw }; struct ide_hw hw, *hws[] = { &hw };
unsigned long base;
int rc; int rc;
if (!MACH_IS_ATARI || !ATARIHW_PRESENT(IDE)) dev_info(&pdev->dev, "Atari Falcon IDE controller\n");
return -ENODEV;
printk(KERN_INFO "ide: Falcon IDE controller\n"); res = platform_get_resource(pdev, IORESOURCE_MEM, 0);
if (!res)
return -ENODEV;
if (!request_mem_region(ATA_HD_BASE, 0x40, DRV_NAME)) { if (!devm_request_mem_region(&pdev->dev, res->start,
printk(KERN_ERR "%s: resources busy\n", DRV_NAME); resource_size(res), DRV_NAME)) {
dev_err(&pdev->dev, "resources busy\n");
return -EBUSY; return -EBUSY;
} }
falconide_setup_ports(&hw); base = (unsigned long)res->start;
falconide_setup_ports(&hw, base);
host = ide_host_alloc(&falconide_port_info, hws, 1); host = ide_host_alloc(&falconide_port_info, hws, 1);
if (host == NULL) { if (host == NULL) {
...@@ -169,10 +170,29 @@ static int __init falconide_init(void) ...@@ -169,10 +170,29 @@ static int __init falconide_init(void)
err_free: err_free:
ide_host_free(host); ide_host_free(host);
err: err:
release_mem_region(ATA_HD_BASE, 0x40); release_mem_region(res->start, resource_size(res));
return rc; return rc;
} }
module_init(falconide_init); static int falconide_remove(struct platform_device *pdev)
{
struct ide_host *host = dev_get_drvdata(&pdev->dev);
ide_host_remove(host);
return 0;
}
static struct platform_driver ide_falcon_driver = {
.remove = falconide_remove,
.driver = {
.name = "atari-falcon-ide",
},
};
module_platform_driver_probe(ide_falcon_driver, falconide_init);
MODULE_AUTHOR("Geert Uytterhoeven");
MODULE_DESCRIPTION("low-level driver for Atari Falcon IDE");
MODULE_LICENSE("GPL"); MODULE_LICENSE("GPL");
MODULE_ALIAS("platform:atari-falcon-ide");
...@@ -163,7 +163,7 @@ unsigned char *nubus_dirptr(const struct nubus_dirent *nd) ...@@ -163,7 +163,7 @@ unsigned char *nubus_dirptr(const struct nubus_dirent *nd)
void nubus_get_rsrc_mem(void *dest, const struct nubus_dirent *dirent, void nubus_get_rsrc_mem(void *dest, const struct nubus_dirent *dirent,
unsigned int len) unsigned int len)
{ {
unsigned char *t = (unsigned char *)dest; unsigned char *t = dest;
unsigned char *p = nubus_dirptr(dirent); unsigned char *p = nubus_dirptr(dirent);
while (len) { while (len) {
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册