All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH 0/3] OMAP: DSS2: introduce dummy panel driver
@ 2010-11-02 16:13 ` Bryan Wu
  0 siblings, 0 replies; 18+ messages in thread
From: Bryan Wu @ 2010-11-02 16:13 UTC (permalink / raw)
  To: tomi.valkeinen, linux-omap, linux-arm-kernel

There are 4 duplicated panel driver sin DSS2 display driver. They are similar
and dummy panel driver can support all them with specific panel configuration.
And new panel driver can be easily supported by adding panel configurations
into dummy panel driver.

This patchset introduces dummy panel driver, remove 3 panel drivers and enable
dummy panel driver in board files. And it is based on 2.6.37-rc1.

Building with omap2plus_defconfig is successful.

Keep sharp_ls_panel, since it contains blacklight control code which will be
moved out later.

Bryan Wu (3):
  OMAP: DSS2: Add dummy panel display driver
  OMAP: DSS2: remove dummy panel driver duplicated panel drivers
  OMAP: use dummy panel driver in board files

 arch/arm/mach-omap2/board-3430sdp.c                |    3 +-
 arch/arm/mach-omap2/board-am3517evm.c              |    6 +-
 arch/arm/mach-omap2/board-cm-t35.c                 |    6 +-
 arch/arm/mach-omap2/board-devkit8000.c             |    6 +-
 arch/arm/mach-omap2/board-igep0020.c               |    3 +-
 arch/arm/mach-omap2/board-omap3beagle.c            |    3 +-
 arch/arm/mach-omap2/board-omap3evm.c               |    3 +-
 arch/arm/mach-omap2/board-omap3stalker.c           |    6 +-
 arch/arm/plat-omap/include/plat/display.h          |   28 +-
 drivers/video/omap2/displays/Kconfig               |   22 +-
 drivers/video/omap2/displays/Makefile              |    4 +-
 drivers/video/omap2/displays/panel-dummy.c         |  195 +++++++
 drivers/video/omap2/displays/panel-dummy.h         |  119 +++++
 drivers/video/omap2/displays/panel-generic.c       |  174 -------
 .../video/omap2/displays/panel-sharp-lq043t1dg01.c |  165 ------
 .../video/omap2/displays/panel-tpo-td043mtea1.c    |  535 --------------------
 16 files changed, 364 insertions(+), 914 deletions(-)
 create mode 100644 drivers/video/omap2/displays/panel-dummy.c
 create mode 100644 drivers/video/omap2/displays/panel-dummy.h
 delete mode 100644 drivers/video/omap2/displays/panel-generic.c
 delete mode 100644 drivers/video/omap2/displays/panel-sharp-lq043t1dg01.c
 delete mode 100644 drivers/video/omap2/displays/panel-tpo-td043mtea1.c


^ permalink raw reply	[flat|nested] 18+ messages in thread

* [PATCH 0/3] OMAP: DSS2: introduce dummy panel driver
@ 2010-11-02 16:13 ` Bryan Wu
  0 siblings, 0 replies; 18+ messages in thread
From: Bryan Wu @ 2010-11-02 16:13 UTC (permalink / raw)
  To: linux-arm-kernel

There are 4 duplicated panel driver sin DSS2 display driver. They are similar
and dummy panel driver can support all them with specific panel configuration.
And new panel driver can be easily supported by adding panel configurations
into dummy panel driver.

This patchset introduces dummy panel driver, remove 3 panel drivers and enable
dummy panel driver in board files. And it is based on 2.6.37-rc1.

Building with omap2plus_defconfig is successful.

Keep sharp_ls_panel, since it contains blacklight control code which will be
moved out later.

Bryan Wu (3):
  OMAP: DSS2: Add dummy panel display driver
  OMAP: DSS2: remove dummy panel driver duplicated panel drivers
  OMAP: use dummy panel driver in board files

 arch/arm/mach-omap2/board-3430sdp.c                |    3 +-
 arch/arm/mach-omap2/board-am3517evm.c              |    6 +-
 arch/arm/mach-omap2/board-cm-t35.c                 |    6 +-
 arch/arm/mach-omap2/board-devkit8000.c             |    6 +-
 arch/arm/mach-omap2/board-igep0020.c               |    3 +-
 arch/arm/mach-omap2/board-omap3beagle.c            |    3 +-
 arch/arm/mach-omap2/board-omap3evm.c               |    3 +-
 arch/arm/mach-omap2/board-omap3stalker.c           |    6 +-
 arch/arm/plat-omap/include/plat/display.h          |   28 +-
 drivers/video/omap2/displays/Kconfig               |   22 +-
 drivers/video/omap2/displays/Makefile              |    4 +-
 drivers/video/omap2/displays/panel-dummy.c         |  195 +++++++
 drivers/video/omap2/displays/panel-dummy.h         |  119 +++++
 drivers/video/omap2/displays/panel-generic.c       |  174 -------
 .../video/omap2/displays/panel-sharp-lq043t1dg01.c |  165 ------
 .../video/omap2/displays/panel-tpo-td043mtea1.c    |  535 --------------------
 16 files changed, 364 insertions(+), 914 deletions(-)
 create mode 100644 drivers/video/omap2/displays/panel-dummy.c
 create mode 100644 drivers/video/omap2/displays/panel-dummy.h
 delete mode 100644 drivers/video/omap2/displays/panel-generic.c
 delete mode 100644 drivers/video/omap2/displays/panel-sharp-lq043t1dg01.c
 delete mode 100644 drivers/video/omap2/displays/panel-tpo-td043mtea1.c

^ permalink raw reply	[flat|nested] 18+ messages in thread

* [PATCH 1/3] OMAP: DSS2: Add dummy panel display driver
  2010-11-02 16:13 ` Bryan Wu
@ 2010-11-02 16:13   ` Bryan Wu
  -1 siblings, 0 replies; 18+ messages in thread
From: Bryan Wu @ 2010-11-02 16:13 UTC (permalink / raw)
  To: tomi.valkeinen, linux-omap, linux-arm-kernel

Dummy panel driver includes the driver and 4 similar panel configurations. It
will match the panel name which is passed from platform data and setup the
right configurations.

With dummy panel driver, we can remove those 4 duplicated panel display
drivers. In the future, it is simple for us just add new panel configuration
date in panel-dummy.h to support new display panel.

Signed-off-by: Bryan Wu <bryan.wu@canonical.com>
---
 drivers/video/omap2/displays/Kconfig       |    8 +
 drivers/video/omap2/displays/Makefile      |    1 +
 drivers/video/omap2/displays/panel-dummy.c |  195 ++++++++++++++++++++++++++++
 drivers/video/omap2/displays/panel-dummy.h |  119 +++++++++++++++++
 4 files changed, 323 insertions(+), 0 deletions(-)
 create mode 100644 drivers/video/omap2/displays/panel-dummy.c
 create mode 100644 drivers/video/omap2/displays/panel-dummy.h

diff --git a/drivers/video/omap2/displays/Kconfig b/drivers/video/omap2/displays/Kconfig
index 12327bb..4b2ed33 100644
--- a/drivers/video/omap2/displays/Kconfig
+++ b/drivers/video/omap2/displays/Kconfig
@@ -1,6 +1,14 @@
 menu "OMAP2/3 Display Device Drivers"
         depends on OMAP2_DSS
 
+config PANEL_DUMMY
+        tristate "Dummy Panel"
+        help
+	  Dummy panel driver.
+	  Supports DVI output for Beagle and OMAP3 SDP.
+	  Supports LCD Panel used in TI SDP3430 and EVM boards,
+	  OMAP3517 EVM boards and CM-T35.
+
 config PANEL_GENERIC
         tristate "Generic Panel"
         help
diff --git a/drivers/video/omap2/displays/Makefile b/drivers/video/omap2/displays/Makefile
index aa38609..5b50036 100644
--- a/drivers/video/omap2/displays/Makefile
+++ b/drivers/video/omap2/displays/Makefile
@@ -1,3 +1,4 @@
+obj-$(CONFIG_PANEL_DUMMY) += panel-dummy.o
 obj-$(CONFIG_PANEL_GENERIC) += panel-generic.o
 obj-$(CONFIG_PANEL_SHARP_LS037V7DW01) += panel-sharp-ls037v7dw01.o
 obj-$(CONFIG_PANEL_SHARP_LQ043T1DG01) += panel-sharp-lq043t1dg01.o
diff --git a/drivers/video/omap2/displays/panel-dummy.c b/drivers/video/omap2/displays/panel-dummy.c
new file mode 100644
index 0000000..c4c387a
--- /dev/null
+++ b/drivers/video/omap2/displays/panel-dummy.c
@@ -0,0 +1,195 @@
+/*
+ * Dummy Panels support
+ *
+ * Copyright (C) 2010 Canonical Ltd.
+ * Author: Bryan Wu <bryan.wu@canonical.com>
+ *
+ * This program is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 as published by
+ * the Free Software Foundation.
+ *
+ * This program is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License for
+ * more details.
+ *
+ * You should have received a copy of the GNU General Public License along with
+ * this program.  If not, see <http://www.gnu.org/licenses/>.
+ */
+
+#include <linux/module.h>
+#include <linux/delay.h>
+
+#include <plat/display.h>
+
+#include "panel-dummy.h"
+
+static int dummy_panel_power_on(struct omap_dss_device *dssdev)
+{
+	int r;
+	struct omap_display_panel *p = &dssdev->panel;
+
+	if (dssdev->state == OMAP_DSS_DISPLAY_ACTIVE)
+		return 0;
+
+	r = omapdss_dpi_display_enable(dssdev);
+	if (r)
+		goto err0;
+
+	/* wait couple of vsyncs until enabling the LCD */
+	if (p->power_on_delay)
+		msleep(p->power_on_delay);
+
+	if (dssdev->platform_enable) {
+		r = dssdev->platform_enable(dssdev);
+		if (r)
+			goto err1;
+	}
+
+	return 0;
+err1:
+	omapdss_dpi_display_disable(dssdev);
+err0:
+	return r;
+}
+
+static void dummy_panel_power_off(struct omap_dss_device *dssdev)
+{
+	struct omap_display_panel *p = &dssdev->panel;
+
+	if (dssdev->state != OMAP_DSS_DISPLAY_ACTIVE)
+		return;
+
+	if (dssdev->platform_disable)
+		dssdev->platform_disable(dssdev);
+
+	/* wait couple of vsyncs after disabling the LCD */
+	if (p->power_off_delay)
+		msleep(p->power_off_delay);
+
+	omapdss_dpi_display_disable(dssdev);
+}
+
+static int dummy_panel_probe(struct omap_dss_device *dssdev)
+{
+	struct omap_display_panel *dp = &dssdev->panel;
+	struct omap_display_panel *pp = NULL;
+	int i;
+	int matched = 0;
+
+	if (dp->name == NULL)
+		return -ENODEV;
+
+	/* Match for the configuration of the panel */
+	for (i = 0; i < ARRAY_SIZE(dummy_panels); i++) {
+		pp = &dummy_panels[i];
+		if (strcmp(pp->name, dp->name) == 0) {
+			matched = 1;
+			break;
+		}
+	}
+
+	if (!matched)
+		return -ENODEV;
+
+	memcpy(dp, pp, sizeof(struct omap_display_panel));
+
+	return 0;
+}
+
+static void dummy_panel_remove(struct omap_dss_device *dssdev)
+{
+}
+
+static int dummy_panel_enable(struct omap_dss_device *dssdev)
+{
+	int r = 0;
+
+	r = dummy_panel_power_on(dssdev);
+	if (r)
+		return r;
+
+	dssdev->state = OMAP_DSS_DISPLAY_ACTIVE;
+
+	return 0;
+}
+
+static void dummy_panel_disable(struct omap_dss_device *dssdev)
+{
+	dummy_panel_power_off(dssdev);
+
+	dssdev->state = OMAP_DSS_DISPLAY_DISABLED;
+}
+
+static int dummy_panel_suspend(struct omap_dss_device *dssdev)
+{
+	dummy_panel_power_off(dssdev);
+
+	dssdev->state = OMAP_DSS_DISPLAY_SUSPENDED;
+
+	return 0;
+}
+
+static int dummy_panel_resume(struct omap_dss_device *dssdev)
+{
+	int r = 0;
+
+	r = dummy_panel_power_on(dssdev);
+	if (r)
+		return r;
+
+	dssdev->state = OMAP_DSS_DISPLAY_ACTIVE;
+
+	return 0;
+}
+
+static void dummy_panel_set_timings(struct omap_dss_device *dssdev,
+		struct omap_video_timings *timings)
+{
+	dpi_set_timings(dssdev, timings);
+}
+
+static void dummy_panel_get_timings(struct omap_dss_device *dssdev,
+		struct omap_video_timings *timings)
+{
+	*timings = dssdev->panel.timings;
+}
+
+static int dummy_panel_check_timings(struct omap_dss_device *dssdev,
+		struct omap_video_timings *timings)
+{
+	return dpi_check_timings(dssdev, timings);
+}
+
+static struct omap_dss_driver dummy_driver = {
+	.probe		= dummy_panel_probe,
+	.remove		= dummy_panel_remove,
+
+	.enable		= dummy_panel_enable,
+	.disable	= dummy_panel_disable,
+	.suspend	= dummy_panel_suspend,
+	.resume		= dummy_panel_resume,
+
+	.set_timings	= dummy_panel_set_timings,
+	.get_timings	= dummy_panel_get_timings,
+	.check_timings	= dummy_panel_check_timings,
+
+	.driver         = {
+		.name   = "dummy_panels",
+		.owner  = THIS_MODULE,
+	},
+};
+
+static int __init dummy_panel_drv_init(void)
+{
+	return omap_dss_register_driver(&dummy_driver);
+}
+
+static void __exit dummy_panel_drv_exit(void)
+{
+	omap_dss_unregister_driver(&dummy_driver);
+}
+
+module_init(dummy_panel_drv_init);
+module_exit(dummy_panel_drv_exit);
+MODULE_LICENSE("GPL");
diff --git a/drivers/video/omap2/displays/panel-dummy.h b/drivers/video/omap2/displays/panel-dummy.h
new file mode 100644
index 0000000..ac2b7a2
--- /dev/null
+++ b/drivers/video/omap2/displays/panel-dummy.h
@@ -0,0 +1,119 @@
+/*
+ * Dummy panels support
+ *
+ * Copyright (C) 2010 Bryan Wu
+ * Author: Bryan Wu <bryan.wu@canonical.com>
+ *
+ * This program is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 as published by
+ * the Free Software Foundation.
+ *
+ * This program is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License for
+ * more details.
+ *
+ * You should have received a copy of the GNU General Public License along with
+ * this program.  If not, see <http://www.gnu.org/licenses/>.
+ */
+
+static struct omap_display_panel dummy_panels[] = {
+	/* Generic Panel */
+	{
+		{
+			.x_res		= 640,
+			.y_res		= 480,
+
+			.pixel_clock	= 23500,
+
+			.hfp		= 48,
+			.hsw		= 32,
+			.hbp		= 80,
+
+			.vfp		= 3,
+			.vsw		= 4,
+			.vbp		= 7,
+		},
+		.acbi			= 0x0,
+		.acb			= 0x0,
+		.config			= OMAP_DSS_LCD_TFT,
+		.power_on_delay		= 0,
+		.power_off_delay	= 0,
+		.name			= "generic",
+	},
+
+	/* Sharp LQ043T1DG01 */
+	{
+		{	.x_res		= 480,
+			.y_res		= 272,
+
+			.pixel_clock	= 9000,
+
+			.hsw		= 42,
+			.hfp		= 3,
+			.hbp		= 2,
+
+			.vsw		= 11,
+			.vfp		= 3,
+			.vbp		= 2,
+		},
+		.acbi			= 0x0,
+		.acb			= 0x0,
+		.config			= OMAP_DSS_LCD_TFT | OMAP_DSS_LCD_IVS |
+					OMAP_DSS_LCD_IHS | OMAP_DSS_LCD_IEO,
+		.power_on_delay		= 50,
+		.power_off_delay	= 100,
+		.name			= "sharp_lq",
+	},
+
+	/* Sharp LS037V7DW01 */
+	{
+		{
+			.x_res		= 480,
+			.y_res		= 640,
+
+			.pixel_clock	= 19200,
+
+			.hsw		= 2,
+			.hfp		= 1,
+			.hbp		= 28,
+
+			.vsw		= 1,
+			.vfp		= 1,
+			.vbp		= 1,
+		},
+		.acbi			= 0x0,
+		.acb			= 0x28,
+		.config			= OMAP_DSS_LCD_TFT | OMAP_DSS_LCD_IVS |
+						OMAP_DSS_LCD_IHS,
+		.power_on_delay		= 50,
+		.power_off_delay	= 100,
+		.name			= "sharp_ls",
+	},
+
+	/* Toppoly TDO35S */
+	{
+		{
+			.x_res		= 480,
+			.y_res		= 640,
+
+			.pixel_clock	= 26000,
+
+			.hfp		= 104,
+			.hsw		= 8,
+			.hbp		= 8,
+
+			.vfp		= 4,
+			.vsw		= 2,
+			.vbp		= 2,
+		},
+		.acbi			= 0x0,
+		.acb			= 0x0,
+		.config			= OMAP_DSS_LCD_TFT | OMAP_DSS_LCD_IVS |
+					OMAP_DSS_LCD_IHS | OMAP_DSS_LCD_IPC |
+					OMAP_DSS_LCD_ONOFF,
+		.power_on_delay		= 0,
+		.power_off_delay	= 0,
+		.name			= "toppoly_tdo35s",
+	},
+};
-- 
1.7.1

^ permalink raw reply related	[flat|nested] 18+ messages in thread

