Lines Matching refs:sdev

35 static int shmob_drm_init_interface(struct shmob_drm_device *sdev)  in shmob_drm_init_interface()  argument
59 if (sdev->pdata->iface.interface >= ARRAY_SIZE(ldmt1r)) { in shmob_drm_init_interface()
60 dev_err(sdev->dev, "invalid interface type %u\n", in shmob_drm_init_interface()
61 sdev->pdata->iface.interface); in shmob_drm_init_interface()
65 sdev->ldmt1r = ldmt1r[sdev->pdata->iface.interface]; in shmob_drm_init_interface()
69 static int shmob_drm_setup_clocks(struct shmob_drm_device *sdev, in shmob_drm_setup_clocks() argument
78 sdev->lddckr = LDDCKR_ICKSEL_BUS; in shmob_drm_setup_clocks()
82 sdev->lddckr = LDDCKR_ICKSEL_MIPI; in shmob_drm_setup_clocks()
86 sdev->lddckr = LDDCKR_ICKSEL_HDMI; in shmob_drm_setup_clocks()
92 clk = devm_clk_get(sdev->dev, clkname); in shmob_drm_setup_clocks()
94 dev_err(sdev->dev, "cannot get dot clock %s\n", clkname); in shmob_drm_setup_clocks()
98 sdev->clock = clk; in shmob_drm_setup_clocks()
109 struct shmob_drm_device *sdev = dev->dev_private; in shmob_drm_irq() local
117 spin_lock_irqsave(&sdev->irq_lock, flags); in shmob_drm_irq()
118 status = lcdc_read(sdev, LDINTR); in shmob_drm_irq()
119 lcdc_write(sdev, LDINTR, status ^ LDINTR_STATUS_MASK); in shmob_drm_irq()
120 spin_unlock_irqrestore(&sdev->irq_lock, flags); in shmob_drm_irq()
124 shmob_drm_crtc_finish_page_flip(&sdev->crtc); in shmob_drm_irq()
163 struct shmob_drm_device *sdev = dev_get_drvdata(dev); in shmob_drm_pm_suspend() local
165 drm_kms_helper_poll_disable(sdev->ddev); in shmob_drm_pm_suspend()
166 shmob_drm_crtc_suspend(&sdev->crtc); in shmob_drm_pm_suspend()
173 struct shmob_drm_device *sdev = dev_get_drvdata(dev); in shmob_drm_pm_resume() local
175 drm_modeset_lock_all(sdev->ddev); in shmob_drm_pm_resume()
176 shmob_drm_crtc_resume(&sdev->crtc); in shmob_drm_pm_resume()
177 drm_modeset_unlock_all(sdev->ddev); in shmob_drm_pm_resume()
179 drm_kms_helper_poll_enable(sdev->ddev); in shmob_drm_pm_resume()
194 struct shmob_drm_device *sdev = platform_get_drvdata(pdev); in shmob_drm_remove() local
195 struct drm_device *ddev = sdev->ddev; in shmob_drm_remove()
209 struct shmob_drm_device *sdev; in shmob_drm_probe() local
224 sdev = devm_kzalloc(&pdev->dev, sizeof(*sdev), GFP_KERNEL); in shmob_drm_probe()
225 if (sdev == NULL) in shmob_drm_probe()
228 sdev->dev = &pdev->dev; in shmob_drm_probe()
229 sdev->pdata = pdata; in shmob_drm_probe()
230 spin_lock_init(&sdev->irq_lock); in shmob_drm_probe()
232 platform_set_drvdata(pdev, sdev); in shmob_drm_probe()
235 sdev->mmio = devm_ioremap_resource(&pdev->dev, res); in shmob_drm_probe()
236 if (sdev->mmio == NULL) in shmob_drm_probe()
239 ret = shmob_drm_setup_clocks(sdev, pdata->clk_source); in shmob_drm_probe()
243 ret = shmob_drm_init_interface(sdev); in shmob_drm_probe()
252 sdev->ddev = ddev; in shmob_drm_probe()
253 ddev->dev_private = sdev; in shmob_drm_probe()
255 ret = shmob_drm_modeset_init(sdev); in shmob_drm_probe()
262 ret = shmob_drm_plane_create(sdev, i); in shmob_drm_probe()