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()
1761 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()
1829 struct ata_port *ap = dev->link->ap; in ata_scsi_translate() local
1857 if (ap->ops->qc_defer) { in ata_scsi_translate()
1858 if ((rc = ap->ops->qc_defer(qc))) in ata_scsi_translate()
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()
2834 static struct ata_device *ata_find_dev(struct ata_port *ap, int devno) in ata_find_dev() argument
2836 if (!sata_pmp_attached(ap)) { in ata_find_dev()
2837 if (likely(devno < ata_link_max_devices(&ap->link))) in ata_find_dev()
2838 return &ap->link.device[devno]; in ata_find_dev()
2840 if (likely(devno < ap->nr_pmp_links)) in ata_find_dev()
2841 return &ap->pmp_link[devno].device[0]; in ata_find_dev()
2847 static struct ata_device *__ata_scsi_find_dev(struct ata_port *ap, in __ata_scsi_find_dev() argument
2853 if (!sata_pmp_attached(ap)) { in __ata_scsi_find_dev()
2863 return ata_find_dev(ap, devno); in __ata_scsi_find_dev()
2883 ata_scsi_find_dev(struct ata_port *ap, const struct scsi_device *scsidev) in ata_scsi_find_dev() argument
2885 struct ata_device *dev = __ata_scsi_find_dev(ap, scsidev); in ata_scsi_find_dev()
3430 static inline void ata_scsi_dump_cdb(struct ata_port *ap, in ata_scsi_dump_cdb() argument
3438 ap->print_id, in ata_scsi_dump_cdb()
3515 struct ata_port *ap; in ata_scsi_queuecmd() local
3521 ap = ata_shost_to_port(shost); in ata_scsi_queuecmd()
3523 spin_lock_irqsave(ap->lock, irq_flags); in ata_scsi_queuecmd()
3525 ata_scsi_dump_cdb(ap, cmd); in ata_scsi_queuecmd()
3527 dev = ata_scsi_find_dev(ap, scsidev); in ata_scsi_queuecmd()
3535 spin_unlock_irqrestore(ap->lock, irq_flags); in ata_scsi_queuecmd()
3664 struct ata_port *ap = host->ports[i]; in ata_scsi_add_hosts() local
3673 *(struct ata_port **)&shost->hostdata[0] = ap; in ata_scsi_add_hosts()
3674 ap->scsi_host = shost; in ata_scsi_add_hosts()
3677 shost->unique_id = ap->print_id; in ata_scsi_add_hosts()
3694 rc = scsi_add_host_with_dma(ap->scsi_host, in ata_scsi_add_hosts()
3695 &ap->tdev, ap->host->dev); in ata_scsi_add_hosts()
3714 void ata_scsi_scan_host(struct ata_port *ap, int sync) in ata_scsi_scan_host() argument
3722 ata_for_each_link(link, ap, EDGE) { in ata_scsi_scan_host()
3735 sdev = __scsi_add_device(ap->scsi_host, channel, id, 0, in ata_scsi_scan_host()
3750 ata_for_each_link(link, ap, EDGE) { in ata_scsi_scan_host()
3779 ata_port_err(ap, in ata_scsi_scan_host()
3783 queue_delayed_work(system_long_wq, &ap->hotplug_task, in ata_scsi_scan_host()
3823 struct ata_port *ap = dev->link->ap; in ata_scsi_remove_dev() local
3833 mutex_lock(&ap->scsi_host->scan_mutex); in ata_scsi_remove_dev()
3834 spin_lock_irqsave(ap->lock, flags); in ata_scsi_remove_dev()
3858 spin_unlock_irqrestore(ap->lock, flags); in ata_scsi_remove_dev()
3859 mutex_unlock(&ap->scsi_host->scan_mutex); in ata_scsi_remove_dev()
3872 struct ata_port *ap = link->ap; in ata_scsi_handle_link_detach() local
3881 spin_lock_irqsave(ap->lock, flags); in ata_scsi_handle_link_detach()
3883 spin_unlock_irqrestore(ap->lock, flags); in ata_scsi_handle_link_detach()
3923 struct ata_port *ap = in ata_scsi_hotplug() local
3927 if (ap->pflags & ATA_PFLAG_UNLOADING) { in ata_scsi_hotplug()
3954 mutex_lock(&ap->scsi_scan_mutex); in ata_scsi_hotplug()
3960 ata_scsi_handle_link_detach(&ap->link); in ata_scsi_hotplug()
3961 if (ap->pmp_link) in ata_scsi_hotplug()
3963 ata_scsi_handle_link_detach(&ap->pmp_link[i]); in ata_scsi_hotplug()
3966 ata_scsi_scan_host(ap, 0); in ata_scsi_hotplug()
3968 mutex_unlock(&ap->scsi_scan_mutex); in ata_scsi_hotplug()
3991 struct ata_port *ap = ata_shost_to_port(shost); in ata_scsi_user_scan() local
3995 if (!ap->ops->error_handler) in ata_scsi_user_scan()
4001 if (!sata_pmp_attached(ap)) { in ata_scsi_user_scan()
4011 spin_lock_irqsave(ap->lock, flags); in ata_scsi_user_scan()
4016 ata_for_each_link(link, ap, EDGE) { in ata_scsi_user_scan()
4022 struct ata_device *dev = ata_find_dev(ap, devno); in ata_scsi_user_scan()
4033 ata_port_schedule_eh(ap); in ata_scsi_user_scan()
4034 spin_unlock_irqrestore(ap->lock, flags); in ata_scsi_user_scan()
4035 ata_port_wait_eh(ap); in ata_scsi_user_scan()
4037 spin_unlock_irqrestore(ap->lock, flags); in ata_scsi_user_scan()
4054 struct ata_port *ap = in ata_scsi_dev_rescan() local
4060 mutex_lock(&ap->scsi_scan_mutex); in ata_scsi_dev_rescan()
4061 spin_lock_irqsave(ap->lock, flags); in ata_scsi_dev_rescan()
4063 ata_for_each_link(link, ap, EDGE) { in ata_scsi_dev_rescan()
4072 spin_unlock_irqrestore(ap->lock, flags); in ata_scsi_dev_rescan()
4075 spin_lock_irqsave(ap->lock, flags); in ata_scsi_dev_rescan()
4079 spin_unlock_irqrestore(ap->lock, flags); in ata_scsi_dev_rescan()
4080 mutex_unlock(&ap->scsi_scan_mutex); in ata_scsi_dev_rescan()
4100 struct ata_port *ap; in ata_sas_port_alloc() local
4102 ap = ata_port_alloc(host); in ata_sas_port_alloc()
4103 if (!ap) in ata_sas_port_alloc()
4106 ap->port_no = 0; in ata_sas_port_alloc()
4107 ap->lock = &host->lock; in ata_sas_port_alloc()
4108 ap->pio_mask = port_info->pio_mask; in ata_sas_port_alloc()
4109 ap->mwdma_mask = port_info->mwdma_mask; in ata_sas_port_alloc()
4110 ap->udma_mask = port_info->udma_mask; in ata_sas_port_alloc()
4111 ap->flags |= port_info->flags; in ata_sas_port_alloc()
4112 ap->ops = port_info->port_ops; in ata_sas_port_alloc()
4113 ap->cbl = ATA_CBL_SATA; in ata_sas_port_alloc()
4115 return ap; in ata_sas_port_alloc()
4131 int ata_sas_port_start(struct ata_port *ap) in ata_sas_port_start() argument
4137 if (!ap->ops->error_handler) in ata_sas_port_start()
4138 ap->pflags &= ~ATA_PFLAG_FROZEN; in ata_sas_port_start()
4153 void ata_sas_port_stop(struct ata_port *ap) in ata_sas_port_stop() argument
4165 void ata_sas_async_probe(struct ata_port *ap) in ata_sas_async_probe() argument
4167 __ata_port_probe(ap); in ata_sas_async_probe()
4171 int ata_sas_sync_probe(struct ata_port *ap) in ata_sas_sync_probe() argument
4173 return ata_port_probe(ap); in ata_sas_sync_probe()
4189 int ata_sas_port_init(struct ata_port *ap) in ata_sas_port_init() argument
4191 int rc = ap->ops->port_start(ap); in ata_sas_port_init()
4195 ap->print_id = atomic_inc_return(&ata_print_id); in ata_sas_port_init()
4206 void ata_sas_port_destroy(struct ata_port *ap) in ata_sas_port_destroy() argument
4208 if (ap->ops->port_stop) in ata_sas_port_destroy()
4209 ap->ops->port_stop(ap); in ata_sas_port_destroy()
4210 kfree(ap); in ata_sas_port_destroy()
4223 int ata_sas_slave_configure(struct scsi_device *sdev, struct ata_port *ap) in ata_sas_slave_configure() argument
4226 ata_scsi_dev_config(sdev, ap->link.device); in ata_sas_slave_configure()
4241 int ata_sas_queuecmd(struct scsi_cmnd *cmd, struct ata_port *ap) in ata_sas_queuecmd() argument
4245 ata_scsi_dump_cdb(ap, cmd); in ata_sas_queuecmd()
4247 if (likely(ata_dev_enabled(ap->link.device))) in ata_sas_queuecmd()
4248 rc = __ata_scsi_queuecmd(cmd, ap->link.device); in ata_sas_queuecmd()
4257 int ata_sas_allocate_tag(struct ata_port *ap) in ata_sas_allocate_tag() argument
4259 unsigned int max_queue = ap->host->n_tags; in ata_sas_allocate_tag()
4262 for (i = 0, tag = ap->sas_last_tag + 1; i < max_queue; i++, tag++) { in ata_sas_allocate_tag()
4269 if (!test_and_set_bit(tag, &ap->sas_tag_allocated)) { in ata_sas_allocate_tag()
4270 ap->sas_last_tag = tag; in ata_sas_allocate_tag()
4277 void ata_sas_free_tag(unsigned int tag, struct ata_port *ap) in ata_sas_free_tag() argument
4279 clear_bit(tag, &ap->sas_tag_allocated); in ata_sas_free_tag()