| .. | .. |
|---|
| 78 | 78 | |
|---|
| 79 | 79 | /* atari specific timer functions (in time.c) */ |
|---|
| 80 | 80 | extern void atari_sched_init(irq_handler_t); |
|---|
| 81 | | -extern u32 atari_gettimeoffset(void); |
|---|
| 82 | 81 | extern int atari_mste_hwclk (int, struct rtc_time *); |
|---|
| 83 | 82 | extern int atari_tt_hwclk (int, struct rtc_time *); |
|---|
| 84 | 83 | |
|---|
| .. | .. |
|---|
| 148 | 147 | /* Parse the Atari-specific switches= option. */ |
|---|
| 149 | 148 | static int __init atari_switches_setup(char *str) |
|---|
| 150 | 149 | { |
|---|
| 151 | | - char switches[strlen(str) + 1]; |
|---|
| 150 | + char switches[COMMAND_LINE_SIZE]; |
|---|
| 152 | 151 | char *p; |
|---|
| 153 | 152 | int ovsc_shift; |
|---|
| 154 | 153 | char *args = switches; |
|---|
| .. | .. |
|---|
| 205 | 204 | mach_init_IRQ = atari_init_IRQ; |
|---|
| 206 | 205 | mach_get_model = atari_get_model; |
|---|
| 207 | 206 | mach_get_hardware_list = atari_get_hardware_list; |
|---|
| 208 | | - arch_gettimeoffset = atari_gettimeoffset; |
|---|
| 209 | 207 | mach_reset = atari_reset; |
|---|
| 210 | 208 | mach_max_dma_address = 0xffffff; |
|---|
| 211 | 209 | #if IS_ENABLED(CONFIG_INPUT_M68K_BEEP) |
|---|
| .. | .. |
|---|
| 248 | 246 | } else if (hwreg_present(tt_palette)) { |
|---|
| 249 | 247 | ATARIHW_SET(TT_SHIFTER); |
|---|
| 250 | 248 | pr_cont(" TT_SHIFTER"); |
|---|
| 251 | | - } else if (hwreg_present(&shifter.bas_hi)) { |
|---|
| 252 | | - if (hwreg_present(&shifter.bas_lo) && |
|---|
| 253 | | - (shifter.bas_lo = 0x0aau, shifter.bas_lo == 0x0aau)) { |
|---|
| 249 | + } else if (hwreg_present(&shifter_st.bas_hi)) { |
|---|
| 250 | + if (hwreg_present(&shifter_st.bas_lo) && |
|---|
| 251 | + (shifter_st.bas_lo = 0x0aau, shifter_st.bas_lo == 0x0aau)) { |
|---|
| 254 | 252 | ATARIHW_SET(EXTD_SHIFTER); |
|---|
| 255 | 253 | pr_cont(" EXTD_SHIFTER"); |
|---|
| 256 | 254 | } else { |
|---|
| .. | .. |
|---|
| 871 | 869 | }; |
|---|
| 872 | 870 | #endif |
|---|
| 873 | 871 | |
|---|
| 872 | +/* |
|---|
| 873 | + * Falcon IDE interface |
|---|
| 874 | + */ |
|---|
| 875 | + |
|---|
| 876 | +#define FALCON_IDE_BASE 0xfff00000 |
|---|
| 877 | + |
|---|
| 878 | +static const struct resource atari_falconide_rsrc[] __initconst = { |
|---|
| 879 | + { |
|---|
| 880 | + .flags = IORESOURCE_MEM, |
|---|
| 881 | + .start = FALCON_IDE_BASE, |
|---|
| 882 | + .end = FALCON_IDE_BASE + 0x39, |
|---|
| 883 | + }, |
|---|
| 884 | + { |
|---|
| 885 | + .flags = IORESOURCE_IRQ, |
|---|
| 886 | + .start = IRQ_MFP_FSCSI, |
|---|
| 887 | + .end = IRQ_MFP_FSCSI, |
|---|
| 888 | + }, |
|---|
| 889 | +}; |
|---|
| 890 | + |
|---|
| 874 | 891 | int __init atari_platform_init(void) |
|---|
| 875 | 892 | { |
|---|
| 893 | + struct platform_device *pdev; |
|---|
| 876 | 894 | int rv = 0; |
|---|
| 877 | 895 | |
|---|
| 878 | 896 | if (!MACH_IS_ATARI) |
|---|
| .. | .. |
|---|
| 914 | 932 | atari_scsi_tt_rsrc, ARRAY_SIZE(atari_scsi_tt_rsrc)); |
|---|
| 915 | 933 | #endif |
|---|
| 916 | 934 | |
|---|
| 935 | + if (ATARIHW_PRESENT(IDE)) { |
|---|
| 936 | + pdev = platform_device_register_simple("atari-falcon-ide", -1, |
|---|
| 937 | + atari_falconide_rsrc, ARRAY_SIZE(atari_falconide_rsrc)); |
|---|
| 938 | + if (IS_ERR(pdev)) |
|---|
| 939 | + rv = PTR_ERR(pdev); |
|---|
| 940 | + } |
|---|
| 941 | + |
|---|
| 917 | 942 | return rv; |
|---|
| 918 | 943 | } |
|---|
| 919 | 944 | |
|---|