Lines Matching refs:ldev
241 static void lima_fini_ip(struct lima_device *ldev, int index) in lima_fini_ip() argument
244 struct lima_ip *ip = ldev->ip + index; in lima_fini_ip()
250 static int lima_resume_ip(struct lima_device *ldev, int index) in lima_resume_ip() argument
253 struct lima_ip *ip = ldev->ip + index; in lima_resume_ip()
262 static void lima_suspend_ip(struct lima_device *ldev, int index) in lima_suspend_ip() argument
265 struct lima_ip *ip = ldev->ip + index; in lima_suspend_ip()
276 pipe->ldev = dev; in lima_init_gp_pipe()
308 pipe->ldev = dev; in lima_init_pp_pipe()
354 int lima_device_init(struct lima_device *ldev) in lima_device_init() argument
356 struct platform_device *pdev = to_platform_device(ldev->dev); in lima_device_init()
359 dma_set_coherent_mask(ldev->dev, DMA_BIT_MASK(32)); in lima_device_init()
361 err = lima_clk_init(ldev); in lima_device_init()
365 err = lima_regulator_init(ldev); in lima_device_init()
369 ldev->empty_vm = lima_vm_create(ldev); in lima_device_init()
370 if (!ldev->empty_vm) { in lima_device_init()
375 ldev->va_start = 0; in lima_device_init()
376 if (ldev->id == lima_gpu_mali450) { in lima_device_init()
377 ldev->va_end = LIMA_VA_RESERVE_START; in lima_device_init()
378 ldev->dlbu_cpu = dma_alloc_wc( in lima_device_init()
379 ldev->dev, LIMA_PAGE_SIZE, in lima_device_init()
380 &ldev->dlbu_dma, GFP_KERNEL | __GFP_NOWARN); in lima_device_init()
381 if (!ldev->dlbu_cpu) { in lima_device_init()
386 ldev->va_end = LIMA_VA_RESERVE_END; in lima_device_init()
388 ldev->iomem = devm_platform_ioremap_resource(pdev, 0); in lima_device_init()
389 if (IS_ERR(ldev->iomem)) { in lima_device_init()
390 dev_err(ldev->dev, "fail to ioremap iomem\n"); in lima_device_init()
391 err = PTR_ERR(ldev->iomem); in lima_device_init()
396 err = lima_init_ip(ldev, i); in lima_device_init()
401 err = lima_init_gp_pipe(ldev); in lima_device_init()
405 err = lima_init_pp_pipe(ldev); in lima_device_init()
409 ldev->dump.magic = LIMA_DUMP_MAGIC; in lima_device_init()
410 ldev->dump.version_major = LIMA_DUMP_MAJOR; in lima_device_init()
411 ldev->dump.version_minor = LIMA_DUMP_MINOR; in lima_device_init()
412 INIT_LIST_HEAD(&ldev->error_task_list); in lima_device_init()
413 mutex_init(&ldev->error_task_list_lock); in lima_device_init()
415 dev_info(ldev->dev, "bus rate = %lu\n", clk_get_rate(ldev->clk_bus)); in lima_device_init()
416 dev_info(ldev->dev, "mod rate = %lu", clk_get_rate(ldev->clk_gpu)); in lima_device_init()
421 lima_fini_gp_pipe(ldev); in lima_device_init()
424 lima_fini_ip(ldev, i); in lima_device_init()
426 if (ldev->dlbu_cpu) in lima_device_init()
427 dma_free_wc(ldev->dev, LIMA_PAGE_SIZE, in lima_device_init()
428 ldev->dlbu_cpu, ldev->dlbu_dma); in lima_device_init()
430 lima_vm_put(ldev->empty_vm); in lima_device_init()
432 lima_regulator_fini(ldev); in lima_device_init()
434 lima_clk_fini(ldev); in lima_device_init()
438 void lima_device_fini(struct lima_device *ldev) in lima_device_fini() argument
443 list_for_each_entry_safe(et, tmp, &ldev->error_task_list, list) { in lima_device_fini()
447 mutex_destroy(&ldev->error_task_list_lock); in lima_device_fini()
449 lima_fini_pp_pipe(ldev); in lima_device_fini()
450 lima_fini_gp_pipe(ldev); in lima_device_fini()
453 lima_fini_ip(ldev, i); in lima_device_fini()
455 if (ldev->dlbu_cpu) in lima_device_fini()
456 dma_free_wc(ldev->dev, LIMA_PAGE_SIZE, in lima_device_fini()
457 ldev->dlbu_cpu, ldev->dlbu_dma); in lima_device_fini()
459 lima_vm_put(ldev->empty_vm); in lima_device_fini()
461 lima_regulator_fini(ldev); in lima_device_fini()
463 lima_clk_fini(ldev); in lima_device_fini()
468 struct lima_device *ldev = dev_get_drvdata(dev); in lima_device_resume() local
471 err = lima_clk_enable(ldev); in lima_device_resume()
477 err = lima_regulator_enable(ldev); in lima_device_resume()
484 err = lima_resume_ip(ldev, i); in lima_device_resume()
491 err = lima_devfreq_resume(&ldev->devfreq); in lima_device_resume()
501 lima_suspend_ip(ldev, i); in lima_device_resume()
502 lima_regulator_disable(ldev); in lima_device_resume()
504 lima_clk_disable(ldev); in lima_device_resume()
510 struct lima_device *ldev = dev_get_drvdata(dev); in lima_device_suspend() local
515 if (atomic_read(&ldev->pipe[i].base.hw_rq_count)) in lima_device_suspend()
519 err = lima_devfreq_suspend(&ldev->devfreq); in lima_device_suspend()
526 lima_suspend_ip(ldev, i); in lima_device_suspend()
528 lima_regulator_disable(ldev); in lima_device_suspend()
530 lima_clk_disable(ldev); in lima_device_suspend()