* [PATCH 1/3] OMAP: DSS2: Add dummy panel display driver
@ 2010-11-02 16:13   ` Bryan Wu
  0 siblings, 0 replies; 18+ messages in thread
From: Bryan Wu @ 2010-11-02 16:13 UTC (permalink / raw)
  To: linux-arm-kernel

Dummy panel driver includes the driver and 4 similar panel configurations. It
will match the panel name which is passed from platform data and setup the
right configurations.

With dummy panel driver, we can remove those 4 duplicated panel display
drivers. In the future, it is simple for us just add new panel configuration
date in panel-dummy.h to support new display panel.

Signed-off-by: Bryan Wu <bryan.wu@canonical.com>
---
 drivers/video/omap2/displays/Kconfig       |    8 +
 drivers/video/omap2/displays/Makefile      |    1 +
 drivers/video/omap2/displays/panel-dummy.c |  195 ++++++++++++++++++++++++++++
 drivers/video/omap2/displays/panel-dummy.h |  119 +++++++++++++++++
 4 files changed, 323 insertions(+), 0 deletions(-)
 create mode 100644 drivers/video/omap2/displays/panel-dummy.c
 create mode 100644 drivers/video/omap2/displays/panel-dummy.h

diff --git a/drivers/video/omap2/displays/Kconfig b/drivers/video/omap2/displays/Kconfig
index 12327bb..4b2ed33 100644
--- a/drivers/video/omap2/displays/Kconfig
+++ b/drivers/video/omap2/displays/Kconfig
@@ -1,6 +1,14 @@
 menu "OMAP2/3 Display Device Drivers"
         depends on OMAP2_DSS
 
+config PANEL_DUMMY
+        tristate "Dummy Panel"
+        help
+	  Dummy panel driver.
+	  Supports DVI output for Beagle and OMAP3 SDP.
+	  Supports LCD Panel used in TI SDP3430 and EVM boards,
+	  OMAP3517 EVM boards and CM-T35.
+
 config PANEL_GENERIC
         tristate "Generic Panel"
         help
diff --git a/drivers/video/omap2/displays/Makefile b/drivers/video/omap2/displays/Makefile
index aa38609..5b50036 100644
--- a/drivers/video/omap2/displays/Makefile
+++ b/drivers/video/omap2/displays/Makefile
@@ -1,3 +1,4 @@
+obj-$(CONFIG_PANEL_DUMMY) += panel-dummy.o
 obj-$(CONFIG_PANEL_GENERIC) += panel-generic.o
 obj-$(CONFIG_PANEL_SHARP_LS037V7DW01) += panel-sharp-ls037v7dw01.o
 obj-$(CONFIG_PANEL_SHARP_LQ043T1DG01) += panel-sharp-lq043t1dg01.o
diff --git a/drivers/video/omap2/displays/panel-dummy.c b/drivers/video/omap2/displays/panel-dummy.c
new file mode 100644
index 0000000..c4c387a
--- /dev/null
+++ b/drivers/video/omap2/displays/panel-dummy.c
@@ -0,0 +1,195 @@
+/*
+ * Dummy Panels support
+ *
+ * Copyright (C) 2010 Canonical Ltd.
+ * Author: Bryan Wu <bryan.wu@canonical.com>
+ *
+ * This program is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 as published by
+ * the Free Software Foundation.
+ *
+ * This program is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License for
+ * more details.
+ *
+ * You should have received a copy of the GNU General Public License along with
+ * this program.  If not, see <http://www.gnu.org/licenses/>.
+ */
+
+#include <linux/module.h>
+#include <linux/delay.h>
+
+#include <plat/display.h>
+
+#include "panel-dummy.h"
+
+static int dummy_panel_power_on(struct omap_dss_device *dssdev)
+{
+	int r;
+	struct omap_display_panel *p = &dssdev->panel;
+
+	if (dssdev->state == OMAP_DSS_DISPLAY_ACTIVE)
+		return 0;
+
+	r = omapdss_dpi_display_enable(dssdev);
+	if (r)
+		goto err0;
+
+	/* wait couple of vsyncs until enabling the LCD */
+	if (p->power_on_delay)
+		msleep(p->power_on_delay);
+
+	if (dssdev->platform_enable) {
+		r = dssdev->platform_enable(dssdev);
+		if (r)
+			goto err1;
+	}
+
+	return 0;
+err1:
+	omapdss_dpi_display_disable(dssdev);
+err0:
+	return r;
+}
+
+static void dummy_panel_power_off(struct omap_dss_device *dssdev)
+{
+	struct omap_display_panel *p = &dssdev->panel;
+
+	if (dssdev->state != OMAP_DSS_DISPLAY_ACTIVE)
+		return;
+
+	if (dssdev->platform_disable)
+		dssdev->platform_disable(dssdev);
+
+	/* wait couple of vsyncs after disabling the LCD */
+	if (p->power_off_delay)
+		msleep(p->power_off_delay);
+
+	omapdss_dpi_display_disable(dssdev);
+}
+
+static int dummy_panel_probe(struct omap_dss_device *dssdev)
+{
+	struct omap_display_panel *dp = &dssdev->panel;
+	struct omap_display_panel *pp = NULL;
+	int i;
+	int matched = 0;
+
+	if (dp->name == NULL)
+		return -ENODEV;
+
+	/* Match for the configuration of the panel */
+	for (i = 0; i < ARRAY_SIZE(dummy_panels); i++) {
+		pp = &dummy_panels[i];
+		if (strcmp(pp->name, dp->name) == 0) {
+			matched = 1;
+			break;
+		}
+	}
+
+	if (!matched)
+		return -ENODEV;
+
+	memcpy(dp, pp, sizeof(struct omap_display_panel));
+
+	return 0;
+}
+
+static void dummy_panel_remove(struct omap_dss_device *dssdev)
+{
+}
+
+static int dummy_panel_enable(struct omap_dss_device *dssdev)
+{
+	int r = 0;
+
+	r = dummy_panel_power_on(dssdev);
+	if (r)
+		return r;
+
+	dssdev->state = OMAP_DSS_DISPLAY_ACTIVE;
+
+	return 0;
+}
+
+static void dummy_panel_disable(struct omap_dss_device *dssdev)
+{
+	dummy_panel_power_off(dssdev);
+
+	dssdev->state = OMAP_DSS_DISPLAY_DISABLED;
+}
+
+static int dummy_panel_suspend(struct omap_dss_device *dssdev)
+{
+	dummy_panel_power_off(dssdev);
+
+	dssdev->state = OMAP_DSS_DISPLAY_SUSPENDED;
+
+	return 0;
+}
+
+static int dummy_panel_resume(struct omap_dss_device *dssdev)
+{
+	int r = 0;
+
+	r = dummy_panel_power_on(dssdev);
+	if (r)
+		return r;
+
+	dssdev->state = OMAP_DSS_DISPLAY_ACTIVE;
+
+	return 0;
+}
+
+static void dummy_panel_set_timings(struct omap_dss_device *dssdev,
+		struct omap_video_timings *timings)
+{
+	dpi_set_timings(dssdev, timings);
+}
+
+static void dummy_panel_get_timings(struct omap_dss_device *dssdev,
+		struct omap_video_timings *timings)
+{
+	*timings = dssdev->panel.timings;
+}
+
+static int dummy_panel_check_timings(struct omap_dss_device *dssdev,
+		struct omap_video_timings *timings)
+{
+	return dpi_check_timings(dssdev, timings);
+}
+
+static struct omap_dss_driver dummy_driver = {
+	.probe		= dummy_panel_probe,
+	.remove		= dummy_panel_remove,
+
+	.enable		= dummy_panel_enable,
+	.disable	= dummy_panel_disable,
+	.suspend	= dummy_panel_suspend,
+	.resume		= dummy_panel_resume,
+
+	.set_timings	= dummy_panel_set_timings,
+	.get_timings	= dummy_panel_get_timings,
+	.check_timings	= dummy_panel_check_timings,
+
+	.driver         = {
+		.name   = "dummy_panels",
+		.owner  = THIS_MODULE,
+	},
+};
+
+static int __init dummy_panel_drv_init(void)
+{
+	return omap_dss_register_driver(&dummy_driver);
+}
+
+static void __exit dummy_panel_drv_exit(void)
+{
+	omap_dss_unregister_driver(&dummy_driver);
+}
+
+module_init(dummy_panel_drv_init);
+module_exit(dummy_panel_drv_exit);
+MODULE_LICENSE("GPL");
diff --git a/drivers/video/omap2/displays/panel-dummy.h b/drivers/video/omap2/displays/panel-dummy.h
new file mode 100644
index 0000000..ac2b7a2
--- /dev/null
+++ b/drivers/video/omap2/displays/panel-dummy.h
@@ -0,0 +1,119 @@
+/*
+ * Dummy panels support
+ *
+ * Copyright (C) 2010 Bryan Wu
+ * Author: Bryan Wu <bryan.wu@canonical.com>
+ *
+ * This program is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 as published by
+ * the Free Software Foundation.
+ *
+ * This program is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License for
+ * more details.
+ *
+ * You should have received a copy of the GNU General Public License along with
+ * this program.  If not, see <http://www.gnu.org/licenses/>.
+ */
+
+static struct omap_display_panel dummy_panels[] = {
+	/* Generic Panel */
+	{
+		{
+			.x_res		= 640,
+			.y_res		= 480,
+
+			.pixel_clock	= 23500,
+
+			.hfp		= 48,
+			.hsw		= 32,
+			.hbp		= 80,
+
+			.vfp		= 3,
+			.vsw		= 4,
+			.vbp		= 7,
+		},
+		.acbi			= 0x0,
+		.acb			= 0x0,
+		.config			= OMAP_DSS_LCD_TFT,
+		.power_on_delay		= 0,
+		.power_off_delay	= 0,
+		.name			= "generic",
+	},
+
+	/* Sharp LQ043T1DG01 */
+	{
+		{	.x_res		= 480,
+			.y_res		= 272,
+
+			.pixel_clock	= 9000,
+
+			.hsw		= 42,
+			.hfp		= 3,
+			.hbp		= 2,
+
+			.vsw		= 11,
+			.vfp		= 3,
+			.vbp		= 2,
+		},
+		.acbi			= 0x0,
+		.acb			= 0x0,
+		.config			= OMAP_DSS_LCD_TFT | OMAP_DSS_LCD_IVS |
+					OMAP_DSS_LCD_IHS | OMAP_DSS_LCD_IEO,
+		.power_on_delay		= 50,
+		.power_off_delay	= 100,
+		.name			= "sharp_lq",
+	},
+
+	/* Sharp LS037V7DW01 */
+	{
+		{
+			.x_res		= 480,
+			.y_res		= 640,
+
+			.pixel_clock	= 19200,
+
+			.hsw		= 2,
+			.hfp		= 1,
+			.hbp		= 28,
+
+			.vsw		= 1,
+			.vfp		= 1,
+			.vbp		= 1,
+		},
+		.acbi			= 0x0,
+		.acb			= 0x28,
+		.config			= OMAP_DSS_LCD_TFT | OMAP_DSS_LCD_IVS |
+						OMAP_DSS_LCD_IHS,
+		.power_on_delay		= 50,
+		.power_off_delay	= 100,
+		.name			= "sharp_ls",
+	},
+
+	/* Toppoly TDO35S */
+	{
+		{
+			.x_res		= 480,
+			.y_res		= 640,
+
+			.pixel_clock	= 26000,
+
+			.hfp		= 104,
+			.hsw		= 8,
+			.hbp		= 8,
+
+			.vfp		= 4,
+			.vsw		= 2,
+			.vbp		= 2,
+		},
+		.acbi			= 0x0,
+		.acb			= 0x0,
+		.config			= OMAP_DSS_LCD_TFT | OMAP_DSS_LCD_IVS |
+					OMAP_DSS_LCD_IHS | OMAP_DSS_LCD_IPC |
+					OMAP_DSS_LCD_ONOFF,
+		.power_on_delay		= 0,
+		.power_off_delay	= 0,
+		.name			= "toppoly_tdo35s",
+	},
+};
-- 
1.7.1

^ permalink raw reply related	[flat|nested] 18+ messages in thread

* [PATCH 2/3] OMAP: DSS2: remove dummy panel driver duplicated panel drivers
  2010-11-02 16:13 ` Bryan Wu
