mirror of
https://github.com/torvalds/linux.git
synced 2024-12-13 22:53:20 +00:00
4d8c08c71e
Move board-specific code like this, NCR5380_write(C400_CONTROL_STATUS_REG, CSR_BASE); from the core driver to the board driver. Eliminate the NCR53C400 macro from the core driver. Removal of all macros like this one will be necessary in order to have one core driver that can support all kinds of boards. Signed-off-by: Finn Thain <fthain@telegraphics.com.au> Reviewed-by: Hannes Reinecke <hare@suse.com> Tested-by: Ondrej Zary <linux@rainbow-software.org> Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>
92 lines
2.2 KiB
C
92 lines
2.2 KiB
C
/*
|
|
* Generic Generic NCR5380 driver defines
|
|
*
|
|
* Copyright 1993, Drew Eckhardt
|
|
* Visionary Computing
|
|
* (Unix and Linux consulting and custom programming)
|
|
* drew@colorado.edu
|
|
* +1 (303) 440-4894
|
|
*
|
|
* NCR53C400 extensions (c) 1994,1995,1996, Kevin Lentin
|
|
* K.Lentin@cs.monash.edu.au
|
|
*/
|
|
|
|
#ifndef GENERIC_NCR5380_H
|
|
#define GENERIC_NCR5380_H
|
|
|
|
#ifdef CONFIG_SCSI_GENERIC_NCR53C400
|
|
#define BIOSPARAM
|
|
#define NCR5380_BIOSPARAM generic_NCR5380_biosparam
|
|
#else
|
|
#define NCR5380_BIOSPARAM NULL
|
|
#endif
|
|
|
|
#ifndef CMD_PER_LUN
|
|
#define CMD_PER_LUN 2
|
|
#endif
|
|
|
|
#ifndef CAN_QUEUE
|
|
#define CAN_QUEUE 16
|
|
#endif
|
|
|
|
#define __STRVAL(x) #x
|
|
#define STRVAL(x) __STRVAL(x)
|
|
|
|
#ifndef SCSI_G_NCR5380_MEM
|
|
|
|
#define NCR5380_map_type int
|
|
#define NCR5380_map_name port
|
|
#define NCR53C400_register_offset 0
|
|
|
|
#ifdef CONFIG_SCSI_GENERIC_NCR53C400
|
|
#define NCR5380_region_size 16
|
|
#else
|
|
#define NCR5380_region_size 8
|
|
#endif
|
|
|
|
#define NCR5380_read(reg) \
|
|
inb(instance->io_port + (reg))
|
|
#define NCR5380_write(reg, value) \
|
|
outb(value, instance->io_port + (reg))
|
|
|
|
#define NCR5380_implementation_fields /* none */
|
|
|
|
#else
|
|
/* therefore SCSI_G_NCR5380_MEM */
|
|
|
|
#define NCR5380_map_type unsigned long
|
|
#define NCR5380_map_name base
|
|
#define NCR53C400_register_offset 0x108
|
|
#define NCR53C400_mem_base 0x3880
|
|
#define NCR53C400_host_buffer 0x3900
|
|
#define NCR5380_region_size 0x3a00
|
|
|
|
#define NCR5380_read(reg) \
|
|
readb(((struct NCR5380_hostdata *)shost_priv(instance))->iomem + \
|
|
NCR53C400_mem_base + (reg))
|
|
#define NCR5380_write(reg, value) \
|
|
writeb(value, ((struct NCR5380_hostdata *)shost_priv(instance))->iomem + \
|
|
NCR53C400_mem_base + (reg))
|
|
|
|
#define NCR5380_implementation_fields \
|
|
void __iomem *iomem;
|
|
|
|
#endif
|
|
|
|
#define NCR5380_intr generic_NCR5380_intr
|
|
#define NCR5380_queue_command generic_NCR5380_queue_command
|
|
#define NCR5380_abort generic_NCR5380_abort
|
|
#define NCR5380_bus_reset generic_NCR5380_bus_reset
|
|
#define NCR5380_pread generic_NCR5380_pread
|
|
#define NCR5380_pwrite generic_NCR5380_pwrite
|
|
#define NCR5380_info generic_NCR5380_info
|
|
#define NCR5380_show_info generic_NCR5380_show_info
|
|
|
|
#define BOARD_NCR5380 0
|
|
#define BOARD_NCR53C400 1
|
|
#define BOARD_NCR53C400A 2
|
|
#define BOARD_DTC3181E 3
|
|
|
|
#endif /* GENERIC_NCR5380_H */
|
|
|