Lines Matching refs:fsl_dev
56 struct fsl_dcu_drm_device *fsl_dev = dev->dev_private; in fsl_dcu_irq_reset() local
58 regmap_write(fsl_dev->regmap, DCU_INT_STATUS, ~0); in fsl_dcu_irq_reset()
59 regmap_write(fsl_dev->regmap, DCU_INT_MASK, ~0); in fsl_dcu_irq_reset()
65 struct fsl_dcu_drm_device *fsl_dev = dev->dev_private; in fsl_dcu_drm_irq() local
69 ret = regmap_read(fsl_dev->regmap, DCU_INT_STATUS, &int_status); in fsl_dcu_drm_irq()
78 regmap_write(fsl_dev->regmap, DCU_INT_STATUS, int_status); in fsl_dcu_drm_irq()
95 struct fsl_dcu_drm_device *fsl_dev = dev->dev_private; in fsl_dcu_irq_uninstall() local
98 free_irq(fsl_dev->irq, dev); in fsl_dcu_irq_uninstall()
103 struct fsl_dcu_drm_device *fsl_dev = dev->dev_private; in fsl_dcu_load() local
107 ret = fsl_dcu_drm_modeset_init(fsl_dev); in fsl_dcu_load()
131 ret = fsl_dcu_irq_install(dev, fsl_dev->irq); in fsl_dcu_load()
184 struct fsl_dcu_drm_device *fsl_dev = dev_get_drvdata(dev); in fsl_dcu_drm_pm_suspend() local
187 if (!fsl_dev) in fsl_dcu_drm_pm_suspend()
190 disable_irq(fsl_dev->irq); in fsl_dcu_drm_pm_suspend()
192 ret = drm_mode_config_helper_suspend(fsl_dev->drm); in fsl_dcu_drm_pm_suspend()
194 enable_irq(fsl_dev->irq); in fsl_dcu_drm_pm_suspend()
198 clk_disable_unprepare(fsl_dev->clk); in fsl_dcu_drm_pm_suspend()
205 struct fsl_dcu_drm_device *fsl_dev = dev_get_drvdata(dev); in fsl_dcu_drm_pm_resume() local
208 if (!fsl_dev) in fsl_dcu_drm_pm_resume()
211 ret = clk_prepare_enable(fsl_dev->clk); in fsl_dcu_drm_pm_resume()
217 if (fsl_dev->tcon) in fsl_dcu_drm_pm_resume()
218 fsl_tcon_bypass_enable(fsl_dev->tcon); in fsl_dcu_drm_pm_resume()
219 fsl_dcu_drm_init_planes(fsl_dev->drm); in fsl_dcu_drm_pm_resume()
220 enable_irq(fsl_dev->irq); in fsl_dcu_drm_pm_resume()
222 drm_mode_config_helper_resume(fsl_dev->drm); in fsl_dcu_drm_pm_resume()
260 struct fsl_dcu_drm_device *fsl_dev; in fsl_dcu_drm_probe() local
271 fsl_dev = devm_kzalloc(dev, sizeof(*fsl_dev), GFP_KERNEL); in fsl_dcu_drm_probe()
272 if (!fsl_dev) in fsl_dcu_drm_probe()
278 fsl_dev->soc = id->data; in fsl_dcu_drm_probe()
286 fsl_dev->irq = platform_get_irq(pdev, 0); in fsl_dcu_drm_probe()
287 if (fsl_dev->irq < 0) in fsl_dcu_drm_probe()
288 return fsl_dev->irq; in fsl_dcu_drm_probe()
290 fsl_dev->regmap = devm_regmap_init_mmio(dev, base, in fsl_dcu_drm_probe()
292 if (IS_ERR(fsl_dev->regmap)) { in fsl_dcu_drm_probe()
294 return PTR_ERR(fsl_dev->regmap); in fsl_dcu_drm_probe()
297 fsl_dev->clk = devm_clk_get(dev, "dcu"); in fsl_dcu_drm_probe()
298 if (IS_ERR(fsl_dev->clk)) { in fsl_dcu_drm_probe()
300 return PTR_ERR(fsl_dev->clk); in fsl_dcu_drm_probe()
302 ret = clk_prepare_enable(fsl_dev->clk); in fsl_dcu_drm_probe()
311 pix_clk_in = fsl_dev->clk; in fsl_dcu_drm_probe()
319 fsl_dev->pix_clk = clk_register_divider(dev, pix_clk_name, in fsl_dcu_drm_probe()
322 if (IS_ERR(fsl_dev->pix_clk)) { in fsl_dcu_drm_probe()
324 ret = PTR_ERR(fsl_dev->pix_clk); in fsl_dcu_drm_probe()
328 fsl_dev->tcon = fsl_tcon_init(dev); in fsl_dcu_drm_probe()
336 fsl_dev->dev = dev; in fsl_dcu_drm_probe()
337 fsl_dev->drm = drm; in fsl_dcu_drm_probe()
338 fsl_dev->np = dev->of_node; in fsl_dcu_drm_probe()
339 drm->dev_private = fsl_dev; in fsl_dcu_drm_probe()
340 dev_set_drvdata(dev, fsl_dev); in fsl_dcu_drm_probe()
353 clk_unregister(fsl_dev->pix_clk); in fsl_dcu_drm_probe()
355 clk_disable_unprepare(fsl_dev->clk); in fsl_dcu_drm_probe()
361 struct fsl_dcu_drm_device *fsl_dev = platform_get_drvdata(pdev); in fsl_dcu_drm_remove() local
363 drm_dev_unregister(fsl_dev->drm); in fsl_dcu_drm_remove()
364 drm_dev_put(fsl_dev->drm); in fsl_dcu_drm_remove()
365 clk_disable_unprepare(fsl_dev->clk); in fsl_dcu_drm_remove()
366 clk_unregister(fsl_dev->pix_clk); in fsl_dcu_drm_remove()
371 struct fsl_dcu_drm_device *fsl_dev = platform_get_drvdata(pdev); in fsl_dcu_drm_shutdown() local
373 drm_atomic_helper_shutdown(fsl_dev->drm); in fsl_dcu_drm_shutdown()