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()
360 dma_set_max_seg_size(ldev->dev, UINT_MAX); in lima_device_init()
362 err = lima_clk_init(ldev); in lima_device_init()
366 err = lima_regulator_init(ldev); in lima_device_init()
370 ldev->empty_vm = lima_vm_create(ldev); in lima_device_init()
371 if (!ldev->empty_vm) { in lima_device_init()
376 ldev->va_start = 0; in lima_device_init()
377 if (ldev->id == lima_gpu_mali450) { in lima_device_init()
378 ldev->va_end = LIMA_VA_RESERVE_START; in lima_device_init()
379 ldev->dlbu_cpu = dma_alloc_wc( in lima_device_init()
380 ldev->dev, LIMA_PAGE_SIZE, in lima_device_init()
381 &ldev->dlbu_dma, GFP_KERNEL | __GFP_NOWARN); in lima_device_init()
382 if (!ldev->dlbu_cpu) { in lima_device_init()
387 ldev->va_end = LIMA_VA_RESERVE_END; in lima_device_init()
389 ldev->iomem = devm_platform_ioremap_resource(pdev, 0); in lima_device_init()
390 if (IS_ERR(ldev->iomem)) { in lima_device_init()
391 dev_err(ldev->dev, "fail to ioremap iomem\n"); in lima_device_init()
392 err = PTR_ERR(ldev->iomem); in lima_device_init()
397 err = lima_init_ip(ldev, i); in lima_device_init()
402 err = lima_init_gp_pipe(ldev); in lima_device_init()
406 err = lima_init_pp_pipe(ldev); in lima_device_init()
410 ldev->dump.magic = LIMA_DUMP_MAGIC; in lima_device_init()
411 ldev->dump.version_major = LIMA_DUMP_MAJOR; in lima_device_init()
412 ldev->dump.version_minor = LIMA_DUMP_MINOR; in lima_device_init()
413 INIT_LIST_HEAD(&ldev->error_task_list); in lima_device_init()
414 mutex_init(&ldev->error_task_list_lock); in lima_device_init()
416 dev_info(ldev->dev, "bus rate = %lu\n", clk_get_rate(ldev->clk_bus)); in lima_device_init()
417 dev_info(ldev->dev, "mod rate = %lu", clk_get_rate(ldev->clk_gpu)); in lima_device_init()
422 lima_fini_gp_pipe(ldev); in lima_device_init()
425 lima_fini_ip(ldev, i); in lima_device_init()
427 if (ldev->dlbu_cpu) in lima_device_init()
428 dma_free_wc(ldev->dev, LIMA_PAGE_SIZE, in lima_device_init()
429 ldev->dlbu_cpu, ldev->dlbu_dma); in lima_device_init()
431 lima_vm_put(ldev->empty_vm); in lima_device_init()
433 lima_regulator_fini(ldev); in lima_device_init()
435 lima_clk_fini(ldev); in lima_device_init()
439 void lima_device_fini(struct lima_device *ldev) in lima_device_fini() argument
444 list_for_each_entry_safe(et, tmp, &ldev->error_task_list, list) { in lima_device_fini()
448 mutex_destroy(&ldev->error_task_list_lock); in lima_device_fini()
450 lima_fini_pp_pipe(ldev); in lima_device_fini()
451 lima_fini_gp_pipe(ldev); in lima_device_fini()
454 lima_fini_ip(ldev, i); in lima_device_fini()
456 if (ldev->dlbu_cpu) in lima_device_fini()
457 dma_free_wc(ldev->dev, LIMA_PAGE_SIZE, in lima_device_fini()
458 ldev->dlbu_cpu, ldev->dlbu_dma); in lima_device_fini()
460 lima_vm_put(ldev->empty_vm); in lima_device_fini()
462 lima_regulator_fini(ldev); in lima_device_fini()
464 lima_clk_fini(ldev); in lima_device_fini()
469 struct lima_device *ldev = dev_get_drvdata(dev); in lima_device_resume() local
472 err = lima_clk_enable(ldev); in lima_device_resume()
478 err = lima_regulator_enable(ldev); in lima_device_resume()
485 err = lima_resume_ip(ldev, i); in lima_device_resume()
492 err = lima_devfreq_resume(&ldev->devfreq); in lima_device_resume()
502 lima_suspend_ip(ldev, i); in lima_device_resume()
503 lima_regulator_disable(ldev); in lima_device_resume()
505 lima_clk_disable(ldev); in lima_device_resume()
511 struct lima_device *ldev = dev_get_drvdata(dev); in lima_device_suspend() local
516 if (atomic_read(&ldev->pipe[i].base.hw_rq_count)) in lima_device_suspend()
520 err = lima_devfreq_suspend(&ldev->devfreq); in lima_device_suspend()
527 lima_suspend_ip(ldev, i); in lima_device_suspend()
529 lima_regulator_disable(ldev); in lima_device_suspend()
531 lima_clk_disable(ldev); in lima_device_suspend()