.. | .. |
---|
90 | 90 | /* The SYNC negotiation sequence looks like: |
---|
91 | 91 | * |
---|
92 | 92 | * If DEV_NEGOTIATED_SYNC not set, tack and SDTR message on to the |
---|
93 | | - * initial identify for the device and set DEV_BEGIN_SYNC_NEGOTATION |
---|
| 93 | + * initial identify for the device and set DEV_BEGIN_SYNC_NEGOTIATION |
---|
94 | 94 | * If we get an SDTR reply, work out the SXFER parameters, squirrel |
---|
95 | 95 | * them away here, clear DEV_BEGIN_SYNC_NEGOTIATION and set |
---|
96 | 96 | * DEV_NEGOTIATED_SYNC. If we get a REJECT msg, squirrel |
---|
.. | .. |
---|
209 | 209 | #endif |
---|
210 | 210 | __u32 chip710:1; /* set if really a 710 not 700 */ |
---|
211 | 211 | __u32 burst_length:4; /* set to 0 to disable 710 bursting */ |
---|
| 212 | + __u32 noncoherent:1; /* needs to use non-coherent DMA */ |
---|
212 | 213 | |
---|
213 | 214 | /* NOTHING BELOW HERE NEEDS ALTERING */ |
---|
214 | 215 | __u32 fast:1; /* if we can alter the SCSI bus clock |
---|
.. | .. |
---|
422 | 423 | #define NCR_710_MIN_XFERP 0 |
---|
423 | 424 | #define NCR_700_MIN_PERIOD 25 /* for SDTR message, 100ns */ |
---|
424 | 425 | |
---|
425 | | -#define script_patch_32(dev, script, symbol, value) \ |
---|
| 426 | +#define script_patch_32(h, script, symbol, value) \ |
---|
426 | 427 | { \ |
---|
427 | 428 | int i; \ |
---|
428 | 429 | dma_addr_t da = value; \ |
---|
429 | 430 | for(i=0; i< (sizeof(A_##symbol##_used) / sizeof(__u32)); i++) { \ |
---|
430 | 431 | __u32 val = bS_to_cpu((script)[A_##symbol##_used[i]]) + da; \ |
---|
431 | 432 | (script)[A_##symbol##_used[i]] = bS_to_host(val); \ |
---|
432 | | - dma_cache_sync((dev), &(script)[A_##symbol##_used[i]], 4, DMA_TO_DEVICE); \ |
---|
| 433 | + dma_sync_to_dev((h), &(script)[A_##symbol##_used[i]], 4); \ |
---|
433 | 434 | DEBUG((" script, patching %s at %d to %pad\n", \ |
---|
434 | 435 | #symbol, A_##symbol##_used[i], &da)); \ |
---|
435 | 436 | } \ |
---|
436 | 437 | } |
---|
437 | 438 | |
---|
438 | | -#define script_patch_32_abs(dev, script, symbol, value) \ |
---|
| 439 | +#define script_patch_32_abs(h, script, symbol, value) \ |
---|
439 | 440 | { \ |
---|
440 | 441 | int i; \ |
---|
441 | 442 | dma_addr_t da = value; \ |
---|
442 | 443 | for(i=0; i< (sizeof(A_##symbol##_used) / sizeof(__u32)); i++) { \ |
---|
443 | 444 | (script)[A_##symbol##_used[i]] = bS_to_host(da); \ |
---|
444 | | - dma_cache_sync((dev), &(script)[A_##symbol##_used[i]], 4, DMA_TO_DEVICE); \ |
---|
| 445 | + dma_sync_to_dev((h), &(script)[A_##symbol##_used[i]], 4); \ |
---|
445 | 446 | DEBUG((" script, patching %s at %d to %pad\n", \ |
---|
446 | 447 | #symbol, A_##symbol##_used[i], &da)); \ |
---|
447 | 448 | } \ |
---|
448 | 449 | } |
---|
449 | 450 | |
---|
450 | 451 | /* Used for patching the SCSI ID in the SELECT instruction */ |
---|
451 | | -#define script_patch_ID(dev, script, symbol, value) \ |
---|
| 452 | +#define script_patch_ID(h, script, symbol, value) \ |
---|
452 | 453 | { \ |
---|
453 | 454 | int i; \ |
---|
454 | 455 | for(i=0; i< (sizeof(A_##symbol##_used) / sizeof(__u32)); i++) { \ |
---|
.. | .. |
---|
456 | 457 | val &= 0xff00ffff; \ |
---|
457 | 458 | val |= ((value) & 0xff) << 16; \ |
---|
458 | 459 | (script)[A_##symbol##_used[i]] = bS_to_host(val); \ |
---|
459 | | - dma_cache_sync((dev), &(script)[A_##symbol##_used[i]], 4, DMA_TO_DEVICE); \ |
---|
| 460 | + dma_sync_to_dev((h), &(script)[A_##symbol##_used[i]], 4); \ |
---|
460 | 461 | DEBUG((" script, patching ID field %s at %d to 0x%x\n", \ |
---|
461 | 462 | #symbol, A_##symbol##_used[i], val)); \ |
---|
462 | 463 | } \ |
---|
463 | 464 | } |
---|
464 | 465 | |
---|
465 | | -#define script_patch_16(dev, script, symbol, value) \ |
---|
| 466 | +#define script_patch_16(h, script, symbol, value) \ |
---|
466 | 467 | { \ |
---|
467 | 468 | int i; \ |
---|
468 | 469 | for(i=0; i< (sizeof(A_##symbol##_used) / sizeof(__u32)); i++) { \ |
---|
.. | .. |
---|
470 | 471 | val &= 0xffff0000; \ |
---|
471 | 472 | val |= ((value) & 0xffff); \ |
---|
472 | 473 | (script)[A_##symbol##_used[i]] = bS_to_host(val); \ |
---|
473 | | - dma_cache_sync((dev), &(script)[A_##symbol##_used[i]], 4, DMA_TO_DEVICE); \ |
---|
| 474 | + dma_sync_to_dev((h), &(script)[A_##symbol##_used[i]], 4); \ |
---|
474 | 475 | DEBUG((" script, patching short field %s at %d to 0x%x\n", \ |
---|
475 | 476 | #symbol, A_##symbol##_used[i], val)); \ |
---|
476 | 477 | } \ |
---|