summaryrefslogtreecommitdiff
path: root/include/linux
diff options
context:
space:
mode:
authorJames Bottomley <jejb@titanic.(none)>2005-12-16 02:35:24 +0300
committerJames Bottomley <jejb@titanic.(none)>2005-12-16 02:35:24 +0300
commit2a1e1379bae53f647c463a677cc2ec71b591c348 (patch)
treea152beb5e8679e94430c5b47bf798dd8a2d4fd5d /include/linux
parent787926b1b2d21d42ca462dc736b77f1a4a30c503 (diff)
parent7b6666530e2736f190a2629c8abe34275054449f (diff)
downloadlinux-2a1e1379bae53f647c463a677cc2ec71b591c348.tar.xz
Merge by hand (conflicts in scsi_lib.c)
This merge is pretty extensive. The conflict is over the new req->retries parameter, so I had to change the prototype to scsi_setup_blk_pc_cmnd() and the usage in sd, sr and st. Signed-off-by: James Bottomley <James.Bottomley@SteelEye.com>
Diffstat (limited to 'include/linux')
-rw-r--r--include/linux/ide.h131
-rw-r--r--include/linux/libata.h1
-rw-r--r--include/linux/pci_ids.h1
3 files changed, 8 insertions, 125 deletions
diff --git a/include/linux/ide.h b/include/linux/ide.h
index a39c3c59789d..7b6a6a58e465 100644
--- a/include/linux/ide.h
+++ b/include/linux/ide.h
@@ -23,17 +23,6 @@
#include <asm/io.h>
#include <asm/semaphore.h>
-/*
- * This is the multiple IDE interface driver, as evolved from hd.c.
- * It supports up to four IDE interfaces, on one or more IRQs (usually 14 & 15).
- * There can be up to two drives per interface, as per the ATA-2 spec.
- *
- * Primary i/f: ide0: major=3; (hda) minor=0; (hdb) minor=64
- * Secondary i/f: ide1: major=22; (hdc or hd1a) minor=0; (hdd or hd1b) minor=64
- * Tertiary i/f: ide2: major=33; (hde) minor=0; (hdf) minor=64
- * Quaternary i/f: ide3: major=34; (hdg) minor=0; (hdh) minor=64
- */
-
/******************************************************************************
* IDE driver configuration options (play with these as desired):
*
@@ -193,11 +182,6 @@ typedef unsigned char byte; /* used everywhere */
#define WAIT_CMD (10*HZ) /* 10sec - maximum wait for an IRQ to happen */
#define WAIT_MIN_SLEEP (2*HZ/100) /* 20msec - minimum sleep time */
-#define HOST(hwif,chipset) \
-{ \
- return ((hwif)->chipset == chipset) ? 1 : 0; \
-}
-
/*
* Check for an interrupt and acknowledge the interrupt status
*/
@@ -391,45 +375,6 @@ typedef union {
} ata_nsector_t, ata_data_t, atapi_bcount_t, ata_index_t;
/*
- * ATA-IDE Error Register
- *
- * mark : Bad address mark
- * tzero : Couldn't find track 0
- * abrt : Aborted Command
- * mcr : Media Change Request
- * id : ID field not found
- * mce : Media Change Event
- * ecc : Uncorrectable ECC error
- * bdd : dual meaing
- */
-typedef union {
- unsigned all :8;
- struct {
-#if defined(__LITTLE_ENDIAN_BITFIELD)
- unsigned mark :1;
- unsigned tzero :1;
- unsigned abrt :1;
- unsigned mcr :1;
- unsigned id :1;
- unsigned mce :1;
- unsigned ecc :1;
- unsigned bdd :1;
-#elif defined(__BIG_ENDIAN_BITFIELD)
- unsigned bdd :1;
- unsigned ecc :1;
- unsigned mce :1;
- unsigned id :1;
- unsigned mcr :1;
- unsigned abrt :1;
- unsigned tzero :1;
- unsigned mark :1;
-#else
-#error "Please fix <asm/byteorder.h>"
-#endif
- } b;
-} ata_error_t;
-
-/*
* ATA-IDE Select Register, aka Device-Head
*
* head : always zeros here
@@ -504,39 +449,6 @@ typedef union {
} ata_status_t, atapi_status_t;
/*
- * ATA-IDE Control Register
- *
- * bit0 : Should be set to zero
- * nIEN : device INTRQ to host
- * SRST : host soft reset bit
- * bit3 : ATA-2 thingy, Should be set to 1
- * reserved456 : Reserved
- * HOB : 48-bit address ordering, High Ordered Bit
- */
-typedef union {
- unsigned all : 8;
- struct {
-#if defined(__LITTLE_ENDIAN_BITFIELD)
- unsigned bit0 : 1;
- unsigned nIEN : 1;
- unsigned SRST : 1;
- unsigned bit3 : 1;
- unsigned reserved456 : 3;
- unsigned HOB : 1;
-#elif defined(__BIG_ENDIAN_BITFIELD)
- unsigned HOB : 1;
- unsigned reserved456 : 3;
- unsigned bit3 : 1;
- unsigned SRST : 1;
- unsigned nIEN : 1;
- unsigned bit0 : 1;
-#else
-#error "Please fix <asm/byteorder.h>"
-#endif
- } b;
-} ata_control_t;
-
-/*
* ATAPI Feature Register
*
* dma : Using DMA or PIO
@@ -618,39 +530,6 @@ typedef union {
} atapi_error_t;
/*
- * ATAPI floppy Drive Select Register
- *
- * sam_lun : Logical unit number
- * reserved3 : Reserved
- * drv : The responding drive will be drive 0 (0) or drive 1 (1)
- * one5 : Should be set to 1
- * reserved6 : Reserved
- * one7 : Should be set to 1
- */
-typedef union {
- unsigned all :8;
- struct {
-#if defined(__LITTLE_ENDIAN_BITFIELD)
- unsigned sam_lun :3;
- unsigned reserved3 :1;
- unsigned drv :1;
- unsigned one5 :1;
- unsigned reserved6 :1;
- unsigned one7 :1;
-#elif defined(__BIG_ENDIAN_BITFIELD)
- unsigned one7 :1;
- unsigned reserved6 :1;
- unsigned one5 :1;
- unsigned drv :1;
- unsigned reserved3 :1;
- unsigned sam_lun :3;
-#else
-#error "Please fix <asm/byteorder.h>"
-#endif
- } b;
-} atapi_select_t;
-
-/*
* Status returned from various ide_ functions
*/
typedef enum {
@@ -1101,10 +980,7 @@ typedef struct ide_driver_s {
int (*end_request)(ide_drive_t *, int, int);
ide_startstop_t (*error)(ide_drive_t *, struct request *rq, u8, u8);
ide_startstop_t (*abort)(ide_drive_t *, struct request *rq);
- int (*ioctl)(ide_drive_t *, struct inode *, struct file *, unsigned int, unsigned long);
ide_proc_entry_t *proc;
- void (*ata_prebuilder)(ide_drive_t *);
- void (*atapi_prebuilder)(ide_drive_t *);
struct device_driver gen_driver;
} ide_driver_t;
@@ -1298,7 +1174,6 @@ extern int ide_spin_wait_hwgroup(ide_drive_t *);
extern void ide_timer_expiry(unsigned long);
extern irqreturn_t ide_intr(int irq, void *dev_id, struct pt_regs *regs);
extern void do_ide_request(request_queue_t *);
-extern void ide_init_subdrivers(void);
void ide_init_disk(struct gendisk *, ide_drive_t *);
@@ -1371,6 +1246,12 @@ void ide_init_sg_cmd(ide_drive_t *, struct request *);
#define GOOD_DMA_DRIVE 1
#ifdef CONFIG_BLK_DEV_IDEDMA
+struct drive_list_entry {
+ const char *id_model;
+ const char *id_firmware;
+};
+
+int ide_in_drive_list(struct hd_driveid *, const struct drive_list_entry *);
int __ide_dma_bad_drive(ide_drive_t *);
int __ide_dma_good_drive(ide_drive_t *);
int ide_use_dma(ide_drive_t *);
diff --git a/include/linux/libata.h b/include/linux/libata.h
index f2dbb684ce9e..41ea7dbc1755 100644
--- a/include/linux/libata.h
+++ b/include/linux/libata.h
@@ -122,6 +122,7 @@ enum {
ATA_FLAG_NOINTR = (1 << 9), /* FIXME: Remove this once
* proper HSM is in place. */
ATA_FLAG_DEBUGMSG = (1 << 10),
+ ATA_FLAG_NO_ATAPI = (1 << 11), /* No ATAPI support */
ATA_QCFLAG_ACTIVE = (1 << 1), /* cmd not yet ack'd to scsi lyer */
ATA_QCFLAG_SG = (1 << 3), /* have s/g table? */
diff --git a/include/linux/pci_ids.h b/include/linux/pci_ids.h
index aa76fc4e38c2..a17e171384ef 100644
--- a/include/linux/pci_ids.h
+++ b/include/linux/pci_ids.h
@@ -1245,6 +1245,7 @@
#define PCI_DEVICE_ID_VIA_8378_0 0x3205
#define PCI_DEVICE_ID_VIA_8783_0 0x3208
#define PCI_DEVICE_ID_VIA_8237 0x3227
+#define PCI_DEVICE_ID_VIA_8251 0x3287
#define PCI_DEVICE_ID_VIA_3296_0 0x0296
#define PCI_DEVICE_ID_VIA_8231 0x8231
#define PCI_DEVICE_ID_VIA_8231_4 0x8235