Lines Matching refs:sdev

36 static int shmob_drm_init_interface(struct shmob_drm_device *sdev)  in shmob_drm_init_interface()  argument
60 if (sdev->pdata->iface.interface >= ARRAY_SIZE(ldmt1r)) { in shmob_drm_init_interface()
61 dev_err(sdev->dev, "invalid interface type %u\n", in shmob_drm_init_interface()
62 sdev->pdata->iface.interface); in shmob_drm_init_interface()
66 sdev->ldmt1r = ldmt1r[sdev->pdata->iface.interface]; in shmob_drm_init_interface()
70 static int shmob_drm_setup_clocks(struct shmob_drm_device *sdev, in shmob_drm_setup_clocks() argument
79 sdev->lddckr = LDDCKR_ICKSEL_BUS; in shmob_drm_setup_clocks()
83 sdev->lddckr = LDDCKR_ICKSEL_MIPI; in shmob_drm_setup_clocks()
87 sdev->lddckr = LDDCKR_ICKSEL_HDMI; in shmob_drm_setup_clocks()
93 clk = devm_clk_get(sdev->dev, clkname); in shmob_drm_setup_clocks()
95 dev_err(sdev->dev, "cannot get dot clock %s\n", clkname); in shmob_drm_setup_clocks()
99 sdev->clock = clk; in shmob_drm_setup_clocks()
123 struct shmob_drm_device *sdev; in shmob_drm_load() local
133 sdev = devm_kzalloc(&pdev->dev, sizeof(*sdev), GFP_KERNEL); in shmob_drm_load()
134 if (sdev == NULL) { in shmob_drm_load()
139 sdev->dev = &pdev->dev; in shmob_drm_load()
140 sdev->pdata = pdata; in shmob_drm_load()
141 spin_lock_init(&sdev->irq_lock); in shmob_drm_load()
143 sdev->ddev = dev; in shmob_drm_load()
144 dev->dev_private = sdev; in shmob_drm_load()
153 sdev->mmio = devm_ioremap_nocache(&pdev->dev, res->start, in shmob_drm_load()
155 if (sdev->mmio == NULL) { in shmob_drm_load()
160 ret = shmob_drm_setup_clocks(sdev, pdata->clk_source); in shmob_drm_load()
164 ret = shmob_drm_init_interface(sdev); in shmob_drm_load()
168 ret = shmob_drm_modeset_init(sdev); in shmob_drm_load()
175 ret = shmob_drm_plane_create(sdev, i); in shmob_drm_load()
194 platform_set_drvdata(pdev, sdev); in shmob_drm_load()
205 struct shmob_drm_device *sdev = dev->dev_private; in shmob_drm_preclose() local
207 shmob_drm_crtc_cancel_page_flip(&sdev->crtc, file); in shmob_drm_preclose()
213 struct shmob_drm_device *sdev = dev->dev_private; in shmob_drm_irq() local
221 spin_lock_irqsave(&sdev->irq_lock, flags); in shmob_drm_irq()
222 status = lcdc_read(sdev, LDINTR); in shmob_drm_irq()
223 lcdc_write(sdev, LDINTR, status ^ LDINTR_STATUS_MASK); in shmob_drm_irq()
224 spin_unlock_irqrestore(&sdev->irq_lock, flags); in shmob_drm_irq()
228 shmob_drm_crtc_finish_page_flip(&sdev->crtc); in shmob_drm_irq()
236 struct shmob_drm_device *sdev = dev->dev_private; in shmob_drm_enable_vblank() local
238 shmob_drm_crtc_enable_vblank(sdev, true); in shmob_drm_enable_vblank()
245 struct shmob_drm_device *sdev = dev->dev_private; in shmob_drm_disable_vblank() local
247 shmob_drm_crtc_enable_vblank(sdev, false); in shmob_drm_disable_vblank()
304 struct shmob_drm_device *sdev = dev_get_drvdata(dev); in shmob_drm_pm_suspend() local
306 drm_kms_helper_poll_disable(sdev->ddev); in shmob_drm_pm_suspend()
307 shmob_drm_crtc_suspend(&sdev->crtc); in shmob_drm_pm_suspend()
314 struct shmob_drm_device *sdev = dev_get_drvdata(dev); in shmob_drm_pm_resume() local
316 drm_modeset_lock_all(sdev->ddev); in shmob_drm_pm_resume()
317 shmob_drm_crtc_resume(&sdev->crtc); in shmob_drm_pm_resume()
318 drm_modeset_unlock_all(sdev->ddev); in shmob_drm_pm_resume()
320 drm_kms_helper_poll_enable(sdev->ddev); in shmob_drm_pm_resume()
340 struct shmob_drm_device *sdev = platform_get_drvdata(pdev); in shmob_drm_remove() local
342 drm_put_dev(sdev->ddev); in shmob_drm_remove()