aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorFinn Thain <fthain@telegraphics.com.au>2015-01-06 19:17:35 -0500
committerGeert Uytterhoeven <geert@linux-m68k.org>2015-01-11 05:38:46 -0500
commit2e874d178c9e8cb048bfc1075ec0e93582c0e124 (patch)
tree77e84b642c7b5b5a19c2895deecab989de1342ca
parent8c0ce284b320d2e6ef1a7c9a590d4fa44299c695 (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.h2
-rw-r--r--arch/m68k/mac/config.c32
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