@ 2010-11-02 16:13   ` Bryan Wu
  -1 siblings, 0 replies; 18+ messages in thread
From: Bryan Wu @ 2010-11-02 16:13 UTC (permalink / raw)
  To: tomi.valkeinen, linux-omap, linux-arm-kernel

Still keep sharp_ls_panel driver, because it contains blacklight control driver.

Signed-off-by: Bryan Wu <bryan.wu@canonical.com>
---
 drivers/video/omap2/displays/Kconfig               |   18 -
 drivers/video/omap2/displays/Makefile              |    3 -
 drivers/video/omap2/displays/panel-generic.c       |  174 -------
 .../video/omap2/displays/panel-sharp-lq043t1dg01.c |  165 ------
 .../video/omap2/displays/panel-tpo-td043mtea1.c    |  535 --------------------
 5 files changed, 0 insertions(+), 895 deletions(-)
 delete mode 100644 drivers/video/omap2/displays/panel-generic.c
 delete mode 100644 drivers/video/omap2/displays/panel-sharp-lq043t1dg01.c
 delete mode 100644 drivers/video/omap2/displays/panel-tpo-td043mtea1.c

diff --git a/drivers/video/omap2/displays/Kconfig b/drivers/video/omap2/displays/Kconfig
index 4b2ed33..4a29863 100644
--- a/drivers/video/omap2/displays/Kconfig
+++ b/drivers/video/omap2/displays/Kconfig
@@ -9,12 +9,6 @@ config PANEL_DUMMY
 	  Supports LCD Panel used in TI SDP3430 and EVM boards,
 	  OMAP3517 EVM boards and CM-T35.
 
-config PANEL_GENERIC
-        tristate "Generic Panel"
-        help
-	  Generic panel driver.
-	  Used for DVI output for Beagle and OMAP3 SDP.
-
 config PANEL_SHARP_LS037V7DW01
         tristate "Sharp LS037V7DW01 LCD Panel"
         depends on OMAP2_DSS
@@ -22,24 +16,12 @@ config PANEL_SHARP_LS037V7DW01
         help
           LCD Panel used in TI's SDP3430 and EVM boards
 
-config PANEL_SHARP_LQ043T1DG01
-        tristate "Sharp LQ043T1DG01 LCD Panel"
-        depends on OMAP2_DSS
-        help
-          LCD Panel used in TI's OMAP3517 EVM boards
-
 config PANEL_TAAL
         tristate "Taal DSI Panel"
         depends on OMAP2_DSS_DSI
         help
           Taal DSI command mode panel from TPO.
 
-config PANEL_TOPPOLY_TDO35S
-        tristate "Toppoly TDO35S LCD Panel support"
-        depends on OMAP2_DSS
-        help
-          LCD Panel used in CM-T35
-
 config PANEL_TPO_TD043MTEA1
         tristate "TPO TD043MTEA1 LCD Panel"
         depends on OMAP2_DSS && SPI
diff --git a/drivers/video/omap2/displays/Makefile b/drivers/video/omap2/displays/Makefile
index 5b50036..587bef8 100644
--- a/drivers/video/omap2/displays/Makefile
+++ b/drivers/video/omap2/displays/Makefile
@@ -1,9 +1,6 @@
 obj-$(CONFIG_PANEL_DUMMY) += panel-dummy.o
-obj-$(CONFIG_PANEL_GENERIC) += panel-generic.o
 obj-$(CONFIG_PANEL_SHARP_LS037V7DW01) += panel-sharp-ls037v7dw01.o
-obj-$(CONFIG_PANEL_SHARP_LQ043T1DG01) += panel-sharp-lq043t1dg01.o
 
 obj-$(CONFIG_PANEL_TAAL) += panel-taal.o
-obj-$(CONFIG_PANEL_TOPPOLY_TDO35S) += panel-toppoly-tdo35s.o
 obj-$(CONFIG_PANEL_TPO_TD043MTEA1) += panel-tpo-td043mtea1.o
 obj-$(CONFIG_PANEL_ACX565AKM) += panel-acx565akm.o
diff --git a/drivers/video/omap2/displays/panel-generic.c b/drivers/video/omap2/displays/panel-generic.c
deleted file mode 100644
index 395a68d..0000000
--- a/drivers/video/omap2/displays/panel-generic.c
+++ /dev/null
@@ -1,174 +0,0 @@
-/*
- * Generic panel support
- *
- * Copyright (C) 2008 Nokia Corporation
- * Author: Tomi Valkeinen <tomi.valkeinen@nokia.com>
- *
- * This program is free software; you can redistribute it and/or modify it
- * under the terms of the GNU General Public License version 2 as published by
- * the Free Software Foundation.
- *
- * This program is distributed in the hope that it will be useful, but WITHOUT
- * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
- * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License for
- * more details.
- *
- * You should have received a copy of the GNU General Public License along with
- * this program.  If not, see <http://www.gnu.org/licenses/>.
- */
-
-#include <linux/module.h>
-#include <linux/delay.h>
-
-#include <plat/display.h>
-
-static struct omap_video_timings generic_panel_timings = {
-	/* 640 x 480 @ 60 Hz  Reduced blanking VESA CVT 0.31M3-R */
-	.x_res		= 640,
-	.y_res		= 480,
-	.pixel_clock	= 23500,
-	.hfp		= 48,
-	.hsw		= 32,
-	.hbp		= 80,
-	.vfp		= 3,
-	.vsw		= 4,
-	.vbp		= 7,
-};
-
-static int generic_panel_power_on(struct omap_dss_device *dssdev)
-{
-	int r;
-
-	if (dssdev->state == OMAP_DSS_DISPLAY_ACTIVE)
-		return 0;
-
-	r = omapdss_dpi_display_enable(dssdev);
-	if (r)
-		goto err0;
-
-	if (dssdev->platform_enable) {
-		r = dssdev->platform_enable(dssdev);
-		if (r)
-			goto err1;
-	}
-
-	return 0;
-err1:
-	omapdss_dpi_display_disable(dssdev);
-err0:
-	return r;
-}
-
-static void generic_panel_power_off(struct omap_dss_device *dssdev)
-{
-	if (dssdev->state != OMAP_DSS_DISPLAY_ACTIVE)
-		return;
-
-	if (dssdev->platform_disable)
-		dssdev->platform_disable(dssdev);
-
-	omapdss_dpi_display_disable(dssdev);
-}
-
-static int generic_panel_probe(struct omap_dss_device *dssdev)
-{
-	dssdev->panel.config = OMAP_DSS_LCD_TFT;
-	dssdev->panel.timings = generic_panel_timings;
-
-	return 0;
-}
-
-static void generic_panel_remove(struct omap_dss_device *dssdev)
-{
-}
-
-static int generic_panel_enable(struct omap_dss_device *dssdev)
-{
-	int r = 0;
-
-	r = generic_panel_power_on(dssdev);
-	if (r)
-		return r;
-
-	dssdev->state = OMAP_DSS_DISPLAY_ACTIVE;
-
-	return 0;
-}
-
-static void generic_panel_disable(struct omap_dss_device *dssdev)
-{
-	generic_panel_power_off(dssdev);
-
-	dssdev->state = OMAP_DSS_DISPLAY_DISABLED;
-}
-
-static int generic_panel_suspend(struct omap_dss_device *dssdev)
-{
-	generic_panel_power_off(dssdev);
-	dssdev->state = OMAP_DSS_DISPLAY_SUSPENDED;
-	return 0;
-}
-
-static int generic_panel_resume(struct omap_dss_device *dssdev)
-{
-	int r = 0;
-
-	r = generic_panel_power_on(dssdev);
-	if (r)
-		return r;
-
-	dssdev->state = OMAP_DSS_DISPLAY_ACTIVE;
-
-	return 0;
-}
-
-static void generic_panel_set_timings(struct omap_dss_device *dssdev,
-		struct omap_video_timings *timings)
-{
-	dpi_set_timings(dssdev, timings);
-}
-
-static void generic_panel_get_timings(struct omap_dss_device *dssdev,
-		struct omap_video_timings *timings)
-{
-	*timings = dssdev->panel.timings;
-}
-
-static int generic_panel_check_timings(struct omap_dss_device *dssdev,
-		struct omap_video_timings *timings)
-{
-	return dpi_check_timings(dssdev, timings);
-}
-
-static struct omap_dss_driver generic_driver = {
-	.probe		= generic_panel_probe,
-	.remove		= generic_panel_remove,
-
-	.enable		= generic_panel_enable,
-	.disable	= generic_panel_disable,
-	.suspend	= generic_panel_suspend,
-	.resume		= generic_panel_resume,
-
-	.set_timings	= generic_panel_set_timings,
-	.get_timings	= generic_panel_get_timings,
-	.check_timings	= generic_panel_check_timings,
-
-	.driver         = {
-		.name   = "generic_panel",
-		.owner  = THIS_MODULE,
-	},
-};
-
-static int __init generic_panel_drv_init(void)
-{
-	return omap_dss_register_driver(&generic_driver);
-}
-
-static void __exit generic_panel_drv_exit(void)
-{
-	omap_dss_unregister_driver(&generic_driver);
-}
-
-module_init(generic_panel_drv_init);
-module_exit(generic_panel_drv_exit);
-MODULE_LICENSE("GPL");
diff --git a/drivers/video/omap2/displays/panel-sharp-lq043t1dg01.c b/drivers/video/omap2/displays/panel-sharp-lq043t1dg01.c
deleted file mode 100644
index 0c6896c..0000000
--- a/drivers/video/omap2/displays/panel-sharp-lq043t1dg01.c
+++ /dev/null
@@ -1,165 +0,0 @@
-/*
- * LCD panel driver for Sharp LQ043T1DG01
- *
- * Copyright (C) 2009 Texas Instruments Inc
- * Author: Vaibhav Hiremath <hvaibhav@ti.com>
- *
- * This program is free software; you can redistribute it and/or modify it
- * under the terms of the GNU General Public License version 2 as published by
- * the Free Software Foundation.
- *
- * This program is distributed in the hope that it will be useful, but WITHOUT
- * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
- * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License for
- * more details.
- *
- * You should have received a copy of the GNU General Public License along with
- * this program.  If not, see <http://www.gnu.org/licenses/>.
- */
-
-#include <linux/module.h>
-#include <linux/delay.h>
-#include <linux/device.h>
-#include <linux/err.h>
-
-#include <plat/display.h>
-
-static struct omap_video_timings sharp_lq_timings = {
-	.x_res = 480,
-	.y_res = 272,
-
-	.pixel_clock	= 9000,
-
-	.hsw		= 42,
-	.hfp		= 3,
-	.hbp		= 2,
-
-	.vsw		= 11,
-	.vfp		= 3,
-	.vbp		= 2,
-};
-
-static int sharp_lq_panel_power_on(struct omap_dss_device *dssdev)
-{
-	int r;
-
-	if (dssdev->state == OMAP_DSS_DISPLAY_ACTIVE)
-		return 0;
-
-	r = omapdss_dpi_display_enable(dssdev);
-	if (r)
-		goto err0;
-
-	/* wait couple of vsyncs until enabling the LCD */
-	msleep(50);
-
-	if (dssdev->platform_enable) {
-		r = dssdev->platform_enable(dssdev);
-		if (r)
-			goto err1;
-	}
-
-	return 0;
-err1:
-	omapdss_dpi_display_disable(dssdev);
-err0:
-	return r;
-}
-
-static void sharp_lq_panel_power_off(struct omap_dss_device *dssdev)
-{
-	if (dssdev->state != OMAP_DSS_DISPLAY_ACTIVE)
-		return;
-
-	if (dssdev->platform_disable)
-		dssdev->platform_disable(dssdev);
-
-	/* wait at least 5 vsyncs after disabling the LCD */
-	msleep(100);
-
-	omapdss_dpi_display_disable(dssdev);
-}
-
-static int sharp_lq_panel_probe(struct omap_dss_device *dssdev)
-{
-
-	dssdev->panel.config = OMAP_DSS_LCD_TFT | OMAP_DSS_LCD_IVS |
-		OMAP_DSS_LCD_IHS | OMAP_DSS_LCD_IEO;
-	dssdev->panel.acb = 0x0;
-	dssdev->panel.timings = sharp_lq_timings;
-
-	return 0;
-}
-
-static void sharp_lq_panel_remove(struct omap_dss_device *dssdev)
-{
-}
-
-static int sharp_lq_panel_enable(struct omap_dss_device *dssdev)
-{
-	int r = 0;
-
-	r = sharp_lq_panel_power_on(dssdev);
-	if (r)
-		return r;
-
-	dssdev->state = OMAP_DSS_DISPLAY_ACTIVE;
-
-	return 0;
-}
-
-static void sharp_lq_panel_disable(struct omap_dss_device *dssdev)
-{
-	sharp_lq_panel_power_off(dssdev);
-
-	dssdev->state = OMAP_DSS_DISPLAY_DISABLED;
-}
-
-static int sharp_lq_panel_suspend(struct omap_dss_device *dssdev)
-{
-	sharp_lq_panel_power_off(dssdev);
-	dssdev->state = OMAP_DSS_DISPLAY_SUSPENDED;
-	return 0;
-}
-
-static int sharp_lq_panel_resume(struct omap_dss_device *dssdev)
-{
-	int r = 0;
-
-	r = sharp_lq_panel_power_on(dssdev);
-	if (r)
-		return r;
-
-	dssdev->state = OMAP_DSS_DISPLAY_ACTIVE;
-
-	return 0;
-}
-
-static struct omap_dss_driver sharp_lq_driver = {
-	.probe		= sharp_lq_panel_probe,
-	.remove		= sharp_lq_panel_remove,
-
-	.enable		= sharp_lq_panel_enable,
-	.disable	= sharp_lq_panel_disable,
-	.suspend	= sharp_lq_panel_suspend,
-	.resume		= sharp_lq_panel_resume,
-
-	.driver         = {
-		.name   = "sharp_lq_panel",
-		.owner  = THIS_MODULE,
-	},
-};
-
-static int __init sharp_lq_panel_drv_init(void)
-{
-	return omap_dss_register_driver(&sharp_lq_driver);
-}
-
-static void __exit sharp_lq_panel_drv_exit(void)
-{
-	omap_dss_unregister_driver(&sharp_lq_driver);
-}
-
-module_init(sharp_lq_panel_drv_init);
-module_exit(sharp_lq_panel_drv_exit);
-MODULE_LICENSE("GPL");
diff --git a/drivers/video/omap2/displays/panel-tpo-td043mtea1.c b/drivers/video/omap2/displays/panel-tpo-td043mtea1.c
deleted file mode 100644
index dbe9d43..0000000
--- a/drivers/video/omap2/displays/panel-tpo-td043mtea1.c
+++ /dev/null
@@ -1,535 +0,0 @@
-/*
- * LCD panel driver for TPO TD043MTEA1
- *
- * Author: Gražvydas Ignotas <notasas@gmail.com>
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; either version 2 of the License, or
- * (at your option) any later version.
- */
-
-#include <linux/module.h>
-#include <linux/delay.h>
-#include <linux/spi/spi.h>
-#include <linux/regulator/consumer.h>
-#include <linux/gpio.h>
-#include <linux/err.h>
-#include <linux/slab.h>
-
-#include <plat/display.h>
-
-#define TPO_R02_MODE(x)		((x) & 7)
-#define TPO_R02_MODE_800x480	7
-#define TPO_R02_NCLK_RISING	BIT(3)
-#define TPO_R02_HSYNC_HIGH	BIT(4)
-#define TPO_R02_VSYNC_HIGH	BIT(5)
-
-#define TPO_R03_NSTANDBY	BIT(0)
-#define TPO_R03_EN_CP_CLK	BIT(1)
-#define TPO_R03_EN_VGL_PUMP	BIT(2)
-#define TPO_R03_EN_PWM		BIT(3)
-#define TPO_R03_DRIVING_CAP_100	BIT(4)
-#define TPO_R03_EN_PRE_CHARGE	BIT(6)
-#define TPO_R03_SOFTWARE_CTL	BIT(7)
-
-#define TPO_R04_NFLIP_H		BIT(0)
-#define TPO_R04_NFLIP_V		BIT(1)
-#define TPO_R04_CP_CLK_FREQ_1H	BIT(2)
-#define TPO_R04_VGL_FREQ_1H	BIT(4)
-
-#define TPO_R03_VAL_NORMAL (TPO_R03_NSTANDBY | TPO_R03_EN_CP_CLK | \
-			TPO_R03_EN_VGL_PUMP |  TPO_R03_EN_PWM | \
-			TPO_R03_DRIVING_CAP_100 | TPO_R03_EN_PRE_CHARGE | \
-			TPO_R03_SOFTWARE_CTL)
-
-#define TPO_R03_VAL_STANDBY (TPO_R03_DRIVING_CAP_100 | \
-			TPO_R03_EN_PRE_CHARGE | TPO_R03_SOFTWARE_CTL)
-
-static const u16 tpo_td043_def_gamma[12] = {
-	106, 200, 289, 375, 460, 543, 625, 705, 785, 864, 942, 1020
-};
-
-struct tpo_td043_device {
-	struct spi_device *spi;
-	struct regulator *vcc_reg;
-	u16 gamma[12];
-	u32 mode;
-	u32 hmirror:1;
-	u32 vmirror:1;
-};
-
-static int tpo_td043_write(struct spi_device *spi, u8 addr, u8 data)
-{
-	struct spi_message	m;
-	struct spi_transfer	xfer;
-	u16			w;
-	int			r;
-
-	spi_message_init(&m);
-
-	memset(&xfer, 0, sizeof(xfer));
-
-	w = ((u16)addr << 10) | (1 << 8) | data;
-	xfer.tx_buf = &w;
-	xfer.bits_per_word = 16;
-	xfer.len = 2;
-	spi_message_add_tail(&xfer, &m);
-
-	r = spi_sync(spi, &m);
-	if (r < 0)
-		dev_warn(&spi->dev, "failed to write to LCD reg (%d)\n", r);
-	return r;
-}
-
-static void tpo_td043_write_gamma(struct spi_device *spi, u16 gamma[12])
-{
-	u8 i, val;
-
-	/* gamma bits [9:8] */
-	for (val = i = 0; i < 4; i++)
-		val |= (gamma[i] & 0x300) >> ((i + 1) * 2);
-	tpo_td043_write(spi, 0x11, val);
-
-	for (val = i = 0; i < 4; i++)
-		val |= (gamma[i+4] & 0x300) >> ((i + 1) * 2);
-	tpo_td043_write(spi, 0x12, val);
-
-	for (val = i = 0; i < 4; i++)
-		val |= (gamma[i+8] & 0x300) >> ((i + 1) * 2);
-	tpo_td043_write(spi, 0x13, val);
-
-	/* gamma bits [7:0] */
-	for (val = i = 0; i < 12; i++)
-		tpo_td043_write(spi, 0x14 + i, gamma[i] & 0xff);
-}
-
-static int tpo_td043_write_mirror(struct spi_device *spi, bool h, bool v)
-{
-	u8 reg4 = TPO_R04_NFLIP_H | TPO_R04_NFLIP_V | \
-		TPO_R04_CP_CLK_FREQ_1H | TPO_R04_VGL_FREQ_1H;
-	if (h)
-		reg4 &= ~TPO_R04_NFLIP_H;
-	if (v)
-		reg4 &= ~TPO_R04_NFLIP_V;
-
-	return tpo_td043_write(spi, 4, reg4);
-}
-
-static int tpo_td043_set_hmirror(struct omap_dss_device *dssdev, bool enable)
-{
-	struct tpo_td043_device *tpo_td043 = dev_get_drvdata(&dssdev->dev);
-
-	tpo_td043->hmirror = enable;
-	return tpo_td043_write_mirror(tpo_td043->spi, tpo_td043->hmirror,
-			tpo_td043->vmirror);
-}
-
-static bool tpo_td043_get_hmirror(struct omap_dss_device *dssdev)
-{
-	struct tpo_td043_device *tpo_td043 = dev_get_drvdata(&dssdev->dev);
-
-	return tpo_td043->hmirror;
-}
-
-static ssize_t tpo_td043_vmirror_show(struct device *dev,
-	struct device_attribute *attr, char *buf)
-{
-	struct tpo_td043_device *tpo_td043 = dev_get_drvdata(dev);
-
-	return snprintf(buf, PAGE_SIZE, "%d\n", tpo_td043->vmirror);
-}
-
-static ssize_t tpo_td043_vmirror_store(struct device *dev,
-	struct device_attribute *attr, const char *buf, size_t count)
-{
-	struct tpo_td043_device *tpo_td043 = dev_get_drvdata(dev);
-	long val;
-	int ret;
-
-	ret = strict_strtol(buf, 0, &val);
-	if (ret < 0)
-		return ret;
-
-	ret = tpo_td043_write_mirror(tpo_td043->spi, tpo_td043->hmirror, val);
-	if (ret < 0)
-		return ret;
-
-	tpo_td043->vmirror = val;
-
-	return count;
-}
-
-static ssize_t tpo_td043_mode_show(struct device *dev,
-	struct device_attribute *attr, char *buf)
-{
-	struct tpo_td043_device *tpo_td043 = dev_get_drvdata(dev);
-
-	return snprintf(buf, PAGE_SIZE, "%d\n", tpo_td043->mode);
-}
-
-static ssize_t tpo_td043_mode_store(struct device *dev,
-	struct device_attribute *attr, const char *buf, size_t count)
-{
-	struct tpo_td043_device *tpo_td043 = dev_get_drvdata(dev);
-	long val;
-	int ret;
-
-	ret = strict_strtol(buf, 0, &val);
-	if (ret != 0 || val & ~7)
-		return -EINVAL;
-
-	tpo_td043->mode = val;
-
-	val |= TPO_R02_NCLK_RISING;
-	tpo_td043_write(tpo_td043->spi, 2, val);
-
-	return count;
-}
-
-static ssize_t tpo_td043_gamma_show(struct device *dev,
-	struct device_attribute *attr, char *buf)
-{
-	struct tpo_td043_device *tpo_td043 = dev_get_drvdata(dev);
-	ssize_t len = 0;
-	int ret;
-	int i;
-
-	for (i = 0; i < ARRAY_SIZE(tpo_td043->gamma); i++) {
-		ret = snprintf(buf + len, PAGE_SIZE - len, "%u ",
-				tpo_td043->gamma[i]);
-		if (ret < 0)
-			return ret;
-		len += ret;
-	}
-	buf[len - 1] = '\n';
-
-	return len;
-}
-
-static ssize_t tpo_td043_gamma_store(struct device *dev,
-	struct device_attribute *attr, const char *buf, size_t count)
-{
-	struct tpo_td043_device *tpo_td043 = dev_get_drvdata(dev);
-	unsigned int g[12];
-	int ret;
-	int i;
-
-	ret = sscanf(buf, "%u %u %u %u %u %u %u %u %u %u %u %u",
-			&g[0], &g[1], &g[2], &g[3], &g[4], &g[5],
-			&g[6], &g[7], &g[8], &g[9], &g[10], &g[11]);
-
-	if (ret != 12)
-		return -EINVAL;
-
-	for (i = 0; i < 12; i++)
-		tpo_td043->gamma[i] = g[i];
-
-	tpo_td043_write_gamma(tpo_td043->spi, tpo_td043->gamma);
-
-	return count;
-}
-
-static DEVICE_ATTR(vmirror, S_IRUGO | S_IWUSR,
-		tpo_td043_vmirror_show, tpo_td043_vmirror_store);
-static DEVICE_ATTR(mode, S_IRUGO | S_IWUSR,
-		tpo_td043_mode_show, tpo_td043_mode_store);
-static DEVICE_ATTR(gamma, S_IRUGO | S_IWUSR,
-		tpo_td043_gamma_show, tpo_td043_gamma_store);
-
-static struct attribute *tpo_td043_attrs[] = {
-	&dev_attr_vmirror.attr,
-	&dev_attr_mode.attr,
-	&dev_attr_gamma.attr,
-	NULL,
-};
-
-static struct attribute_group tpo_td043_attr_group = {
-	.attrs = tpo_td043_attrs,
-};
-
-static const struct omap_video_timings tpo_td043_timings = {
-	.x_res		= 800,
-	.y_res		= 480,
-
-	.pixel_clock	= 36000,
-
-	.hsw		= 1,
-	.hfp		= 68,
-	.hbp		= 214,
-
-	.vsw		= 1,
-	.vfp		= 39,
-	.vbp		= 34,
-};
-
-static int tpo_td043_power_on(struct omap_dss_device *dssdev)
-{
-	struct tpo_td043_device *tpo_td043 = dev_get_drvdata(&dssdev->dev);
-	int nreset_gpio = dssdev->reset_gpio;
-	int r;
-
-	if (dssdev->state == OMAP_DSS_DISPLAY_ACTIVE)
-		return 0;
-
-	r = omapdss_dpi_display_enable(dssdev);
-	if (r)
-		goto err0;
-
-	if (dssdev->platform_enable) {
-		r = dssdev->platform_enable(dssdev);
-		if (r)
-			goto err1;
-	}
-
-	regulator_enable(tpo_td043->vcc_reg);
-
-	/* wait for power up */
-	msleep(160);
-
-	if (gpio_is_valid(nreset_gpio))
-		gpio_set_value(nreset_gpio, 1);
-
-	tpo_td043_write(tpo_td043->spi, 2,
-			TPO_R02_MODE(tpo_td043->mode) | TPO_R02_NCLK_RISING);
-	tpo_td043_write(tpo_td043->spi, 3, TPO_R03_VAL_NORMAL);
-	tpo_td043_write(tpo_td043->spi, 0x20, 0xf0);
-	tpo_td043_write(tpo_td043->spi, 0x21, 0xf0);
-	tpo_td043_write_mirror(tpo_td043->spi, tpo_td043->hmirror,
-			tpo_td043->vmirror);
-	tpo_td043_write_gamma(tpo_td043->spi, tpo_td043->gamma);
-
-	return 0;
-err1:
-	omapdss_dpi_display_disable(dssdev);
-err0:
-	return r;
-}
-
-static void tpo_td043_power_off(struct omap_dss_device *dssdev)
-{
-	struct tpo_td043_device *tpo_td043 = dev_get_drvdata(&dssdev->dev);
-	int nreset_gpio = dssdev->reset_gpio;
-
-	if (dssdev->state != OMAP_DSS_DISPLAY_ACTIVE)
-		return;
-
-	tpo_td043_write(tpo_td043->spi, 3,
-			TPO_R03_VAL_STANDBY | TPO_R03_EN_PWM);
-
-	if (gpio_is_valid(nreset_gpio))
-		gpio_set_value(nreset_gpio, 0);
-
-	/* wait for at least 2 vsyncs before cutting off power */
-	msleep(50);
-
-	tpo_td043_write(tpo_td043->spi, 3, TPO_R03_VAL_STANDBY);
-
-	regulator_disable(tpo_td043->vcc_reg);
-
-	if (dssdev->platform_disable)
-		dssdev->platform_disable(dssdev);
-
-	omapdss_dpi_display_disable(dssdev);
-}
-
-static int tpo_td043_enable(struct omap_dss_device *dssdev)
-{
-	int ret;
-
-	dev_dbg(&dssdev->dev, "enable\n");
-
-	ret = tpo_td043_power_on(dssdev);
-	if (ret)
-		return ret;
-
-	dssdev->state = OMAP_DSS_DISPLAY_ACTIVE;
-
-	return 0;
-}
-
-static void tpo_td043_disable(struct omap_dss_device *dssdev)
-{
-	dev_dbg(&dssdev->dev, "disable\n");
-
-	tpo_td043_power_off(dssdev);
-
-	dssdev->state = OMAP_DSS_DISPLAY_DISABLED;
-}
-
-static int tpo_td043_suspend(struct omap_dss_device *dssdev)
-{
-	tpo_td043_power_off(dssdev);
-	dssdev->state = OMAP_DSS_DISPLAY_SUSPENDED;
-	return 0;
-}
-
-static int tpo_td043_resume(struct omap_dss_device *dssdev)
-{
-	int r = 0;
-
-	r = tpo_td043_power_on(dssdev);
-	if (r)
-		return r;
-
-	dssdev->state = OMAP_DSS_DISPLAY_ACTIVE;
-
-	return 0;
-}
-
-static int tpo_td043_probe(struct omap_dss_device *dssdev)
-{
-	struct tpo_td043_device *tpo_td043 = dev_get_drvdata(&dssdev->dev);
-	int nreset_gpio = dssdev->reset_gpio;
-	int ret = 0;
-
-	dev_dbg(&dssdev->dev, "probe\n");
-
-	if (tpo_td043 == NULL) {
-		dev_err(&dssdev->dev, "missing tpo_td043_device\n");
-		return -ENODEV;
-	}
-
-	dssdev->panel.config = OMAP_DSS_LCD_TFT | OMAP_DSS_LCD_IHS |
-				OMAP_DSS_LCD_IVS | OMAP_DSS_LCD_IPC;
-	dssdev->panel.timings = tpo_td043_timings;
-	dssdev->ctrl.pixel_size = 24;
-
-	tpo_td043->mode = TPO_R02_MODE_800x480;
-	memcpy(tpo_td043->gamma, tpo_td043_def_gamma, sizeof(tpo_td043->gamma));
-
-	tpo_td043->vcc_reg = regulator_get(&dssdev->dev, "vcc");
-	if (IS_ERR(tpo_td043->vcc_reg)) {
-		dev_err(&dssdev->dev, "failed to get LCD VCC regulator\n");
-		ret = PTR_ERR(tpo_td043->vcc_reg);
-		goto fail_regulator;
-	}
-
-	if (gpio_is_valid(nreset_gpio)) {
-		ret = gpio_request(nreset_gpio, "lcd reset");
-		if (ret < 0) {
-			dev_err(&dssdev->dev, "couldn't request reset GPIO\n");
-			goto fail_gpio_req;
-		}
-
-		ret = gpio_direction_output(nreset_gpio, 0);
-		if (ret < 0) {
-			dev_err(&dssdev->dev, "couldn't set GPIO direction\n");
-			goto fail_gpio_direction;
-		}
-	}
-
-	ret = sysfs_create_group(&dssdev->dev.kobj, &tpo_td043_attr_group);
-	if (ret)
-		dev_warn(&dssdev->dev, "failed to create sysfs files\n");
-
-	return 0;
-
-fail_gpio_direction:
-	gpio_free(nreset_gpio);
-fail_gpio_req:
-	regulator_put(tpo_td043->vcc_reg);
-fail_regulator:
-	kfree(tpo_td043);
-	return ret;
-}
-
-static void tpo_td043_remove(struct omap_dss_device *dssdev)
-{
-	struct tpo_td043_device *tpo_td043 = dev_get_drvdata(&dssdev->dev);
-	int nreset_gpio = dssdev->reset_gpio;
-
-	dev_dbg(&dssdev->dev, "remove\n");
-
-	sysfs_remove_group(&dssdev->dev.kobj, &tpo_td043_attr_group);
-	regulator_put(tpo_td043->vcc_reg);
-	if (gpio_is_valid(nreset_gpio))
-		gpio_free(nreset_gpio);
-}
-
-static struct omap_dss_driver tpo_td043_driver = {
-	.probe		= tpo_td043_probe,
-	.remove		= tpo_td043_remove,
-
-	.enable		= tpo_td043_enable,
-	.disable	= tpo_td043_disable,
-	.suspend	= tpo_td043_suspend,
-	.resume		= tpo_td043_resume,
-	.set_mirror	= tpo_td043_set_hmirror,
-	.get_mirror	= tpo_td043_get_hmirror,
-
-	.driver         = {
-		.name	= "tpo_td043mtea1_panel",
-		.owner  = THIS_MODULE,
-	},
-};
-
-static int tpo_td043_spi_probe(struct spi_device *spi)
-{
-	struct omap_dss_device *dssdev = spi->dev.platform_data;
-	struct tpo_td043_device *tpo_td043;
-	int ret;
-
-	if (dssdev == NULL) {
-		dev_err(&spi->dev, "missing dssdev\n");
-		return -ENODEV;
-	}
-
-	spi->bits_per_word = 16;
-	spi->mode = SPI_MODE_0;
-
-	ret = spi_setup(spi);
-	if (ret < 0) {
-		dev_err(&spi->dev, "spi_setup failed: %d\n", ret);
-		return ret;
-	}
-
-	tpo_td043 = kzalloc(sizeof(*tpo_td043), GFP_KERNEL);
-	if (tpo_td043 == NULL)
-		return -ENOMEM;
-
-	tpo_td043->spi = spi;
-	dev_set_drvdata(&spi->dev, tpo_td043);
-	dev_set_drvdata(&dssdev->dev, tpo_td043);
-
-	omap_dss_register_driver(&tpo_td043_driver);
-
-	return 0;
-}
-
-static int __devexit tpo_td043_spi_remove(struct spi_device *spi)
-{
-	struct tpo_td043_device *tpo_td043 = dev_get_drvdata(&spi->dev);
-
-	omap_dss_unregister_driver(&tpo_td043_driver);
-	kfree(tpo_td043);
-
-	return 0;
-}
-
-static struct spi_driver tpo_td043_spi_driver = {
-	.driver = {
-		.name	= "tpo_td043mtea1_panel_spi",
-		.bus	= &spi_bus_type,
-		.owner	= THIS_MODULE,
-	},
-	.probe	= tpo_td043_spi_probe,
-	.remove	= __devexit_p(tpo_td043_spi_remove),
-};
-
-static int __init tpo_td043_init(void)
-{
-	return spi_register_driver(&tpo_td043_spi_driver);
-}
-
-static void __exit tpo_td043_exit(void)
-{
-	spi_unregister_driver(&tpo_td043_spi_driver);
-}
-
-module_init(tpo_td043_init);
-module_exit(tpo_td043_exit);
-
-MODULE_AUTHOR("Gražvydas Ignotas <notasas@gmail.com>");
-MODULE_DESCRIPTION("TPO TD043MTEA1 LCD Driver");
-MODULE_LICENSE("GPL");
-- 
1.7.1

--
To unsubscribe from this list: send the line "unsubscribe linux-omap" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

^ permalink raw reply related	[flat|nested] 18+ messages in thread

* [PATCH 2/3] OMAP: DSS2: remove dummy panel driver duplicated panel drivers
@ 2010-11-02 16:13   ` Bryan Wu
  0 siblings, 0 replies; 18+ messages in thread
