Lines Matching refs:ap
64 static struct ata_device *__ata_scsi_find_dev(struct ata_port *ap,
66 static struct ata_device *ata_scsi_find_dev(struct ata_port *ap,
119 struct ata_port *ap = ata_shost_to_port(shost); in ata_scsi_lpm_store() local
136 spin_lock_irqsave(ap->lock, flags); in ata_scsi_lpm_store()
138 ata_for_each_link(link, ap, EDGE) { in ata_scsi_lpm_store()
139 ata_for_each_dev(dev, &ap->link, ENABLED) { in ata_scsi_lpm_store()
147 ap->target_lpm_policy = policy; in ata_scsi_lpm_store()
148 ata_port_schedule_eh(ap); in ata_scsi_lpm_store()
150 spin_unlock_irqrestore(ap->lock, flags); in ata_scsi_lpm_store()
158 struct ata_port *ap = ata_shost_to_port(shost); in ata_scsi_lpm_show() local
160 if (ap->target_lpm_policy >= ARRAY_SIZE(ata_lpm_policy_names)) in ata_scsi_lpm_show()
164 ata_lpm_policy_names[ap->target_lpm_policy]); in ata_scsi_lpm_show()
174 struct ata_port *ap; in ata_scsi_park_show() local
181 ap = ata_shost_to_port(sdev->host); in ata_scsi_park_show()
183 spin_lock_irqsave(ap->lock, flags); in ata_scsi_park_show()
184 dev = ata_scsi_find_dev(ap, sdev); in ata_scsi_park_show()
196 if (ap->pflags & ATA_PFLAG_EH_IN_PROGRESS && in ata_scsi_park_show()
204 spin_unlock_irq(ap->lock); in ata_scsi_park_show()
214 struct ata_port *ap; in ata_scsi_park_store() local
230 ap = ata_shost_to_port(sdev->host); in ata_scsi_park_store()
232 spin_lock_irqsave(ap->lock, flags); in ata_scsi_park_store()
233 dev = ata_scsi_find_dev(ap, sdev); in ata_scsi_park_store()
252 ata_port_schedule_eh(ap); in ata_scsi_park_store()
253 complete(&ap->park_req_pending); in ata_scsi_park_store()
265 spin_unlock_irqrestore(ap->lock, flags); in ata_scsi_park_store()
285 struct ata_port *ap = ata_shost_to_port(shost); in ata_scsi_em_message_store() local
286 if (ap->ops->em_store && (ap->flags & ATA_FLAG_EM)) in ata_scsi_em_message_store()
287 return ap->ops->em_store(ap, buf, count); in ata_scsi_em_message_store()
296 struct ata_port *ap = ata_shost_to_port(shost); in ata_scsi_em_message_show() local
298 if (ap->ops->em_show && (ap->flags & ATA_FLAG_EM)) in ata_scsi_em_message_show()
299 return ap->ops->em_show(ap, buf); in ata_scsi_em_message_show()
311 struct ata_port *ap = ata_shost_to_port(shost); in ata_scsi_em_message_type_show() local
313 return snprintf(buf, 23, "%d\n", ap->em_message_type); in ata_scsi_em_message_type_show()
324 struct ata_port *ap = ata_shost_to_port(sdev->host); in ata_scsi_activity_show() local
325 struct ata_device *atadev = ata_scsi_find_dev(ap, sdev); in ata_scsi_activity_show()
327 if (atadev && ap->ops->sw_activity_show && in ata_scsi_activity_show()
328 (ap->flags & ATA_FLAG_SW_ACTIVITY)) in ata_scsi_activity_show()
329 return ap->ops->sw_activity_show(atadev, buf); in ata_scsi_activity_show()
338 struct ata_port *ap = ata_shost_to_port(sdev->host); in ata_scsi_activity_store() local
339 struct ata_device *atadev = ata_scsi_find_dev(ap, sdev); in ata_scsi_activity_store()
343 if (atadev && ap->ops->sw_activity_store && in ata_scsi_activity_store()
344 (ap->flags & ATA_FLAG_SW_ACTIVITY)) { in ata_scsi_activity_store()
348 rc = ap->ops->sw_activity_store(atadev, val); in ata_scsi_activity_store()
415 struct ata_port *ap = ata_shost_to_port(sdev->host); in ata_scsi_unlock_native_capacity() local
419 spin_lock_irqsave(ap->lock, flags); in ata_scsi_unlock_native_capacity()
421 dev = ata_scsi_find_dev(ap, sdev); in ata_scsi_unlock_native_capacity()
425 ata_port_schedule_eh(ap); in ata_scsi_unlock_native_capacity()
428 spin_unlock_irqrestore(ap->lock, flags); in ata_scsi_unlock_native_capacity()
429 ata_port_wait_eh(ap); in ata_scsi_unlock_native_capacity()
444 static int ata_get_identity(struct ata_port *ap, struct scsi_device *sdev, in ata_get_identity() argument
447 struct ata_device *dev = ata_scsi_find_dev(ap, sdev); in ata_get_identity()
666 static int ata_ioc32(struct ata_port *ap) in ata_ioc32() argument
668 if (ap->flags & ATA_FLAG_PIO_DMA) in ata_ioc32()
670 if (ap->pflags & ATA_PFLAG_PIO32) in ata_ioc32()
675 int ata_sas_scsi_ioctl(struct ata_port *ap, struct scsi_device *scsidev, in ata_sas_scsi_ioctl() argument
684 spin_lock_irqsave(ap->lock, flags); in ata_sas_scsi_ioctl()
685 val = ata_ioc32(ap); in ata_sas_scsi_ioctl()
686 spin_unlock_irqrestore(ap->lock, flags); in ata_sas_scsi_ioctl()
692 spin_lock_irqsave(ap->lock, flags); in ata_sas_scsi_ioctl()
693 if (ap->pflags & ATA_PFLAG_PIO32CHANGE) { in ata_sas_scsi_ioctl()
695 ap->pflags |= ATA_PFLAG_PIO32; in ata_sas_scsi_ioctl()
697 ap->pflags &= ~ATA_PFLAG_PIO32; in ata_sas_scsi_ioctl()
699 if (val != ata_ioc32(ap)) in ata_sas_scsi_ioctl()
702 spin_unlock_irqrestore(ap->lock, flags); in ata_sas_scsi_ioctl()
706 return ata_get_identity(ap, scsidev, arg); in ata_sas_scsi_ioctl()
982 int verbose = qc->ap->ops->error_handler == NULL; in ata_gen_passthru_sense()
994 ata_to_sense_error(qc->ap->print_id, tf->command, tf->feature, in ata_gen_passthru_sense()
1056 int verbose = qc->ap->ops->error_handler == NULL; in ata_gen_ata_sense()
1071 ata_to_sense_error(qc->ap->print_id, tf->command, tf->feature, in ata_gen_ata_sense()
1210 struct ata_port *ap = ata_shost_to_port(sdev->host); in ata_scsi_slave_config() local
1211 struct ata_device *dev = __ata_scsi_find_dev(ap, sdev); in ata_scsi_slave_config()
1238 struct ata_port *ap = ata_shost_to_port(sdev->host); in ata_scsi_slave_destroy() local
1243 if (!ap->ops->error_handler) in ata_scsi_slave_destroy()
1246 spin_lock_irqsave(ap->lock, flags); in ata_scsi_slave_destroy()
1247 dev = __ata_scsi_find_dev(ap, sdev); in ata_scsi_slave_destroy()
1252 ata_port_schedule_eh(ap); in ata_scsi_slave_destroy()
1254 spin_unlock_irqrestore(ap->lock, flags); in ata_scsi_slave_destroy()
1271 int __ata_change_queue_depth(struct ata_port *ap, struct scsi_device *sdev, in __ata_change_queue_depth() argument
1280 dev = ata_scsi_find_dev(ap, sdev); in __ata_change_queue_depth()
1285 spin_lock_irqsave(ap->lock, flags); in __ata_change_queue_depth()
1291 spin_unlock_irqrestore(ap->lock, flags); in __ata_change_queue_depth()
1321 struct ata_port *ap = ata_shost_to_port(sdev->host); in ata_scsi_change_queue_depth() local
1323 return __ata_change_queue_depth(ap, sdev, queue_depth); in ata_scsi_change_queue_depth()
1382 if ((qc->ap->flags & ATA_FLAG_NO_POWEROFF_SPINDOWN) && in ata_scsi_start_stop_xlat()
1386 if ((qc->ap->flags & ATA_FLAG_NO_HIBERNATE_SPINDOWN) && in ata_scsi_start_stop_xlat()
1770 struct ata_port *ap = qc->ap; in ata_scsi_qc_complete() local
1792 if (need_sense && !ap->ops->error_handler) in ata_scsi_qc_complete()
1793 ata_dump_status(ap->print_id, &qc->result_tf); in ata_scsi_qc_complete()
1827 struct ata_port *ap = dev->link->ap; in ata_scsi_translate() local
1855 if (ap->ops->qc_defer) { in ata_scsi_translate()
1856 if ((rc = ap->ops->qc_defer(qc))) in ata_scsi_translate()
2019 (args->dev->link->ap->pflags & ATA_PFLAG_EXTERNAL)) in ata_scsiop_inq_std()
2601 static inline int ata_pio_use_silly(struct ata_port *ap) in ata_pio_use_silly() argument
2603 return (ap->flags & ATA_FLAG_PIO_DMA); in ata_pio_use_silly()
2608 struct ata_port *ap = qc->ap; in atapi_request_sense() local
2616 if (ap->ops->sff_tf_read) in atapi_request_sense()
2617 ap->ops->sff_tf_read(ap, &qc->tf); in atapi_request_sense()
2638 if (ata_pio_use_silly(ap)) { in atapi_request_sense()
2663 if (unlikely(qc->ap->ops->error_handler && in atapi_qc_complete()
2832 static struct ata_device *ata_find_dev(struct ata_port *ap, int devno) in ata_find_dev() argument
2834 if (!sata_pmp_attached(ap)) { in ata_find_dev()
2835 if (likely(devno < ata_link_max_devices(&ap->link))) in ata_find_dev()
2836 return &ap->link.device[devno]; in ata_find_dev()
2838 if (likely(devno < ap->nr_pmp_links)) in ata_find_dev()
2839 return &ap->pmp_link[devno].device[0]; in ata_find_dev()
2845 static struct ata_device *__ata_scsi_find_dev(struct ata_port *ap, in __ata_scsi_find_dev() argument
2851 if (!sata_pmp_attached(ap)) { in __ata_scsi_find_dev()
2861 return ata_find_dev(ap, devno); in __ata_scsi_find_dev()
2881 ata_scsi_find_dev(struct ata_port *ap, const struct scsi_device *scsidev) in ata_scsi_find_dev() argument
2883 struct ata_device *dev = __ata_scsi_find_dev(ap, scsidev); in ata_scsi_find_dev()
3437 static inline void ata_scsi_dump_cdb(struct ata_port *ap, in ata_scsi_dump_cdb() argument
3445 ap->print_id, in ata_scsi_dump_cdb()
3522 struct ata_port *ap; in ata_scsi_queuecmd() local
3528 ap = ata_shost_to_port(shost); in ata_scsi_queuecmd()
3530 spin_lock_irqsave(ap->lock, irq_flags); in ata_scsi_queuecmd()
3532 ata_scsi_dump_cdb(ap, cmd); in ata_scsi_queuecmd()
3534 dev = ata_scsi_find_dev(ap, scsidev); in ata_scsi_queuecmd()
3542 spin_unlock_irqrestore(ap->lock, irq_flags); in ata_scsi_queuecmd()
3671 struct ata_port *ap = host->ports[i]; in ata_scsi_add_hosts() local
3680 *(struct ata_port **)&shost->hostdata[0] = ap; in ata_scsi_add_hosts()
3681 ap->scsi_host = shost; in ata_scsi_add_hosts()
3684 shost->unique_id = ap->print_id; in ata_scsi_add_hosts()
3698 rc = scsi_add_host_with_dma(ap->scsi_host, in ata_scsi_add_hosts()
3699 &ap->tdev, ap->host->dev); in ata_scsi_add_hosts()
3718 void ata_scsi_scan_host(struct ata_port *ap, int sync) in ata_scsi_scan_host() argument
3726 ata_for_each_link(link, ap, EDGE) { in ata_scsi_scan_host()
3739 sdev = __scsi_add_device(ap->scsi_host, channel, id, 0, in ata_scsi_scan_host()
3754 ata_for_each_link(link, ap, EDGE) { in ata_scsi_scan_host()
3783 ata_port_err(ap, in ata_scsi_scan_host()
3787 queue_delayed_work(system_long_wq, &ap->hotplug_task, in ata_scsi_scan_host()
3827 struct ata_port *ap = dev->link->ap; in ata_scsi_remove_dev() local
3837 mutex_lock(&ap->scsi_host->scan_mutex); in ata_scsi_remove_dev()
3838 spin_lock_irqsave(ap->lock, flags); in ata_scsi_remove_dev()
3862 spin_unlock_irqrestore(ap->lock, flags); in ata_scsi_remove_dev()
3863 mutex_unlock(&ap->scsi_host->scan_mutex); in ata_scsi_remove_dev()
3876 struct ata_port *ap = link->ap; in ata_scsi_handle_link_detach() local
3885 spin_lock_irqsave(ap->lock, flags); in ata_scsi_handle_link_detach()
3887 spin_unlock_irqrestore(ap->lock, flags); in ata_scsi_handle_link_detach()
3927 struct ata_port *ap = in ata_scsi_hotplug() local
3931 if (ap->pflags & ATA_PFLAG_UNLOADING) { in ata_scsi_hotplug()
3958 mutex_lock(&ap->scsi_scan_mutex); in ata_scsi_hotplug()
3964 ata_scsi_handle_link_detach(&ap->link); in ata_scsi_hotplug()
3965 if (ap->pmp_link) in ata_scsi_hotplug()
3967 ata_scsi_handle_link_detach(&ap->pmp_link[i]); in ata_scsi_hotplug()
3970 ata_scsi_scan_host(ap, 0); in ata_scsi_hotplug()
3972 mutex_unlock(&ap->scsi_scan_mutex); in ata_scsi_hotplug()
3995 struct ata_port *ap = ata_shost_to_port(shost); in ata_scsi_user_scan() local
3999 if (!ap->ops->error_handler) in ata_scsi_user_scan()
4005 if (!sata_pmp_attached(ap)) { in ata_scsi_user_scan()
4015 spin_lock_irqsave(ap->lock, flags); in ata_scsi_user_scan()
4020 ata_for_each_link(link, ap, EDGE) { in ata_scsi_user_scan()
4026 struct ata_device *dev = ata_find_dev(ap, devno); in ata_scsi_user_scan()
4037 ata_port_schedule_eh(ap); in ata_scsi_user_scan()
4038 spin_unlock_irqrestore(ap->lock, flags); in ata_scsi_user_scan()
4039 ata_port_wait_eh(ap); in ata_scsi_user_scan()
4041 spin_unlock_irqrestore(ap->lock, flags); in ata_scsi_user_scan()
4058 struct ata_port *ap = in ata_scsi_dev_rescan() local
4064 mutex_lock(&ap->scsi_scan_mutex); in ata_scsi_dev_rescan()
4065 spin_lock_irqsave(ap->lock, flags); in ata_scsi_dev_rescan()
4067 ata_for_each_link(link, ap, EDGE) { in ata_scsi_dev_rescan()
4076 spin_unlock_irqrestore(ap->lock, flags); in ata_scsi_dev_rescan()
4079 spin_lock_irqsave(ap->lock, flags); in ata_scsi_dev_rescan()
4083 spin_unlock_irqrestore(ap->lock, flags); in ata_scsi_dev_rescan()
4084 mutex_unlock(&ap->scsi_scan_mutex); in ata_scsi_dev_rescan()
4104 struct ata_port *ap; in ata_sas_port_alloc() local
4106 ap = ata_port_alloc(host); in ata_sas_port_alloc()
4107 if (!ap) in ata_sas_port_alloc()
4110 ap->port_no = 0; in ata_sas_port_alloc()
4111 ap->lock = &host->lock; in ata_sas_port_alloc()
4112 ap->pio_mask = port_info->pio_mask; in ata_sas_port_alloc()
4113 ap->mwdma_mask = port_info->mwdma_mask; in ata_sas_port_alloc()
4114 ap->udma_mask = port_info->udma_mask; in ata_sas_port_alloc()
4115 ap->flags |= port_info->flags; in ata_sas_port_alloc()
4116 ap->ops = port_info->port_ops; in ata_sas_port_alloc()
4117 ap->cbl = ATA_CBL_SATA; in ata_sas_port_alloc()
4119 return ap; in ata_sas_port_alloc()
4135 int ata_sas_port_start(struct ata_port *ap) in ata_sas_port_start() argument
4141 if (!ap->ops->error_handler) in ata_sas_port_start()
4142 ap->pflags &= ~ATA_PFLAG_FROZEN; in ata_sas_port_start()
4157 void ata_sas_port_stop(struct ata_port *ap) in ata_sas_port_stop() argument
4169 void ata_sas_async_probe(struct ata_port *ap) in ata_sas_async_probe() argument
4171 __ata_port_probe(ap); in ata_sas_async_probe()
4175 int ata_sas_sync_probe(struct ata_port *ap) in ata_sas_sync_probe() argument
4177 return ata_port_probe(ap); in ata_sas_sync_probe()
4193 int ata_sas_port_init(struct ata_port *ap) in ata_sas_port_init() argument
4195 int rc = ap->ops->port_start(ap); in ata_sas_port_init()
4199 ap->print_id = atomic_inc_return(&ata_print_id); in ata_sas_port_init()
4210 void ata_sas_port_destroy(struct ata_port *ap) in ata_sas_port_destroy() argument
4212 if (ap->ops->port_stop) in ata_sas_port_destroy()
4213 ap->ops->port_stop(ap); in ata_sas_port_destroy()
4214 kfree(ap); in ata_sas_port_destroy()
4227 int ata_sas_slave_configure(struct scsi_device *sdev, struct ata_port *ap) in ata_sas_slave_configure() argument
4230 ata_scsi_dev_config(sdev, ap->link.device); in ata_sas_slave_configure()
4245 int ata_sas_queuecmd(struct scsi_cmnd *cmd, struct ata_port *ap) in ata_sas_queuecmd() argument
4249 ata_scsi_dump_cdb(ap, cmd); in ata_sas_queuecmd()
4251 if (likely(ata_dev_enabled(ap->link.device))) in ata_sas_queuecmd()
4252 rc = __ata_scsi_queuecmd(cmd, ap->link.device); in ata_sas_queuecmd()
4261 int ata_sas_allocate_tag(struct ata_port *ap) in ata_sas_allocate_tag() argument
4263 unsigned int max_queue = ap->host->n_tags; in ata_sas_allocate_tag()
4266 for (i = 0, tag = ap->sas_last_tag + 1; i < max_queue; i++, tag++) { in ata_sas_allocate_tag()
4273 if (!test_and_set_bit(tag, &ap->sas_tag_allocated)) { in ata_sas_allocate_tag()
4274 ap->sas_last_tag = tag; in ata_sas_allocate_tag()
4281 void ata_sas_free_tag(unsigned int tag, struct ata_port *ap) in ata_sas_free_tag() argument
4283 clear_bit(tag, &ap->sas_tag_allocated); in ata_sas_free_tag()