• Home
  • Raw
  • Download

Lines Matching refs:adev

98 	struct amdgpu_device *adev = (struct amdgpu_device *)handle;  in acp_sw_init()  local
100 adev->acp.parent = adev->dev; in acp_sw_init()
102 adev->acp.cgs_device = in acp_sw_init()
103 amdgpu_cgs_create_device(adev); in acp_sw_init()
104 if (!adev->acp.cgs_device) in acp_sw_init()
112 struct amdgpu_device *adev = (struct amdgpu_device *)handle; in acp_sw_fini() local
114 if (adev->acp.cgs_device) in acp_sw_fini()
115 amdgpu_cgs_destroy_device(adev->acp.cgs_device); in acp_sw_fini()
121 void *adev; member
128 struct amdgpu_device *adev; in acp_poweroff() local
132 adev = apd->adev; in acp_poweroff()
139 amdgpu_dpm_set_powergating_by_smu(adev, AMD_IP_BLOCK_TYPE_ACP, true); in acp_poweroff()
147 struct amdgpu_device *adev; in acp_poweron() local
151 adev = apd->adev; in acp_poweron()
158 amdgpu_dpm_set_powergating_by_smu(adev, AMD_IP_BLOCK_TYPE_ACP, false); in acp_poweron()
201 struct amdgpu_device *adev = (struct amdgpu_device *)handle; in acp_hw_init() local
204 amdgpu_device_ip_get_ip_block(adev, AMD_IP_BLOCK_TYPE_ACP); in acp_hw_init()
209 r = amd_acp_hw_init(adev->acp.cgs_device, in acp_hw_init()
213 amdgpu_dpm_set_powergating_by_smu(adev, AMD_IP_BLOCK_TYPE_ACP, true); in acp_hw_init()
219 if (adev->rmmio_size == 0 || adev->rmmio_size < 0x5289) in acp_hw_init()
222 acp_base = adev->rmmio_base; in acp_hw_init()
225 adev->acp.acp_genpd = kzalloc(sizeof(struct acp_pm_domain), GFP_KERNEL); in acp_hw_init()
226 if (adev->acp.acp_genpd == NULL) in acp_hw_init()
229 adev->acp.acp_genpd->gpd.name = "ACP_AUDIO"; in acp_hw_init()
230 adev->acp.acp_genpd->gpd.power_off = acp_poweroff; in acp_hw_init()
231 adev->acp.acp_genpd->gpd.power_on = acp_poweron; in acp_hw_init()
234 adev->acp.acp_genpd->adev = adev; in acp_hw_init()
236 pm_genpd_init(&adev->acp.acp_genpd->gpd, NULL, false); in acp_hw_init()
238 adev->acp.acp_cell = kcalloc(ACP_DEVS, sizeof(struct mfd_cell), in acp_hw_init()
241 if (adev->acp.acp_cell == NULL) { in acp_hw_init()
246 adev->acp.acp_res = kcalloc(5, sizeof(struct resource), GFP_KERNEL); in acp_hw_init()
247 if (adev->acp.acp_res == NULL) { in acp_hw_init()
258 switch (adev->asic_type) { in acp_hw_init()
270 switch (adev->asic_type) { in acp_hw_init()
287 switch (adev->asic_type) { in acp_hw_init()
300 adev->acp.acp_res[0].name = "acp2x_dma"; in acp_hw_init()
301 adev->acp.acp_res[0].flags = IORESOURCE_MEM; in acp_hw_init()
302 adev->acp.acp_res[0].start = acp_base; in acp_hw_init()
303 adev->acp.acp_res[0].end = acp_base + ACP_DMA_REGS_END; in acp_hw_init()
305 adev->acp.acp_res[1].name = "acp2x_dw_i2s_play"; in acp_hw_init()
306 adev->acp.acp_res[1].flags = IORESOURCE_MEM; in acp_hw_init()
307 adev->acp.acp_res[1].start = acp_base + ACP_I2S_PLAY_REGS_START; in acp_hw_init()
308 adev->acp.acp_res[1].end = acp_base + ACP_I2S_PLAY_REGS_END; in acp_hw_init()
310 adev->acp.acp_res[2].name = "acp2x_dw_i2s_cap"; in acp_hw_init()
311 adev->acp.acp_res[2].flags = IORESOURCE_MEM; in acp_hw_init()
312 adev->acp.acp_res[2].start = acp_base + ACP_I2S_CAP_REGS_START; in acp_hw_init()
313 adev->acp.acp_res[2].end = acp_base + ACP_I2S_CAP_REGS_END; in acp_hw_init()
315 adev->acp.acp_res[3].name = "acp2x_dw_bt_i2s_play_cap"; in acp_hw_init()
316 adev->acp.acp_res[3].flags = IORESOURCE_MEM; in acp_hw_init()
317 adev->acp.acp_res[3].start = acp_base + ACP_BT_PLAY_REGS_START; in acp_hw_init()
318 adev->acp.acp_res[3].end = acp_base + ACP_BT_PLAY_REGS_END; in acp_hw_init()
320 adev->acp.acp_res[4].name = "acp2x_dma_irq"; in acp_hw_init()
321 adev->acp.acp_res[4].flags = IORESOURCE_IRQ; in acp_hw_init()
322 adev->acp.acp_res[4].start = amdgpu_irq_create_mapping(adev, 162); in acp_hw_init()
323 adev->acp.acp_res[4].end = adev->acp.acp_res[4].start; in acp_hw_init()
325 adev->acp.acp_cell[0].name = "acp_audio_dma"; in acp_hw_init()
326 adev->acp.acp_cell[0].num_resources = 5; in acp_hw_init()
327 adev->acp.acp_cell[0].resources = &adev->acp.acp_res[0]; in acp_hw_init()
328 adev->acp.acp_cell[0].platform_data = &adev->asic_type; in acp_hw_init()
329 adev->acp.acp_cell[0].pdata_size = sizeof(adev->asic_type); in acp_hw_init()
331 adev->acp.acp_cell[1].name = "designware-i2s"; in acp_hw_init()
332 adev->acp.acp_cell[1].num_resources = 1; in acp_hw_init()
333 adev->acp.acp_cell[1].resources = &adev->acp.acp_res[1]; in acp_hw_init()
334 adev->acp.acp_cell[1].platform_data = &i2s_pdata[0]; in acp_hw_init()
335 adev->acp.acp_cell[1].pdata_size = sizeof(struct i2s_platform_data); in acp_hw_init()
337 adev->acp.acp_cell[2].name = "designware-i2s"; in acp_hw_init()
338 adev->acp.acp_cell[2].num_resources = 1; in acp_hw_init()
339 adev->acp.acp_cell[2].resources = &adev->acp.acp_res[2]; in acp_hw_init()
340 adev->acp.acp_cell[2].platform_data = &i2s_pdata[1]; in acp_hw_init()
341 adev->acp.acp_cell[2].pdata_size = sizeof(struct i2s_platform_data); in acp_hw_init()
343 adev->acp.acp_cell[3].name = "designware-i2s"; in acp_hw_init()
344 adev->acp.acp_cell[3].num_resources = 1; in acp_hw_init()
345 adev->acp.acp_cell[3].resources = &adev->acp.acp_res[3]; in acp_hw_init()
346 adev->acp.acp_cell[3].platform_data = &i2s_pdata[2]; in acp_hw_init()
347 adev->acp.acp_cell[3].pdata_size = sizeof(struct i2s_platform_data); in acp_hw_init()
349 r = mfd_add_hotplug_devices(adev->acp.parent, adev->acp.acp_cell, in acp_hw_init()
354 r = device_for_each_child(adev->acp.parent, &adev->acp.acp_genpd->gpd, in acp_hw_init()
360 val = cgs_read_register(adev->acp.cgs_device, mmACP_SOFT_RESET); in acp_hw_init()
363 cgs_write_register(adev->acp.cgs_device, mmACP_SOFT_RESET, val); in acp_hw_init()
367 val = cgs_read_register(adev->acp.cgs_device, mmACP_SOFT_RESET); in acp_hw_init()
372 dev_err(&adev->pdev->dev, "Failed to reset ACP\n"); in acp_hw_init()
379 val = cgs_read_register(adev->acp.cgs_device, mmACP_CONTROL); in acp_hw_init()
381 cgs_write_register(adev->acp.cgs_device, mmACP_CONTROL, val); in acp_hw_init()
386 val = cgs_read_register(adev->acp.cgs_device, mmACP_STATUS); in acp_hw_init()
390 dev_err(&adev->pdev->dev, "Failed to reset ACP\n"); in acp_hw_init()
397 val = cgs_read_register(adev->acp.cgs_device, mmACP_SOFT_RESET); in acp_hw_init()
399 cgs_write_register(adev->acp.cgs_device, mmACP_SOFT_RESET, val); in acp_hw_init()
404 kfree(adev->acp.acp_res); in acp_hw_init()
405 kfree(adev->acp.acp_cell); in acp_hw_init()
406 kfree(adev->acp.acp_genpd); in acp_hw_init()
420 struct amdgpu_device *adev = (struct amdgpu_device *)handle; in acp_hw_fini() local
423 if (!adev->acp.acp_genpd) { in acp_hw_fini()
424 amdgpu_dpm_set_powergating_by_smu(adev, AMD_IP_BLOCK_TYPE_ACP, false); in acp_hw_fini()
429 val = cgs_read_register(adev->acp.cgs_device, mmACP_SOFT_RESET); in acp_hw_fini()
432 cgs_write_register(adev->acp.cgs_device, mmACP_SOFT_RESET, val); in acp_hw_fini()
436 val = cgs_read_register(adev->acp.cgs_device, mmACP_SOFT_RESET); in acp_hw_fini()
441 dev_err(&adev->pdev->dev, "Failed to reset ACP\n"); in acp_hw_fini()
447 val = cgs_read_register(adev->acp.cgs_device, mmACP_CONTROL); in acp_hw_fini()
449 cgs_write_register(adev->acp.cgs_device, mmACP_CONTROL, val); in acp_hw_fini()
454 val = cgs_read_register(adev->acp.cgs_device, mmACP_STATUS); in acp_hw_fini()
458 dev_err(&adev->pdev->dev, "Failed to reset ACP\n"); in acp_hw_fini()
464 device_for_each_child(adev->acp.parent, NULL, in acp_hw_fini()
467 mfd_remove_devices(adev->acp.parent); in acp_hw_fini()
468 kfree(adev->acp.acp_res); in acp_hw_fini()
469 kfree(adev->acp.acp_genpd); in acp_hw_fini()
470 kfree(adev->acp.acp_cell); in acp_hw_fini()
477 struct amdgpu_device *adev = (struct amdgpu_device *)handle; in acp_suspend() local
480 if (!adev->acp.acp_cell) in acp_suspend()
481 amdgpu_dpm_set_powergating_by_smu(adev, AMD_IP_BLOCK_TYPE_ACP, false); in acp_suspend()
487 struct amdgpu_device *adev = (struct amdgpu_device *)handle; in acp_resume() local
490 if (!adev->acp.acp_cell) in acp_resume()
491 amdgpu_dpm_set_powergating_by_smu(adev, AMD_IP_BLOCK_TYPE_ACP, true); in acp_resume()
524 struct amdgpu_device *adev = (struct amdgpu_device *)handle; in acp_set_powergating_state() local
527 amdgpu_dpm_set_powergating_by_smu(adev, AMD_IP_BLOCK_TYPE_ACP, enable); in acp_set_powergating_state()