From: Bryan Wu @ 2010-11-02 16:13 UTC (permalink / raw)
  To: linux-arm-kernel

Still keep sharp_ls_panel driver, because it contains blacklight control driver.

Signed-off-by: Bryan Wu <bryan.wu@canonical.com>
---
 drivers/video/omap2/displays/Kconfig               |   18 -
 drivers/video/omap2/displays/Makefile              |    3 -
 drivers/video/omap2/displays/panel-generic.c       |  174 -------
 .../video/omap2/displays/panel-sharp-lq043t1dg01.c |  165 ------
 .../video/omap2/displays/panel-tpo-td043mtea1.c    |  535 --------------------
 5 files changed, 0 insertions(+), 895 deletions(-)
 delete mode 100644 drivers/video/omap2/displays/panel-generic.c
 delete mode 100644 drivers/video/omap2/displays/panel-sharp-lq043t1dg01.c
 delete mode 100644 drivers/video/omap2/displays/panel-tpo-td043mtea1.c

diff --git a/drivers/video/omap2/displays/Kconfig b/drivers/video/omap2/displays/Kconfig
index 4b2ed33..4a29863 100644
--- a/drivers/video/omap2/displays/Kconfig
+++ b/drivers/video/omap2/displays/Kconfig
@@ -9,12 +9,6 @@ config PANEL_DUMMY
 	  Supports LCD Panel used in TI SDP3430 and EVM boards,
 	  OMAP3517 EVM boards and CM-T35.
 
-config PANEL_GENERIC
-        tristate "Generic Panel"
-        help
-	  Generic panel driver.
-	  Used for DVI output for Beagle and OMAP3 SDP.
-
 config PANEL_SHARP_LS037V7DW01
         tristate "Sharp LS037V7DW01 LCD Panel"
         depends on OMAP2_DSS
@@ -22,24 +16,12 @@ config PANEL_SHARP_LS037V7DW01
         help
           LCD Panel used in TI's SDP3430 and EVM boards
 
-config PANEL_SHARP_LQ043T1DG01
-        tristate "Sharp LQ043T1DG01 LCD Panel"
-        depends on OMAP2_DSS
-        help
-          LCD Panel used in TI's OMAP3517 EVM boards
-
 config PANEL_TAAL
         tristate "Taal DSI Panel"
         depends on OMAP2_DSS_DSI
         help
           Taal DSI command mode panel from TPO.
 
-config PANEL_TOPPOLY_TDO35S
-        tristate "Toppoly TDO35S LCD Panel support"
-        depends on OMAP2_DSS
-        help
-          LCD Panel used in CM-T35
-
 config PANEL_TPO_TD043MTEA1
         tristate "TPO TD043MTEA1 LCD Panel"
         depends on OMAP2_DSS && SPI
diff --git a/drivers/video/omap2/displays/Makefile b/drivers/video/omap2/displays/Makefile
index 5b50036..587bef8 100644
--- a/drivers/video/omap2/displays/Makefile
+++ b/drivers/video/omap2/displays/Makefile
@@ -1,9 +1,6 @@
 obj-$(CONFIG_PANEL_DUMMY) += panel-dummy.o
-obj-$(CONFIG_PANEL_GENERIC) += panel-generic.o
 obj-$(CONFIG_PANEL_SHARP_LS037V7DW01) += panel-sharp-ls037v7dw01.o
-obj-$(CONFIG_PANEL_SHARP_LQ043T1DG01) += panel-sharp-lq043t1dg01.o
 
 obj-$(CONFIG_PANEL_TAAL) += panel-taal.o
-obj-$(CONFIG_PANEL_TOPPOLY_TDO35S) += panel-toppoly-tdo35s.o
 obj-$(CONFIG_PANEL_TPO_TD043MTEA1) += panel-tpo-td043mtea1.o
 obj-$(CONFIG_PANEL_ACX565AKM) += panel-acx565akm.o
