[libata] ACPI: remove needless ->qc_issue hook existence test

All drivers must implement this hook, otherwise ATA commands would go
nowhere (and a lot of other oopsen would appear as well).

Signed-off-by: Jeff Garzik <jeff@garzik.org>
This commit is contained in:
Jeff Garzik 2007-02-24 21:05:01 -05:00
parent ea34e45a46
commit fc16c25ff4
1 changed files with 20 additions and 27 deletions

View File

@ -455,6 +455,9 @@ static void taskfile_load_raw(struct ata_port *ap,
struct ata_device *atadev,
const struct taskfile_array *gtf)
{
struct ata_taskfile tf;
unsigned int err;
if (ata_msg_probe(ap))
ata_dev_printk(atadev, KERN_DEBUG, "%s: (0x1f1-1f7): hex: "
"%02x %02x %02x %02x %02x %02x %02x\n",
@ -467,35 +470,25 @@ static void taskfile_load_raw(struct ata_port *ap,
&& (gtf->tfa[6] == 0))
return;
if (ap->ops->qc_issue) {
struct ata_taskfile tf;
unsigned int err;
ata_tf_init(atadev, &tf);
ata_tf_init(atadev, &tf);
/* convert gtf to tf */
tf.flags |= ATA_TFLAG_ISADDR | ATA_TFLAG_DEVICE; /* TBD */
tf.protocol = atadev->class == ATA_DEV_ATAPI ?
ATA_PROT_ATAPI_NODATA : ATA_PROT_NODATA;
tf.feature = gtf->tfa[0]; /* 0x1f1 */
tf.nsect = gtf->tfa[1]; /* 0x1f2 */
tf.lbal = gtf->tfa[2]; /* 0x1f3 */
tf.lbam = gtf->tfa[3]; /* 0x1f4 */
tf.lbah = gtf->tfa[4]; /* 0x1f5 */
tf.device = gtf->tfa[5]; /* 0x1f6 */
tf.command = gtf->tfa[6]; /* 0x1f7 */
/* convert gtf to tf */
tf.flags |= ATA_TFLAG_ISADDR | ATA_TFLAG_DEVICE; /* TBD */
tf.protocol = atadev->class == ATA_DEV_ATAPI ?
ATA_PROT_ATAPI_NODATA : ATA_PROT_NODATA;
tf.feature = gtf->tfa[0]; /* 0x1f1 */
tf.nsect = gtf->tfa[1]; /* 0x1f2 */
tf.lbal = gtf->tfa[2]; /* 0x1f3 */
tf.lbam = gtf->tfa[3]; /* 0x1f4 */
tf.lbah = gtf->tfa[4]; /* 0x1f5 */
tf.device = gtf->tfa[5]; /* 0x1f6 */
tf.command = gtf->tfa[6]; /* 0x1f7 */
err = ata_exec_internal(atadev, &tf, NULL, DMA_NONE, NULL, 0);
if (err && ata_msg_probe(ap))
ata_dev_printk(atadev, KERN_ERR,
"%s: ata_exec_internal failed: %u\n",
__FUNCTION__, err);
} else
if (ata_msg_warn(ap))
ata_dev_printk(atadev, KERN_WARNING,
"%s: SATA driver is missing qc_issue function"
" entry points\n",
__FUNCTION__);
err = ata_exec_internal(atadev, &tf, NULL, DMA_NONE, NULL, 0);
if (err && ata_msg_probe(ap))
ata_dev_printk(atadev, KERN_ERR,
"%s: ata_exec_internal failed: %u\n",
__FUNCTION__, err);
}
/**