/kernel/linux/linux-5.10/drivers/scsi/aic94xx/ |
H A D | aic94xx_tmf.c | 17 static int asd_enqueue_internal(struct asd_ascb *ascb, in asd_enqueue_internal() argument 24 ascb->tasklet_complete = tasklet_complete; in asd_enqueue_internal() 25 ascb->uldd_timer = 1; in asd_enqueue_internal() 27 ascb->timer.function = timed_out; in asd_enqueue_internal() 28 ascb->timer.expires = jiffies + AIC94XX_SCB_TIMEOUT; in asd_enqueue_internal() 30 add_timer(&ascb->timer); in asd_enqueue_internal() 32 res = asd_post_ascb_list(ascb->ha, ascb, 1); in asd_enqueue_internal() 34 del_timer(&ascb->timer); in asd_enqueue_internal() 56 static void asd_clear_nexus_tasklet_complete(struct asd_ascb *ascb, in asd_clear_nexus_tasklet_complete() argument 73 struct asd_ascb *ascb = from_timer(ascb, t, timer); asd_clear_nexus_timedout() local 247 struct asd_ascb *ascb = from_timer(ascb, t, timer); asd_tmf_timedout() local 255 asd_get_tmf_resp_tasklet(struct asd_ascb *ascb, struct done_list_struct *dl) asd_get_tmf_resp_tasklet() argument 301 asd_tmf_tasklet_complete(struct asd_ascb *ascb, struct done_list_struct *dl) asd_tmf_tasklet_complete() argument 392 struct asd_ascb *ascb = NULL; asd_abort_task() local 560 struct asd_ascb *ascb; asd_initiate_ssp_tmf() local 686 struct asd_ascb *ascb = task->lldd_task; asd_query_task() local [all...] |
H A D | aic94xx_scb.c | 67 static void asd_phy_event_tasklet(struct asd_ascb *ascb, in asd_phy_event_tasklet() argument 70 struct asd_ha_struct *asd_ha = ascb->ha; in asd_phy_event_tasklet() 216 static void asd_bytes_dmaed_tasklet(struct asd_ascb *ascb, in asd_bytes_dmaed_tasklet() argument 221 int edb_el = edb_id + ascb->edb_index; in asd_bytes_dmaed_tasklet() 222 struct asd_dma_tok *edb = ascb->ha->seq.edb_arr[edb_el]; in asd_bytes_dmaed_tasklet() 223 struct asd_phy *phy = &ascb->ha->phys[phy_id]; in asd_bytes_dmaed_tasklet() 234 asd_form_port(ascb->ha, phy); in asd_bytes_dmaed_tasklet() 238 static void asd_link_reset_err_tasklet(struct asd_ascb *ascb, in asd_link_reset_err_tasklet() argument 242 struct asd_ha_struct *asd_ha = ascb->ha; in asd_link_reset_err_tasklet() 275 struct asd_ascb *cp = asd_ascb_alloc_list(ascb in asd_link_reset_err_tasklet() 291 asd_primitive_rcvd_tasklet(struct asd_ascb *ascb, struct done_list_struct *dl, int phy_id) asd_primitive_rcvd_tasklet() argument 362 asd_invalidate_edb(struct asd_ascb *ascb, int edb_id) asd_invalidate_edb() argument 395 escb_tasklet_complete(struct asd_ascb *ascb, struct done_list_struct *dl) escb_tasklet_complete() argument 622 control_phy_tasklet_complete(struct asd_ascb *ascb, struct done_list_struct *dl) control_phy_tasklet_complete() argument 760 asd_build_control_phy(struct asd_ascb *ascb, int phy_id, u8 subfunc) asd_build_control_phy() argument 859 struct asd_ascb *ascb = from_timer(ascb, t, timer); asd_ascb_timedout() local 888 struct asd_ascb *ascb; asd_control_phy() local [all...] |
H A D | aic94xx_task.c | 40 struct asd_ascb *ascb = task->lldd_task; in asd_map_scatterlist() local 41 struct asd_ha_struct *asd_ha = ascb->ha; in asd_map_scatterlist() 75 ascb->sg_arr = asd_alloc_coherent(asd_ha, in asd_map_scatterlist() 78 if (!ascb->sg_arr) { in asd_map_scatterlist() 84 &((struct sg_el *)ascb->sg_arr->vaddr)[i]; in asd_map_scatterlist() 100 sg_arr[2].bus_addr=cpu_to_le64((u64)ascb->sg_arr->dma_handle); in asd_map_scatterlist() 119 static void asd_unmap_scatterlist(struct asd_ascb *ascb) in asd_unmap_scatterlist() argument 121 struct asd_ha_struct *asd_ha = ascb->ha; in asd_unmap_scatterlist() 122 struct sas_task *task = ascb->uldd_task; in asd_unmap_scatterlist() 129 le64_to_cpu(ascb in asd_unmap_scatterlist() 143 asd_get_response_tasklet(struct asd_ascb *ascb, struct done_list_struct *dl) asd_get_response_tasklet() argument 197 asd_task_tasklet_complete(struct asd_ascb *ascb, struct done_list_struct *dl) asd_task_tasklet_complete() argument 349 asd_build_ata_ascb(struct asd_ascb *ascb, struct sas_task *task, gfp_t gfp_flags) asd_build_ata_ascb() argument 417 asd_build_smp_ascb(struct asd_ascb *ascb, struct sas_task *task, gfp_t gfp_flags) asd_build_smp_ascb() argument 467 asd_build_ssp_ascb(struct asd_ascb *ascb, struct sas_task *task, gfp_t gfp_flags) asd_build_ssp_ascb() argument 536 struct asd_ascb *ascb = NULL, *a; asd_execute_task() local [all...] |
H A D | aic94xx_hwi.h | 271 struct asd_ascb *ascb) in asd_init_ascb() 273 INIT_LIST_HEAD(&ascb->list); in asd_init_ascb() 274 ascb->scb = ascb->dma_scb.vaddr; in asd_init_ascb() 275 ascb->ha = asd_ha; in asd_init_ascb() 276 timer_setup(&ascb->timer, NULL, 0); in asd_init_ascb() 277 ascb->tc_index = -1; in asd_init_ascb() 314 * @ascb: pointer to the aSCB of interest 319 static inline void asd_ascb_free(struct asd_ascb *ascb) in asd_ascb_free() argument 321 if (ascb) { in asd_ascb_free() 270 asd_init_ascb(struct asd_ha_struct *asd_ha, struct asd_ascb *ascb) asd_init_ascb() argument [all...] |
H A D | aic94xx_hwi.c | 345 struct asd_ascb *ascb = seq->escb_arr[i]; in asd_assign_edbs2escbs() local 346 struct empty_scb *escb = &ascb->scb->escb; in asd_assign_edbs2escbs() 348 ascb->edb_index = z; in asd_assign_edbs2escbs() 722 struct asd_ascb *ascb; in asd_dl_tasklet_handler() local 729 ascb = asd_tc_index_find(seq, (int)le16_to_cpu(dl->index)); in asd_dl_tasklet_handler() 731 if (unlikely(!ascb)) { in asd_dl_tasklet_handler() 732 ASD_DPRINTK("BUG:sequencer:dl:no ascb?!\n"); in asd_dl_tasklet_handler() 734 } else if (ascb->scb->header.opcode == EMPTY_SCB) { in asd_dl_tasklet_handler() 736 } else if (!ascb->uldd_timer && !del_timer(&ascb in asd_dl_tasklet_handler() 1035 struct asd_ascb *ascb; asd_ascb_alloc() local 1092 struct asd_ascb *ascb = asd_ascb_alloc(asd_ha, gfp_flags); asd_ascb_alloc_list() local 1129 asd_swap_head_scb(struct asd_ha_struct *asd_ha, struct asd_ascb *ascb) asd_swap_head_scb() argument 1157 struct asd_ascb *ascb; asd_start_scb_timers() local 1186 asd_post_ascb_list(struct asd_ha_struct *asd_ha, struct asd_ascb *ascb, int num) asd_post_ascb_list() argument 1238 asd_post_escb_list(struct asd_ha_struct *asd_ha, struct asd_ascb *ascb, int num) asd_post_escb_list() argument 1339 struct asd_ascb *ascb; asd_enable_phys() local [all...] |
H A D | aic94xx_dump.c | 913 static void asd_dump_scb(struct asd_ascb *ascb, int ind) 917 ind, ascb->dma_scb.vaddr, 918 (unsigned long long)ascb->dma_scb.dma_handle, 920 le64_to_cpu(ascb->scb->header.next_scb), 921 le16_to_cpu(ascb->scb->header.index), 922 ascb->scb->header.opcode); 925 void asd_dump_scb_list(struct asd_ascb *ascb, int num) 931 asd_dump_scb(ascb, i++); 934 if (num > 0 && !list_empty(&ascb->list)) { 937 list_for_each(el, &ascb [all...] |
H A D | aic94xx.h | 54 void asd_invalidate_edb(struct asd_ascb *ascb, int edb_id);
|
H A D | aic94xx_init.c | 634 asd_printk("couldn't create ascb cache\n"); in asd_create_global_caches() 862 struct asd_ascb *ascb = list_entry(pos, struct asd_ascb, list); in asd_free_queues() local 864 * Delete unexpired ascb timers. This may happen if we issue in asd_free_queues() 869 del_timer_sync(&ascb->timer); in asd_free_queues() 870 WARN_ON(ascb->scb->header.opcode != CONTROL_PHY); in asd_free_queues() 874 asd_ascb_free(ascb); in asd_free_queues()
|
/kernel/linux/linux-6.6/drivers/scsi/aic94xx/ |
H A D | aic94xx_tmf.c | 17 static int asd_enqueue_internal(struct asd_ascb *ascb, in asd_enqueue_internal() argument 24 ascb->tasklet_complete = tasklet_complete; in asd_enqueue_internal() 25 ascb->uldd_timer = 1; in asd_enqueue_internal() 27 ascb->timer.function = timed_out; in asd_enqueue_internal() 28 ascb->timer.expires = jiffies + AIC94XX_SCB_TIMEOUT; in asd_enqueue_internal() 30 add_timer(&ascb->timer); in asd_enqueue_internal() 32 res = asd_post_ascb_list(ascb->ha, ascb, 1); in asd_enqueue_internal() 34 del_timer(&ascb->timer); in asd_enqueue_internal() 56 static void asd_clear_nexus_tasklet_complete(struct asd_ascb *ascb, in asd_clear_nexus_tasklet_complete() argument 73 struct asd_ascb *ascb = from_timer(ascb, t, timer); asd_clear_nexus_timedout() local 247 struct asd_ascb *ascb = from_timer(ascb, t, timer); asd_tmf_timedout() local 255 asd_get_tmf_resp_tasklet(struct asd_ascb *ascb, struct done_list_struct *dl) asd_get_tmf_resp_tasklet() argument 301 asd_tmf_tasklet_complete(struct asd_ascb *ascb, struct done_list_struct *dl) asd_tmf_tasklet_complete() argument 392 struct asd_ascb *ascb = NULL; asd_abort_task() local 560 struct asd_ascb *ascb; asd_initiate_ssp_tmf() local 677 struct asd_ascb *ascb = task->lldd_task; asd_query_task() local [all...] |
H A D | aic94xx_scb.c | 67 static void asd_phy_event_tasklet(struct asd_ascb *ascb, in asd_phy_event_tasklet() argument 70 struct asd_ha_struct *asd_ha = ascb->ha; in asd_phy_event_tasklet() 218 static void asd_bytes_dmaed_tasklet(struct asd_ascb *ascb, in asd_bytes_dmaed_tasklet() argument 223 int edb_el = edb_id + ascb->edb_index; in asd_bytes_dmaed_tasklet() 224 struct asd_dma_tok *edb = ascb->ha->seq.edb_arr[edb_el]; in asd_bytes_dmaed_tasklet() 225 struct asd_phy *phy = &ascb->ha->phys[phy_id]; in asd_bytes_dmaed_tasklet() 236 asd_form_port(ascb->ha, phy); in asd_bytes_dmaed_tasklet() 240 static void asd_link_reset_err_tasklet(struct asd_ascb *ascb, in asd_link_reset_err_tasklet() argument 244 struct asd_ha_struct *asd_ha = ascb->ha; in asd_link_reset_err_tasklet() 277 struct asd_ascb *cp = asd_ascb_alloc_list(ascb in asd_link_reset_err_tasklet() 293 asd_primitive_rcvd_tasklet(struct asd_ascb *ascb, struct done_list_struct *dl, int phy_id) asd_primitive_rcvd_tasklet() argument 366 asd_invalidate_edb(struct asd_ascb *ascb, int edb_id) asd_invalidate_edb() argument 399 escb_tasklet_complete(struct asd_ascb *ascb, struct done_list_struct *dl) escb_tasklet_complete() argument 626 control_phy_tasklet_complete(struct asd_ascb *ascb, struct done_list_struct *dl) control_phy_tasklet_complete() argument 766 asd_build_control_phy(struct asd_ascb *ascb, int phy_id, u8 subfunc) asd_build_control_phy() argument 865 struct asd_ascb *ascb = from_timer(ascb, t, timer); asd_ascb_timedout() local 894 struct asd_ascb *ascb; asd_control_phy() local [all...] |
H A D | aic94xx_task.c | 40 struct asd_ascb *ascb = task->lldd_task; in asd_map_scatterlist() local 41 struct asd_ha_struct *asd_ha = ascb->ha; in asd_map_scatterlist() 75 ascb->sg_arr = asd_alloc_coherent(asd_ha, in asd_map_scatterlist() 78 if (!ascb->sg_arr) { in asd_map_scatterlist() 84 &((struct sg_el *)ascb->sg_arr->vaddr)[i]; in asd_map_scatterlist() 100 sg_arr[2].bus_addr=cpu_to_le64((u64)ascb->sg_arr->dma_handle); in asd_map_scatterlist() 119 static void asd_unmap_scatterlist(struct asd_ascb *ascb) in asd_unmap_scatterlist() argument 121 struct asd_ha_struct *asd_ha = ascb->ha; in asd_unmap_scatterlist() 122 struct sas_task *task = ascb->uldd_task; in asd_unmap_scatterlist() 129 le64_to_cpu(ascb in asd_unmap_scatterlist() 143 asd_get_response_tasklet(struct asd_ascb *ascb, struct done_list_struct *dl) asd_get_response_tasklet() argument 197 asd_task_tasklet_complete(struct asd_ascb *ascb, struct done_list_struct *dl) asd_task_tasklet_complete() argument 348 asd_build_ata_ascb(struct asd_ascb *ascb, struct sas_task *task, gfp_t gfp_flags) asd_build_ata_ascb() argument 411 asd_build_smp_ascb(struct asd_ascb *ascb, struct sas_task *task, gfp_t gfp_flags) asd_build_smp_ascb() argument 461 asd_build_ssp_ascb(struct asd_ascb *ascb, struct sas_task *task, gfp_t gfp_flags) asd_build_ssp_ascb() argument 527 struct asd_ascb *ascb = NULL, *a; asd_execute_task() local [all...] |
H A D | aic94xx_hwi.h | 271 struct asd_ascb *ascb) in asd_init_ascb() 273 INIT_LIST_HEAD(&ascb->list); in asd_init_ascb() 274 ascb->scb = ascb->dma_scb.vaddr; in asd_init_ascb() 275 ascb->ha = asd_ha; in asd_init_ascb() 276 timer_setup(&ascb->timer, NULL, 0); in asd_init_ascb() 277 ascb->tc_index = -1; in asd_init_ascb() 314 * @ascb: pointer to the aSCB of interest 319 static inline void asd_ascb_free(struct asd_ascb *ascb) in asd_ascb_free() argument 321 if (ascb) { in asd_ascb_free() 270 asd_init_ascb(struct asd_ha_struct *asd_ha, struct asd_ascb *ascb) asd_init_ascb() argument [all...] |
H A D | aic94xx_hwi.c | 343 struct asd_ascb *ascb = seq->escb_arr[i]; in asd_assign_edbs2escbs() local 344 struct empty_scb *escb = &ascb->scb->escb; in asd_assign_edbs2escbs() 346 ascb->edb_index = z; in asd_assign_edbs2escbs() 720 struct asd_ascb *ascb; in asd_dl_tasklet_handler() local 727 ascb = asd_tc_index_find(seq, (int)le16_to_cpu(dl->index)); in asd_dl_tasklet_handler() 729 if (unlikely(!ascb)) { in asd_dl_tasklet_handler() 730 ASD_DPRINTK("BUG:sequencer:dl:no ascb?!\n"); in asd_dl_tasklet_handler() 732 } else if (ascb->scb->header.opcode == EMPTY_SCB) { in asd_dl_tasklet_handler() 734 } else if (!ascb->uldd_timer && !del_timer(&ascb in asd_dl_tasklet_handler() 1033 struct asd_ascb *ascb; asd_ascb_alloc() local 1090 struct asd_ascb *ascb = asd_ascb_alloc(asd_ha, gfp_flags); asd_ascb_alloc_list() local 1127 asd_swap_head_scb(struct asd_ha_struct *asd_ha, struct asd_ascb *ascb) asd_swap_head_scb() argument 1155 struct asd_ascb *ascb; asd_start_scb_timers() local 1184 asd_post_ascb_list(struct asd_ha_struct *asd_ha, struct asd_ascb *ascb, int num) asd_post_ascb_list() argument 1236 asd_post_escb_list(struct asd_ha_struct *asd_ha, struct asd_ascb *ascb, int num) asd_post_escb_list() argument 1337 struct asd_ascb *ascb; asd_enable_phys() local [all...] |
H A D | aic94xx.h | 54 void asd_invalidate_edb(struct asd_ascb *ascb, int edb_id);
|
H A D | aic94xx_init.c | 634 asd_printk("couldn't create ascb cache\n"); in asd_create_global_caches() 861 struct asd_ascb *ascb = list_entry(pos, struct asd_ascb, list); in asd_free_queues() local 863 * Delete unexpired ascb timers. This may happen if we issue in asd_free_queues() 868 del_timer_sync(&ascb->timer); in asd_free_queues() 869 WARN_ON(ascb->scb->header.opcode != CONTROL_PHY); in asd_free_queues() 873 asd_ascb_free(ascb); in asd_free_queues()
|