diff --git a/drivers/video/omap2/displays/panel-generic.c b/drivers/video/omap2/displays/panel-generic.c
deleted file mode 100644
index 395a68d..0000000
--- a/drivers/video/omap2/displays/panel-generic.c
+++ /dev/null
@@ -1,174 +0,0 @@
-/*
- * Generic panel support
- *
- * Copyright (C) 2008 Nokia Corporation
- * Author: Tomi Valkeinen <tomi.valkeinen@nokia.com>
- *
- * This program is free software; you can redistribute it and/or modify it
- * under the terms of the GNU General Public License version 2 as published by
- * the Free Software Foundation.
- *
- * This program is distributed in the hope that it will be useful, but WITHOUT
- * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
- * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License for
- * more details.
- *
- * You should have received a copy of the GNU General Public License along with
- * this program.  If not, see <http://www.gnu.org/licenses/>.
- */
-
-#include <linux/module.h>
-#include <linux/delay.h>
-
-#include <plat/display.h>
-
-static struct omap_video_timings generic_panel_timings = {
-	/* 640 x 480 @ 60 Hz  Reduced blanking VESA CVT 0.31M3-R */
-	.x_res		= 640,
-	.y_res		= 480,
-	.pixel_clock	= 23500,
-	.hfp		= 48,
-	.hsw		= 32,
-	.hbp		= 80,
-	.vfp		= 3,
-	.vsw		= 4,
-	.vbp		= 7,
-};
-
-static int generic_panel_power_on(struct omap_dss_device *dssdev)
-{
-	int r;
-
-	if (dssdev->state == OMAP_DSS_DISPLAY_ACTIVE)
-		return 0;
-
-	r = omapdss_dpi_display_enable(dssdev);
-	if (r)
-		goto err0;
-
-	if (dssdev->platform_enable) {
-		r = dssdev->platform_enable(dssdev);
-		if (r)
-			goto err1;
-	}
-
-	return 0;
-err1:
-	omapdss_dpi_display_disable(dssdev);
-err0:
-	return r;
-}
-
-static void generic_panel_power_off(struct omap_dss_device *dssdev)
-{
-	if (dssdev->state != OMAP_DSS_DISPLAY_ACTIVE)
-		return;
-
-	if (dssdev->platform_disable)
-		dssdev->platform_disable(dssdev);
-
-	omapdss_dpi_display_disable(dssdev);
-}
-
-static int generic_panel_probe(struct omap_dss_device *dssdev)
-{
-	dssdev->panel.config = OMAP_DSS_LCD_TFT;
-	dssdev->panel.timings = generic_panel_timings;
-
-	return 0;
-}
-
-static void generic_panel_remove(struct omap_dss_device *dssdev)
-{
-}
-
-static int generic_panel_enable(struct omap_dss_device *dssdev)
-{
-	int r = 0;
-
-	r = generic_panel_power_on(dssdev);
-	if (r)
-		return r;
-
-	dssdev->state = OMAP_DSS_DISPLAY_ACTIVE;
-
-	return 0;
-}
-
-static void generic_panel_disable(struct omap_dss_device *dssdev)
-{
-	generic_panel_power_off(dssdev);
-
-	dssdev->state = OMAP_DSS_DISPLAY_DISABLED;
-}
-
-static int generic_panel_suspend(struct omap_dss_device *dssdev)
-{
-	generic_panel_power_off(dssdev);
-	dssdev->state = OMAP_DSS_DISPLAY_SUSPENDED;
-	return 0;
-}
-
-static int generic_panel_resume(struct omap_dss_device *dssdev)
-{
-	int r = 0;
-
-	r = generic_panel_power_on(dssdev);
-	if (r)
-		return r;
-
-	dssdev->state = OMAP_DSS_DISPLAY_ACTIVE;
-
-	return 0;
-}
-
-static void generic_panel_set_timings(struct omap_dss_device *dssdev,
-		struct omap_video_timings *timings)
-{
-	dpi_set_timings(dssdev, timings);
-}
-
-static void generic_panel_get_timings(struct omap_dss_device *dssdev,
-		struct omap_video_timings *timings)
-{
-	*timings = dssdev->panel.timings;
-}
-
-static int generic_panel_check_timings(struct omap_dss_device *dssdev,
-		struct omap_video_timings *timings)
-{
-	return dpi_check_timings(dssdev, timings);
-}
-
-static struct omap_dss_driver generic_driver = {
-	.probe		= generic_panel_probe,
-	.remove		= generic_panel_remove,
-
-	.enable		= generic_panel_enable,
-	.disable	= generic_panel_disable,
-	.suspend	= generic_panel_suspend,
-	.resume		= generic_panel_resume,
-
-	.set_timings	= generic_panel_set_timings,
-	.get_timings	= generic_panel_get_timings,
-	.check_timings	= generic_panel_check_timings,
-
-	.driver         = {
-		.name   = "generic_panel",
-		.owner  = THIS_MODULE,
-	},
-};
-
-static int __init generic_panel_drv_init(void)
-{
-	return omap_dss_register_driver(&generic_driver);
-}
-
-static void __exit generic_panel_drv_exit(void)
-{
-	omap_dss_unregister_driver(&generic_driver);
-}
-
-module_init(generic_panel_drv_init);
-module_exit(generic_panel_drv_exit);
-MODULE_LICENSE("GPL");
diff --git a/drivers/video/omap2/displays/panel-sharp-lq043t1dg01.c b/drivers/video/omap2/displays/panel-sharp-lq043t1dg01.c
deleted file mode 100644
index 0c6896c..0000000
--- a/drivers/video/omap2/displays/panel-sharp-lq043t1dg01.c
+++ /dev/null
@@ -1,165 +0,0 @@
-/*
- * LCD panel driver for Sharp LQ043T1DG01
- *
- * Copyright (C) 2009 Texas Instruments Inc
- * Author: Vaibhav Hiremath <hvaibhav@ti.com>
- *
- * This program is free software; you can redistribute it and/or modify it
- * under the terms of the GNU General Public License version 2 as published by
- * the Free Software Foundation.
- *
- * This program is distributed in the hope that it will be useful, but WITHOUT
- * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
- * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License for
- * more details.
- *
- * You should have received a copy of the GNU General Public License along with
- * this program.  If not, see <http://www.gnu.org/licenses/>.
- */
-
-#include <linux/module.h>
-#include <linux/delay.h>
-#include <linux/device.h>
-#include <linux/err.h>
-
-#include <plat/display.h>
-
-static struct omap_video_timings sharp_lq_timings = {
-	.x_res = 480,
-	.y_res = 272,
-
-	.pixel_clock	= 9000,
-
-	.hsw		= 42,
-	.hfp		= 3,
-	.hbp		= 2,
-
-	.vsw		= 11,
-	.vfp		= 3,
-	.vbp		= 2,
-};
-
-static int sharp_lq_panel_power_on(struct omap_dss_device *dssdev)
-{
-	int r;
-
-	if (dssdev->state == OMAP_DSS_DISPLAY_ACTIVE)
-		return 0;
-
-	r = omapdss_dpi_display_enable(dssdev);
-	if (r)
-		goto err0;
-
-	/* wait couple of vsyncs until enabling the LCD */
-	msleep(50);
-
-	if (dssdev->platform_enable) {
-		r = dssdev->platform_enable(dssdev);
-		if (r)
-			goto err1;
-	}
-
-	return 0;
-err1:
-	omapdss_dpi_display_disable(dssdev);
-err0:
-	return r;
-}
-
-static void sharp_lq_panel_power_off(struct omap_dss_device *dssdev)
-{
-	if (dssdev->state != OMAP_DSS_DISPLAY_ACTIVE)
-		return;
-
-	if (dssdev->platform_disable)
-		dssdev->platform_disable(dssdev);
-
-	/* wait at least 5 vsyncs after disabling the LCD */
-	msleep(100);
-
-	omapdss_dpi_display_disable(dssdev);
-}
-
-static int sharp_lq_panel_probe(struct omap_dss_device *dssdev)
-{
-
-	dssdev->panel.config = OMAP_DSS_LCD_TFT | OMAP_DSS_LCD_IVS |
-		OMAP_DSS_LCD_IHS | OMAP_DSS_LCD_IEO;
-	dssdev->panel.acb = 0x0;
-	dssdev->panel.timings = sharp_lq_timings;
-
-	return 0;
-}
-
-static void sharp_lq_panel_remove(struct omap_dss_device *dssdev)
-{
-}
-
-static int sharp_lq_panel_enable(struct omap_dss_device *dssdev)
-{
-	int r = 0;
-
-	r = sharp_lq_panel_power_on(dssdev);
-	if (r)
-		return r;
-
-	dssdev->state = OMAP_DSS_DISPLAY_ACTIVE;
-
-	return 0;
-}
-
-static void sharp_lq_panel_disable(struct omap_dss_device *dssdev)
-{
-	sharp_lq_panel_power_off(dssdev);
-
-	dssdev->state = OMAP_DSS_DISPLAY_DISABLED;
-}
-
-static int sharp_lq_panel_suspend(struct omap_dss_device *dssdev)
-{
-	sharp_lq_panel_power_off(dssdev);
-	dssdev->state = OMAP_DSS_DISPLAY_SUSPENDED;
-	return 0;
-}
-
-static int sharp_lq_panel_resume(struct omap_dss_device *dssdev)
-{
-	int r = 0;
-
-	r = sharp_lq_panel_power_on(dssdev);
-	if (r)
-		return r;
-
-	dssdev->state = OMAP_DSS_DISPLAY_ACTIVE;
-
-	return 0;
-}
-
-static struct omap_dss_driver sharp_lq_driver = {
-	.probe		= sharp_lq_panel_probe,
-	.remove		= sharp_lq_panel_remove,
-
-	.enable		= sharp_lq_panel_enable,
-	.disable	= sharp_lq_panel_disable,
-	.suspend	= sharp_lq_panel_suspend,
-	.resume		= sharp_lq_panel_resume,
-
-	.driver         = {
-		.name   = "sharp_lq_panel",
-		.owner  = THIS_MODULE,
-	},
-};
-
-static int __init sharp_lq_panel_drv_init(void)
-{
-	return omap_dss_register_driver(&sharp_lq_driver);
-}
-
-static void __exit sharp_lq_panel_drv_exit(void)
-{
-	omap_dss_unregister_driver(&sharp_lq_driver);
-}
-
-module_init(sharp_lq_panel_drv_init);
-module_exit(sharp_lq_panel_drv_exit);
-MODULE_LICENSE("GPL");
diff --git a/drivers/video/omap2/displays/panel-tpo-td043mtea1.c b/drivers/video/omap2/displays/panel-tpo-td043mtea1.c
deleted file mode 100644
index dbe9d43..0000000
--- a/drivers/video/omap2/displays/panel-tpo-td043mtea1.c
+++ /dev/null
@@ -1,535 +0,0 @@
-/*
- * LCD panel driver for TPO TD043MTEA1
- *
- * Author: Gra??vydas Ignotas <notasas@gmail.com>
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; either version 2 of the License, or
- * (at your option) any later version.
- */
-
-#include <linux/module.h>
-#include <linux/delay.h>
-#include <linux/spi/spi.h>
-#include <linux/regulator/consumer.h>
-#include <linux/gpio.h>
-#include <linux/err.h>
-#include <linux/slab.h>
-
-#include <plat/display.h>
-
-#define TPO_R02_MODE(x)		((x) & 7)
-#define TPO_R02_MODE_800x480	7
-#define TPO_R02_NCLK_RISING	BIT(3)
-#define TPO_R02_HSYNC_HIGH	BIT(4)
-#define TPO_R02_VSYNC_HIGH	BIT(5)
-
-#define TPO_R03_NSTANDBY	BIT(0)
-#define TPO_R03_EN_CP_CLK	BIT(1)
-#define TPO_R03_EN_VGL_PUMP	BIT(2)
-#define TPO_R03_EN_PWM		BIT(3)
-#define TPO_R03_DRIVING_CAP_100	BIT(4)
-#define TPO_R03_EN_PRE_CHARGE	BIT(6)
-#define TPO_R03_SOFTWARE_CTL	BIT(7)
-
-#define TPO_R04_NFLIP_H		BIT(0)
-#define TPO_R04_NFLIP_V		BIT(1)
-#define TPO_R04_CP_CLK_FREQ_1H	BIT(2)
-#define TPO_R04_VGL_FREQ_1H	BIT(4)
-
-#define TPO_R03_VAL_NORMAL (TPO_R03_NSTANDBY | TPO_R03_EN_CP_CLK | \
-			TPO_R03_EN_VGL_PUMP |  TPO_R03_EN_PWM | \
-			TPO_R03_DRIVING_CAP_100 | TPO_R03_EN_PRE_CHARGE | \
-			TPO_R03_SOFTWARE_CTL)
-
-#define TPO_R03_VAL_STANDBY (TPO_R03_DRIVING_CAP_100 | \
-			TPO_R03_EN_PRE_CHARGE | TPO_R03_SOFTWARE_CTL)
-
-static const u16 tpo_td043_def_gamma[12] = {
-	106, 200, 289, 375, 460, 543, 625, 705, 785, 864, 942, 1020
-};
-
-struct tpo_td043_device {
-	struct spi_device *spi;
-	struct regulator *vcc_reg;
-	u16 gamma[12];
-	u32 mode;
-	u32 hmirror:1;
-	u32 vmirror:1;
-};
-
-static int tpo_td043_write(struct spi_device *spi, u8 addr, u8 data)
-{
-	struct spi_message	m;
-	struct spi_transfer	xfer;
-	u16			w;
-	int			r;
-
-	spi_message_init(&m);
-
-	memset(&xfer, 0, sizeof(xfer));
-
-	w = ((u16)addr << 10) | (1 << 8) | data;
-	xfer.tx_buf = &w;
-	xfer.bits_per_word = 16;
-	xfer.len = 2;
-	spi_message_add_tail(&xfer, &m);
-
-	r = spi_sync(spi, &m);
-	if (r < 0)
-		dev_warn(&spi->dev, "failed to write to LCD reg (%d)\n", r);
-	return r;
-}
-
-static void tpo_td043_write_gamma(struct spi_device *spi, u16 gamma[12])
-{
-	u8 i, val;
-
-	/* gamma bits [9:8] */
-	for (val = i = 0; i < 4; i++)
-		val |= (gamma[i] & 0x300) >> ((i + 1) * 2);
-	tpo_td043_write(spi, 0x11, val);
-
-	for (val = i = 0; i < 4; i++)
-		val |= (gamma[i+4] & 0x300) >> ((i + 1) * 2);
-	tpo_td043_write(spi, 0x12, val);
-
-	for (val = i = 0; i < 4; i++)
-		val |= (gamma[i+8] & 0x300) >> ((i + 1) * 2);
-	tpo_td043_write(spi, 0x13, val);
-
-	/* gamma bits [7:0] */
-	for (val = i = 0; i < 12; i++)
-		tpo_td043_write(spi, 0x14 + i, gamma[i] & 0xff);
-}
-
-static int tpo_td043_write_mirror(struct spi_device *spi, bool h, bool v)
-{
-	u8 reg4 = TPO_R04_NFLIP_H | TPO_R04_NFLIP_V | \
-		TPO_R04_CP_CLK_FREQ_1H | TPO_R04_VGL_FREQ_1H;
-	if (h)
-		reg4 &= ~TPO_R04_NFLIP_H;
-	if (v)
-		reg4 &= ~TPO_R04_NFLIP_V;
-
-	return tpo_td043_write(spi, 4, reg4);
-}
-
-static int tpo_td043_set_hmirror(struct omap_dss_device *dssdev, bool enable)
-{
-	struct tpo_td043_device *tpo_td043 = dev_get_drvdata(&dssdev->dev);
-
-	tpo_td043->hmirror = enable;
-	return tpo_td043_write_mirror(tpo_td043->spi, tpo_td043->hmirror,
-			tpo_td043->vmirror);
-}
-
-static bool tpo_td043_get_hmirror(struct omap_dss_device *dssdev)
-{
-	struct tpo_td043_device *tpo_td043 = dev_get_drvdata(&dssdev->dev);
-
-	return tpo_td043->hmirror;
-}
-
-static ssize_t tpo_td043_vmirror_show(struct device *dev,
-	struct device_attribute *attr, char *buf)
-{
-	struct tpo_td043_device *tpo_td043 = dev_get_drvdata(dev);
-
-	return snprintf(buf, PAGE_SIZE, "%d\n", tpo_td043->vmirror);
-}
-
-static ssize_t tpo_td043_vmirror_store(struct device *dev,
-	struct device_attribute *attr, const char *buf, size_t count)
-{
-	struct tpo_td043_device *tpo_td043 = dev_get_drvdata(dev);
-	long val;
-	int ret;
-
-	ret = strict_strtol(buf, 0, &val);
-	if (ret < 0)
-		return ret;
-
-	ret = tpo_td043_write_mirror(tpo_td043->spi, tpo_td043->hmirror, val);
-	if (ret < 0)
-		return ret;
-
-	tpo_td043->vmirror = val;
-
-	return count;
-}
-
-static ssize_t tpo_td043_mode_show(struct device *dev,
-	struct device_attribute *attr, char *buf)
-{
-	struct tpo_td043_device *tpo_td043 = dev_get_drvdata(dev);
-
-	return snprintf(buf, PAGE_SIZE, "%d\n", tpo_td043->mode);
-}
-
-static ssize_t tpo_td043_mode_store(struct device *dev,
-	struct device_attribute *attr, const char *buf, size_t count)
-{
-	struct tpo_td043_device *tpo_td043 = dev_get_drvdata(dev);
-	long val;
-	int ret;
-
-	ret = strict_strtol(buf, 0, &val);
-	if (ret != 0 || val & ~7)
-		return -EINVAL;
-
-	tpo_td043->mode = val;
-
-	val |= TPO_R02_NCLK_RISING;
-	tpo_td043_write(tpo_td043->spi, 2, val);
-
-	return count;
-}
-
-static ssize_t tpo_td043_gamma_show(struct device *dev,
-	struct device_attribute *attr, char *buf)
-{
-	struct tpo_td043_device *tpo_td043 = dev_get_drvdata(dev);
-	ssize_t len = 0;
-	int ret;
-	int i;
-
-	for (i = 0; i < ARRAY_SIZE(tpo_td043->gamma); i++) {
-		ret = snprintf(buf + len, PAGE_SIZE - len, "%u ",
-				tpo_td043->gamma[i]);
-		if (ret < 0)
-			return ret;
-		len += ret;
-	}
-	buf[len - 1] = '\n';
-
-	return len;
-}
-
-static ssize_t tpo_td043_gamma_store(struct device *dev,
-	struct device_attribute *attr, const char *buf, size_t count)
-{
-	struct tpo_td043_device *tpo_td043 = dev_get_drvdata(dev);
-	unsigned int g[12];
-	int ret;
-	int i;
-
-	ret = sscanf(buf, "%u %u %u %u %u %u %u %u %u %u %u %u",
-			&g[0], &g[1], &g[2], &g[3], &g[4], &g[5],
-			&g[6], &g[7], &g[8], &g[9], &g[10], &g[11]);
-
-	if (ret != 12)
-		return -EINVAL;
-
-	for (i = 0; i < 12; i++)
-		tpo_td043->gamma[i] = g[i];
-
-	tpo_td043_write_gamma(tpo_td043->spi, tpo_td043->gamma);
-
-	return count;
-}
-
-static DEVICE_ATTR(vmirror, S_IRUGO | S_IWUSR,
-		tpo_td043_vmirror_show, tpo_td043_vmirror_store);
-static DEVICE_ATTR(mode, S_IRUGO | S_IWUSR,
-		tpo_td043_mode_show, tpo_td043_mode_store);
-static DEVICE_ATTR(gamma, S_IRUGO | S_IWUSR,
-		tpo_td043_gamma_show, tpo_td043_gamma_store);
-
-static struct attribute *tpo_td043_attrs[] = {
-	&dev_attr_vmirror.attr,
-	&dev_attr_mode.attr,
-	&dev_attr_gamma.attr,
-	NULL,
-};
-
-static struct attribute_group tpo_td043_attr_group = {
-	.attrs = tpo_td043_attrs,
-};
-
-static const struct omap_video_timings tpo_td043_timings = {
-	.x_res		= 800,
-	.y_res		= 480,
-
-	.pixel_clock	= 36000,
-
-	.hsw		= 1,
-	.hfp		= 68,
-	.hbp		= 214,
-
-	.vsw		= 1,
-	.vfp		= 39,
-	.vbp		= 34,
-};
-
-static int tpo_td043_power_on(struct omap_dss_device *dssdev)
-{
-	struct tpo_td043_device *tpo_td043 = dev_get_drvdata(&dssdev->dev);
-	int nreset_gpio = dssdev->reset_gpio;
-	int r;
-
-	if (dssdev->state == OMAP_DSS_DISPLAY_ACTIVE)
-		return 0;
-
-	r = omapdss_dpi_display_enable(dssdev);
-	if (r)
-		goto err0;
-
-	if (dssdev->platform_enable) {
-		r = dssdev->platform_enable(dssdev);
-		if (r)
-			goto err1;
-	}
-
-	regulator_enable(tpo_td043->vcc_reg);
-
-	/* wait for power up */
-	msleep(160);
-
-	if (gpio_is_valid(nreset_gpio))
-		gpio_set_value(nreset_gpio, 1);
-
-	tpo_td043_write(tpo_td043->spi, 2,
-			TPO_R02_MODE(tpo_td043->mode) | TPO_R02_NCLK_RISING);
-	tpo_td043_write(tpo_td043->spi, 3, TPO_R03_VAL_NORMAL);
-	tpo_td043_write(tpo_td043->spi, 0x20, 0xf0);
-	tpo_td043_write(tpo_td043->spi, 0x21, 0xf0);
-	tpo_td043_write_mirror(tpo_td043->spi, tpo_td043->hmirror,
-			tpo_td043->vmirror);
-	tpo_td043_write_gamma(tpo_td043->spi, tpo_td043->gamma);
-
-	return 0;
-err1:
-	omapdss_dpi_display_disable(dssdev);
-err0:
-	return r;
-}
-
-static void tpo_td043_power_off(struct omap_dss_device *dssdev)
-{
-	struct tpo_td043_device *tpo_td043 = dev_get_drvdata(&dssdev->dev);
-	int nreset_gpio = dssdev->reset_gpio;
-
-	if (dssdev->state != OMAP_DSS_DISPLAY_ACTIVE)
-		return;
-
-	tpo_td043_write(tpo_td043->spi, 3,
-			TPO_R03_VAL_STANDBY | TPO_R03_EN_PWM);
-
-	if (gpio_is_valid(nreset_gpio))
-		gpio_set_value(nreset_gpio, 0);
-
-	/* wait for at least 2 vsyncs before cutting off power */
-	msleep(50);
-
-	tpo_td043_write(tpo_td043->spi, 3, TPO_R03_VAL_STANDBY);
-
-	regulator_disable(tpo_td043->vcc_reg);
-
-	if (dssdev->platform_disable)
-		dssdev->platform_disable(dssdev);
-
-	omapdss_dpi_display_disable(dssdev);
-}
-
-static int tpo_td043_enable(struct omap_dss_device *dssdev)
-{
-	int ret;
-
-	dev_dbg(&dssdev->dev, "enable\n");
-
-	ret = tpo_td043_power_on(dssdev);
-	if (ret)
-		return ret;
-
-	dssdev->state = OMAP_DSS_DISPLAY_ACTIVE;
-
-	return 0;
-}
-
-static void tpo_td043_disable(struct omap_dss_device *dssdev)
-{
-	dev_dbg(&dssdev->dev, "disable\n");
-
-	tpo_td043_power_off(dssdev);
-
-	dssdev->state = OMAP_DSS_DISPLAY_DISABLED;
-}
-
-static int tpo_td043_suspend(struct omap_dss_device *dssdev)
-{
-	tpo_td043_power_off(dssdev);
-	dssdev->state = OMAP_DSS_DISPLAY_SUSPENDED;
-	return 0;
-}
-
-static int tpo_td043_resume(struct omap_dss_device *dssdev)
-{
-	int r = 0;
-
-	r = tpo_td043_power_on(dssdev);
-	if (r)
-		return r;
-
-	dssdev->state = OMAP_DSS_DISPLAY_ACTIVE;
-
-	return 0;
-}
-
-static int tpo_td043_probe(struct omap_dss_device *dssdev)
-{
-	struct tpo_td043_device *tpo_td043 = dev_get_drvdata(&dssdev->dev);
-	int nreset_gpio = dssdev->reset_gpio;
-	int ret = 0;
-
-	dev_dbg(&dssdev->dev, "probe\n");
-
-	if (tpo_td043 == NULL) {
-		dev_err(&dssdev->dev, "missing tpo_td043_device\n");
-		return -ENODEV;
-	}
-
-	dssdev->panel.config = OMAP_DSS_LCD_TFT | OMAP_DSS_LCD_IHS |
-				OMAP_DSS_LCD_IVS | OMAP_DSS_LCD_IPC;
-	dssdev->panel.timings = tpo_td043_timings;
-	dssdev->ctrl.pixel_size = 24;
-
-	tpo_td043->mode = TPO_R02_MODE_800x480;
-	memcpy(tpo_td043->gamma, tpo_td043_def_gamma, sizeof(tpo_td043->gamma));
-
-	tpo_td043->vcc_reg = regulator_get(&dssdev->dev, "vcc");
-	if (IS_ERR(tpo_td043->vcc_reg)) {
-		dev_err(&dssdev->dev, "failed to get LCD VCC regulator\n");
-		ret = PTR_ERR(tpo_td043->vcc_reg);
-		goto fail_regulator;
-	}
-
-	if (gpio_is_valid(nreset_gpio)) {
-		ret = gpio_request(nreset_gpio, "lcd reset");
-		if (ret < 0) {
-			dev_err(&dssdev->dev, "couldn't request reset GPIO\n");
-			goto fail_gpio_req;
-		}
-
-		ret = gpio_direction_output(nreset_gpio, 0);
-		if (ret < 0) {
-			dev_err(&dssdev->dev, "couldn't set GPIO direction\n");
-			goto fail_gpio_direction;
-		}
-	}
-
-	ret = sysfs_create_group(&dssdev->dev.kobj, &tpo_td043_attr_group);
-	if (ret)
-		dev_warn(&dssdev->dev, "failed to create sysfs files\n");
-
-	return 0;
-
-fail_gpio_direction:
-	gpio_free(nreset_gpio);
-fail_gpio_req:
-	regulator_put(tpo_td043->vcc_reg);
-fail_regulator:
-	kfree(tpo_td043);
-	return ret;
-}
-
-static void tpo_td043_remove(struct omap_dss_device *dssdev)
-{
-	struct tpo_td043_device *tpo_td043 = dev_get_drvdata(&dssdev->dev);
-	int nreset_gpio = dssdev->reset_gpio;
-
-	dev_dbg(&dssdev->dev, "remove\n");
-
-	sysfs_remove_group(&dssdev->dev.kobj, &tpo_td043_attr_group);
-	regulator_put(tpo_td043->vcc_reg);
-	if (gpio_is_valid(nreset_gpio))
-		gpio_free(nreset_gpio);
-}
-
-static struct omap_dss_driver tpo_td043_driver = {
-	.probe		= tpo_td043_probe,
-	.remove		= tpo_td043_remove,
-
-	.enable		= tpo_td043_enable,
-	.disable	= tpo_td043_disable,
-	.suspend	= tpo_td043_suspend,
-	.resume		= tpo_td043_resume,
-	.set_mirror	= tpo_td043_set_hmirror,
-	.get_mirror	= tpo_td043_get_hmirror,
-
-	.driver         = {
-		.name	= "tpo_td043mtea1_panel",
-		.owner  = THIS_MODULE,
-	},
-};
-
-static int tpo_td043_spi_probe(struct spi_device *spi)
-{
-	struct omap_dss_device *dssdev = spi->dev.platform_data;
-	struct tpo_td043_device *tpo_td043;
-	int ret;
-
-	if (dssdev == NULL) {
-		dev_err(&spi->dev, "missing dssdev\n");
-		return -ENODEV;
-	}
-
-	spi->bits_per_word = 16;
-	spi->mode = SPI_MODE_0;
-
-	ret = spi_setup(spi);
-	if (ret < 0) {
-		dev_err(&spi->dev, "spi_setup failed: %d\n", ret);
-		return ret;
-	}
-
-	tpo_td043 = kzalloc(sizeof(*tpo_td043), GFP_KERNEL);
-	if (tpo_td043 == NULL)
-		return -ENOMEM;
-
-	tpo_td043->spi = spi;
-	dev_set_drvdata(&spi->dev, tpo_td043);
-	dev_set_drvdata(&dssdev->dev, tpo_td043);
-
-	omap_dss_register_driver(&tpo_td043_driver);
-
-	return 0;
-}
-
-static int __devexit tpo_td043_spi_remove(struct spi_device *spi)
-{
-	struct tpo_td043_device *tpo_td043 = dev_get_drvdata(&spi->dev);
-
-	omap_dss_unregister_driver(&tpo_td043_driver);
-	kfree(tpo_td043);
-
-	return 0;
-}
-
-static struct spi_driver tpo_td043_spi_driver = {
-	.driver = {
-		.name	= "tpo_td043mtea1_panel_spi",
-		.bus	= &spi_bus_type,
-		.owner	= THIS_MODULE,
-	},
-	.probe	= tpo_td043_spi_probe,
-	.remove	= __devexit_p(tpo_td043_spi_remove),
-};
-
-static int __init tpo_td043_init(void)
-{
-	return spi_register_driver(&tpo_td043_spi_driver);
-}
-
-static void __exit tpo_td043_exit(void)
-{
-	spi_unregister_driver(&tpo_td043_spi_driver);
-}
-
-module_init(tpo_td043_init);
-module_exit(tpo_td043_exit);
-
-MODULE_AUTHOR("Gra??vydas Ignotas <notasas@gmail.com>");
-MODULE_DESCRIPTION("TPO TD043MTEA1 LCD Driver");
-MODULE_LICENSE("GPL");
-- 
1.7.1

