Lines Matching refs:accel_dev
113 static int adf_put_admin_msg_sync(struct adf_accel_dev *accel_dev, u32 ae, in adf_put_admin_msg_sync() argument
118 struct adf_admin_comms *admin = accel_dev->admin; in adf_put_admin_msg_sync()
140 dev_err(&GET_DEV(accel_dev), in adf_put_admin_msg_sync()
155 static int adf_send_admin(struct adf_accel_dev *accel_dev, in adf_send_admin() argument
163 if (adf_put_admin_msg_sync(accel_dev, ae, req, resp) || in adf_send_admin()
170 static int adf_init_ae(struct adf_accel_dev *accel_dev) in adf_init_ae() argument
174 struct adf_hw_device_data *hw_device = accel_dev->hw_device; in adf_init_ae()
181 return adf_send_admin(accel_dev, &req, &resp, ae_mask); in adf_init_ae()
184 static int adf_set_fw_constants(struct adf_accel_dev *accel_dev) in adf_set_fw_constants() argument
188 struct adf_hw_device_data *hw_device = accel_dev->hw_device; in adf_set_fw_constants()
196 req.init_cfg_ptr = accel_dev->admin->const_tbl_addr; in adf_set_fw_constants()
198 return adf_send_admin(accel_dev, &req, &resp, ae_mask); in adf_set_fw_constants()
201 int adf_get_fw_timestamp(struct adf_accel_dev *accel_dev, u64 *timestamp) in adf_get_fw_timestamp() argument
209 ret = adf_send_admin(accel_dev, &req, &resp, ae_mask); in adf_get_fw_timestamp()
217 static int adf_set_chaining(struct adf_accel_dev *accel_dev) in adf_set_chaining() argument
219 u32 ae_mask = GET_HW_DATA(accel_dev)->ae_mask; in adf_set_chaining()
225 return adf_send_admin(accel_dev, &req, &resp, ae_mask); in adf_set_chaining()
228 static int adf_get_dc_capabilities(struct adf_accel_dev *accel_dev, in adf_get_dc_capabilities() argument
231 struct adf_hw_device_data *hw_device = accel_dev->hw_device; in adf_get_dc_capabilities()
246 for_each_set_bit(ae, &ae_mask, GET_MAX_ACCELENGINES(accel_dev)) { in adf_get_dc_capabilities()
247 ret = adf_send_admin(accel_dev, &req, &resp, 1ULL << ae); in adf_get_dc_capabilities()
257 int adf_get_ae_fw_counters(struct adf_accel_dev *accel_dev, u16 ae, u64 *reqs, u64 *resps) in adf_get_ae_fw_counters() argument
265 ret = adf_put_admin_msg_sync(accel_dev, ae, &req, &resp); in adf_get_ae_fw_counters()
275 int adf_send_admin_tim_sync(struct adf_accel_dev *accel_dev, u32 cnt) in adf_send_admin_tim_sync() argument
277 u32 ae_mask = accel_dev->hw_device->ae_mask; in adf_send_admin_tim_sync()
284 return adf_send_admin(accel_dev, &req, &resp, ae_mask); in adf_send_admin_tim_sync()
287 int adf_send_admin_hb_timer(struct adf_accel_dev *accel_dev, uint32_t ticks) in adf_send_admin_hb_timer() argument
289 u32 ae_mask = accel_dev->hw_device->ae_mask; in adf_send_admin_hb_timer()
294 req.init_cfg_ptr = accel_dev->heartbeat->dma.phy_addr; in adf_send_admin_hb_timer()
297 return adf_send_admin(accel_dev, &req, &resp, ae_mask); in adf_send_admin_hb_timer()
300 static bool is_dcc_enabled(struct adf_accel_dev *accel_dev) in is_dcc_enabled() argument
305 ret = adf_cfg_get_param_value(accel_dev, ADF_GENERAL_SEC, in is_dcc_enabled()
313 static int adf_get_fw_capabilities(struct adf_accel_dev *accel_dev, u16 *caps) in adf_get_fw_capabilities() argument
315 u32 ae_mask = accel_dev->hw_device->admin_ae_mask; in adf_get_fw_capabilities()
324 ret = adf_send_admin(accel_dev, &req, &resp, ae_mask); in adf_get_fw_capabilities()
333 int adf_send_admin_rl_init(struct adf_accel_dev *accel_dev, in adf_send_admin_rl_init() argument
336 u32 ae_mask = accel_dev->hw_device->admin_ae_mask; in adf_send_admin_rl_init()
343 ret = adf_send_admin(accel_dev, &req, &resp, ae_mask); in adf_send_admin_rl_init()
352 int adf_send_admin_rl_add_update(struct adf_accel_dev *accel_dev, in adf_send_admin_rl_add_update() argument
355 u32 ae_mask = accel_dev->hw_device->admin_ae_mask; in adf_send_admin_rl_add_update()
363 return adf_send_admin(accel_dev, req, &resp, ae_mask); in adf_send_admin_rl_add_update()
366 int adf_send_admin_rl_delete(struct adf_accel_dev *accel_dev, u16 node_id, in adf_send_admin_rl_delete() argument
369 u32 ae_mask = accel_dev->hw_device->admin_ae_mask; in adf_send_admin_rl_delete()
377 return adf_send_admin(accel_dev, &req, &resp, ae_mask); in adf_send_admin_rl_delete()
388 int adf_send_admin_init(struct adf_accel_dev *accel_dev) in adf_send_admin_init() argument
390 struct adf_hw_device_data *hw_data = GET_HW_DATA(accel_dev); in adf_send_admin_init()
394 ret = adf_set_fw_constants(accel_dev); in adf_send_admin_init()
398 if (is_dcc_enabled(accel_dev)) { in adf_send_admin_init()
399 ret = adf_set_chaining(accel_dev); in adf_send_admin_init()
404 ret = adf_get_dc_capabilities(accel_dev, &dc_capabilities); in adf_send_admin_init()
406 dev_err(&GET_DEV(accel_dev), "Cannot get dc capabilities\n"); in adf_send_admin_init()
409 accel_dev->hw_device->extended_dc_capabilities = dc_capabilities; in adf_send_admin_init()
411 adf_get_fw_capabilities(accel_dev, &hw_data->fw_capabilities); in adf_send_admin_init()
413 return adf_init_ae(accel_dev); in adf_send_admin_init()
435 int adf_init_admin_pm(struct adf_accel_dev *accel_dev, u32 idle_delay) in adf_init_admin_pm() argument
437 struct adf_hw_device_data *hw_data = accel_dev->hw_device; in adf_init_admin_pm()
442 if (!accel_dev->admin) { in adf_init_admin_pm()
443 dev_err(&GET_DEV(accel_dev), "adf_admin is not available\n"); in adf_init_admin_pm()
450 return adf_send_admin(accel_dev, &req, &resp, ae_mask); in adf_init_admin_pm()
454 int adf_get_pm_info(struct adf_accel_dev *accel_dev, dma_addr_t p_state_addr, in adf_get_pm_info() argument
457 struct adf_hw_device_data *hw_data = accel_dev->hw_device; in adf_get_pm_info()
464 if (!accel_dev->admin) { in adf_get_pm_info()
465 dev_err(&GET_DEV(accel_dev), "adf_admin is not available\n"); in adf_get_pm_info()
473 ret = adf_send_admin(accel_dev, &req, &resp, ae_mask); in adf_get_pm_info()
475 dev_err(&GET_DEV(accel_dev), in adf_get_pm_info()
481 int adf_get_cnv_stats(struct adf_accel_dev *accel_dev, u16 ae, u16 *err_cnt, in adf_get_cnv_stats() argument
490 ret = adf_put_admin_msg_sync(accel_dev, ae, &req, &resp); in adf_get_cnv_stats()
502 int adf_send_admin_tl_start(struct adf_accel_dev *accel_dev, in adf_send_admin_tl_start() argument
506 u32 ae_mask = GET_HW_DATA(accel_dev)->admin_ae_mask; in adf_send_admin_tl_start()
518 ret = adf_send_admin(accel_dev, &req, &resp, ae_mask); in adf_send_admin_tl_start()
527 int adf_send_admin_tl_stop(struct adf_accel_dev *accel_dev) in adf_send_admin_tl_stop() argument
529 struct adf_hw_device_data *hw_data = GET_HW_DATA(accel_dev); in adf_send_admin_tl_stop()
536 return adf_send_admin(accel_dev, &req, &resp, ae_mask); in adf_send_admin_tl_stop()
539 int adf_init_admin_comms(struct adf_accel_dev *accel_dev) in adf_init_admin_comms() argument
542 struct adf_hw_device_data *hw_data = accel_dev->hw_device; in adf_init_admin_comms()
543 void __iomem *pmisc_addr = adf_get_pmisc_base(accel_dev); in adf_init_admin_comms()
549 admin = kzalloc_node(sizeof(*accel_dev->admin), GFP_KERNEL, in adf_init_admin_comms()
550 dev_to_node(&GET_DEV(accel_dev))); in adf_init_admin_comms()
553 admin->virt_addr = dma_alloc_coherent(&GET_DEV(accel_dev), PAGE_SIZE, in adf_init_admin_comms()
556 dev_err(&GET_DEV(accel_dev), "Failed to allocate dma buff\n"); in adf_init_admin_comms()
561 admin->virt_tbl_addr = dma_alloc_coherent(&GET_DEV(accel_dev), in adf_init_admin_comms()
566 dev_err(&GET_DEV(accel_dev), "Failed to allocate const_tbl\n"); in adf_init_admin_comms()
567 dma_free_coherent(&GET_DEV(accel_dev), PAGE_SIZE, in adf_init_admin_comms()
587 accel_dev->admin = admin; in adf_init_admin_comms()
592 void adf_exit_admin_comms(struct adf_accel_dev *accel_dev) in adf_exit_admin_comms() argument
594 struct adf_admin_comms *admin = accel_dev->admin; in adf_exit_admin_comms()
600 dma_free_coherent(&GET_DEV(accel_dev), PAGE_SIZE, in adf_exit_admin_comms()
603 dma_free_coherent(&GET_DEV(accel_dev), PAGE_SIZE, in adf_exit_admin_comms()
608 accel_dev->admin = NULL; in adf_exit_admin_comms()