Lines Matching full:hba

16 static int ufs_bsg_get_query_desc_size(struct ufs_hba *hba, int *desc_len,  in ufs_bsg_get_query_desc_size()  argument
29 static int ufs_bsg_alloc_desc_buffer(struct ufs_hba *hba, struct bsg_job *job, in ufs_bsg_alloc_desc_buffer() argument
42 if (ufs_bsg_get_query_desc_size(hba, desc_len, qr)) { in ufs_bsg_alloc_desc_buffer()
43 dev_err(hba->dev, "Illegal desc size\n"); in ufs_bsg_alloc_desc_buffer()
48 dev_err(hba->dev, "Illegal desc size\n"); in ufs_bsg_alloc_desc_buffer()
67 static int ufs_bsg_exec_advanced_rpmb_req(struct ufs_hba *hba, struct bsg_job *job) in ufs_bsg_exec_advanced_rpmb_req() argument
79 if (hba->ufs_version < ufshci_version(4, 0) || !hba->dev_info.b_advanced_rpmb_en) in ufs_bsg_exec_advanced_rpmb_req()
111 sg_cnt = dma_map_sg(hba->host->dma_dev, payload->sg_list, payload->sg_cnt, dir); in ufs_bsg_exec_advanced_rpmb_req()
118 ret = ufshcd_advanced_rpmb_req_handler(hba, &rpmb_request->bsg_request.upiu_req, in ufs_bsg_exec_advanced_rpmb_req()
123 dma_unmap_sg(hba->host->dma_dev, payload->sg_list, payload->sg_cnt, dir); in ufs_bsg_exec_advanced_rpmb_req()
136 struct ufs_hba *hba = shost_priv(dev_to_shost(job->dev->parent)); in ufs_bsg_request() local
147 ufshcd_rpm_get_sync(hba); in ufs_bsg_request()
153 ret = ufs_bsg_alloc_desc_buffer(hba, job, &buff, &desc_len, desc_op); in ufs_bsg_request()
159 ret = ufshcd_exec_raw_upiu_cmd(hba, &bsg_request->upiu_req, in ufs_bsg_request()
163 dev_err(hba->dev, "exe raw upiu: error code %d\n", ret); in ufs_bsg_request()
173 ret = ufshcd_send_bsg_uic_cmd(hba, &uc); in ufs_bsg_request()
175 dev_err(hba->dev, "send uic cmd: error code %d\n", ret); in ufs_bsg_request()
182 ret = ufs_bsg_exec_advanced_rpmb_req(hba, job); in ufs_bsg_request()
184 dev_err(hba->dev, "ARPMB OP failed: error code %d\n", ret); in ufs_bsg_request()
188 dev_err(hba->dev, "unsupported msgcode 0x%x\n", msgcode); in ufs_bsg_request()
194 ufshcd_rpm_put_sync(hba); in ufs_bsg_request()
209 * @hba: per adapter object
213 void ufs_bsg_remove(struct ufs_hba *hba) in ufs_bsg_remove() argument
215 struct device *bsg_dev = &hba->bsg_dev; in ufs_bsg_remove()
217 if (!hba->bsg_queue) in ufs_bsg_remove()
220 bsg_remove_queue(hba->bsg_queue); in ufs_bsg_remove()
221 hba->bsg_queue = NULL; in ufs_bsg_remove()
234 * @hba: per adapter object
240 int ufs_bsg_probe(struct ufs_hba *hba) in ufs_bsg_probe() argument
242 struct device *bsg_dev = &hba->bsg_dev; in ufs_bsg_probe()
243 struct Scsi_Host *shost = hba->host; in ufs_bsg_probe()
267 hba->bsg_queue = q; in ufs_bsg_probe()