^ permalink raw reply related	[flat|nested] 18+ messages in thread

* [PATCH 3/3] OMAP: use dummy panel driver in board files
  2010-11-02 16:13 ` Bryan Wu
@ 2010-11-02 16:13   ` Bryan Wu
  -1 siblings, 0 replies; 18+ messages in thread
From: Bryan Wu @ 2010-11-02 16:13 UTC (permalink / raw)
  To: tomi.valkeinen, linux-omap, linux-arm-kernel

Introduce some fields in struct panel, which will be used to match the right
panel configurations in dummy driver.

Still keep sharp_ls_panel, since the sharp_ls_panel driver contains blacklight
control driver code which will be moved out later. Then we can use dummy driver
for sharp_ls_panel.

Signed-off-by: Bryan Wu <bryan.wu@canonical.com>
---
 arch/arm/mach-omap2/board-3430sdp.c       |    3 ++-
 arch/arm/mach-omap2/board-am3517evm.c     |    6 ++++--
 arch/arm/mach-omap2/board-cm-t35.c        |    6 ++++--
 arch/arm/mach-omap2/board-devkit8000.c    |    6 ++++--
 arch/arm/mach-omap2/board-igep0020.c      |    3 ++-
 arch/arm/mach-omap2/board-omap3beagle.c   |    3 ++-
 arch/arm/mach-omap2/board-omap3evm.c      |    3 ++-
 arch/arm/mach-omap2/board-omap3stalker.c  |    6 ++++--
 arch/arm/plat-omap/include/plat/display.h |   28 +++++++++++++++++++---------
 9 files changed, 43 insertions(+), 21 deletions(-)

