summaryrefslogtreecommitdiffstats
path: root/drivers/video/fbdev/omap2/dss/dss.c
diff options
context:
space:
mode:
authorArchit Taneja <archit@ti.com>2014-06-01 12:47:44 +0530
committerTomi Valkeinen <tomi.valkeinen@ti.com>2014-11-12 13:39:52 +0200
commit2ac6a1aae8f038662b09f2755827dfbe9456894d (patch)
tree06e3b3f29d078a98cb66f35cd10394a9f5f2ad27 /drivers/video/fbdev/omap2/dss/dss.c
parent630d2d0de6b113748ce08d5f69e094eeed24accc (diff)
downloadop-kernel-dev-2ac6a1aae8f038662b09f2755827dfbe9456894d.zip
op-kernel-dev-2ac6a1aae8f038662b09f2755827dfbe9456894d.tar.gz
OMAPDSS: DPI: Allocate driver data
Allocate driver data(dpi_data) for each DPI instance. It's allocated in omap_dpi_probe() when DT isn't used, and in dpi_init_port() when DT is used. The dpi_data struct instance is no longer global. In the case of DPI ops, it's retrieved from dpi_get_data_from_dssdev(). 'dssdev' passed by the connected encoder/panel driver is a pointer to the 'output' member in dpi_data, and thus can be used to get the DPI instance's driver data. In the case of probe/ini_port functions, it's set as DPI/DSS device's private data embedded in the platform_device struct. Having dpi_data as private data of the platform device will not work for multiple DPI instances in the DT case. This is because there is no corresponding platform_device for DPI or SDI, they exist only as ports under the parent DSS platform_device in the DT case. The DPI port's private data('data' member in device_node struct) will later be used to store dpi_data. Signed-off-by: Archit Taneja <archit@ti.com> Signed-off-by: Tomi Valkeinen <tomi.valkeinen@ti.com>
Diffstat (limited to 'drivers/video/fbdev/omap2/dss/dss.c')
-rw-r--r--drivers/video/fbdev/omap2/dss/dss.c6
1 files changed, 3 insertions, 3 deletions
diff --git a/drivers/video/fbdev/omap2/dss/dss.c b/drivers/video/fbdev/omap2/dss/dss.c
index 14bcd6c..8a4a6d2 100644
--- a/drivers/video/fbdev/omap2/dss/dss.c
+++ b/drivers/video/fbdev/omap2/dss/dss.c
@@ -820,10 +820,10 @@ static int __init dss_init_ports(struct platform_device *pdev)
return 0;
}
-static void __exit dss_uninit_ports(void)
+static void __exit dss_uninit_ports(struct platform_device *pdev)
{
#ifdef CONFIG_OMAP2_DSS_DPI
- dpi_uninit_port();
+ dpi_uninit_port(pdev);
#endif
#ifdef CONFIG_OMAP2_DSS_SDI
@@ -910,7 +910,7 @@ err_setup_clocks:
static int __exit omap_dsshw_remove(struct platform_device *pdev)
{
- dss_uninit_ports();
+ dss_uninit_ports(pdev);
pm_runtime_disable(&pdev->dev);
OpenPOWER on IntegriCloud