Lines Matching refs:accel_dev

109 static int adf_put_admin_msg_sync(struct adf_accel_dev *accel_dev, u32 ae,  in adf_put_admin_msg_sync()  argument
114 struct adf_admin_comms *admin = accel_dev->admin; in adf_put_admin_msg_sync()
136 dev_err(&GET_DEV(accel_dev), in adf_put_admin_msg_sync()
151 static int adf_send_admin(struct adf_accel_dev *accel_dev, in adf_send_admin() argument
159 if (adf_put_admin_msg_sync(accel_dev, ae, req, resp) || in adf_send_admin()
166 static int adf_init_ae(struct adf_accel_dev *accel_dev) in adf_init_ae() argument
170 struct adf_hw_device_data *hw_device = accel_dev->hw_device; in adf_init_ae()
177 return adf_send_admin(accel_dev, &req, &resp, ae_mask); in adf_init_ae()
180 static int adf_set_fw_constants(struct adf_accel_dev *accel_dev) in adf_set_fw_constants() argument
184 struct adf_hw_device_data *hw_device = accel_dev->hw_device; in adf_set_fw_constants()
192 req.init_cfg_ptr = accel_dev->admin->const_tbl_addr; in adf_set_fw_constants()
194 return adf_send_admin(accel_dev, &req, &resp, ae_mask); in adf_set_fw_constants()
197 static int adf_get_dc_capabilities(struct adf_accel_dev *accel_dev, in adf_get_dc_capabilities() argument
200 struct adf_hw_device_data *hw_device = accel_dev->hw_device; in adf_get_dc_capabilities()
215 for_each_set_bit(ae, &ae_mask, GET_MAX_ACCELENGINES(accel_dev)) { in adf_get_dc_capabilities()
216 ret = adf_send_admin(accel_dev, &req, &resp, 1ULL << ae); in adf_get_dc_capabilities()
234 int adf_send_admin_init(struct adf_accel_dev *accel_dev) in adf_send_admin_init() argument
239 ret = adf_get_dc_capabilities(accel_dev, &dc_capabilities); in adf_send_admin_init()
241 dev_err(&GET_DEV(accel_dev), "Cannot get dc capabilities\n"); in adf_send_admin_init()
244 accel_dev->hw_device->extended_dc_capabilities = dc_capabilities; in adf_send_admin_init()
246 ret = adf_set_fw_constants(accel_dev); in adf_send_admin_init()
250 return adf_init_ae(accel_dev); in adf_send_admin_init()
272 int adf_init_admin_pm(struct adf_accel_dev *accel_dev, u32 idle_delay) in adf_init_admin_pm() argument
274 struct adf_hw_device_data *hw_data = accel_dev->hw_device; in adf_init_admin_pm()
279 if (!accel_dev->admin) { in adf_init_admin_pm()
280 dev_err(&GET_DEV(accel_dev), "adf_admin is not available\n"); in adf_init_admin_pm()
287 return adf_send_admin(accel_dev, &req, &resp, ae_mask); in adf_init_admin_pm()
291 int adf_init_admin_comms(struct adf_accel_dev *accel_dev) in adf_init_admin_comms() argument
294 struct adf_hw_device_data *hw_data = accel_dev->hw_device; in adf_init_admin_comms()
295 void __iomem *pmisc_addr = adf_get_pmisc_base(accel_dev); in adf_init_admin_comms()
301 admin = kzalloc_node(sizeof(*accel_dev->admin), GFP_KERNEL, in adf_init_admin_comms()
302 dev_to_node(&GET_DEV(accel_dev))); in adf_init_admin_comms()
305 admin->virt_addr = dma_alloc_coherent(&GET_DEV(accel_dev), PAGE_SIZE, in adf_init_admin_comms()
308 dev_err(&GET_DEV(accel_dev), "Failed to allocate dma buff\n"); in adf_init_admin_comms()
313 admin->virt_tbl_addr = dma_alloc_coherent(&GET_DEV(accel_dev), in adf_init_admin_comms()
318 dev_err(&GET_DEV(accel_dev), "Failed to allocate const_tbl\n"); in adf_init_admin_comms()
319 dma_free_coherent(&GET_DEV(accel_dev), PAGE_SIZE, in adf_init_admin_comms()
339 accel_dev->admin = admin; in adf_init_admin_comms()
344 void adf_exit_admin_comms(struct adf_accel_dev *accel_dev) in adf_exit_admin_comms() argument
346 struct adf_admin_comms *admin = accel_dev->admin; in adf_exit_admin_comms()
352 dma_free_coherent(&GET_DEV(accel_dev), PAGE_SIZE, in adf_exit_admin_comms()
355 dma_free_coherent(&GET_DEV(accel_dev), PAGE_SIZE, in adf_exit_admin_comms()
360 accel_dev->admin = NULL; in adf_exit_admin_comms()