diff --git a/arch/arm/mach-omap2/board-3430sdp.c b/arch/arm/mach-omap2/board-3430sdp.c
index 4e3742c..0e4598d 100644
--- a/arch/arm/mach-omap2/board-3430sdp.c
+++ b/arch/arm/mach-omap2/board-3430sdp.c
@@ -272,7 +272,8 @@ static struct omap_dss_device sdp3430_lcd_device = {
 
 static struct omap_dss_device sdp3430_dvi_device = {
 	.name			= "dvi",
-	.driver_name		= "generic_panel",
+	.driver_name		= "dummy_panel",
+	.panel.name		= "generic",
 	.type			= OMAP_DISPLAY_TYPE_DPI,
 	.phy.dpi.data_lines	= 24,
 	.platform_enable	= sdp3430_panel_enable_dvi,
diff --git a/arch/arm/mach-omap2/board-am3517evm.c b/arch/arm/mach-omap2/board-am3517evm.c
index 0739950..88c9b76 100644
--- a/arch/arm/mach-omap2/board-am3517evm.c
+++ b/arch/arm/mach-omap2/board-am3517evm.c
@@ -306,7 +306,8 @@ static void am3517_evm_panel_disable_lcd(struct omap_dss_device *dssdev)
 static struct omap_dss_device am3517_evm_lcd_device = {
 	.type			= OMAP_DISPLAY_TYPE_DPI,
 	.name			= "lcd",
-	.driver_name		= "sharp_lq_panel",
+	.driver_name		= "dummy_panel",
+	.panel.name		= "sharp_lq",
 	.phy.dpi.data_lines 	= 16,
 	.platform_enable	= am3517_evm_panel_enable_lcd,
 	.platform_disable	= am3517_evm_panel_disable_lcd,
@@ -349,7 +350,8 @@ static void am3517_evm_panel_disable_dvi(struct omap_dss_device *dssdev)
 static struct omap_dss_device am3517_evm_dvi_device = {
 	.type			= OMAP_DISPLAY_TYPE_DPI,
 	.name			= "dvi",
-	.driver_name		= "generic_panel",
+	.driver_name		= "dummy_panel",
+	.panel.name		= "generic",
 	.phy.dpi.data_lines	= 24,
 	.platform_enable	= am3517_evm_panel_enable_dvi,
 	.platform_disable	= am3517_evm_panel_disable_dvi,
diff --git a/arch/arm/mach-omap2/board-cm-t35.c b/arch/arm/mach-omap2/board-cm-t35.c
index 63f764e..a0c555d 100644
--- a/arch/arm/mach-omap2/board-cm-t35.c
+++ b/arch/arm/mach-omap2/board-cm-t35.c
@@ -353,7 +353,8 @@ static void cm_t35_panel_disable_tv(struct omap_dss_device *dssdev)
 
 static struct omap_dss_device cm_t35_lcd_device = {
 	.name			= "lcd",
-	.driver_name		= "toppoly_tdo35s_panel",
+	.driver_name		= "dummy_panel",
+	.panel.name		= "toppoly_tdo35s",
 	.type			= OMAP_DISPLAY_TYPE_DPI,
 	.phy.dpi.data_lines	= 18,
 	.platform_enable	= cm_t35_panel_enable_lcd,
@@ -362,7 +363,8 @@ static struct omap_dss_device cm_t35_lcd_device = {
 
 static struct omap_dss_device cm_t35_dvi_device = {
 	.name			= "dvi",
-	.driver_name		= "generic_panel",
+	.driver_name		= "dummy_panel",
+	.panel.name		= "generic",
 	.type			= OMAP_DISPLAY_TYPE_DPI,
 	.phy.dpi.data_lines	= 24,
 	.platform_enable	= cm_t35_panel_enable_dvi,
diff --git a/arch/arm/mach-omap2/board-devkit8000.c b/arch/arm/mach-omap2/board-devkit8000.c
index 067f437..ce5be9c 100644
--- a/arch/arm/mach-omap2/board-devkit8000.c
+++ b/arch/arm/mach-omap2/board-devkit8000.c
@@ -151,7 +151,8 @@ static struct regulator_consumer_supply devkit8000_vio_supply =
 
 static struct omap_dss_device devkit8000_lcd_device = {
 	.name                   = "lcd",
-	.driver_name            = "generic_panel",
+	.driver_name		= "dummy_panel",
+	.panel.name		= "generic",
 	.type                   = OMAP_DISPLAY_TYPE_DPI,
 	.phy.dpi.data_lines     = 24,
 	.reset_gpio             = -EINVAL, /* will be replaced */
@@ -160,7 +161,8 @@ static struct omap_dss_device devkit8000_lcd_device = {
 };
 static struct omap_dss_device devkit8000_dvi_device = {
 	.name                   = "dvi",
-	.driver_name            = "generic_panel",
+	.driver_name		= "dummy_panel",
+	.panel.name		= "generic",
 	.type                   = OMAP_DISPLAY_TYPE_DPI,
 	.phy.dpi.data_lines     = 24,
 	.reset_gpio             = -EINVAL, /* will be replaced */
diff --git a/arch/arm/mach-omap2/board-igep0020.c b/arch/arm/mach-omap2/board-igep0020.c
index 5e035a5..f9a3d03 100644
--- a/arch/arm/mach-omap2/board-igep0020.c
+++ b/arch/arm/mach-omap2/board-igep0020.c
@@ -436,7 +436,8 @@ static void igep2_disable_dvi(struct omap_dss_device *dssdev)
 static struct omap_dss_device igep2_dvi_device = {
 	.type			= OMAP_DISPLAY_TYPE_DPI,
 	.name			= "dvi",
-	.driver_name		= "generic_panel",
+	.driver_name		= "dummy_panel",
+	.panel.name		= "generic",
 	.phy.dpi.data_lines	= 24,
 	.platform_enable	= igep2_enable_dvi,
 	.platform_disable	= igep2_disable_dvi,
diff --git a/arch/arm/mach-omap2/board-omap3beagle.c b/arch/arm/mach-omap2/board-omap3beagle.c
index 14f4224..11592bf 100644
--- a/arch/arm/mach-omap2/board-omap3beagle.c
+++ b/arch/arm/mach-omap2/board-omap3beagle.c
@@ -197,7 +197,8 @@ static void beagle_disable_dvi(struct omap_dss_device *dssdev)
 static struct omap_dss_device beagle_dvi_device = {
 	.type = OMAP_DISPLAY_TYPE_DPI,
 	.name = "dvi",
-	.driver_name = "generic_panel",
+	.driver_name = "dummy_panel",
+	.panel.name = "generic",
 	.phy.dpi.data_lines = 24,
 	.reset_gpio = 170,
 	.platform_enable = beagle_enable_dvi,
diff --git a/arch/arm/mach-omap2/board-omap3evm.c b/arch/arm/mach-omap2/board-omap3evm.c
index b04365c..b7ff779 100644
--- a/arch/arm/mach-omap2/board-omap3evm.c
+++ b/arch/arm/mach-omap2/board-omap3evm.c
@@ -303,7 +303,8 @@ static void omap3_evm_disable_dvi(struct omap_dss_device *dssdev)
 
 static struct omap_dss_device omap3_evm_dvi_device = {
 	.name			= "dvi",
-	.driver_name		= "generic_panel",
+	.driver_name		= "dummy_panel",
+	.panel.name		= "generic",
 	.type			= OMAP_DISPLAY_TYPE_DPI,
 	.phy.dpi.data_lines	= 24,
 	.platform_enable	= omap3_evm_enable_dvi,
diff --git a/arch/arm/mach-omap2/board-omap3stalker.c b/arch/arm/mach-omap2/board-omap3stalker.c
index f252721..19a8fd8 100644
--- a/arch/arm/mach-omap2/board-omap3stalker.c
+++ b/arch/arm/mach-omap2/board-omap3stalker.c
@@ -162,7 +162,8 @@ static void omap3_stalker_disable_lcd(struct omap_dss_device *dssdev)
 
 static struct omap_dss_device omap3_stalker_lcd_device = {
 	.name			= "lcd",
-	.driver_name		= "generic_panel",
+	.driver_name		= "dummy_panel",
+	.panel.name		= "generic",
 	.phy.dpi.data_lines	= 24,
 	.type			= OMAP_DISPLAY_TYPE_DPI,
 	.platform_enable	= omap3_stalker_enable_lcd,
@@ -210,7 +211,8 @@ static void omap3_stalker_disable_dvi(struct omap_dss_device *dssdev)
 
 static struct omap_dss_device omap3_stalker_dvi_device = {
 	.name			= "dvi",
-	.driver_name		= "generic_panel",
+	.driver_name		= "dummy_panel",
+	.panel.name		= "generic",
 	.type			= OMAP_DISPLAY_TYPE_DPI,
 	.phy.dpi.data_lines	= 24,
 	.platform_enable	= omap3_stalker_enable_dvi,
diff --git a/arch/arm/plat-omap/include/plat/display.h b/arch/arm/plat-omap/include/plat/display.h
index c915a66..a49c458 100644
--- a/arch/arm/plat-omap/include/plat/display.h
+++ b/arch/arm/plat-omap/include/plat/display.h
@@ -346,6 +346,24 @@ struct omap_overlay_manager {
 	int (*disable)(struct omap_overlay_manager *mgr);
 };
 
+struct omap_display_panel {
+	struct omap_video_timings timings;
+
+	int acbi;	/* ac-bias pin transitions per interrupt */
+	/* Unit: line clocks */
+	int acb;	/* ac-bias pin frequency */
+
+	enum omap_panel_config config;
+
+	int power_on_delay;
+	int power_off_delay;
+	/*
+	 * Used to match device to panel configuration
+	 * when use dummy panel driver
+	 */
+	const char *name;
+};
+
 struct omap_dss_device {
 	struct device dev;
 
@@ -395,15 +413,7 @@ struct omap_dss_device {
 		} venc;
 	} phy;
 
-	struct {
-		struct omap_video_timings timings;
-
-		int acbi;	/* ac-bias pin transitions per interrupt */
-		/* Unit: line clocks */
-		int acb;	/* ac-bias pin frequency */
-
-		enum omap_panel_config config;
-	} panel;
+	struct omap_display_panel panel;
 
 	struct {
 		u8 pixel_size;
-- 
1.7.1

^ permalink raw reply related	[flat|nested] 18+ messages in thread

* [PATCH 3/3] OMAP: use dummy panel driver in board files
@ 2010-11-02 16:13   ` Bryan Wu
  0 siblings, 0 replies; 18+ messages in thread
From: Bryan Wu @ 2010-11-02 16:13 UTC (permalink / raw)
  To: linux-arm-kernel

Introduce some fields in struct panel, which will be used to match the right
panel configurations in dummy driver.

Still keep sharp_ls_panel, since the sharp_ls_panel driver contains blacklight
control driver code which will be moved out later. Then we can use dummy driver
for sharp_ls_panel.

Signed-off-by: Bryan Wu <bryan.wu@canonical.com>
---
 arch/arm/mach-omap2/board-3430sdp.c       |    3 ++-
 arch/arm/mach-omap2/board-am3517evm.c     |    6 ++++--
 arch/arm/mach-omap2/board-cm-t35.c        |    6 ++++--
 arch/arm/mach-omap2/board-devkit8000.c    |    6 ++++--
 arch/arm/mach-omap2/board-igep0020.c      |    3 ++-
 arch/arm/mach-omap2/board-omap3beagle.c   |    3 ++-
 arch/arm/mach-omap2/board-omap3evm.c      |    3 ++-
 arch/arm/mach-omap2/board-omap3stalker.c  |    6 ++++--
 arch/arm/plat-omap/include/plat/display.h |   28 +++++++++++++++++++---------
 9 files changed, 43 insertions(+), 21 deletions(-)

diff --git a/arch/arm/mach-omap2/board-3430sdp.c b/arch/arm/mach-omap2/board-3430sdp.c
index 4e3742c..0e4598d 100644
--- a/arch/arm/mach-omap2/board-3430sdp.c
+++ b/arch/arm/mach-omap2/board-3430sdp.c
@@ -272,7 +272,8 @@ static struct omap_dss_device sdp3430_lcd_device = {
 
 static struct omap_dss_device sdp3430_dvi_device = {
 	.name			= "dvi",
-	.driver_name		= "generic_panel",
+	.driver_name		= "dummy_panel",
+	.panel.name		= "generic",
 	.type			= OMAP_DISPLAY_TYPE_DPI,
 	.phy.dpi.data_lines	= 24,
 	.platform_enable	= sdp3430_panel_enable_dvi,
diff --git a/arch/arm/mach-omap2/board-am3517evm.c b/arch/arm/mach-omap2/board-am3517evm.c
index 0739950..88c9b76 100644
--- a/arch/arm/mach-omap2/board-am3517evm.c
+++ b/arch/arm/mach-omap2/board-am3517evm.c
@@ -306,7 +306,8 @@ static void am3517_evm_panel_disable_lcd(struct omap_dss_device *dssdev)
 static struct omap_dss_device am3517_evm_lcd_device = {
 	.type			= OMAP_DISPLAY_TYPE_DPI,
 	.name			= "lcd",
-	.driver_name		= "sharp_lq_panel",
+	.driver_name		= "dummy_panel",
+	.panel.name		= "sharp_lq",
 	.phy.dpi.data_lines 	= 16,
 	.platform_enable	= am3517_evm_panel_enable_lcd,
 	.platform_disable	= am3517_evm_panel_disable_lcd,
@@ -349,7 +350,8 @@ static void am3517_evm_panel_disable_dvi(struct omap_dss_device *dssdev)
 static struct omap_dss_device am3517_evm_dvi_device = {
 	.type			= OMAP_DISPLAY_TYPE_DPI,
 	.name			= "dvi",
-	.driver_name		= "generic_panel",
+	.driver_name		= "dummy_panel",
+	.panel.name		= "generic",
 	.phy.dpi.data_lines	= 24,
 	.platform_enable	= am3517_evm_panel_enable_dvi,
 	.platform_disable	= am3517_evm_panel_disable_dvi,
diff --git a/arch/arm/mach-omap2/board-cm-t35.c b/arch/arm/mach-omap2/board-cm-t35.c
index 63f764e..a0c555d 100644
--- a/arch/arm/mach-omap2/board-cm-t35.c
+++ b/arch/arm/mach-omap2/board-cm-t35.c
@@ -353,7 +353,8 @@ static void cm_t35_panel_disable_tv(struct omap_dss_device *dssdev)
 
 static struct omap_dss_device cm_t35_lcd_device = {
 	.name			= "lcd",
-	.driver_name		= "toppoly_tdo35s_panel",
+	.driver_name		= "dummy_panel",
+	.panel.name		= "toppoly_tdo35s",
 	.type			= OMAP_DISPLAY_TYPE_DPI,
 	.phy.dpi.data_lines	= 18,
 	.platform_enable	= cm_t35_panel_enable_lcd,
@@ -362,7 +363,8 @@ static struct omap_dss_device cm_t35_lcd_device = {
 
 static struct omap_dss_device cm_t35_dvi_device = {
 	.name			= "dvi",
-	.driver_name		= "generic_panel",
+	.driver_name		= "dummy_panel",
+	.panel.name		= "generic",
 	.type			= OMAP_DISPLAY_TYPE_DPI,
 	.phy.dpi.data_lines	= 24,
 	.platform_enable	= cm_t35_panel_enable_dvi,
diff --git a/arch/arm/mach-omap2/board-devkit8000.c b/arch/arm/mach-omap2/board-devkit8000.c
index 067f437..ce5be9c 100644
--- a/arch/arm/mach-omap2/board-devkit8000.c
+++ b/arch/arm/mach-omap2/board-devkit8000.c
@@ -151,7 +151,8 @@ static struct regulator_consumer_supply devkit8000_vio_supply =
 
 static struct omap_dss_device devkit8000_lcd_device = {
 	.name                   = "lcd",
-	.driver_name            = "generic_panel",
+	.driver_name		= "dummy_panel",
+	.panel.name		= "generic",
 	.type                   = OMAP_DISPLAY_TYPE_DPI,
 	.phy.dpi.data_lines     = 24,
 	.reset_gpio             = -EINVAL, /* will be replaced */
@@ -160,7 +161,8 @@ static struct omap_dss_device devkit8000_lcd_device = {
 };
 static struct omap_dss_device devkit8000_dvi_device = {
 	.name                   = "dvi",
-	.driver_name            = "generic_panel",
+	.driver_name		= "dummy_panel",
+	.panel.name		= "generic",
 	.type                   = OMAP_DISPLAY_TYPE_DPI,
 	.phy.dpi.data_lines     = 24,
 	.reset_gpio             = -EINVAL, /* will be replaced */
diff --git a/arch/arm/mach-omap2/board-igep0020.c b/arch/arm/mach-omap2/board-igep0020.c
index 5e035a5..f9a3d03 100644
--- a/arch/arm/mach-omap2/board-igep0020.c
+++ b/arch/arm/mach-omap2/board-igep0020.c
@@ -436,7 +436,8 @@ static void igep2_disable_dvi(struct omap_dss_device *dssdev)
 static struct omap_dss_device igep2_dvi_device = {
 	.type			= OMAP_DISPLAY_TYPE_DPI,
 	.name			= "dvi",
-	.driver_name		= "generic_panel",
+	.driver_name		= "dummy_panel",
+	.panel.name		= "generic",
 	.phy.dpi.data_lines	= 24,
 	.platform_enable	= igep2_enable_dvi,
 	.platform_disable	= igep2_disable_dvi,
diff --git a/arch/arm/mach-omap2/board-omap3beagle.c b/arch/arm/mach-omap2/board-omap3beagle.c
index 14f4224..11592bf 100644
--- a/arch/arm/mach-omap2/board-omap3beagle.c
+++ b/arch/arm/mach-omap2/board-omap3beagle.c
@@ -197,7 +197,8 @@ static void beagle_disable_dvi(struct omap_dss_device *dssdev)
 static struct omap_dss_device beagle_dvi_device = {
 	.type = OMAP_DISPLAY_TYPE_DPI,
 	.name = "dvi",
-	.driver_name = "generic_panel",
+	.driver_name = "dummy_panel",
+	.panel.name = "generic",
 	.phy.dpi.data_lines = 24,
 	.reset_gpio = 170,
 	.platform_enable = beagle_enable_dvi,
diff --git a/arch/arm/mach-omap2/board-omap3evm.c b/arch/arm/mach-omap2/board-omap3evm.c
index b04365c..b7ff779 100644
--- a/arch/arm/mach-omap2/board-omap3evm.c
+++ b/arch/arm/mach-omap2/board-omap3evm.c
@@ -303,7 +303,8 @@ static void omap3_evm_disable_dvi(struct omap_dss_device *dssdev)
 
 static struct omap_dss_device omap3_evm_dvi_device = {
 	.name			= "dvi",
-	.driver_name		= "generic_panel",
+	.driver_name		= "dummy_panel",
+	.panel.name		= "generic",
 	.type			= OMAP_DISPLAY_TYPE_DPI,
 	.phy.dpi.data_lines	= 24,
 	.platform_enable	= omap3_evm_enable_dvi,
diff --git a/arch/arm/mach-omap2/board-omap3stalker.c b/arch/arm/mach-omap2/board-omap3stalker.c
index f252721..19a8fd8 100644
--- a/arch/arm/mach-omap2/board-omap3stalker.c
+++ b/arch/arm/mach-omap2/board-omap3stalker.c
@@ -162,7 +162,8 @@ static void omap3_stalker_disable_lcd(struct omap_dss_device *dssdev)
 
 static struct omap_dss_device omap3_stalker_lcd_device = {
 	.name			= "lcd",
-	.driver_name		= "generic_panel",
+	.driver_name		= "dummy_panel",
+	.panel.name		= "generic",
 	.phy.dpi.data_lines	= 24,
 	.type			= OMAP_DISPLAY_TYPE_DPI,
 	.platform_enable	= omap3_stalker_enable_lcd,
@@ -210,7 +211,8 @@ static void omap3_stalker_disable_dvi(struct omap_dss_device *dssdev)
 
 static struct omap_dss_device omap3_stalker_dvi_device = {
 	.name			= "dvi",
-	.driver_name		= "generic_panel",
+	.driver_name		= "dummy_panel",
+	.panel.name		= "generic",
 	.type			= OMAP_DISPLAY_TYPE_DPI,
 	.phy.dpi.data_lines	= 24,
 	.platform_enable	= omap3_stalker_enable_dvi,
diff --git a/arch/arm/plat-omap/include/plat/display.h b/arch/arm/plat-omap/include/plat/display.h
index c915a66..a49c458 100644
--- a/arch/arm/plat-omap/include/plat/display.h
+++ b/arch/arm/plat-omap/include/plat/display.h
@@ -346,6 +346,24 @@ struct omap_overlay_manager {
 	int (*disable)(struct omap_overlay_manager *mgr);
 };
 
+struct omap_display_panel {
+	struct omap_video_timings timings;
+
+	int acbi;	/* ac-bias pin transitions per interrupt */
+	/* Unit: line clocks */
+	int acb;	/* ac-bias pin frequency */
+
+	enum omap_panel_config config;
+
+	int power_on_delay;
+	int power_off_delay;
+	/*
+	 * Used to match device to panel configuration
+	 * when use dummy panel driver
+	 */
+	const char *name;
+};
+
 struct omap_dss_device {
 	struct device dev;
 
@@ -395,15 +413,7 @@ struct omap_dss_device {
 		} venc;
 	} phy;
 
-	struct {
-		struct omap_video_timings timings;
-
-		int acbi;	/* ac-bias pin transitions per interrupt */
-		/* Unit: line clocks */
-		int acb;	/* ac-bias pin frequency */
-
-		enum omap_panel_config config;
-	} panel;
+	struct omap_display_panel panel;
 
 	struct {
 		u8 pixel_size;
-- 
1.7.1

^ permalink raw reply related	[flat|nested] 18+ messages in thread

* Re: [PATCH 0/3] OMAP: DSS2: introduce dummy panel driver
  2010-11-02 16:13 ` Bryan Wu
@ 2010-11-02 16:53   ` Anand Gadiyar
  -1 siblings, 0 replies; 18+ messages in thread
From: Anand Gadiyar @ 2010-11-02 16:53 UTC (permalink / raw)
  To: Bryan Wu; +Cc: tomi.valkeinen, linux-omap, linux-arm-kernel

On 11/2/2010 9:43 PM, Bryan Wu wrote:
> There are 4 duplicated panel driver sin DSS2 display driver. They are similar
> and dummy panel driver can support all them with specific panel configuration.
> And new panel driver can be easily supported by adding panel configurations
> into dummy panel driver.
>
> This patchset introduces dummy panel driver, remove 3 panel drivers and enable
> dummy panel driver in board files. And it is based on 2.6.37-rc1.
>
> Building with omap2plus_defconfig is successful.
>
> Keep sharp_ls_panel, since it contains blacklight control code which will be
> moved out later.
>
> Bryan Wu (3):
>    OMAP: DSS2: Add dummy panel display driver
>    OMAP: DSS2: remove dummy panel driver duplicated panel drivers
>    OMAP: use dummy panel driver in board files
>
>   arch/arm/mach-omap2/board-3430sdp.c                |    3 +-
>   arch/arm/mach-omap2/board-am3517evm.c              |    6 +-
>   arch/arm/mach-omap2/board-cm-t35.c                 |    6 +-
>   arch/arm/mach-omap2/board-devkit8000.c             |    6 +-
>   arch/arm/mach-omap2/board-igep0020.c               |    3 +-
>   arch/arm/mach-omap2/board-omap3beagle.c            |    3 +-
>   arch/arm/mach-omap2/board-omap3evm.c               |    3 +-
>   arch/arm/mach-omap2/board-omap3stalker.c           |    6 +-
>   arch/arm/plat-omap/include/plat/display.h          |   28 +-
>   drivers/video/omap2/displays/Kconfig               |   22 +-
>   drivers/video/omap2/displays/Makefile              |    4 +-
>   drivers/video/omap2/displays/panel-dummy.c         |  195 +++++++
>   drivers/video/omap2/displays/panel-dummy.h         |  119 +++++
>   drivers/video/omap2/displays/panel-generic.c       |  174 -------
>   .../video/omap2/displays/panel-sharp-lq043t1dg01.c |  165 ------
>   .../video/omap2/displays/panel-tpo-td043mtea1.c    |  535 --------------------
>   16 files changed, 364 insertions(+), 914 deletions(-)
>   create mode 100644 drivers/video/omap2/displays/panel-dummy.c
>   create mode 100644 drivers/video/omap2/displays/panel-dummy.h
>   delete mode 100644 drivers/video/omap2/displays/panel-generic.c
>   delete mode 100644 drivers/video/omap2/displays/panel-sharp-lq043t1dg01.c
>   delete mode 100644 drivers/video/omap2/displays/panel-tpo-td043mtea1.c
>

Why can't panel-generic.c be reused instead of a new panel-dummy.c?

Sounds like what you're trying to do is to get a generic panel driver; 
so shouldn't it at least be called generic instead of dummy.

- Anand

^ permalink raw reply	[flat|nested] 18+ messages in thread

* [PATCH 0/3] OMAP: DSS2: introduce dummy panel driver
@ 2010-11-02 16:53   ` Anand Gadiyar
  0 siblings, 0 replies; 18+ messages in thread
From: Anand Gadiyar @ 2010-11-02 16:53 UTC (permalink / raw)
  To: linux-arm-kernel

On 11/2/2010 9:43 PM, Bryan Wu wrote:
> There are 4 duplicated panel driver sin DSS2 display driver. They are similar
> and dummy panel driver can support all them with specific panel configuration.
> And new panel driver can be easily supported by adding panel configurations
> into dummy panel driver.
>
> This patchset introduces dummy panel driver, remove 3 panel drivers and enable
> dummy panel driver in board files. And it is based on 2.6.37-rc1.
>
> Building with omap2plus_defconfig is successful.
>
> Keep sharp_ls_panel, since it contains blacklight control code which will be
> moved out later.
>
> Bryan Wu (3):
>    OMAP: DSS2: Add dummy panel display driver
>    OMAP: DSS2: remove dummy panel driver duplicated panel drivers
>    OMAP: use dummy panel driver in board files
>
>   arch/arm/mach-omap2/board-3430sdp.c                |    3 +-
>   arch/arm/mach-omap2/board-am3517evm.c              |    6 +-
>   arch/arm/mach-omap2/board-cm-t35.c                 |    6 +-
>   arch/arm/mach-omap2/board-devkit8000.c             |    6 +-
>   arch/arm/mach-omap2/board-igep0020.c               |    3 +-
>   arch/arm/mach-omap2/board-omap3beagle.c            |    3 +-
>   arch/arm/mach-omap2/board-omap3evm.c               |    3 +-
>   arch/arm/mach-omap2/board-omap3stalker.c           |    6 +-
>   arch/arm/plat-omap/include/plat/display.h          |   28 +-
>   drivers/video/omap2/displays/Kconfig               |   22 +-
>   drivers/video/omap2/displays/Makefile              |    4 +-
>   drivers/video/omap2/displays/panel-dummy.c         |  195 +++++++
>   drivers/video/omap2/displays/panel-dummy.h         |  119 +++++
>   drivers/video/omap2/displays/panel-generic.c       |  174 -------
>   .../video/omap2/displays/panel-sharp-lq043t1dg01.c |  165 ------
>   .../video/omap2/displays/panel-tpo-td043mtea1.c    |  535 --------------------
>   16 files changed, 364 insertions(+), 914 deletions(-)
>   create mode 100644 drivers/video/omap2/displays/panel-dummy.c
>   create mode 100644 drivers/video/omap2/displays/panel-dummy.h
>   delete mode 100644 drivers/video/omap2/displays/panel-generic.c
>   delete mode 100644 drivers/video/omap2/displays/panel-sharp-lq043t1dg01.c
>   delete mode 100644 drivers/video/omap2/displays/panel-tpo-td043mtea1.c
>

Why can't panel-generic.c be reused instead of a new panel-dummy.c?

Sounds like what you're trying to do is to get a generic panel driver; 
so shouldn't it at least be called generic instead of dummy.

- Anand

^ permalink raw reply	[flat|nested] 18+ messages in thread

* Re: [PATCH 2/3] OMAP: DSS2: remove dummy panel driver duplicated panel drivers
  2010-11-02 16:13   ` Bryan Wu
@ 2010-11-02 17:11     ` Grazvydas Ignotas
  -1 siblings, 0 replies; 18+ messages in thread
From: Grazvydas Ignotas @ 2010-11-02 17:11 UTC (permalink / raw)
  To: Bryan Wu; +Cc: tomi.valkeinen, linux-omap, linux-arm-kernel

On Tue, Nov 2, 2010 at 6:13 PM, Bryan Wu <bryan.wu@canonical.com> wrote:
> Still keep sharp_ls_panel driver, because it contains blacklight control driver.
>
> Signed-off-by: Bryan Wu <bryan.wu@canonical.com>
> ---
>  drivers/video/omap2/displays/Kconfig               |   18 -
>  drivers/video/omap2/displays/Makefile              |    3 -
>  drivers/video/omap2/displays/panel-generic.c       |  174 -------
>  .../video/omap2/displays/panel-sharp-lq043t1dg01.c |  165 ------
>  .../video/omap2/displays/panel-tpo-td043mtea1.c    |  535 --------------------
>  5 files changed, 0 insertions(+), 895 deletions(-)
>  delete mode 100644 drivers/video/omap2/displays/panel-generic.c
>  delete mode 100644 drivers/video/omap2/displays/panel-sharp-lq043t1dg01.c
>  delete mode 100644 drivers/video/omap2/displays/panel-tpo-td043mtea1.c

Hey don't remove panel-tpo-td043mtea1.c, it's not a dupe! You probably
confused it with panel-toppoly-tdo35s.c . This shows you did not build
test all panel drivers, just select them all in config (enable SPI so
they all appear).
--
To unsubscribe from this list: send the line "unsubscribe linux-omap" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

^ permalink raw reply	[flat|nested] 18+ messages in thread

* [PATCH 2/3] OMAP: DSS2: remove dummy panel driver duplicated panel drivers
@ 2010-11-02 17:11     ` Grazvydas Ignotas
  0 siblings, 0 replies; 18+ messages in thread
From: Grazvydas Ignotas @ 2010-11-02 17:11 UTC (permalink / raw)
  To: linux-arm-kernel

On Tue, Nov 2, 2010 at 6:13 PM, Bryan Wu <bryan.wu@canonical.com> wrote:
> Still keep sharp_ls_panel driver, because it contains blacklight control driver.
>
> Signed-off-by: Bryan Wu <bryan.wu@canonical.com>
> ---
> ?drivers/video/omap2/displays/Kconfig ? ? ? ? ? ? ? | ? 18 -
> ?drivers/video/omap2/displays/Makefile ? ? ? ? ? ? ?| ? ?3 -
> ?drivers/video/omap2/displays/panel-generic.c ? ? ? | ?174 -------
> ?.../video/omap2/displays/panel-sharp-lq043t1dg01.c | ?165 ------
> ?.../video/omap2/displays/panel-tpo-td043mtea1.c ? ?| ?535 --------------------
> ?5 files changed, 0 insertions(+), 895 deletions(-)
> ?delete mode 100644 drivers/video/omap2/displays/panel-generic.c
> ?delete mode 100644 drivers/video/omap2/displays/panel-sharp-lq043t1dg01.c
> ?delete mode 100644 drivers/video/omap2/displays/panel-tpo-td043mtea1.c

Hey don't remove panel-tpo-td043mtea1.c, it's not a dupe! You probably
confused it with panel-toppoly-tdo35s.c . This shows you did not build
test all panel drivers, just select them all in config (enable SPI so
they all appear).

^ permalink raw reply	[flat|nested] 18+ messages in thread

* Re: [PATCH 1/3] OMAP: DSS2: Add dummy panel display driver
  2010-11-02 16:13   ` Bryan Wu
@ 2010-11-02 17:21     ` Grazvydas Ignotas
  -1 siblings, 0 replies; 18+ messages in thread
From: Grazvydas Ignotas @ 2010-11-02 17:21 UTC (permalink / raw)
  To: Bryan Wu; +Cc: tomi.valkeinen, linux-omap, linux-arm-kernel

On Tue, Nov 2, 2010 at 6:13 PM, Bryan Wu <bryan.wu@canonical.com> wrote:
> Dummy panel driver includes the driver and 4 similar panel configurations. It
> will match the panel name which is passed from platform data and setup the
> right configurations.
>
> With dummy panel driver, we can remove those 4 duplicated panel display
> drivers. In the future, it is simple for us just add new panel configuration
> date in panel-dummy.h to support new display panel.
>
> Signed-off-by: Bryan Wu <bryan.wu@canonical.com>

<snip>

> diff --git a/drivers/video/omap2/displays/panel-dummy.h b/drivers/video/omap2/displays/panel-dummy.h
> new file mode 100644
> index 0000000..ac2b7a2
> --- /dev/null
> +++ b/drivers/video/omap2/displays/panel-dummy.h

There is no benefit of having this header, just add all data directly
in .c file.

<snip>

> +       /* Sharp LQ043T1DG01 */
> +       {
> +               {       .x_res          = 480,
> +                       .y_res          = 272,

missing newline after {
--
To unsubscribe from this list: send the line "unsubscribe linux-omap" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

^ permalink raw reply	[flat|nested] 18+ messages in thread

* [PATCH 1/3] OMAP: DSS2: Add dummy panel display driver
@ 2010-11-02 17:21     ` Grazvydas Ignotas
  0 siblings, 0 replies; 18+ messages in thread
From: Grazvydas Ignotas @ 2010-11-02 17:21 UTC (permalink / raw)
  To: linux-arm-kernel

On Tue, Nov 2, 2010 at 6:13 PM, Bryan Wu <bryan.wu@canonical.com> wrote:
> Dummy panel driver includes the driver and 4 similar panel configurations. It
> will match the panel name which is passed from platform data and setup the
> right configurations.
>
> With dummy panel driver, we can remove those 4 duplicated panel display
> drivers. In the future, it is simple for us just add new panel configuration
> date in panel-dummy.h to support new display panel.
>
> Signed-off-by: Bryan Wu <bryan.wu@canonical.com>

<snip>

> diff --git a/drivers/video/omap2/displays/panel-dummy.h b/drivers/video/omap2/displays/panel-dummy.h
> new file mode 100644
> index 0000000..ac2b7a2
> --- /dev/null
> +++ b/drivers/video/omap2/displays/panel-dummy.h

There is no benefit of having this header, just add all data directly
in .c file.

<snip>

> + ? ? ? /* Sharp LQ043T1DG01 */
> + ? ? ? {
> + ? ? ? ? ? ? ? { ? ? ? .x_res ? ? ? ? ?= 480,
> + ? ? ? ? ? ? ? ? ? ? ? .y_res ? ? ? ? ?= 272,

missing newline after {

^ permalink raw reply	[flat|nested] 18+ messages in thread

* Re: [PATCH 0/3] OMAP: DSS2: introduce dummy panel driver
  2010-11-02 16:53   ` Anand Gadiyar
@ 2010-11-02 19:12     ` Bryan Wu
  -1 siblings, 0 replies; 18+ messages in thread
From: Bryan Wu @ 2010-11-02 19:12 UTC (permalink / raw)
  To: Anand Gadiyar; +Cc: tomi.valkeinen, linux-omap, linux-arm-kernel

On Tue, Nov 2, 2010 at 12:53 PM, Anand Gadiyar <gadiyar@ti.com> wrote:
> On 11/2/2010 9:43 PM, Bryan Wu wrote:
>>
>> There are 4 duplicated panel driver sin DSS2 display driver. They are
>> similar
>> and dummy panel driver can support all them with specific panel
>> configuration.
>> And new panel driver can be easily supported by adding panel
>> configurations
>> into dummy panel driver.
>>
>> This patchset introduces dummy panel driver, remove 3 panel drivers and
>> enable
>> dummy panel driver in board files. And it is based on 2.6.37-rc1.
>>
>> Building with omap2plus_defconfig is successful.
>>
>> Keep sharp_ls_panel, since it contains blacklight control code which will
>> be
>> moved out later.
>>
>> Bryan Wu (3):
>>   OMAP: DSS2: Add dummy panel display driver
>>   OMAP: DSS2: remove dummy panel driver duplicated panel drivers
>>   OMAP: use dummy panel driver in board files
>>
>>  arch/arm/mach-omap2/board-3430sdp.c                |    3 +-
>>  arch/arm/mach-omap2/board-am3517evm.c              |    6 +-
>>  arch/arm/mach-omap2/board-cm-t35.c                 |    6 +-
>>  arch/arm/mach-omap2/board-devkit8000.c             |    6 +-
>>  arch/arm/mach-omap2/board-igep0020.c               |    3 +-
>>  arch/arm/mach-omap2/board-omap3beagle.c            |    3 +-
>>  arch/arm/mach-omap2/board-omap3evm.c               |    3 +-
>>  arch/arm/mach-omap2/board-omap3stalker.c           |    6 +-
>>  arch/arm/plat-omap/include/plat/display.h          |   28 +-
>>  drivers/video/omap2/displays/Kconfig               |   22 +-
>>  drivers/video/omap2/displays/Makefile              |    4 +-
>>  drivers/video/omap2/displays/panel-dummy.c         |  195 +++++++
>>  drivers/video/omap2/displays/panel-dummy.h         |  119 +++++
>>  drivers/video/omap2/displays/panel-generic.c       |  174 -------
>>  .../video/omap2/displays/panel-sharp-lq043t1dg01.c |  165 ------
>>  .../video/omap2/displays/panel-tpo-td043mtea1.c    |  535
>> --------------------
>>  16 files changed, 364 insertions(+), 914 deletions(-)
>>  create mode 100644 drivers/video/omap2/displays/panel-dummy.c
>>  create mode 100644 drivers/video/omap2/displays/panel-dummy.h
>>  delete mode 100644 drivers/video/omap2/displays/panel-generic.c
>>  delete mode 100644 drivers/video/omap2/displays/panel-sharp-lq043t1dg01.c
>>  delete mode 100644 drivers/video/omap2/displays/panel-tpo-td043mtea1.c
>>
>
> Why can't panel-generic.c be reused instead of a new panel-dummy.c?
>
> Sounds like what you're trying to do is to get a generic panel driver; so
> shouldn't it at least be called generic instead of dummy.
>

I assume panel-generic is for some DVI output connection, so I picked
up dummy. But yeah, I do prefer to panel-generic driver and maybe
change the name "generic-panel" to "dvi".

-Bryan
--
To unsubscribe from this list: send the line "unsubscribe linux-omap" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

^ permalink raw reply	[flat|nested] 18+ messages in thread

* [PATCH 0/3] OMAP: DSS2: introduce dummy panel driver
@ 2010-11-02 19:12     ` Bryan Wu
  0 siblings, 0 replies; 18+ messages in thread
From: Bryan Wu @ 2010-11-02 19:12 UTC (permalink / raw)
  To: linux-arm-kernel

On Tue, Nov 2, 2010 at 12:53 PM, Anand Gadiyar <gadiyar@ti.com> wrote:
> On 11/2/2010 9:43 PM, Bryan Wu wrote:
>>
>> There are 4 duplicated panel driver sin DSS2 display driver. They are
>> similar
>> and dummy panel driver can support all them with specific panel
>> configuration.
>> And new panel driver can be easily supported by adding panel
>> configurations
>> into dummy panel driver.
>>
>> This patchset introduces dummy panel driver, remove 3 panel drivers and
>> enable
>> dummy panel driver in board files. And it is based on 2.6.37-rc1.
>>
>> Building with omap2plus_defconfig is successful.
>>
>> Keep sharp_ls_panel, since it contains blacklight control code which will
>> be
>> moved out later.
>>
>> Bryan Wu (3):
>> ? OMAP: DSS2: Add dummy panel display driver
>> ? OMAP: DSS2: remove dummy panel driver duplicated panel drivers
>> ? OMAP: use dummy panel driver in board files
>>
>> ?arch/arm/mach-omap2/board-3430sdp.c ? ? ? ? ? ? ? ?| ? ?3 +-
>> ?arch/arm/mach-omap2/board-am3517evm.c ? ? ? ? ? ? ?| ? ?6 +-
>> ?arch/arm/mach-omap2/board-cm-t35.c ? ? ? ? ? ? ? ? | ? ?6 +-
>> ?arch/arm/mach-omap2/board-devkit8000.c ? ? ? ? ? ? | ? ?6 +-
>> ?arch/arm/mach-omap2/board-igep0020.c ? ? ? ? ? ? ? | ? ?3 +-
>> ?arch/arm/mach-omap2/board-omap3beagle.c ? ? ? ? ? ?| ? ?3 +-
>> ?arch/arm/mach-omap2/board-omap3evm.c ? ? ? ? ? ? ? | ? ?3 +-
>> ?arch/arm/mach-omap2/board-omap3stalker.c ? ? ? ? ? | ? ?6 +-
>> ?arch/arm/plat-omap/include/plat/display.h ? ? ? ? ?| ? 28 +-
>> ?drivers/video/omap2/displays/Kconfig ? ? ? ? ? ? ? | ? 22 +-
>> ?drivers/video/omap2/displays/Makefile ? ? ? ? ? ? ?| ? ?4 +-
>> ?drivers/video/omap2/displays/panel-dummy.c ? ? ? ? | ?195 +++++++
>> ?drivers/video/omap2/displays/panel-dummy.h ? ? ? ? | ?119 +++++
>> ?drivers/video/omap2/displays/panel-generic.c ? ? ? | ?174 -------
>> ?.../video/omap2/displays/panel-sharp-lq043t1dg01.c | ?165 ------
>> ?.../video/omap2/displays/panel-tpo-td043mtea1.c ? ?| ?535
>> --------------------
>> ?16 files changed, 364 insertions(+), 914 deletions(-)
>> ?create mode 100644 drivers/video/omap2/displays/panel-dummy.c
>> ?create mode 100644 drivers/video/omap2/displays/panel-dummy.h
>> ?delete mode 100644 drivers/video/omap2/displays/panel-generic.c
>> ?delete mode 100644 drivers/video/omap2/displays/panel-sharp-lq043t1dg01.c
>> ?delete mode 100644 drivers/video/omap2/displays/panel-tpo-td043mtea1.c
>>
>
> Why can't panel-generic.c be reused instead of a new panel-dummy.c?
>
> Sounds like what you're trying to do is to get a generic panel driver; so
> shouldn't it at least be called generic instead of dummy.
>

I assume panel-generic is for some DVI output connection, so I picked
up dummy. But yeah, I do prefer to panel-generic driver and maybe
change the name "generic-panel" to "dvi".

-Bryan

^ permalink raw reply	[flat|nested] 18+ messages in thread

* Re: [PATCH 1/3] OMAP: DSS2: Add dummy panel display driver
  2010-11-02 17:21     ` Grazvydas Ignotas
@ 2010-11-02 19:13       ` Bryan Wu
  -1 siblings, 0 replies; 18+ messages in thread
From: Bryan Wu @ 2010-11-02 19:13 UTC (permalink / raw)
  To: Grazvydas Ignotas; +Cc: tomi.valkeinen, linux-omap, linux-arm-kernel

On Tue, Nov 2, 2010 at 1:21 PM, Grazvydas Ignotas <notasas@gmail.com> wrote:
> On Tue, Nov 2, 2010 at 6:13 PM, Bryan Wu <bryan.wu@canonical.com> wrote:
>> Dummy panel driver includes the driver and 4 similar panel configurations. It
>> will match the panel name which is passed from platform data and setup the
>> right configurations.
>>
>> With dummy panel driver, we can remove those 4 duplicated panel display
>> drivers. In the future, it is simple for us just add new panel configuration
>> date in panel-dummy.h to support new display panel.
>>
>> Signed-off-by: Bryan Wu <bryan.wu@canonical.com>
>
> <snip>
>
>> diff --git a/drivers/video/omap2/displays/panel-dummy.h b/drivers/video/omap2/displays/panel-dummy.h
>> new file mode 100644
>> index 0000000..ac2b7a2
>> --- /dev/null
>> +++ b/drivers/video/omap2/displays/panel-dummy.h
>
> There is no benefit of having this header, just add all data directly
> in .c file.
>
> <snip>
>
>> +       /* Sharp LQ043T1DG01 */
>> +       {
>> +               {       .x_res          = 480,
>> +                       .y_res          = 272,
>
> missing newline after {
>

Thanks, I will take these 2 comments.

-- 
Bryan Wu <bryan.wu@canonical.com>
Kernel Developer    +86.138-1617-6545 Mobile
Ubuntu Kernel Team
Canonical Ltd.      www.canonical.com
Ubuntu - Linux for human beings | www.ubuntu.com
--
To unsubscribe from this list: send the line "unsubscribe linux-omap" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

^ permalink raw reply	[flat|nested] 18+ messages in thread

* [PATCH 1/3] OMAP: DSS2: Add dummy panel display driver
@ 2010-11-02 19:13       ` Bryan Wu
  0 siblings, 0 replies; 18+ messages in thread
From: Bryan Wu @ 2010-11-02 19:13 UTC (permalink / raw)
  To: linux-arm-kernel

On Tue, Nov 2, 2010 at 1:21 PM, Grazvydas Ignotas <notasas@gmail.com> wrote:
> On Tue, Nov 2, 2010 at 6:13 PM, Bryan Wu <bryan.wu@canonical.com> wrote:
>> Dummy panel driver includes the driver and 4 similar panel configurations. It
>> will match the panel name which is passed from platform data and setup the
>> right configurations.
>>
>> With dummy panel driver, we can remove those 4 duplicated panel display
>> drivers. In the future, it is simple for us just add new panel configuration
>> date in panel-dummy.h to support new display panel.
>>
>> Signed-off-by: Bryan Wu <bryan.wu@canonical.com>
>
> <snip>
>
>> diff --git a/drivers/video/omap2/displays/panel-dummy.h b/drivers/video/omap2/displays/panel-dummy.h
>> new file mode 100644
>> index 0000000..ac2b7a2
>> --- /dev/null
>> +++ b/drivers/video/omap2/displays/panel-dummy.h
>
> There is no benefit of having this header, just add all data directly
> in .c file.
>
> <snip>
>
>> + ? ? ? /* Sharp LQ043T1DG01 */
>> + ? ? ? {
>> + ? ? ? ? ? ? ? { ? ? ? .x_res ? ? ? ? ?= 480,
>> + ? ? ? ? ? ? ? ? ? ? ? .y_res ? ? ? ? ?= 272,
>
> missing newline after {
>

Thanks, I will take these 2 comments.

-- 
Bryan Wu <bryan.wu@canonical.com>
Kernel Developer ? ?+86.138-1617-6545 Mobile
Ubuntu Kernel Team
Canonical Ltd. ? ? ?www.canonical.com
Ubuntu - Linux for human beings | www.ubuntu.com

^ permalink raw reply	[flat|nested] 18+ messages in thread

end of thread, other threads:[~2010-11-02 19:13 UTC | newest]

Thread overview: 18+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2010-11-02 16:13 [PATCH 0/3] OMAP: DSS2: introduce dummy panel driver Bryan Wu
2010-11-02 16:13 ` Bryan Wu
2010-11-02 16:13 ` [PATCH 1/3] OMAP: DSS2: Add dummy panel display driver Bryan Wu
2010-11-02 16:13   ` Bryan Wu
2010-11-02 17:21   ` Grazvydas Ignotas
2010-11-02 17:21     ` Grazvydas Ignotas
2010-11-02 19:13     ` Bryan Wu
2010-11-02 19:13       ` Bryan Wu
2010-11-02 16:13 ` [PATCH 2/3] OMAP: DSS2: remove dummy panel driver duplicated panel drivers Bryan Wu
2010-11-02 16:13   ` Bryan Wu
2010-11-02 17:11   ` Grazvydas Ignotas
2010-11-02 17:11     ` Grazvydas Ignotas
2010-11-02 16:13 ` [PATCH 3/3] OMAP: use dummy panel driver in board files Bryan Wu
2010-11-02 16:13   ` Bryan Wu
2010-11-02 16:53 ` [PATCH 0/3] OMAP: DSS2: introduce dummy panel driver Anand Gadiyar
2010-11-02 16:53   ` Anand Gadiyar
2010-11-02 19:12   ` Bryan Wu
2010-11-02 19:12     ` Bryan Wu

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.