diff options
author | Finn Thain <fthain@telegraphics.com.au> | 2015-01-06 19:17:35 -0500 |
---|---|---|
committer | Geert Uytterhoeven <geert@linux-m68k.org> | 2015-01-11 05:38:46 -0500 |
commit | 2e874d178c9e8cb048bfc1075ec0e93582c0e124 (patch) | |
tree | 77e84b642c7b5b5a19c2895deecab989de1342ca | |
parent | 8c0ce284b320d2e6ef1a7c9a590d4fa44299c695 (diff) |
m68k/mac: Fix scsi_type for Mac LC and similar models
Designing Cards and Drivers for the Macintosh Family, 3rd ed. on page 310
says that the I/O address space for the Mac LC is $50F0 0000 - $50FF FFFF.
The developer notes for the Classic II, LC III and IIvx/IIvi give the same
I/O address space.
That means I've assigned the wrong platform resources to those Mac models.
Fix the scsi_type initialization for the affected models, to restore the
SCSI base address to its value prior to Linux 3.18.
Also rename MAC_SCSI_CCL as MAC_SCSI_LC for the sake of correct chronology.
Signed-off-by: Finn Thain <fthain@telegraphics.com.au>
Signed-off-by: Geert Uytterhoeven <geert@linux-m68k.org>
-rw-r--r-- | arch/m68k/include/asm/macintosh.h | 2 | ||||
-rw-r--r-- | arch/m68k/mac/config.c | 32 |
2 files changed, 18 insertions, 16 deletions
diff --git a/arch/m68k/include/asm/macintosh.h b/arch/m68k/include/asm/macintosh.h index 29c7c6c3a5f2..42235e7fbeed 100644 --- a/arch/m68k/include/asm/macintosh.h +++ b/arch/m68k/include/asm/macintosh.h | |||
@@ -55,7 +55,7 @@ struct mac_model | |||
55 | #define MAC_SCSI_QUADRA3 4 | 55 | #define MAC_SCSI_QUADRA3 4 |
56 | #define MAC_SCSI_IIFX 5 | 56 | #define MAC_SCSI_IIFX 5 |
57 | #define MAC_SCSI_DUO 6 | 57 | #define MAC_SCSI_DUO 6 |
58 | #define MAC_SCSI_CCL 7 | 58 | #define MAC_SCSI_LC 7 |
59 | #define MAC_SCSI_LATE 8 | 59 | #define MAC_SCSI_LATE 8 |
60 | 60 | ||
61 | #define MAC_IDE_NONE 0 | 61 | #define MAC_IDE_NONE 0 |
diff --git a/arch/m68k/mac/config.c b/arch/m68k/mac/config.c index e9c3756139fc..689b47d292ac 100644 --- a/arch/m68k/mac/config.c +++ b/arch/m68k/mac/config.c | |||
@@ -296,7 +296,7 @@ static struct mac_model mac_data_table[] = { | |||
296 | .name = "IIvi", | 296 | .name = "IIvi", |
297 | .adb_type = MAC_ADB_IISI, | 297 | .adb_type = MAC_ADB_IISI, |
298 | .via_type = MAC_VIA_IICI, | 298 | .via_type = MAC_VIA_IICI, |
299 | .scsi_type = MAC_SCSI_OLD, | 299 | .scsi_type = MAC_SCSI_LC, |
300 | .scc_type = MAC_SCC_II, | 300 | .scc_type = MAC_SCC_II, |
301 | .nubus_type = MAC_NUBUS, | 301 | .nubus_type = MAC_NUBUS, |
302 | .floppy_type = MAC_FLOPPY_SWIM_ADDR2, | 302 | .floppy_type = MAC_FLOPPY_SWIM_ADDR2, |
@@ -305,7 +305,7 @@ static struct mac_model mac_data_table[] = { | |||
305 | .name = "IIvx", | 305 | .name = "IIvx", |
306 | .adb_type = MAC_ADB_IISI, | 306 | .adb_type = MAC_ADB_IISI, |
307 | .via_type = MAC_VIA_IICI, | 307 | .via_type = MAC_VIA_IICI, |
308 | .scsi_type = MAC_SCSI_OLD, | 308 | .scsi_type = MAC_SCSI_LC, |
309 | .scc_type = MAC_SCC_II, | 309 | .scc_type = MAC_SCC_II, |
310 | .nubus_type = MAC_NUBUS, | 310 | .nubus_type = MAC_NUBUS, |
311 | .floppy_type = MAC_FLOPPY_SWIM_ADDR2, | 311 | .floppy_type = MAC_FLOPPY_SWIM_ADDR2, |
@@ -320,7 +320,7 @@ static struct mac_model mac_data_table[] = { | |||
320 | .name = "Classic II", | 320 | .name = "Classic II", |
321 | .adb_type = MAC_ADB_IISI, | 321 | .adb_type = MAC_ADB_IISI, |
322 | .via_type = MAC_VIA_IICI, | 322 | .via_type = MAC_VIA_IICI, |
323 | .scsi_type = MAC_SCSI_OLD, | 323 | .scsi_type = MAC_SCSI_LC, |
324 | .scc_type = MAC_SCC_II, | 324 | .scc_type = MAC_SCC_II, |
325 | .nubus_type = MAC_NUBUS, | 325 | .nubus_type = MAC_NUBUS, |
326 | .floppy_type = MAC_FLOPPY_SWIM_ADDR2, | 326 | .floppy_type = MAC_FLOPPY_SWIM_ADDR2, |
@@ -329,7 +329,7 @@ static struct mac_model mac_data_table[] = { | |||
329 | .name = "Color Classic", | 329 | .name = "Color Classic", |
330 | .adb_type = MAC_ADB_CUDA, | 330 | .adb_type = MAC_ADB_CUDA, |
331 | .via_type = MAC_VIA_IICI, | 331 | .via_type = MAC_VIA_IICI, |
332 | .scsi_type = MAC_SCSI_CCL, | 332 | .scsi_type = MAC_SCSI_LC, |
333 | .scc_type = MAC_SCC_II, | 333 | .scc_type = MAC_SCC_II, |
334 | .nubus_type = MAC_NUBUS, | 334 | .nubus_type = MAC_NUBUS, |
335 | .floppy_type = MAC_FLOPPY_SWIM_ADDR2, | 335 | .floppy_type = MAC_FLOPPY_SWIM_ADDR2, |
@@ -338,7 +338,7 @@ static struct mac_model mac_data_table[] = { | |||
338 | .name = "Color Classic II", | 338 | .name = "Color Classic II", |
339 | .adb_type = MAC_ADB_CUDA, | 339 | .adb_type = MAC_ADB_CUDA, |
340 | .via_type = MAC_VIA_IICI, | 340 | .via_type = MAC_VIA_IICI, |
341 | .scsi_type = MAC_SCSI_CCL, | 341 | .scsi_type = MAC_SCSI_LC, |
342 | .scc_type = MAC_SCC_II, | 342 | .scc_type = MAC_SCC_II, |
343 | .nubus_type = MAC_NUBUS, | 343 | .nubus_type = MAC_NUBUS, |
344 | .floppy_type = MAC_FLOPPY_SWIM_ADDR2, | 344 | .floppy_type = MAC_FLOPPY_SWIM_ADDR2, |
@@ -353,7 +353,7 @@ static struct mac_model mac_data_table[] = { | |||
353 | .name = "LC", | 353 | .name = "LC", |
354 | .adb_type = MAC_ADB_IISI, | 354 | .adb_type = MAC_ADB_IISI, |
355 | .via_type = MAC_VIA_IICI, | 355 | .via_type = MAC_VIA_IICI, |
356 | .scsi_type = MAC_SCSI_OLD, | 356 | .scsi_type = MAC_SCSI_LC, |
357 | .scc_type = MAC_SCC_II, | 357 | .scc_type = MAC_SCC_II, |
358 | .nubus_type = MAC_NUBUS, | 358 | .nubus_type = MAC_NUBUS, |
359 | .floppy_type = MAC_FLOPPY_SWIM_ADDR2, | 359 | .floppy_type = MAC_FLOPPY_SWIM_ADDR2, |
@@ -362,7 +362,7 @@ static struct mac_model mac_data_table[] = { | |||
362 | .name = "LC II", | 362 | .name = "LC II", |
363 | .adb_type = MAC_ADB_IISI, | 363 | .adb_type = MAC_ADB_IISI, |
364 | .via_type = MAC_VIA_IICI, | 364 | .via_type = MAC_VIA_IICI, |
365 | .scsi_type = MAC_SCSI_OLD, | 365 | .scsi_type = MAC_SCSI_LC, |
366 | .scc_type = MAC_SCC_II, | 366 | .scc_type = MAC_SCC_II, |
367 | .nubus_type = MAC_NUBUS, | 367 | .nubus_type = MAC_NUBUS, |
368 | .floppy_type = MAC_FLOPPY_SWIM_ADDR2, | 368 | .floppy_type = MAC_FLOPPY_SWIM_ADDR2, |
@@ -371,7 +371,7 @@ static struct mac_model mac_data_table[] = { | |||
371 | .name = "LC III", | 371 | .name = "LC III", |
372 | .adb_type = MAC_ADB_IISI, | 372 | .adb_type = MAC_ADB_IISI, |
373 | .via_type = MAC_VIA_IICI, | 373 | .via_type = MAC_VIA_IICI, |
374 | .scsi_type = MAC_SCSI_OLD, | 374 | .scsi_type = MAC_SCSI_LC, |
375 | .scc_type = MAC_SCC_II, | 375 | .scc_type = MAC_SCC_II, |
376 | .nubus_type = MAC_NUBUS, | 376 | .nubus_type = MAC_NUBUS, |
377 | .floppy_type = MAC_FLOPPY_SWIM_ADDR2, | 377 | .floppy_type = MAC_FLOPPY_SWIM_ADDR2, |
@@ -499,7 +499,7 @@ static struct mac_model mac_data_table[] = { | |||
499 | .name = "Performa 460", | 499 | .name = "Performa 460", |
500 | .adb_type = MAC_ADB_IISI, | 500 | .adb_type = MAC_ADB_IISI, |
501 | .via_type = MAC_VIA_IICI, | 501 | .via_type = MAC_VIA_IICI, |
502 | .scsi_type = MAC_SCSI_OLD, | 502 | .scsi_type = MAC_SCSI_LC, |
503 | .scc_type = MAC_SCC_II, | 503 | .scc_type = MAC_SCC_II, |
504 | .nubus_type = MAC_NUBUS, | 504 | .nubus_type = MAC_NUBUS, |
505 | .floppy_type = MAC_FLOPPY_SWIM_ADDR2, | 505 | .floppy_type = MAC_FLOPPY_SWIM_ADDR2, |
@@ -526,7 +526,7 @@ static struct mac_model mac_data_table[] = { | |||
526 | .name = "Performa 520", | 526 | .name = "Performa 520", |
527 | .adb_type = MAC_ADB_CUDA, | 527 | .adb_type = MAC_ADB_CUDA, |
528 | .via_type = MAC_VIA_IICI, | 528 | .via_type = MAC_VIA_IICI, |
529 | .scsi_type = MAC_SCSI_CCL, | 529 | .scsi_type = MAC_SCSI_LC, |
530 | .scc_type = MAC_SCC_II, | 530 | .scc_type = MAC_SCC_II, |
531 | .nubus_type = MAC_NUBUS, | 531 | .nubus_type = MAC_NUBUS, |
532 | .floppy_type = MAC_FLOPPY_SWIM_ADDR2, | 532 | .floppy_type = MAC_FLOPPY_SWIM_ADDR2, |
@@ -535,7 +535,7 @@ static struct mac_model mac_data_table[] = { | |||
535 | .name = "Performa 550", | 535 | .name = "Performa 550", |
536 | .adb_type = MAC_ADB_CUDA, | 536 | .adb_type = MAC_ADB_CUDA, |
537 | .via_type = MAC_VIA_IICI, | 537 | .via_type = MAC_VIA_IICI, |
538 | .scsi_type = MAC_SCSI_CCL, | 538 | .scsi_type = MAC_SCSI_LC, |
539 | .scc_type = MAC_SCC_II, | 539 | .scc_type = MAC_SCC_II, |
540 | .nubus_type = MAC_NUBUS, | 540 | .nubus_type = MAC_NUBUS, |
541 | .floppy_type = MAC_FLOPPY_SWIM_ADDR2, | 541 | .floppy_type = MAC_FLOPPY_SWIM_ADDR2, |
@@ -567,7 +567,7 @@ static struct mac_model mac_data_table[] = { | |||
567 | .name = "TV", | 567 | .name = "TV", |
568 | .adb_type = MAC_ADB_CUDA, | 568 | .adb_type = MAC_ADB_CUDA, |
569 | .via_type = MAC_VIA_IICI, | 569 | .via_type = MAC_VIA_IICI, |
570 | .scsi_type = MAC_SCSI_CCL, | 570 | .scsi_type = MAC_SCSI_LC, |
571 | .scc_type = MAC_SCC_II, | 571 | .scc_type = MAC_SCC_II, |
572 | .nubus_type = MAC_NUBUS, | 572 | .nubus_type = MAC_NUBUS, |
573 | .floppy_type = MAC_FLOPPY_SWIM_ADDR2, | 573 | .floppy_type = MAC_FLOPPY_SWIM_ADDR2, |
@@ -576,7 +576,7 @@ static struct mac_model mac_data_table[] = { | |||
576 | .name = "Performa 600", | 576 | .name = "Performa 600", |
577 | .adb_type = MAC_ADB_IISI, | 577 | .adb_type = MAC_ADB_IISI, |
578 | .via_type = MAC_VIA_IICI, | 578 | .via_type = MAC_VIA_IICI, |
579 | .scsi_type = MAC_SCSI_OLD, | 579 | .scsi_type = MAC_SCSI_LC, |
580 | .scc_type = MAC_SCC_II, | 580 | .scc_type = MAC_SCC_II, |
581 | .nubus_type = MAC_NUBUS, | 581 | .nubus_type = MAC_NUBUS, |
582 | .floppy_type = MAC_FLOPPY_SWIM_ADDR2, | 582 | .floppy_type = MAC_FLOPPY_SWIM_ADDR2, |
@@ -1109,8 +1109,10 @@ int __init mac_platform_init(void) | |||
1109 | platform_device_register_simple("mac_scsi", 0, | 1109 | platform_device_register_simple("mac_scsi", 0, |
1110 | mac_scsi_late_rsrc, ARRAY_SIZE(mac_scsi_late_rsrc)); | 1110 | mac_scsi_late_rsrc, ARRAY_SIZE(mac_scsi_late_rsrc)); |
1111 | break; | 1111 | break; |
1112 | case MAC_SCSI_CCL: | 1112 | case MAC_SCSI_LC: |
1113 | /* Addresses from the Color Classic Developer Note. | 1113 | /* Addresses from Mac LC data in Designing Cards & Drivers 3ed. |
1114 | * Also from the Developer Notes for Classic II, LC III, | ||
1115 | * Color Classic and IIvx. | ||
1114 | * $50F0 6000 - $50F0 7FFF: SCSI handshake | 1116 | * $50F0 6000 - $50F0 7FFF: SCSI handshake |
1115 | * $50F1 0000 - $50F1 1FFF: SCSI | 1117 | * $50F1 0000 - $50F1 1FFF: SCSI |
1116 | * $50F1 2000 - $50F1 3FFF: SCSI DMA | 1118 | * $50F1 2000 - $50F1 3FFF: SCSI DMA |