aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/scsi/libsas/sas_ata.c
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/scsi/libsas/sas_ata.c')
-rw-r--r--drivers/scsi/libsas/sas_ata.c19
1 files changed, 6 insertions, 13 deletions
diff --git a/drivers/scsi/libsas/sas_ata.c b/drivers/scsi/libsas/sas_ata.c
index b0e5ac372a32..a4811e4106df 100644
--- a/drivers/scsi/libsas/sas_ata.c
+++ b/drivers/scsi/libsas/sas_ata.c
@@ -225,10 +225,12 @@ static unsigned int sas_ata_qc_issue(struct ata_queued_cmd *qc)
225 return 0; 225 return 0;
226} 226}
227 227
228static u8 sas_ata_check_status(struct ata_port *ap) 228static bool sas_ata_qc_fill_rtf(struct ata_queued_cmd *qc)
229{ 229{
230 struct domain_device *dev = ap->private_data; 230 struct domain_device *dev = qc->ap->private_data;
231 return dev->sata_dev.tf.command; 231
232 memcpy(&qc->result_tf, &dev->sata_dev.tf, sizeof(qc->result_tf));
233 return true;
232} 234}
233 235
234static void sas_ata_phy_reset(struct ata_port *ap) 236static void sas_ata_phy_reset(struct ata_port *ap)
@@ -292,12 +294,6 @@ static void sas_ata_post_internal(struct ata_queued_cmd *qc)
292 } 294 }
293} 295}
294 296
295static void sas_ata_tf_read(struct ata_port *ap, struct ata_taskfile *tf)
296{
297 struct domain_device *dev = ap->private_data;
298 memcpy(tf, &dev->sata_dev.tf, sizeof (*tf));
299}
300
301static int sas_ata_scr_write(struct ata_port *ap, unsigned int sc_reg_in, 297static int sas_ata_scr_write(struct ata_port *ap, unsigned int sc_reg_in,
302 u32 val) 298 u32 val)
303{ 299{
@@ -348,14 +344,11 @@ static int sas_ata_scr_read(struct ata_port *ap, unsigned int sc_reg_in,
348} 344}
349 345
350static struct ata_port_operations sas_sata_ops = { 346static struct ata_port_operations sas_sata_ops = {
351 .check_status = sas_ata_check_status,
352 .check_altstatus = sas_ata_check_status,
353 .dev_select = ata_noop_dev_select,
354 .phy_reset = sas_ata_phy_reset, 347 .phy_reset = sas_ata_phy_reset,
355 .post_internal_cmd = sas_ata_post_internal, 348 .post_internal_cmd = sas_ata_post_internal,
356 .tf_read = sas_ata_tf_read,
357 .qc_prep = ata_noop_qc_prep, 349 .qc_prep = ata_noop_qc_prep,
358 .qc_issue = sas_ata_qc_issue, 350 .qc_issue = sas_ata_qc_issue,
351 .qc_fill_rtf = sas_ata_qc_fill_rtf,
359 .port_start = ata_sas_port_start, 352 .port_start = ata_sas_port_start,
360 .port_stop = ata_sas_port_stop, 353 .port_stop = ata_sas_port_stop,
361 .scr_read = sas_ata_scr_read, 354 .scr_read = sas_ata_scr_read,