Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 5115bba1 authored by Laurent Pinchart's avatar Laurent Pinchart Committed by Tomi Valkeinen
Browse files

drm: omapdrm: dpi: Remove platform driver



The DPI platform driver was used for non-DT platforms only. On DT
platforms the DPI port is handled manually. As OMAP display devices are
now instantiated from DT only, remove the DPI platform driver.

Signed-off-by: default avatarLaurent Pinchart <laurent.pinchart@ideasonboard.com>
Reviewed-by: default avatarTomi Valkeinen <tomi.valkeinen@ti.com>
Signed-off-by: default avatarTomi Valkeinen <tomi.valkeinen@ti.com>
parent 6e471fab
Loading
Loading
Loading
Loading
+0 −6
Original line number Original line Diff line number Diff line
@@ -208,9 +208,6 @@ static int (*dss_output_drv_reg_funcs[])(void) __initdata = {
#ifdef CONFIG_OMAP2_DSS_DSI
#ifdef CONFIG_OMAP2_DSS_DSI
	dsi_init_platform_driver,
	dsi_init_platform_driver,
#endif
#endif
#ifdef CONFIG_OMAP2_DSS_DPI
	dpi_init_platform_driver,
#endif
#ifdef CONFIG_OMAP2_DSS_SDI
#ifdef CONFIG_OMAP2_DSS_SDI
	sdi_init_platform_driver,
	sdi_init_platform_driver,
#endif
#endif
@@ -244,9 +241,6 @@ static void (*dss_output_drv_unreg_funcs[])(void) = {
#ifdef CONFIG_OMAP2_DSS_SDI
#ifdef CONFIG_OMAP2_DSS_SDI
	sdi_uninit_platform_driver,
	sdi_uninit_platform_driver,
#endif
#endif
#ifdef CONFIG_OMAP2_DSS_DPI
	dpi_uninit_platform_driver,
#endif
#ifdef CONFIG_OMAP2_DSS_DSI
#ifdef CONFIG_OMAP2_DSS_DSI
	dsi_uninit_platform_driver,
	dsi_uninit_platform_driver,
#endif
#endif
+0 −93
Original line number Original line Diff line number Diff line
@@ -32,7 +32,6 @@
#include <linux/string.h>
#include <linux/string.h>
#include <linux/of.h>
#include <linux/of.h>
#include <linux/clk.h>
#include <linux/clk.h>
#include <linux/component.h>


#include "omapdss.h"
#include "omapdss.h"
#include "dss.h"
#include "dss.h"
@@ -61,12 +60,6 @@ static struct dpi_data *dpi_get_data_from_dssdev(struct omap_dss_device *dssdev)
	return container_of(dssdev, struct dpi_data, output);
	return container_of(dssdev, struct dpi_data, output);
}
}


/* only used in non-DT mode */
static struct dpi_data *dpi_get_data_from_pdev(struct platform_device *pdev)
{
	return dev_get_drvdata(&pdev->dev);
}

static enum dss_clk_source dpi_get_clk_src_dra7xx(enum omap_channel channel)
static enum dss_clk_source dpi_get_clk_src_dra7xx(enum omap_channel channel)
{
{
	/*
	/*
@@ -736,30 +729,6 @@ static const struct omapdss_dpi_ops dpi_ops = {
	.set_data_lines = dpi_set_data_lines,
	.set_data_lines = dpi_set_data_lines,
};
};


static void dpi_init_output(struct platform_device *pdev)
{
	struct dpi_data *dpi = dpi_get_data_from_pdev(pdev);
	struct omap_dss_device *out = &dpi->output;

	out->dev = &pdev->dev;
	out->id = OMAP_DSS_OUTPUT_DPI;
	out->output_type = OMAP_DISPLAY_TYPE_DPI;
	out->name = "dpi.0";
	out->dispc_channel = dpi_get_channel(0);
	out->ops.dpi = &dpi_ops;
	out->owner = THIS_MODULE;

	omapdss_register_output(out);
}

static void dpi_uninit_output(struct platform_device *pdev)
{
	struct dpi_data *dpi = dpi_get_data_from_pdev(pdev);
	struct omap_dss_device *out = &dpi->output;

	omapdss_unregister_output(out);
}

static void dpi_init_output_port(struct platform_device *pdev,
static void dpi_init_output_port(struct platform_device *pdev,
	struct device_node *port)
	struct device_node *port)
{
{
@@ -804,68 +773,6 @@ static void dpi_uninit_output_port(struct device_node *port)
	omapdss_unregister_output(out);
	omapdss_unregister_output(out);
}
}


static int dpi_bind(struct device *dev, struct device *master, void *data)
{
	struct platform_device *pdev = to_platform_device(dev);
	struct dpi_data *dpi;

	dpi = devm_kzalloc(&pdev->dev, sizeof(*dpi), GFP_KERNEL);
	if (!dpi)
		return -ENOMEM;

	dpi->pdev = pdev;

	dev_set_drvdata(&pdev->dev, dpi);

	mutex_init(&dpi->lock);

	dpi_init_output(pdev);

	return 0;
}

static void dpi_unbind(struct device *dev, struct device *master, void *data)
{
	struct platform_device *pdev = to_platform_device(dev);

	dpi_uninit_output(pdev);
}

static const struct component_ops dpi_component_ops = {
	.bind	= dpi_bind,
	.unbind	= dpi_unbind,
};

static int dpi_probe(struct platform_device *pdev)
{
	return component_add(&pdev->dev, &dpi_component_ops);
}

static int dpi_remove(struct platform_device *pdev)
{
	component_del(&pdev->dev, &dpi_component_ops);
	return 0;
}

static struct platform_driver omap_dpi_driver = {
	.probe		= dpi_probe,
	.remove		= dpi_remove,
	.driver         = {
		.name   = "omapdss_dpi",
		.suppress_bind_attrs = true,
	},
};

int __init dpi_init_platform_driver(void)
{
	return platform_driver_register(&omap_dpi_driver);
}

void dpi_uninit_platform_driver(void)
{
	platform_driver_unregister(&omap_dpi_driver);
}

int dpi_init_port(struct platform_device *pdev, struct device_node *port)
int dpi_init_port(struct platform_device *pdev, struct device_node *port)
{
{
	struct dpi_data *dpi;
	struct dpi_data *dpi;
+0 −3
Original line number Original line Diff line number Diff line
@@ -314,9 +314,6 @@ void dsi_irq_handler(void);
#endif
#endif


/* DPI */
/* DPI */
int dpi_init_platform_driver(void) __init;
void dpi_uninit_platform_driver(void);

#ifdef CONFIG_OMAP2_DSS_DPI
#ifdef CONFIG_OMAP2_DSS_DPI
int dpi_init_port(struct platform_device *pdev, struct device_node *port);
int dpi_init_port(struct platform_device *pdev, struct device_node *port);
void dpi_uninit_port(struct device_node *port);
void dpi_uninit_port(struct device_node *port);