aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/gpu
diff options
context:
space:
mode:
authorTomi Valkeinen <tomi.valkeinen@ti.com>2015-11-05 12:44:38 -0500
committerTomi Valkeinen <tomi.valkeinen@ti.com>2017-04-03 05:36:40 -0400
commita1a37647d240ffb0b6480c2ecd1b02a4c21f6926 (patch)
treec6066ea712e7b33400a9d68d11569c831b7f21f1 /drivers/gpu
parent8a13398c3f01bc14369b879e9158391c0d447dcc (diff)
drm/omap: fill dispc_ops
This patch changes the current omapdss driver to fill a dispc_ops struct and set it to omapdss-base. Signed-off-by: Tomi Valkeinen <tomi.valkeinen@ti.com>
Diffstat (limited to 'drivers/gpu')
-rw-r--r--drivers/gpu/drm/omapdrm/dss/dispc.c40
1 files changed, 40 insertions, 0 deletions
diff --git a/drivers/gpu/drm/omapdrm/dss/dispc.c b/drivers/gpu/drm/omapdrm/dss/dispc.c
index 53d08dc4ef5a..f871f69dab1a 100644
--- a/drivers/gpu/drm/omapdrm/dss/dispc.c
+++ b/drivers/gpu/drm/omapdrm/dss/dispc.c
@@ -4359,6 +4359,42 @@ static void dispc_errata_i734_wa(void)
4359 REG_FLD_MOD(DISPC_CONFIG, gatestate, 8, 4); 4359 REG_FLD_MOD(DISPC_CONFIG, gatestate, 8, 4);
4360} 4360}
4361 4361
4362static const struct dispc_ops dispc_ops = {
4363 .read_irqstatus = dispc_read_irqstatus,
4364 .clear_irqstatus = dispc_clear_irqstatus,
4365 .read_irqenable = dispc_read_irqenable,
4366 .write_irqenable = dispc_write_irqenable,
4367
4368 .request_irq = dispc_request_irq,
4369 .free_irq = dispc_free_irq,
4370
4371 .runtime_get = dispc_runtime_get,
4372 .runtime_put = dispc_runtime_put,
4373
4374 .get_num_ovls = dispc_get_num_ovls,
4375 .get_num_mgrs = dispc_get_num_mgrs,
4376
4377 .mgr_enable = dispc_mgr_enable,
4378 .mgr_is_enabled = dispc_mgr_is_enabled,
4379 .mgr_get_vsync_irq = dispc_mgr_get_vsync_irq,
4380 .mgr_get_framedone_irq = dispc_mgr_get_framedone_irq,
4381 .mgr_get_sync_lost_irq = dispc_mgr_get_sync_lost_irq,
4382 .mgr_go_busy = dispc_mgr_go_busy,
4383 .mgr_go = dispc_mgr_go,
4384 .mgr_set_lcd_config = dispc_mgr_set_lcd_config,
4385 .mgr_set_timings = dispc_mgr_set_timings,
4386 .mgr_setup = dispc_mgr_setup,
4387 .mgr_get_supported_outputs = dispc_mgr_get_supported_outputs,
4388 .mgr_gamma_size = dispc_mgr_gamma_size,
4389 .mgr_set_gamma = dispc_mgr_set_gamma,
4390
4391 .ovl_enable = dispc_ovl_enable,
4392 .ovl_enabled = dispc_ovl_enabled,
4393 .ovl_set_channel_out = dispc_ovl_set_channel_out,
4394 .ovl_setup = dispc_ovl_setup,
4395 .ovl_get_color_modes = dispc_ovl_get_color_modes,
4396};
4397
4362/* DISPC HW IP initialisation */ 4398/* DISPC HW IP initialisation */
4363static int dispc_bind(struct device *dev, struct device *master, void *data) 4399static int dispc_bind(struct device *dev, struct device *master, void *data)
4364{ 4400{
@@ -4431,6 +4467,8 @@ static int dispc_bind(struct device *dev, struct device *master, void *data)
4431 4467
4432 dispc_runtime_put(); 4468 dispc_runtime_put();
4433 4469
4470 dispc_set_ops(&dispc_ops);
4471
4434 dss_debugfs_create_file("dispc", dispc_dump_regs); 4472 dss_debugfs_create_file("dispc", dispc_dump_regs);
4435 4473
4436 return 0; 4474 return 0;
@@ -4443,6 +4481,8 @@ err_runtime_get:
4443static void dispc_unbind(struct device *dev, struct device *master, 4481static void dispc_unbind(struct device *dev, struct device *master,
4444 void *data) 4482 void *data)
4445{ 4483{
4484 dispc_set_ops(NULL);
4485
4446 pm_runtime_disable(dev); 4486 pm_runtime_disable(dev);
4447 4487
4448 dispc_errata_i734_wa_fini(); 4488 dispc_errata_i734_wa_fini();