Lines Matching refs:isys
29 static int handle_proxy_response(struct ipu6_isys *isys, unsigned int req_id) in handle_proxy_response() argument
31 struct device *dev = &isys->adev->auxdev.dev; in handle_proxy_response()
35 resp = ipu6_recv_get_token(isys->fwcom, IPU6_BASE_PROXY_RECV_QUEUES); in handle_proxy_response()
45 ipu6_recv_put_token(isys->fwcom, IPU6_BASE_PROXY_RECV_QUEUES); in handle_proxy_response()
50 int ipu6_fw_isys_send_proxy_token(struct ipu6_isys *isys, in ipu6_fw_isys_send_proxy_token() argument
55 struct ipu6_fw_com_context *ctx = isys->fwcom; in ipu6_fw_isys_send_proxy_token()
56 struct device *dev = &isys->adev->auxdev.dev; in ipu6_fw_isys_send_proxy_token()
77 ret = handle_proxy_response(isys, req_id); in ipu6_fw_isys_send_proxy_token()
93 int ipu6_fw_isys_complex_cmd(struct ipu6_isys *isys, in ipu6_fw_isys_complex_cmd() argument
99 struct ipu6_fw_com_context *ctx = isys->fwcom; in ipu6_fw_isys_complex_cmd()
100 struct device *dev = &isys->adev->auxdev.dev; in ipu6_fw_isys_complex_cmd()
129 int ipu6_fw_isys_simple_cmd(struct ipu6_isys *isys, in ipu6_fw_isys_simple_cmd() argument
132 return ipu6_fw_isys_complex_cmd(isys, stream_handle, NULL, 0, 0, in ipu6_fw_isys_simple_cmd()
136 int ipu6_fw_isys_close(struct ipu6_isys *isys) in ipu6_fw_isys_close() argument
138 struct device *dev = &isys->adev->auxdev.dev; in ipu6_fw_isys_close()
150 spin_lock_irqsave(&isys->power_lock, flags); in ipu6_fw_isys_close()
151 ret = ipu6_fw_com_close(isys->fwcom); in ipu6_fw_isys_close()
152 fwcom = isys->fwcom; in ipu6_fw_isys_close()
153 isys->fwcom = NULL; in ipu6_fw_isys_close()
154 spin_unlock_irqrestore(&isys->power_lock, flags); in ipu6_fw_isys_close()
167 spin_lock_irqsave(&isys->power_lock, flags); in ipu6_fw_isys_close()
168 isys->fwcom = fwcom; in ipu6_fw_isys_close()
169 spin_unlock_irqrestore(&isys->power_lock, flags); in ipu6_fw_isys_close()
175 void ipu6_fw_isys_cleanup(struct ipu6_isys *isys) in ipu6_fw_isys_cleanup() argument
179 ret = ipu6_fw_com_release(isys->fwcom, 1); in ipu6_fw_isys_cleanup()
181 dev_warn(&isys->adev->auxdev.dev, in ipu6_fw_isys_cleanup()
183 isys->fwcom = NULL; in ipu6_fw_isys_cleanup()
188 struct ipu6_isys *isys = ipu6_bus_get_drvdata(adev); in start_sp() local
189 void __iomem *spc_regs_base = isys->pdata->base + in start_sp()
190 isys->pdata->ipdata->hw_variant.spc_offset; in start_sp()
195 val |= isys->icache_prefetch ? IPU6_ISYS_SPC_STATUS_ICACHE_PREFETCH : 0; in start_sp()
202 struct ipu6_isys *isys = ipu6_bus_get_drvdata(adev); in query_sp() local
203 void __iomem *spc_regs_base = isys->pdata->base + in query_sp()
204 isys->pdata->ipdata->hw_variant.spc_offset; in query_sp()
214 static int ipu6_isys_fwcom_cfg_init(struct ipu6_isys *isys, in ipu6_isys_fwcom_cfg_init() argument
221 struct device *dev = &isys->adev->auxdev.dev; in ipu6_isys_fwcom_cfg_init()
234 max_streams = isys->pdata->ipdata->max_streams; in ipu6_isys_fwcom_cfg_init()
235 max_send_queues = isys->pdata->ipdata->max_send_queues; in ipu6_isys_fwcom_cfg_init()
236 max_sram_blocks = isys->pdata->ipdata->max_sram_blocks; in ipu6_isys_fwcom_cfg_init()
237 max_devq_size = isys->pdata->ipdata->max_devq_size; in ipu6_isys_fwcom_cfg_init()
317 fwcom->dmem_addr = isys->pdata->ipdata->hw_variant.dmem_offset; in ipu6_isys_fwcom_cfg_init()
324 int ipu6_fw_isys_init(struct ipu6_isys *isys, unsigned int num_streams) in ipu6_fw_isys_init() argument
326 struct device *dev = &isys->adev->auxdev.dev; in ipu6_fw_isys_init()
335 ipu6_isys_fwcom_cfg_init(isys, &fwcom, num_streams); in ipu6_fw_isys_init()
337 isys->fwcom = ipu6_fw_com_prepare(&fwcom, isys->adev, in ipu6_fw_isys_init()
338 isys->pdata->base); in ipu6_fw_isys_init()
339 if (!isys->fwcom) { in ipu6_fw_isys_init()
344 ret = ipu6_fw_com_open(isys->fwcom); in ipu6_fw_isys_init()
352 if (ipu6_fw_com_ready(isys->fwcom)) in ipu6_fw_isys_init()
359 ipu6_fw_isys_close(isys); in ipu6_fw_isys_init()