Merge branch 'upstream'
authorJeff Garzik <jgarzik@pobox.com>
Mon, 13 Feb 2006 05:13:48 +0000 (00:13 -0500)
committerJeff Garzik <jgarzik@pobox.com>
Mon, 13 Feb 2006 05:13:48 +0000 (00:13 -0500)
1  2 
drivers/scsi/libata-core.c
drivers/scsi/pdc_adma.c
drivers/scsi/sata_mv.c
drivers/scsi/sata_nv.c
drivers/scsi/sata_promise.c
drivers/scsi/sata_qstor.c
drivers/scsi/sata_sx4.c
drivers/scsi/sata_vsc.c
include/linux/ata.h
include/linux/libata.h

@@@ -1045,13 -1087,7 +1080,12 @@@ retry
  
                }
  
 -              dev->cdb_len = 16;
 +              if (dev->id[59] & 0x100) {
 +                      dev->multi_count = dev->id[59] & 0xff;
 +                      DPRINTK("ata%u: dev %u multi count %u\n",
 +                              ap->id, device, dev->multi_count);
 +              }
 +
-               ap->host->max_cmd_len = 16;
        }
  
        /* ATAPI-specific feature tests */
                        printk(KERN_WARNING "ata%u: unsupported CDB len\n", ap->id);
                        goto err_out_nosup;
                }
-               ap->cdb_len = (unsigned int) rc;
-               ap->host->max_cmd_len = (unsigned char) ap->cdb_len;
+               dev->cdb_len = (unsigned int) rc;
  
 +              if (ata_id_cdb_intr(dev->id))
 +                      dev->flags |= ATA_DFLAG_CDB_INTR;
 +
                /* print device info to dmesg */
                printk(KERN_INFO "ata%u: dev %u ATAPI, max %s\n",
                       ap->id, device,
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
@@@ -268,8 -267,16 +268,18 @@@ struct ata_taskfile 
          ((u64) (id)[(n) + 1] << 16) | \
          ((u64) (id)[(n) + 0]) )
  
 +#define ata_id_cdb_intr(id)   (((id)[0] & 0x60) == 0x20)
 +
+ static inline unsigned int ata_id_major_version(const u16 *id)
+ {
+       unsigned int mver;
+       for (mver = 14; mver >= 1; mver--)
+               if (id[ATA_ID_MAJOR_VER] & (1 << mver))
+                       break;
+       return mver;
+ }
  static inline int ata_id_current_chs_valid(const u16 *id)
  {
        /* For ATA-1 devices, if the INITIALIZE DEVICE PARAMETERS command 
@@@ -122,9 -122,7 +122,8 @@@ enum 
        /* struct ata_device stuff */
        ATA_DFLAG_LBA48         = (1 << 0), /* device supports LBA48 */
        ATA_DFLAG_PIO           = (1 << 1), /* device currently in PIO mode */
-       ATA_DFLAG_LOCK_SECTORS  = (1 << 2), /* don't adjust max_sectors */
-       ATA_DFLAG_LBA           = (1 << 3), /* device supports LBA */
-       ATA_DFLAG_CDB_INTR      = (1 << 4), /* device asserts INTRQ when ready for CDB */
+       ATA_DFLAG_LBA           = (1 << 2), /* device supports LBA */
++      ATA_DFLAG_CDB_INTR      = (1 << 3), /* device asserts INTRQ when ready for CDB */
  
        ATA_DEV_UNKNOWN         = 0,    /* unknown device */
        ATA_DEV_ATA             = 1,    /* ATA device */