All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH v5 00/10] OMAP4 : DSS2 : HDMI support on OMAP4
@ 2011-03-10 10:44 Mythri P K
  2011-03-10 10:44 ` [PATCH v5 01/10] OMAP4 : DSS2 : Add display type HDMI to DSS2 Mythri P K
                   ` (2 more replies)
  0 siblings, 3 replies; 73+ messages in thread
From: Mythri P K @ 2011-03-10 10:44 UTC (permalink / raw)
  To: linux-omap, tomi.valkeinen; +Cc: Mythri P K

Adding HDMI support on OMAP4.

HDMI is a driver that is similar to the VENC or the DSI driver to support
HDMI/DVI sink device.

The current design adheres to the DSS2 architecture.

It is split into the HDMI DSS driver and HDMI panel driver.

HDMI DSS driver (hdmi.c) is responsible for
1.OMAP related configuration such as
	1.Listening to the DSS_HDMI irq which signals changes such as hot-plug
		detect,physical attach/detach.
	2.calculate the PLL values based on the TV resolution that is selected
	3.configuration of the Mux/GPIO settings.
2.HDMI configuration based on the parameters read from the EDID of the 
sink device such as:
	1. Configuration of the PHY registers.
	2. Configuration of the PLL registers and setting of the TMDS clock.
	3. Configuration of the DDC to read the EDID data when available.
	4. Configuration of the core registers to set:
		a. set the video registers to the timing and format that
			is selected.
		b. set the audio registers based on the EDID value read and
			user selected parameters.
		c. Set the AVI info frame registers to configure the auxilary
			info frame which are repeated.
HDMI Panel Driver (hdmi_omap4_panel.c) . This is a panel driver which acts
as the controlling device which synchronizes the audio and video portion of the
driver.[enable ,disable , notification to audio on suspend etc].
It registers hdmi driver to the omap_dss bus and calls the functionality
of the HDMI DSS driver.
It is also provides the interface for users 
	1.To read the EDID contents and also confiure the timings based on EDID.
	2.To configure AVI Inforframe based on the the EDID(sink capability).

Note : Mux handling with hwmod is dependent on pm_runtime_sync ,so mux with hwmod
will be posted once patch series with pm_runtime_sync is done.

verified on 4430 SDP ES2.1 - Penguins on HDMI and DVI TV.
verified on PANDA ES2.1 - Penguins on HDMI and DVI TV.

Changes from V4:
1. default timing to be picked by FB is changed to VGA.
2. changed the ERRNO based on comments from sanjeev.
3. Found an issue with set_timings while testing and that is fixed.
Changes from V3:
1. compile hdmi_omap4_panel.c as part of OMAPDSS , for OMAPDSS to work as module.
2. Function cleanup to take enum as parameter.
3. Rebased on Tomi's master branch Tree.
Changes from V2:
1. separated the gamma function from venc/hdmi clock source switch function.
2. Mutex lock fixed.
3. Removed some enum to be used later from the header file.
4. global variables in hdmi.c moved to hdmi structure.
Changes from V1:
1. HDMI to call dss_get_dispc_clock_source instead of directly setting register.
2. All HDMI enumerators are added HDMI prefix.
3. Fixed the mutex position.

Mythri P K (10):
  OMAP4 : DSS2 : Add display type HDMI to DSS2
  OMAP4 : DSS2 : HDMI: Select between HDMI VENC clock source.
  OMAP4 : DSS2 : HDMI: Dispc gamma enable set/reset function for TV.
  OMAP4 : DSS2 : HDMI: HDMI driver header file addition
  OMAP4 : DSS2 : HDMI: HDMI driver addition in the DSS
  OMAP4 : DSS2 : HDMI: HDMI panel driver addition in the DSS
  OMAP4 : DSS2 : HDMI: Add makefile and kconfig changes to enable HDMI
    in OMAP4
  OMAP4 : DSS : HDMI: Call to HDMI module init to register driver.
  OMAP4 : HDMI : Add HDMI structure in the board file for OMAP4 SDP
  OMAP4 : HDMI : Add HDMI structure in the board file for OMAP4 PANDA

 arch/arm/mach-omap2/board-4430sdp.c        |   75 ++
 arch/arm/mach-omap2/board-omap4panda.c     |   74 ++
 arch/arm/plat-omap/include/plat/display.h  |    1 +
 drivers/video/omap2/dss/Kconfig            |    8 +
 drivers/video/omap2/dss/Makefile           |    2 +
 drivers/video/omap2/dss/core.c             |    9 +
 drivers/video/omap2/dss/dispc.c            |   13 +
 drivers/video/omap2/dss/display.c          |    5 +
 drivers/video/omap2/dss/dss.c              |    5 +
 drivers/video/omap2/dss/dss.h              |   43 +
 drivers/video/omap2/dss/dss_features.c     |    2 +-
 drivers/video/omap2/dss/hdmi.c             | 1332 ++++++++++++++++++++++++++++
 drivers/video/omap2/dss/hdmi.h             |  415 +++++++++
 drivers/video/omap2/dss/hdmi_omap4_panel.c |  222 +++++
 drivers/video/omap2/dss/manager.c          |    9 +-
 drivers/video/omap2/dss/overlay.c          |    6 +-
 16 files changed, 2216 insertions(+), 5 deletions(-)
 create mode 100644 drivers/video/omap2/dss/hdmi.c
 create mode 100644 drivers/video/omap2/dss/hdmi.h
 create mode 100644 drivers/video/omap2/dss/hdmi_omap4_panel.c


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

* [PATCH v5 01/10] OMAP4 : DSS2 : Add display type HDMI to DSS2
  2011-03-10 10:44 [PATCH v5 00/10] OMAP4 : DSS2 : HDMI support on OMAP4 Mythri P K
@ 2011-03-10 10:44 ` Mythri P K
  2011-03-10 10:44   ` [PATCH v5 02/10] OMAP4 : DSS2 : HDMI: Select between HDMI VENC clock source Mythri P K
  2011-03-10 13:48   ` [PATCH v5 01/10] OMAP4 : DSS2 : Add display type HDMI to DSS2 Tomi Valkeinen
  2011-03-10 13:44 ` [PATCH v5 00/10] OMAP4 : DSS2 : HDMI support on OMAP4 Tomi Valkeinen
  2011-03-10 15:06 ` Tomi Valkeinen
  2 siblings, 2 replies; 73+ messages in thread
From: Mythri P K @ 2011-03-10 10:44 UTC (permalink / raw)
  To: linux-omap, tomi.valkeinen; +Cc: Mythri P K

Adding HDMI type in dss_features , overlay and
the manager so that HDMI type of display will be recognized.

Signed-off-by: Mythri P K <mythripk@ti.com>
---
 arch/arm/plat-omap/include/plat/display.h |    1 +
 drivers/video/omap2/dss/display.c         |    2 ++
 drivers/video/omap2/dss/dss_features.c    |    2 +-
 drivers/video/omap2/dss/manager.c         |    9 +++++++--
 drivers/video/omap2/dss/overlay.c         |    6 ++++--
 5 files changed, 15 insertions(+), 5 deletions(-)

diff --git a/arch/arm/plat-omap/include/plat/display.h b/arch/arm/plat-omap/include/plat/display.h
index e81ca66..5e04ddc 100644
--- a/arch/arm/plat-omap/include/plat/display.h
+++ b/arch/arm/plat-omap/include/plat/display.h
@@ -58,6 +58,7 @@ enum omap_display_type {
 	OMAP_DISPLAY_TYPE_SDI		= 1 << 2,
 	OMAP_DISPLAY_TYPE_DSI		= 1 << 3,
 	OMAP_DISPLAY_TYPE_VENC		= 1 << 4,
+	OMAP_DISPLAY_TYPE_HDMI		= 1 << 5,
 };
 
 enum omap_plane {
diff --git a/drivers/video/omap2/dss/display.c b/drivers/video/omap2/dss/display.c
index 7d96b72..c40bcbd 100644
--- a/drivers/video/omap2/dss/display.c
+++ b/drivers/video/omap2/dss/display.c
@@ -342,6 +342,7 @@ int omapdss_default_get_recommended_bpp(struct omap_dss_device *dssdev)
 			return 16;
 	case OMAP_DISPLAY_TYPE_VENC:
 	case OMAP_DISPLAY_TYPE_SDI:
+	case OMAP_DISPLAY_TYPE_HDMI:
 		return 24;
 	default:
 		BUG();
@@ -368,6 +369,7 @@ bool dss_use_replication(struct omap_dss_device *dssdev,
 	case OMAP_DISPLAY_TYPE_DPI:
 		bpp = dssdev->phy.dpi.data_lines;
 		break;
+	case OMAP_DISPLAY_TYPE_HDMI:
 	case OMAP_DISPLAY_TYPE_VENC:
 	case OMAP_DISPLAY_TYPE_SDI:
 		bpp = 24;
diff --git a/drivers/video/omap2/dss/dss_features.c b/drivers/video/omap2/dss/dss_features.c
index 6eb6ec6..86dc848 100644
--- a/drivers/video/omap2/dss/dss_features.c
+++ b/drivers/video/omap2/dss/dss_features.c
@@ -115,7 +115,7 @@ static const enum omap_display_type omap4_dss_supported_displays[] = {
 	OMAP_DISPLAY_TYPE_DBI | OMAP_DISPLAY_TYPE_DSI,
 
 	/* OMAP_DSS_CHANNEL_DIGIT */
-	OMAP_DISPLAY_TYPE_VENC,
+	OMAP_DISPLAY_TYPE_VENC | OMAP_DISPLAY_TYPE_HDMI,
 
 	/* OMAP_DSS_CHANNEL_LCD2 */
 	OMAP_DISPLAY_TYPE_DPI | OMAP_DISPLAY_TYPE_DBI |
diff --git a/drivers/video/omap2/dss/manager.c b/drivers/video/omap2/dss/manager.c
index 1f53bf2..bcd37ec 100644
--- a/drivers/video/omap2/dss/manager.c
+++ b/drivers/video/omap2/dss/manager.c
@@ -515,6 +515,8 @@ static int dss_mgr_wait_for_vsync(struct omap_overlay_manager *mgr)
 
 	if (mgr->device->type == OMAP_DISPLAY_TYPE_VENC) {
 		irq = DISPC_IRQ_EVSYNC_ODD;
+	} else if (mgr->device->type == OMAP_DISPLAY_TYPE_HDMI) {
+		irq = DISPC_IRQ_EVSYNC_EVEN;
 	} else {
 		if (mgr->id == OMAP_DSS_CHANNEL_LCD)
 			irq = DISPC_IRQ_VSYNC;
@@ -536,7 +538,8 @@ static int dss_mgr_wait_for_go(struct omap_overlay_manager *mgr)
 	if (!dssdev || dssdev->state != OMAP_DSS_DISPLAY_ACTIVE)
 		return 0;
 
-	if (dssdev->type == OMAP_DISPLAY_TYPE_VENC) {
+	if (dssdev->type == OMAP_DISPLAY_TYPE_VENC
+			|| dssdev->type == OMAP_DISPLAY_TYPE_HDMI) {
 		irq = DISPC_IRQ_EVSYNC_ODD | DISPC_IRQ_EVSYNC_EVEN;
 	} else {
 		if (dssdev->caps & OMAP_DSS_DISPLAY_CAP_MANUAL_UPDATE) {
@@ -613,7 +616,8 @@ int dss_mgr_wait_for_go_ovl(struct omap_overlay *ovl)
 	if (!dssdev || dssdev->state != OMAP_DSS_DISPLAY_ACTIVE)
 		return 0;
 
-	if (dssdev->type == OMAP_DISPLAY_TYPE_VENC) {
+	if (dssdev->type == OMAP_DISPLAY_TYPE_VENC
+			|| dssdev->type == OMAP_DISPLAY_TYPE_HDMI) {
 		irq = DISPC_IRQ_EVSYNC_ODD | DISPC_IRQ_EVSYNC_EVEN;
 	} else {
 		if (dssdev->caps & OMAP_DSS_DISPLAY_CAP_MANUAL_UPDATE) {
@@ -1377,6 +1381,7 @@ static int omap_dss_mgr_apply(struct omap_overlay_manager *mgr)
 		case OMAP_DISPLAY_TYPE_DBI:
 		case OMAP_DISPLAY_TYPE_SDI:
 		case OMAP_DISPLAY_TYPE_VENC:
+		case OMAP_DISPLAY_TYPE_HDMI:
 			default_get_overlay_fifo_thresholds(ovl->id, size,
 					&oc->burst_size, &oc->fifo_low,
 					&oc->fifo_high);
diff --git a/drivers/video/omap2/dss/overlay.c b/drivers/video/omap2/dss/overlay.c
index 996e9a4..f1aca6d 100644
--- a/drivers/video/omap2/dss/overlay.c
+++ b/drivers/video/omap2/dss/overlay.c
@@ -679,7 +679,8 @@ void dss_recheck_connections(struct omap_dss_device *dssdev, bool force)
 			lcd2_mgr->set_device(lcd2_mgr, dssdev);
 			mgr = lcd2_mgr;
 		}
-	} else if (dssdev->type != OMAP_DISPLAY_TYPE_VENC) {
+	} else if (dssdev->type != OMAP_DISPLAY_TYPE_VENC
+			&& dssdev->type != OMAP_DISPLAY_TYPE_HDMI) {
 		if (!lcd_mgr->device || force) {
 			if (lcd_mgr->device)
 				lcd_mgr->unset_device(lcd_mgr);
@@ -688,7 +689,8 @@ void dss_recheck_connections(struct omap_dss_device *dssdev, bool force)
 		}
 	}
 
-	if (dssdev->type == OMAP_DISPLAY_TYPE_VENC) {
+	if (dssdev->type == OMAP_DISPLAY_TYPE_VENC
+			|| dssdev->type == OMAP_DISPLAY_TYPE_HDMI) {
 		if (!tv_mgr->device || force) {
 			if (tv_mgr->device)
 				tv_mgr->unset_device(tv_mgr);
-- 
1.5.6.3


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

* [PATCH v5 02/10] OMAP4 : DSS2 : HDMI: Select between HDMI VENC clock source.
  2011-03-10 10:44 ` [PATCH v5 01/10] OMAP4 : DSS2 : Add display type HDMI to DSS2 Mythri P K
@ 2011-03-10 10:44   ` Mythri P K
  2011-03-10 10:44     ` [PATCH v5 03/10] OMAP4 : DSS2 : HDMI: Dispc gamma enable set/reset function for TV Mythri P K
  2011-03-10 13:49     ` [PATCH v5 02/10] OMAP4 : DSS2 : HDMI: Select between HDMI VENC clock source Tomi Valkeinen
  2011-03-10 13:48   ` [PATCH v5 01/10] OMAP4 : DSS2 : Add display type HDMI to DSS2 Tomi Valkeinen
  1 sibling, 2 replies; 73+ messages in thread
From: Mythri P K @ 2011-03-10 10:44 UTC (permalink / raw)
  To: linux-omap, tomi.valkeinen; +Cc: Mythri P K


Signed-off-by: Mythri P K <mythripk@ti.com>
---
 drivers/video/omap2/dss/dss.c |    5 +++++
 drivers/video/omap2/dss/dss.h |    6 ++++++
 2 files changed, 11 insertions(+), 0 deletions(-)

diff --git a/drivers/video/omap2/dss/dss.c b/drivers/video/omap2/dss/dss.c
index aed9345..0be83c8 100644
--- a/drivers/video/omap2/dss/dss.c
+++ b/drivers/video/omap2/dss/dss.c
@@ -605,6 +605,11 @@ void dss_set_dac_pwrdn_bgz(bool enable)
 	REG_FLD_MOD(DSS_CONTROL, enable, 5, 5);	/* DAC Power-Down Control */
 }
 
+void dss_select_hdmi_venc_clk_source(enum dss_hdmi_venc_clk_source_select hdmi)
+{
+	REG_FLD_MOD(DSS_CONTROL, hdmi, 15, 15);	/* VENC_HDMI_SWITCH */
+}
+
 static int dss_init(void)
 {
 	int r;
diff --git a/drivers/video/omap2/dss/dss.h b/drivers/video/omap2/dss/dss.h
index b845468..c2c0fcf 100644
--- a/drivers/video/omap2/dss/dss.h
+++ b/drivers/video/omap2/dss/dss.h
@@ -132,6 +132,11 @@ struct dss_clk_source_name {
 	const char *clksrc_name;
 };
 
+enum dss_hdmi_venc_clk_source_select {
+	DSS_VENC_TV_CLK = 0,
+	DSS_HDMI_M_PCLK = 1,
+};
+
 struct dss_clock_info {
 	/* rates that we get with dividers below */
 	unsigned long fck;
@@ -220,6 +225,7 @@ void dss_recheck_connections(struct omap_dss_device *dssdev, bool force);
 int dss_init_platform_driver(void);
 void dss_uninit_platform_driver(void);
 
+void dss_select_hdmi_venc_clk_source(enum dss_hdmi_venc_clk_source_select);
 void dss_save_context(void);
 void dss_restore_context(void);
 void dss_clk_enable(enum dss_clock clks);
-- 
1.5.6.3


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

* [PATCH v5 03/10] OMAP4 : DSS2 : HDMI: Dispc gamma enable set/reset function for TV.
  2011-03-10 10:44   ` [PATCH v5 02/10] OMAP4 : DSS2 : HDMI: Select between HDMI VENC clock source Mythri P K
@ 2011-03-10 10:44     ` Mythri P K
  2011-03-10 10:44       ` [PATCH v5 04/10] OMAP4 : DSS2 : HDMI: HDMI driver header file addition Mythri P K
                         ` (2 more replies)
  2011-03-10 13:49     ` [PATCH v5 02/10] OMAP4 : DSS2 : HDMI: Select between HDMI VENC clock source Tomi Valkeinen
  1 sibling, 3 replies; 73+ messages in thread
From: Mythri P K @ 2011-03-10 10:44 UTC (permalink / raw)
  To: linux-omap, tomi.valkeinen; +Cc: Mythri P K

Adding function to reset/set gamma table bit for TV interface
currentl only support for disabled is added.

Signed-off-by: Mythri P K <mythripk@ti.com>
---
 drivers/video/omap2/dss/dispc.c |   13 +++++++++++++
 drivers/video/omap2/dss/dss.h   |    1 +
 2 files changed, 14 insertions(+), 0 deletions(-)

diff --git a/drivers/video/omap2/dss/dispc.c b/drivers/video/omap2/dss/dispc.c
index b8c576a..9b86f5f 100644
--- a/drivers/video/omap2/dss/dispc.c
+++ b/drivers/video/omap2/dss/dispc.c
@@ -1008,6 +1008,19 @@ void dispc_set_burst_size(enum omap_plane plane,
 	enable_clocks(0);
 }
 
+void dispc_enable_gamma_table(bool enable)
+{
+	/* This is partially implemented to support only
+	 *  disabling of the gamma table.
+	 */
+	if (enable) {
+		DSSWARN("Gamma table enabling for TV not yet supported");
+		return;
+	}
+
+	REG_FLD_MOD(DISPC_CONFIG, enable, 9, 9);
+}
+
 static void _dispc_set_vid_color_conv(enum omap_plane plane, bool enable)
 {
 	u32 val;
diff --git a/drivers/video/omap2/dss/dss.h b/drivers/video/omap2/dss/dss.h
index c2c0fcf..9f563a6 100644
--- a/drivers/video/omap2/dss/dss.h
+++ b/drivers/video/omap2/dss/dss.h
@@ -376,6 +376,7 @@ void dispc_set_plane_size(enum omap_plane plane, u16 width, u16 height);
 void dispc_set_channel_out(enum omap_plane plane,
 		enum omap_channel channel_out);
 
+void dispc_enable_gamma_table(bool enable);
 int dispc_setup_plane(enum omap_plane plane,
 		      u32 paddr, u16 screen_width,
 		      u16 pos_x, u16 pos_y,
-- 
1.5.6.3


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

* [PATCH v5 04/10] OMAP4 : DSS2 : HDMI: HDMI driver header file addition
  2011-03-10 10:44     ` [PATCH v5 03/10] OMAP4 : DSS2 : HDMI: Dispc gamma enable set/reset function for TV Mythri P K
@ 2011-03-10 10:44       ` Mythri P K
  2011-03-10 10:44         ` [PATCH v5 05/10] OMAP4 : DSS2 : HDMI: HDMI driver addition in the DSS Mythri P K
  2011-03-10 13:52       ` [PATCH v5 03/10] OMAP4 : DSS2 : HDMI: Dispc gamma enable set/reset function for TV Tomi Valkeinen
  2011-05-05 13:50       ` Laurent Pinchart
  2 siblings, 1 reply; 73+ messages in thread
From: Mythri P K @ 2011-03-10 10:44 UTC (permalink / raw)
  To: linux-omap, tomi.valkeinen; +Cc: Mythri P K

Adding the hdmi interface driver header file (hdmi.h) to the dss driver.
Register and structure declaration done here.

Signed-off-by: Mythri P K <mythripk@ti.com>
---
 drivers/video/omap2/dss/hdmi.h |  415 ++++++++++++++++++++++++++++++++++++++++
 1 files changed, 415 insertions(+), 0 deletions(-)
 create mode 100644 drivers/video/omap2/dss/hdmi.h

diff --git a/drivers/video/omap2/dss/hdmi.h b/drivers/video/omap2/dss/hdmi.h
new file mode 100644
index 0000000..9887ab9
--- /dev/null
+++ b/drivers/video/omap2/dss/hdmi.h
@@ -0,0 +1,415 @@
+/*
+ * hdmi.h
+ *
+ * HDMI driver definition for TI OMAP4 processors.
+ *
+ * Copyright (C) 2010-2011 Texas Instruments Incorporated - http://www.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/>.
+ */
+
+#ifndef _OMAP4_DSS_HDMI_H_
+#define _OMAP4_DSS_HDMI_H_
+
+#include <linux/string.h>
+#include <plat/display.h>
+
+#define HDMI_WP		0x0
+#define HDMI_CORE_SYS		0x400
+#define HDMI_CORE_AV		0x900
+#define HDMI_PLLCTRL		0x200
+#define HDMI_PHY		0x300
+
+struct hdmi_reg { u16 idx; };
+
+#define HDMI_REG(idx)			((const struct hdmi_reg) { idx })
+
+/* HDMI Wrapper */
+#define HDMI_WP_REG(idx)			HDMI_REG(HDMI_WP + idx)
+
+#define HDMI_WP_REVISION			HDMI_WP_REG(0x0)
+#define HDMI_WP_SYSCONFIG			HDMI_WP_REG(0x10)
+#define HDMI_WP_IRQSTATUS_RAW			HDMI_WP_REG(0x24)
+#define HDMI_WP_IRQSTATUS			HDMI_WP_REG(0x28)
+#define HDMI_WP_PWR_CTRL			HDMI_WP_REG(0x40)
+#define HDMI_WP_IRQENABLE_SET			HDMI_WP_REG(0x2C)
+#define HDMI_WP_VIDEO_CFG			HDMI_WP_REG(0x50)
+#define HDMI_WP_VIDEO_SIZE			HDMI_WP_REG(0x60)
+#define HDMI_WP_VIDEO_TIMING_H			HDMI_WP_REG(0x68)
+#define HDMI_WP_VIDEO_TIMING_V			HDMI_WP_REG(0x6C)
+#define HDMI_WP_WP_CLK				HDMI_WP_REG(0x70)
+
+/* HDMI IP Core System */
+#define HDMI_CORE_SYS_REG(idx)			HDMI_REG(HDMI_CORE_SYS + idx)
+
+#define HDMI_CORE_SYS_VND_IDL			HDMI_CORE_SYS_REG(0x0)
+#define HDMI_CORE_SYS_DEV_IDL			HDMI_CORE_SYS_REG(0x8)
+#define HDMI_CORE_SYS_DEV_IDH			HDMI_CORE_SYS_REG(0xC)
+#define HDMI_CORE_SYS_DEV_REV			HDMI_CORE_SYS_REG(0x10)
+#define HDMI_CORE_SYS_SRST			HDMI_CORE_SYS_REG(0x14)
+#define HDMI_CORE_CTRL1			HDMI_CORE_SYS_REG(0x20)
+#define HDMI_CORE_SYS_SYS_STAT			HDMI_CORE_SYS_REG(0x24)
+#define HDMI_CORE_SYS_VID_ACEN			HDMI_CORE_SYS_REG(0x124)
+#define HDMI_CORE_SYS_VID_MODE			HDMI_CORE_SYS_REG(0x128)
+#define HDMI_CORE_SYS_INTR_STATE		HDMI_CORE_SYS_REG(0x1C0)
+#define HDMI_CORE_SYS_INTR1			HDMI_CORE_SYS_REG(0x1C4)
+#define HDMI_CORE_SYS_INTR2			HDMI_CORE_SYS_REG(0x1C8)
+#define HDMI_CORE_SYS_INTR3			HDMI_CORE_SYS_REG(0x1CC)
+#define HDMI_CORE_SYS_INTR4			HDMI_CORE_SYS_REG(0x1D0)
+#define HDMI_CORE_SYS_UMASK1			HDMI_CORE_SYS_REG(0x1D4)
+#define HDMI_CORE_SYS_TMDS_CTRL		HDMI_CORE_SYS_REG(0x208)
+#define HDMI_CORE_SYS_DE_DLY			HDMI_CORE_SYS_REG(0xC8)
+#define HDMI_CORE_SYS_DE_CTRL			HDMI_CORE_SYS_REG(0xCC)
+#define HDMI_CORE_SYS_DE_TOP			HDMI_CORE_SYS_REG(0xD0)
+#define HDMI_CORE_SYS_DE_CNTL			HDMI_CORE_SYS_REG(0xD8)
+#define HDMI_CORE_SYS_DE_CNTH			HDMI_CORE_SYS_REG(0xDC)
+#define HDMI_CORE_SYS_DE_LINL			HDMI_CORE_SYS_REG(0xE0)
+#define HDMI_CORE_SYS_DE_LINH_1		HDMI_CORE_SYS_REG(0xE4)
+#define HDMI_CORE_CTRL1_VEN_FOLLOWVSYNC	0x1
+#define HDMI_CORE_CTRL1_HEN_FOLLOWHSYNC	0x1
+#define HDMI_CORE_CTRL1_BSEL_24BITBUS		0x1
+#define HDMI_CORE_CTRL1_EDGE_RISINGEDGE	0x1
+
+/* HDMI DDC E-DID */
+#define HDMI_CORE_DDC_CMD			HDMI_CORE_SYS_REG(0x3CC)
+#define HDMI_CORE_DDC_STATUS			HDMI_CORE_SYS_REG(0x3C8)
+#define HDMI_CORE_DDC_ADDR			HDMI_CORE_SYS_REG(0x3B4)
+#define HDMI_CORE_DDC_OFFSET			HDMI_CORE_SYS_REG(0x3BC)
+#define HDMI_CORE_DDC_COUNT1			HDMI_CORE_SYS_REG(0x3C0)
+#define HDMI_CORE_DDC_COUNT2			HDMI_CORE_SYS_REG(0x3C4)
+#define HDMI_CORE_DDC_DATA			HDMI_CORE_SYS_REG(0x3D0)
+#define HDMI_CORE_DDC_SEGM			HDMI_CORE_SYS_REG(0x3B8)
+
+/* HDMI IP Core Audio Video */
+#define HDMI_CORE_AV_REG(idx)			HDMI_REG(HDMI_CORE_AV + idx)
+
+#define HDMI_CORE_AV_HDMI_CTRL			HDMI_CORE_AV_REG(0xBC)
+#define HDMI_CORE_AV_DPD			HDMI_CORE_AV_REG(0xF4)
+#define HDMI_CORE_AV_PB_CTRL1			HDMI_CORE_AV_REG(0xF8)
+#define HDMI_CORE_AV_PB_CTRL2			HDMI_CORE_AV_REG(0xFC)
+#define HDMI_CORE_AV_AVI_TYPE			HDMI_CORE_AV_REG(0x100)
+#define HDMI_CORE_AV_AVI_VERS			HDMI_CORE_AV_REG(0x104)
+#define HDMI_CORE_AV_AVI_LEN			HDMI_CORE_AV_REG(0x108)
+#define HDMI_CORE_AV_AVI_CHSUM			HDMI_CORE_AV_REG(0x10C)
+#define HDMI_CORE_AV_AVI_DBYTE(n)		HDMI_CORE_AV_REG(n * 4 + 0x110)
+#define HDMI_CORE_AV_AVI_DBYTE_NELEMS		HDMI_CORE_AV_REG(15)
+#define HDMI_CORE_AV_SPD_DBYTE			HDMI_CORE_AV_REG(0x190)
+#define HDMI_CORE_AV_SPD_DBYTE_NELEMS		HDMI_CORE_AV_REG(27)
+#define HDMI_CORE_AV_MPEG_DBYTE		HDMI_CORE_AV_REG(0x290)
+#define HDMI_CORE_AV_MPEG_DBYTE_NELEMS		HDMI_CORE_AV_REG(27)
+#define HDMI_CORE_AV_GEN_DBYTE			HDMI_CORE_AV_REG(0x300)
+#define HDMI_CORE_AV_GEN_DBYTE_NELEMS		HDMI_CORE_AV_REG(31)
+#define HDMI_CORE_AV_GEN2_DBYTE		HDMI_CORE_AV_REG(0x380)
+#define HDMI_CORE_AV_GEN2_DBYTE_NELEMS		HDMI_CORE_AV_REG(31)
+#define HDMI_CORE_AV_ACR_CTRL			HDMI_CORE_AV_REG(0x4)
+#define HDMI_CORE_AV_FREQ_SVAL			HDMI_CORE_AV_REG(0x8)
+#define HDMI_CORE_AV_N_SVAL1			HDMI_CORE_AV_REG(0xC)
+#define HDMI_CORE_AV_N_SVAL2			HDMI_CORE_AV_REG(0x10)
+#define HDMI_CORE_AV_N_SVAL3			HDMI_CORE_AV_REG(0x14)
+#define HDMI_CORE_AV_CTS_SVAL1			HDMI_CORE_AV_REG(0x18)
+#define HDMI_CORE_AV_CTS_SVAL2			HDMI_CORE_AV_REG(0x1C)
+#define HDMI_CORE_AV_CTS_SVAL3			HDMI_CORE_AV_REG(0x20)
+#define HDMI_CORE_AV_CTS_HVAL1			HDMI_CORE_AV_REG(0x24)
+#define HDMI_CORE_AV_CTS_HVAL2			HDMI_CORE_AV_REG(0x28)
+#define HDMI_CORE_AV_CTS_HVAL3			HDMI_CORE_AV_REG(0x2C)
+#define HDMI_CORE_AV_AUD_MODE			HDMI_CORE_AV_REG(0x50)
+#define HDMI_CORE_AV_SPDIF_CTRL		HDMI_CORE_AV_REG(0x54)
+#define HDMI_CORE_AV_HW_SPDIF_FS		HDMI_CORE_AV_REG(0x60)
+#define HDMI_CORE_AV_SWAP_I2S			HDMI_CORE_AV_REG(0x64)
+#define HDMI_CORE_AV_SPDIF_ERTH		HDMI_CORE_AV_REG(0x6C)
+#define HDMI_CORE_AV_I2S_IN_MAP		HDMI_CORE_AV_REG(0x70)
+#define HDMI_CORE_AV_I2S_IN_CTRL		HDMI_CORE_AV_REG(0x74)
+#define HDMI_CORE_AV_I2S_CHST0			HDMI_CORE_AV_REG(0x78)
+#define HDMI_CORE_AV_I2S_CHST1			HDMI_CORE_AV_REG(0x7C)
+#define HDMI_CORE_AV_I2S_CHST2			HDMI_CORE_AV_REG(0x80)
+#define HDMI_CORE_AV_I2S_CHST4			HDMI_CORE_AV_REG(0x84)
+#define HDMI_CORE_AV_I2S_CHST5			HDMI_CORE_AV_REG(0x88)
+#define HDMI_CORE_AV_ASRC			HDMI_CORE_AV_REG(0x8C)
+#define HDMI_CORE_AV_I2S_IN_LEN		HDMI_CORE_AV_REG(0x90)
+#define HDMI_CORE_AV_HDMI_CTRL			HDMI_CORE_AV_REG(0xBC)
+#define HDMI_CORE_AV_AUDO_TXSTAT		HDMI_CORE_AV_REG(0xC0)
+#define HDMI_CORE_AV_AUD_PAR_BUSCLK_1		HDMI_CORE_AV_REG(0xCC)
+#define HDMI_CORE_AV_AUD_PAR_BUSCLK_2		HDMI_CORE_AV_REG(0xD0)
+#define HDMI_CORE_AV_AUD_PAR_BUSCLK_3		HDMI_CORE_AV_REG(0xD4)
+#define HDMI_CORE_AV_TEST_TXCTRL		HDMI_CORE_AV_REG(0xF0)
+#define HDMI_CORE_AV_DPD			HDMI_CORE_AV_REG(0xF4)
+#define HDMI_CORE_AV_PB_CTRL1			HDMI_CORE_AV_REG(0xF8)
+#define HDMI_CORE_AV_PB_CTRL2			HDMI_CORE_AV_REG(0xFC)
+#define HDMI_CORE_AV_AVI_TYPE			HDMI_CORE_AV_REG(0x100)
+#define HDMI_CORE_AV_AVI_VERS			HDMI_CORE_AV_REG(0x104)
+#define HDMI_CORE_AV_AVI_LEN			HDMI_CORE_AV_REG(0x108)
+#define HDMI_CORE_AV_AVI_CHSUM			HDMI_CORE_AV_REG(0x10C)
+#define HDMI_CORE_AV_SPD_TYPE			HDMI_CORE_AV_REG(0x180)
+#define HDMI_CORE_AV_SPD_VERS			HDMI_CORE_AV_REG(0x184)
+#define HDMI_CORE_AV_SPD_LEN			HDMI_CORE_AV_REG(0x188)
+#define HDMI_CORE_AV_SPD_CHSUM			HDMI_CORE_AV_REG(0x18C)
+#define HDMI_CORE_AV_MPEG_TYPE			HDMI_CORE_AV_REG(0x280)
+#define HDMI_CORE_AV_MPEG_VERS			HDMI_CORE_AV_REG(0x284)
+#define HDMI_CORE_AV_MPEG_LEN			HDMI_CORE_AV_REG(0x288)
+#define HDMI_CORE_AV_MPEG_CHSUM		HDMI_CORE_AV_REG(0x28C)
+#define HDMI_CORE_AV_CP_BYTE1			HDMI_CORE_AV_REG(0x37C)
+#define HDMI_CORE_AV_CEC_ADDR_ID		HDMI_CORE_AV_REG(0x3FC)
+#define HDMI_CORE_AV_SPD_DBYTE_ELSIZE		0x4
+#define HDMI_CORE_AV_GEN2_DBYTE_ELSIZE		0x4
+#define HDMI_CORE_AV_MPEG_DBYTE_ELSIZE		0x4
+#define HDMI_CORE_AV_GEN_DBYTE_ELSIZE		0x4
+
+/* PLL */
+#define HDMI_PLL_REG(idx)			HDMI_REG(HDMI_PLLCTRL + idx)
+
+#define PLLCTRL_PLL_CONTROL			HDMI_PLL_REG(0x0)
+#define PLLCTRL_PLL_STATUS			HDMI_PLL_REG(0x4)
+#define PLLCTRL_PLL_GO				HDMI_PLL_REG(0x8)
+#define PLLCTRL_CFG1				HDMI_PLL_REG(0xC)
+#define PLLCTRL_CFG2				HDMI_PLL_REG(0x10)
+#define PLLCTRL_CFG3				HDMI_PLL_REG(0x14)
+#define PLLCTRL_CFG4				HDMI_PLL_REG(0x20)
+
+/* HDMI PHY */
+#define HDMI_PHY_REG(idx)			HDMI_REG(HDMI_PHY + idx)
+
+#define HDMI_TXPHY_TX_CTRL			HDMI_PHY_REG(0x0)
+#define HDMI_TXPHY_DIGITAL_CTRL		HDMI_PHY_REG(0x4)
+#define HDMI_TXPHY_POWER_CTRL			HDMI_PHY_REG(0x8)
+#define HDMI_TXPHY_PAD_CFG_CTRL		HDMI_PHY_REG(0xC)
+
+/* HDMI EDID Length  */
+#define HDMI_EDID_MAX_LENGTH			256
+#define EDID_TIMING_DESCRIPTOR_SIZE		0x12
+#define EDID_DESCRIPTOR_BLOCK0_ADDRESS		0x36
+#define EDID_DESCRIPTOR_BLOCK1_ADDRESS		0x80
+#define EDID_SIZE_BLOCK0_TIMING_DESCRIPTOR	4
+#define EDID_SIZE_BLOCK1_TIMING_DESCRIPTOR	4
+
+#define OMAP_HDMI_TIMINGS_NB			34
+
+#define REG_FLD_MOD(idx, val, start, end) \
+	hdmi_write_reg(idx, FLD_MOD(hdmi_read_reg(idx), val, start, end))
+#define REG_GET(idx, start, end) \
+	FLD_GET(hdmi_read_reg(idx), start, end)
+
+/* HDMI timing structure */
+struct hdmi_timings {
+	struct omap_video_timings timings;
+	int vsync_pol;
+	int hsync_pol;
+};
+
+enum hdmi_phy_pwr {
+	HDMI_PHYPWRCMD_OFF = 0,
+	HDMI_PHYPWRCMD_LDOON = 1,
+	HDMI_PHYPWRCMD_TXON = 2
+};
+
+enum hdmi_pll_pwr {
+	HDMI_PLLPWRCMD_ALLOFF = 0,
+	HDMI_PLLPWRCMD_PLLONLY = 1,
+	HDMI_PLLPWRCMD_BOTHON_ALLCLKS = 2,
+	HDMI_PLLPWRCMD_BOTHON_NOPHYCLK = 3
+};
+
+enum hdmi_clk_refsel {
+	HDMI_REFSEL_PCLK = 0,
+	HDMI_REFSEL_REF1 = 1,
+	HDMI_REFSEL_REF2 = 2,
+	HDMI_REFSEL_SYSCLK = 3
+};
+
+enum hdmi_core_inputbus_width {
+	HDMI_INPUT_8BIT = 0,
+	HDMI_INPUT_10BIT = 1,
+	HDMI_INPUT_12BIT = 2
+};
+
+enum hdmi_core_dither_trunc {
+	HDMI_OUTPUTTRUNCATION_8BIT = 0,
+	HDMI_OUTPUTTRUNCATION_10BIT = 1,
+	HDMI_OUTPUTTRUNCATION_12BIT = 2,
+	HDMI_OUTPUTDITHER_8BIT = 3,
+	HDMI_OUTPUTDITHER_10BIT = 4,
+	HDMI_OUTPUTDITHER_12BIT = 5
+};
+
+enum hdmi_core_deepcolor_ed {
+	HDMI_DEEPCOLORPACKECTDISABLE = 0,
+	HDMI_DEEPCOLORPACKECTENABLE = 1
+};
+
+enum hdmi_core_packet_mode {
+	HDMI_PACKETMODERESERVEDVALUE = 0,
+	HDMI_PACKETMODE24BITPERPIXEL = 4,
+	HDMI_PACKETMODE30BITPERPIXEL = 5,
+	HDMI_PACKETMODE36BITPERPIXEL = 6,
+	HDMI_PACKETMODE48BITPERPIXEL = 7
+};
+
+enum hdmi_core_hdmi_dvi {
+	HDMI_DVI = 0,
+	HDMI_HDMI = 1
+};
+
+enum hdmi_core_tclkselclkmult {
+	HDMI_FPLL05IDCK = 0,
+	HDMI_FPLL10IDCK = 1,
+	HDMI_FPLL20IDCK = 2,
+	HDMI_FPLL40IDCK = 3
+};
+
+enum hdmi_core_packet_ctrl {
+	HDMI_PACKETENABLE = 1,
+	HDMI_PACKETDISABLE = 0,
+	HDMI_PACKETREPEATON = 1,
+	HDMI_PACKETREPEATOFF = 0
+};
+
+/* INFOFRAME_AVI_ definitions */
+enum hdmi_core_infoframe {
+	HDMI_INFOFRAME_AVI_DB1Y_RGB = 0,
+	HDMI_INFOFRAME_AVI_DB1Y_YUV422 = 1,
+	HDMI_INFOFRAME_AVI_DB1Y_YUV444 = 2,
+	HDMI_INFOFRAME_AVI_DB1A_ACTIVE_FORMAT_OFF = 0,
+	HDMI_INFOFRAME_AVI_DB1A_ACTIVE_FORMAT_ON =  1,
+	HDMI_INFOFRAME_AVI_DB1B_NO = 0,
+	HDMI_INFOFRAME_AVI_DB1B_VERT = 1,
+	HDMI_INFOFRAME_AVI_DB1B_HORI = 2,
+	HDMI_INFOFRAME_AVI_DB1B_VERTHORI = 3,
+	HDMI_INFOFRAME_AVI_DB1S_0 = 0,
+	HDMI_INFOFRAME_AVI_DB1S_1 = 1,
+	HDMI_INFOFRAME_AVI_DB1S_2 = 2,
+	HDMI_INFOFRAME_AVI_DB2C_NO = 0,
+	HDMI_INFOFRAME_AVI_DB2C_ITU601 = 1,
+	HDMI_INFOFRAME_AVI_DB2C_ITU709 = 2,
+	HDMI_INFOFRAME_AVI_DB2C_EC_EXTENDED = 3,
+	HDMI_INFOFRAME_AVI_DB2M_NO = 0,
+	HDMI_INFOFRAME_AVI_DB2M_43 = 1,
+	HDMI_INFOFRAME_AVI_DB2M_169 = 2,
+	HDMI_INFOFRAME_AVI_DB2R_SAME = 8,
+	HDMI_INFOFRAME_AVI_DB2R_43 = 9,
+	HDMI_INFOFRAME_AVI_DB2R_169 = 10,
+	HDMI_INFOFRAME_AVI_DB2R_149 = 11,
+	HDMI_INFOFRAME_AVI_DB3ITC_NO = 0,
+	HDMI_INFOFRAME_AVI_DB3ITC_YES = 1,
+	HDMI_INFOFRAME_AVI_DB3EC_XVYUV601 = 0,
+	HDMI_INFOFRAME_AVI_DB3EC_XVYUV709 = 1,
+	HDMI_INFOFRAME_AVI_DB3Q_DEFAULT = 0,
+	HDMI_INFOFRAME_AVI_DB3Q_LR = 1,
+	HDMI_INFOFRAME_AVI_DB3Q_FR = 2,
+	HDMI_INFOFRAME_AVI_DB3SC_NO = 0,
+	HDMI_INFOFRAME_AVI_DB3SC_HORI = 1,
+	HDMI_INFOFRAME_AVI_DB3SC_VERT = 2,
+	HDMI_INFOFRAME_AVI_DB3SC_HORIVERT = 3,
+	HDMI_INFOFRAME_AVI_DB5PR_NO = 0,
+	HDMI_INFOFRAME_AVI_DB5PR_2 = 1,
+	HDMI_INFOFRAME_AVI_DB5PR_3 = 2,
+	HDMI_INFOFRAME_AVI_DB5PR_4 = 3,
+	HDMI_INFOFRAME_AVI_DB5PR_5 = 4,
+	HDMI_INFOFRAME_AVI_DB5PR_6 = 5,
+	HDMI_INFOFRAME_AVI_DB5PR_7 = 6,
+	HDMI_INFOFRAME_AVI_DB5PR_8 = 7,
+	HDMI_INFOFRAME_AVI_DB5PR_9 = 8,
+	HDMI_INFOFRAME_AVI_DB5PR_10 = 9
+};
+
+enum hdmi_packing_mode {
+	HDMI_PACK_10b_RGB_YUV444 = 0,
+	HDMI_PACK_24b_RGB_YUV444_YUV422 = 1,
+	HDMI_PACK_20b_YUV422 = 2,
+	HDMI_PACK_ALREADYPACKED = 7
+};
+
+struct hdmi_core_video_config {
+	enum hdmi_core_inputbus_width	ip_bus_width;
+	enum hdmi_core_dither_trunc	op_dither_truc;
+	enum hdmi_core_deepcolor_ed	deep_color_pkt;
+	enum hdmi_core_packet_mode	pkt_mode;
+	enum hdmi_core_hdmi_dvi		hdmi_dvi;
+	enum hdmi_core_tclkselclkmult	tclk_sel_clkmult;
+};
+
+/*
+ * Refer to section 8.2 in HDMI 1.3 specification for
+ * details about infoframe databytes
+ */
+struct hdmi_core_infoframe_avi {
+	u8	db1_format;
+		/* Y0, Y1 rgb,yCbCr */
+	u8	db1_active_info;
+		/* A0  Active information Present */
+	u8	db1_bar_info_dv;
+		/* B0, B1 Bar info data valid */
+	u8	db1_scan_info;
+		/* S0, S1 scan information */
+	u8	db2_colorimetry;
+		/* C0, C1 colorimetry */
+	u8	db2_aspect_ratio;
+		/* M0, M1 Aspect ratio (4:3, 16:9) */
+	u8	db2_active_fmt_ar;
+		/* R0...R3 Active format aspect ratio */
+	u8	db3_itc;
+		/* ITC IT content. */
+	u8	db3_ec;
+		/* EC0, EC1, EC2 Extended colorimetry */
+	u8	db3_q_range;
+		/* Q1, Q0 Quantization range */
+	u8	db3_nup_scaling;
+		/* SC1, SC0 Non-uniform picture scaling */
+	u8	db4_videocode;
+		/* VIC0..6 Video format identification */
+	u8	db5_pixel_repeat;
+		/* PR0..PR3 Pixel repetition factor */
+	u16	db6_7_line_eoftop;
+		/* Line number end of top bar */
+	u16	db8_9_line_sofbottom;
+		/* Line number start of bottom bar */
+	u16	db10_11_pixel_eofleft;
+		/* Pixel number end of left bar */
+	u16	db12_13_pixel_sofright;
+		/* Pixel number start of right bar */
+};
+
+struct hdmi_core_packet_enable_repeat {
+	u32	audio_pkt;
+	u32	audio_pkt_repeat;
+	u32	avi_infoframe;
+	u32	avi_infoframe_repeat;
+	u32	gen_cntrl_pkt;
+	u32	gen_cntrl_pkt_repeat;
+	u32	generic_pkt;
+	u32	generic_pkt_repeat;
+};
+
+struct hdmi_video_format {
+	enum hdmi_packing_mode	packing_mode;
+	u32			y_res;	/* Line per panel */
+	u32			x_res;	/* pixel per line */
+};
+
+struct hdmi_video_interface {
+	int	vsp;	/* Vsync polarity */
+	int	hsp;	/* Hsync polarity */
+	int	interlacing;
+	int	tm;	/* Timing mode */
+};
+
+struct hdmi_cm {
+	int	code;
+	int	mode;
+};
+
+struct hdmi_config {
+	struct hdmi_timings timings;
+	u16	interlace;
+	struct hdmi_cm cm;
+};
+
+#endif
-- 
1.5.6.3


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

* [PATCH v5 05/10] OMAP4 : DSS2 : HDMI: HDMI driver addition in the DSS
  2011-03-10 10:44       ` [PATCH v5 04/10] OMAP4 : DSS2 : HDMI: HDMI driver header file addition Mythri P K
@ 2011-03-10 10:44         ` Mythri P K
  2011-03-10 10:44           ` [PATCH v5 06/10] OMAP4 : DSS2 : HDMI: HDMI panel " Mythri P K
  2011-03-10 13:58           ` [PATCH v5 05/10] OMAP4 : DSS2 : HDMI: HDMI driver addition in the DSS Tomi Valkeinen
  0 siblings, 2 replies; 73+ messages in thread
From: Mythri P K @ 2011-03-10 10:44 UTC (permalink / raw)
  To: linux-omap, tomi.valkeinen; +Cc: Mythri P K

Adding the hdmi interface driver(hdmi.c) to the dss driver.
It configures the audio and video portion of HDMI based on
functionality called by the  panel driver.

Signed-off-by: Mythri P K <mythripk@ti.com>
		Yong Zhi <y-zhi@ti.com>
---
 drivers/video/omap2/dss/display.c |    3 +
 drivers/video/omap2/dss/dss.h     |   34 +
 drivers/video/omap2/dss/hdmi.c    | 1332 +++++++++++++++++++++++++++++++++++++
 3 files changed, 1369 insertions(+), 0 deletions(-)
 create mode 100644 drivers/video/omap2/dss/hdmi.c

diff --git a/drivers/video/omap2/dss/display.c b/drivers/video/omap2/dss/display.c
index c40bcbd..a85a6f3 100644
--- a/drivers/video/omap2/dss/display.c
+++ b/drivers/video/omap2/dss/display.c
@@ -418,6 +418,9 @@ void dss_init_device(struct platform_device *pdev,
 		r = dsi_init_display(dssdev);
 		break;
 #endif
+	case OMAP_DISPLAY_TYPE_HDMI:
+		r = hdmi_init_display(dssdev);
+		break;
 	default:
 		DSSERR("Support for display '%s' not compiled in.\n",
 				dssdev->name);
diff --git a/drivers/video/omap2/dss/dss.h b/drivers/video/omap2/dss/dss.h
index 9f563a6..6bf923c 100644
--- a/drivers/video/omap2/dss/dss.h
+++ b/drivers/video/omap2/dss/dss.h
@@ -179,6 +179,16 @@ struct dsi_clock_info {
 	bool use_sys_clk;
 };
 
+/* HDMI PLL structure */
+struct hdmi_pll_info {
+	u16 regn;
+	u16 regm;
+	u32 regmf;
+	u16 regm2;
+	u16 regsd;
+	u16 dcofreq;
+};
+
 struct seq_file;
 struct platform_device;
 
@@ -450,6 +460,30 @@ static inline void venc_uninit_platform_driver(void)
 }
 #endif
 
+/* HDMI */
+#ifdef CONFIG_OMAP4_DSS_HDMI
+int hdmi_init_platform_driver(void);
+void hdmi_uninit_platform_driver(void);
+int hdmi_init_display(struct omap_dss_device *dssdev);
+#else
+static inline int hdmi_init_display(struct omap_dss_device *dssdev)
+{
+	return 0;
+}
+static inline int hdmi_init_platform_driver(void)
+{
+	return 0;
+}
+static inline void hdmi_uninit_platform_driver(void)
+{
+}
+#endif
+int omapdss_hdmi_display_enable(struct omap_dss_device *dssdev);
+void omapdss_hdmi_display_disable(struct omap_dss_device *dssdev);
+void omapdss_hdmi_display_set_timing(struct omap_dss_device *dssdev);
+int omapdss_hdmi_display_check_timing(struct omap_dss_device *dssdev,
+					struct omap_video_timings *timings);
+
 /* RFBI */
 #ifdef CONFIG_OMAP2_DSS_RFBI
 int rfbi_init_platform_driver(void);
diff --git a/drivers/video/omap2/dss/hdmi.c b/drivers/video/omap2/dss/hdmi.c
new file mode 100644
index 0000000..e0e2cbb
--- /dev/null
+++ b/drivers/video/omap2/dss/hdmi.c
@@ -0,0 +1,1332 @@
+/*
+ * hdmi.c
+ *
+ * HDMI interface DSS driver setting for TI's OMAP4 family of processor.
+ * Copyright (C) 2010-2011 Texas Instruments Incorporated - http://www.ti.com/
+ * Authors: Yong Zhi
+ *	Mythri pk <mythripk@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/>.
+ */
+
+#define DSS_SUBSYS_NAME "HDMI"
+
+#include <linux/kernel.h>
+#include <linux/module.h>
+#include <linux/err.h>
+#include <linux/io.h>
+#include <linux/interrupt.h>
+#include <linux/mutex.h>
+#include <linux/delay.h>
+#include <linux/string.h>
+#include <plat/display.h>
+
+#include "dss.h"
+#include "hdmi.h"
+
+static struct {
+	struct mutex lock;
+	struct omap_display_platform_data *pdata;
+	struct platform_device *pdev;
+	void __iomem *base_wp;	/* HDMI wrapper */
+	int code;
+	int mode;
+	u8 edid[HDMI_EDID_MAX_LENGTH];
+	u8 edid_set;
+	bool custom_set;
+	struct hdmi_config cfg;
+} hdmi;
+
+/*
+ * Logic for the below structure :
+ * user enters the CEA or VESA timings by specifying the HDMI/DVI code.
+ * There is a correspondence between CEA/VESA timing and code , Please
+ * refer to section 6.3 in HDMI 1.3 specification for timing code.
+ * In the below structure, cea_vesa_timings corresponds to all OMAP4
+ * supported CEA and VESA timing values.
+ * code_cea corresponds to the CEA code , It is used to get the timing
+ * from cea_vesa_timing array. Similarly with code_vesa.
+ * code_index is used for back mapping, That is once EDID is read from
+ * the TV, EDID is parsed to find the timing values and then map it to
+ * corresponding CEA or VESA index.
+ */
+
+static const struct hdmi_timings cea_vesa_timings[OMAP_HDMI_TIMINGS_NB] = {
+	{ {640, 480, 25200, 96, 16, 48, 2, 10, 33} , 0 , 0},
+	{ {1280, 720, 74250, 40, 440, 220, 5, 5, 20}, 1, 1},
+	{ {1280, 720, 74250, 40, 110, 220, 5, 5, 20}, 1, 1},
+	{ {720, 480, 27027, 62, 16, 60, 6, 9, 30}, 0, 0},
+	{ {2880, 576, 108000, 256, 48, 272, 5, 5, 39}, 0, 0},
+	{ {1440, 240, 27027, 124, 38, 114, 3, 4, 15}, 0, 0},
+	{ {1440, 288, 27000, 126, 24, 138, 3, 2, 19}, 0, 0},
+	{ {1920, 540, 74250, 44, 528, 148, 5, 2, 15}, 1, 1},
+	{ {1920, 540, 74250, 44, 88, 148, 5, 2, 15}, 1, 1},
+	{ {1920, 1080, 148500, 44, 88, 148, 5, 4, 36}, 1, 1},
+	{ {720, 576, 27000, 64, 12, 68, 5, 5, 39}, 0, 0},
+	{ {1440, 576, 54000, 128, 24, 136, 5, 5, 39}, 0, 0},
+	{ {1920, 1080, 148500, 44, 528, 148, 5, 4, 36}, 1, 1},
+	{ {2880, 480, 108108, 248, 64, 240, 6, 9, 30}, 0, 0},
+	{ {1920, 1080, 74250, 44, 638, 148, 5, 4, 36}, 1, 1},
+	/* VESA From Here */
+	{ {640, 480, 25175, 96, 16, 48, 2 , 11, 31}, 0, 0},
+	{ {800, 600, 40000, 128, 40, 88, 4 , 1, 23}, 1, 1},
+	{ {848, 480, 33750, 112, 16, 112, 8 , 6, 23}, 1, 1},
+	{ {1280, 768, 79500, 128, 64, 192, 7 , 3, 20}, 1, 0},
+	{ {1280, 800, 83500, 128, 72, 200, 6 , 3, 22}, 1, 0},
+	{ {1360, 768, 85500, 112, 64, 256, 6 , 3, 18}, 1, 1},
+	{ {1280, 960, 108000, 112, 96, 312, 3 , 1, 36}, 1, 1},
+	{ {1280, 1024, 108000, 112, 48, 248, 3 , 1, 38}, 1, 1},
+	{ {1024, 768, 65000, 136, 24, 160, 6, 3, 29}, 0, 0},
+	{ {1400, 1050, 121750, 144, 88, 232, 4, 3, 32}, 1, 0},
+	{ {1440, 900, 106500, 152, 80, 232, 6, 3, 25}, 1, 0},
+	{ {1680, 1050, 146250, 176 , 104, 280, 6, 3, 30}, 1, 0},
+	{ {1366, 768, 85500, 143, 70, 213, 3, 3, 24}, 1, 1},
+	{ {1920, 1080, 148500, 44, 148, 80, 5, 4, 36}, 1, 1},
+	{ {1280, 768, 68250, 32, 48, 80, 7, 3, 12}, 0, 1},
+	{ {1400, 1050, 101000, 32, 48, 80, 4, 3, 23}, 0, 1},
+	{ {1680, 1050, 119000, 32, 48, 80, 6, 3, 21}, 0, 1},
+	{ {1280, 800, 79500, 32, 48, 80, 6, 3, 14}, 0, 1},
+	{ {1280, 720, 74250, 40, 110, 220, 5, 5, 20}, 1, 1}
+};
+
+/*
+ * This is a static mapping array which maps the timing values
+ * with corresponding CEA / VESA code
+ */
+static const int code_index[OMAP_HDMI_TIMINGS_NB] = {
+	1, 19, 4, 2, 37, 6, 21, 20, 5, 16, 17, 29, 31, 35, 32,
+	/* <--15 CEA 17--> vesa*/
+	4, 9, 0xE, 0x17, 0x1C, 0x27, 0x20, 0x23, 0x10, 0x2A,
+	0X2F, 0x3A, 0X51, 0X52, 0x16, 0x29, 0x39, 0x1B
+};
+
+/*
+ * This is reverse static mapping which maps the CEA / VESA code
+ * to the corresponding timing values
+ */
+static const int code_cea[39] = {
+	-1,  0,  3,  3,  2,  8,  5,  5, -1, -1,
+	-1, -1, -1, -1, -1, -1,  9, 10, 10,  1,
+	7,   6,  6, -1, -1, -1, -1, -1, -1, 11,
+	11, 12, 14, -1, -1, 13, 13,  4,  4
+};
+
+static const int code_vesa[85] = {
+	-1, -1, -1, -1, 15, -1, -1, -1, -1, 16,
+	-1, -1, -1, -1, 17, -1, 23, -1, -1, -1,
+	-1, -1, 29, 18, -1, -1, -1, 32, 19, -1,
+	-1, -1, 21, -1, -1, 22, -1, -1, -1, 20,
+	-1, 30, 24, -1, -1, -1, -1, 25, -1, -1,
+	-1, -1, -1, -1, -1, -1, -1, 31, 26, -1,
+	-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+	-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+	-1, 27, 28, -1, 33};
+
+static const u8 edid_header[8] = {0x0, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x0};
+
+static inline void hdmi_write_reg(const struct hdmi_reg idx, u32 val)
+{
+	__raw_writel(val, hdmi.base_wp + idx.idx);
+}
+
+static inline u32 hdmi_read_reg(const struct hdmi_reg idx)
+{
+	return __raw_readl(hdmi.base_wp + idx.idx);
+}
+
+static inline int hdmi_wait_for_bit_change(const struct hdmi_reg idx,
+				int b2, int b1, u32 val)
+{
+	u32 t = 0;
+	while (val != REG_GET(idx, b2, b1)) {
+		udelay(1);
+		if (t++ > 10000)
+			return !val;
+	}
+	return val;
+}
+
+int hdmi_init_display(struct omap_dss_device *dssdev)
+{
+	DSSDBG("init_display\n");
+
+	return 0;
+}
+
+static int hdmi_pll_init(enum hdmi_clk_refsel refsel, int dcofreq,
+		struct hdmi_pll_info *fmt, u16 sd)
+{
+	u32 r;
+
+	/* PLL start always use manual mode */
+	REG_FLD_MOD(PLLCTRL_PLL_CONTROL, 0x0, 0, 0);
+
+	r = hdmi_read_reg(PLLCTRL_CFG1);
+	r = FLD_MOD(r, fmt->regm, 20, 9); /* CFG1_PLL_REGM */
+	r = FLD_MOD(r, fmt->regn, 8, 1);  /* CFG1_PLL_REGN */
+
+	hdmi_write_reg(PLLCTRL_CFG1, r);
+
+	r = hdmi_read_reg(PLLCTRL_CFG2);
+
+	r = FLD_MOD(r, 0x0, 12, 12); /* PLL_HIGHFREQ divide by 2 */
+	r = FLD_MOD(r, 0x1, 13, 13); /* PLL_REFEN */
+	r = FLD_MOD(r, 0x0, 14, 14); /* PHY_CLKINEN de-assert during locking */
+
+	if (dcofreq) {
+		/* divider programming for frequency beyond 1000Mhz */
+		REG_FLD_MOD(PLLCTRL_CFG3, sd, 17, 10);
+		r = FLD_MOD(r, 0x4, 3, 1); /* 1000MHz and 2000MHz */
+	} else {
+		r = FLD_MOD(r, 0x2, 3, 1); /* 500MHz and 1000MHz */
+	}
+
+	hdmi_write_reg(PLLCTRL_CFG2, r);
+
+	r = hdmi_read_reg(PLLCTRL_CFG4);
+	r = FLD_MOD(r, fmt->regm2, 24, 18);
+	r = FLD_MOD(r, fmt->regmf, 17, 0);
+
+	hdmi_write_reg(PLLCTRL_CFG4, r);
+
+	/* go now */
+	REG_FLD_MOD(PLLCTRL_PLL_GO, 0x1, 0, 0);
+
+	/* wait for bit change */
+	if (hdmi_wait_for_bit_change(PLLCTRL_PLL_GO, 0, 0, 1) != 1) {
+		DSSERR("PLL GO bit not set\n");
+		return -ETIMEDOUT;
+	}
+
+	/* Wait till the lock bit is set in PLL status */
+	if (hdmi_wait_for_bit_change(PLLCTRL_PLL_STATUS, 1, 1, 1) != 1) {
+		DSSWARN("cannot lock PLL\n");
+		DSSWARN("CFG1 0x%x\n",
+			hdmi_read_reg(PLLCTRL_CFG1));
+		DSSWARN("CFG2 0x%x\n",
+			hdmi_read_reg(PLLCTRL_CFG2));
+		DSSWARN("CFG4 0x%x\n",
+			hdmi_read_reg(PLLCTRL_CFG4));
+		return -ETIMEDOUT;
+	}
+
+	DSSDBG("PLL locked!\n");
+
+	return 0;
+}
+
+/* PHY_PWR_CMD */
+static int hdmi_set_phy_pwr(enum hdmi_phy_pwr val)
+{
+	/* Command for power control of HDMI PHY */
+	REG_FLD_MOD(HDMI_WP_PWR_CTRL, val, 7, 6);
+
+	/* Status of the power control of HDMI PHY */
+	if (hdmi_wait_for_bit_change(HDMI_WP_PWR_CTRL, 5, 4, val) != val) {
+		DSSERR("Failed to set PHY power mode to %d\n", val);
+		return -ETIMEDOUT;
+	}
+
+	return 0;
+}
+
+/* PLL_PWR_CMD */
+static int hdmi_set_pll_pwr(enum hdmi_pll_pwr val)
+{
+	/* Command for power control of HDMI PLL */
+	REG_FLD_MOD(HDMI_WP_PWR_CTRL, val, 3, 2);
+
+	/* wait till PHY_PWR_STATUS is set */
+	if (hdmi_wait_for_bit_change(HDMI_WP_PWR_CTRL, 1, 0, val) != val) {
+		DSSERR("Failed to set PHY_PWR_STATUS\n");
+		return -ETIMEDOUT;
+	}
+
+	return 0;
+}
+
+static int hdmi_pll_reset(void)
+{
+	/* SYSRESET  controlled by power FSM */
+	REG_FLD_MOD(PLLCTRL_PLL_CONTROL, 0x0, 3, 3);
+
+	/* READ 0x0 reset is in progress */
+	if (hdmi_wait_for_bit_change(PLLCTRL_PLL_STATUS, 0, 0, 1) != 1) {
+		DSSERR("Failed to sysreset PLL\n");
+		return -ETIMEDOUT;
+	}
+
+	return 0;
+}
+
+static int hdmi_phy_init(void)
+{
+	u16 r = 0;
+
+	r = hdmi_set_phy_pwr(HDMI_PHYPWRCMD_LDOON);
+	if (r)
+		return r;
+
+	r = hdmi_set_phy_pwr(HDMI_PHYPWRCMD_TXON);
+	if (r)
+		return r;
+
+	/*
+	 * Read address 0 in order to get the SCP reset done completed
+	 * Dummy access performed to make sure reset is done
+	 */
+	hdmi_read_reg(HDMI_TXPHY_TX_CTRL);
+
+	/*
+	 * Write to phy address 0 to configure the clock
+	 * use HFBITCLK write HDMI_TXPHY_TX_CONTROL_FREQOUT field
+	 */
+	REG_FLD_MOD(HDMI_TXPHY_TX_CTRL, 0x1, 31, 30);
+
+	/* Write to phy address 1 to start HDMI line (TXVALID and TMDSCLKEN) */
+	hdmi_write_reg(HDMI_TXPHY_DIGITAL_CTRL, 0xF0000000);
+
+	/* Setup max LDO voltage */
+	REG_FLD_MOD(HDMI_TXPHY_POWER_CTRL, 0xB, 3, 0);
+
+	/* Write to phy address 3 to change the polarity control */
+	REG_FLD_MOD(HDMI_TXPHY_PAD_CFG_CTRL, 0x1, 27, 27);
+
+	return 0;
+}
+
+static int hdmi_wait_softreset(void)
+{
+	/* reset W1 */
+	REG_FLD_MOD(HDMI_WP_SYSCONFIG, 0x1, 0, 0);
+
+	/* wait till SOFTRESET == 0 */
+	if (hdmi_wait_for_bit_change(HDMI_WP_SYSCONFIG, 0, 0, 0) != 0) {
+		DSSERR("sysconfig reset failed\n");
+		return -ETIMEDOUT;
+	}
+
+	return 0;
+}
+
+static int hdmi_pll_program(struct hdmi_pll_info *fmt)
+{
+	u16 r = 0;
+	enum hdmi_clk_refsel refsel;
+
+	/* wait for wrapper reset */
+	r = hdmi_wait_softreset();
+	if (r)
+		return r;
+
+	r = hdmi_set_pll_pwr(HDMI_PLLPWRCMD_ALLOFF);
+	if (r)
+		return r;
+
+	r = hdmi_set_pll_pwr(HDMI_PLLPWRCMD_BOTHON_ALLCLKS);
+	if (r)
+		return r;
+
+	r = hdmi_pll_reset();
+	if (r)
+		return r;
+
+	refsel = HDMI_REFSEL_SYSCLK;
+
+	r = hdmi_pll_init(refsel, fmt->dcofreq, fmt, fmt->regsd);
+	if (r)
+		return r;
+
+	return 0;
+}
+
+static void hdmi_phy_off(void)
+{
+	hdmi_set_phy_pwr(HDMI_PHYPWRCMD_OFF);
+}
+
+static int hdmi_core_ddc_edid(u8 *pedid, int ext)
+{
+	u32 i, j;
+	char checksum = 0;
+	u32 offset = 0;
+
+	/* Turn on CLK for DDC */
+	REG_FLD_MOD(HDMI_CORE_AV_DPD, 0x7, 2, 0);
+
+	/*
+	 * SW HACK : Without the Delay DDC(i2c bus) reads 0 values /
+	 * right shifted values( The behavior is not consistent and seen only
+	 * with some TV's)
+	 */
+	usleep_range(800, 1000);
+
+	if (!ext) {
+		/* Clk SCL Devices */
+		REG_FLD_MOD(HDMI_CORE_DDC_CMD, 0xA, 3, 0);
+
+		/* HDMI_CORE_DDC_STATUS_IN_PROG */
+		if (hdmi_wait_for_bit_change(HDMI_CORE_DDC_STATUS,
+						4, 4, 0) != 0) {
+			DSSERR("Failed to program DDC\n");
+			return -ETIMEDOUT;
+		}
+
+		/* Clear FIFO */
+		REG_FLD_MOD(HDMI_CORE_DDC_CMD, 0x9, 3, 0);
+
+		/* HDMI_CORE_DDC_STATUS_IN_PROG */
+		if (hdmi_wait_for_bit_change(HDMI_CORE_DDC_STATUS,
+						4, 4, 0) != 0) {
+			DSSERR("Failed to program DDC\n");
+			return -ETIMEDOUT;
+		}
+
+	} else {
+		if (ext % 2 != 0)
+			offset = 0x80;
+	}
+
+	/* Load Segment Address Register */
+	REG_FLD_MOD(HDMI_CORE_DDC_SEGM, ext/2, 7, 0);
+
+	/* Load Slave Address Register */
+	REG_FLD_MOD(HDMI_CORE_DDC_ADDR, 0xA0 >> 1, 7, 1);
+
+	/* Load Offset Address Register */
+	REG_FLD_MOD(HDMI_CORE_DDC_OFFSET, offset, 7, 0);
+
+	/* Load Byte Count */
+	REG_FLD_MOD(HDMI_CORE_DDC_COUNT1, 0x80, 7, 0);
+	REG_FLD_MOD(HDMI_CORE_DDC_COUNT2, 0x0, 1, 0);
+
+	/* Set DDC_CMD */
+	if (ext)
+		REG_FLD_MOD(HDMI_CORE_DDC_CMD, 0x4, 3, 0);
+	else
+		REG_FLD_MOD(HDMI_CORE_DDC_CMD, 0x2, 3, 0);
+
+	/* HDMI_CORE_DDC_STATUS_BUS_LOW */
+	if (REG_GET(HDMI_CORE_DDC_STATUS, 6, 6) == 1) {
+		DSSWARN("I2C Bus Low?\n");
+		return -EIO;
+	}
+	/* HDMI_CORE_DDC_STATUS_NO_ACK */
+	if (REG_GET(HDMI_CORE_DDC_STATUS, 5, 5) == 1) {
+		DSSWARN("I2C No Ack\n");
+		return -EIO;
+	}
+
+	i = ext * 128;
+	j = 0;
+	while (((REG_GET(HDMI_CORE_DDC_STATUS, 4, 4) == 1) ||
+			(REG_GET(HDMI_CORE_DDC_STATUS, 2, 2) == 0)) &&
+			j < 128) {
+
+		if (REG_GET(HDMI_CORE_DDC_STATUS, 2, 2) == 0) {
+			/* FIFO not empty */
+			pedid[i++] = REG_GET(HDMI_CORE_DDC_DATA, 7, 0);
+			j++;
+		}
+	}
+
+	for (j = 0; j < 128; j++)
+		checksum += pedid[j];
+
+	if (checksum != 0) {
+		DSSERR("E-EDID checksum failed!!\n");
+		return -EIO;
+	}
+
+	return 0;
+}
+
+static int read_edid(u8 *pedid, u16 max_length)
+{
+	int r = 0, n = 0, i = 0;
+	int max_ext_blocks = (max_length / 128) - 1;
+
+	r = hdmi_core_ddc_edid(pedid, 0);
+	if (r) {
+		return r;
+	} else {
+		n = pedid[0x7e];
+
+		/*
+		 * README: need to comply with max_length set by the caller.
+		 * Better implementation should be to allocate necessary
+		 * memory to store EDID according to nb_block field found
+		 * in first block
+		 */
+		if (n > max_ext_blocks)
+			n = max_ext_blocks;
+
+		for (i = 1; i <= n; i++) {
+			r = hdmi_core_ddc_edid(pedid, i);
+			if (r)
+				return r;
+		}
+	}
+	return 0;
+}
+
+static int get_timings_index(void)
+{
+	int code;
+
+	if (hdmi.mode == 0)
+		code = code_vesa[hdmi.code];
+	else
+		code = code_cea[hdmi.code];
+
+	if (code == -1)	{
+		/* HDMI code 4 corresponds to 640 * 480 VGA */
+		hdmi.code = 4;
+		/* DVI mode 1 corresponds to HDMI 0 to DVI */
+		hdmi.mode = HDMI_DVI;
+
+		code = code_vesa[hdmi.code];
+	}
+	return code;
+}
+
+static struct hdmi_cm hdmi_get_code(struct omap_video_timings *timing)
+{
+	int i = 0, code = -1, temp_vsync = 0, temp_hsync = 0;
+	int timing_vsync = 0, timing_hsync = 0;
+	struct omap_video_timings temp;
+	struct hdmi_cm cm = {-1};
+	DSSDBG("hdmi_get_code\n");
+
+	for (i = 0; i < OMAP_HDMI_TIMINGS_NB; i++) {
+		temp = cea_vesa_timings[i].timings;
+		if ((temp.pixel_clock == timing->pixel_clock) &&
+			(temp.x_res == timing->x_res) &&
+			(temp.y_res == timing->y_res)) {
+
+			temp_hsync = temp.hfp + temp.hsw + temp.hbp;
+			timing_hsync = timing->hfp + timing->hsw + timing->hbp;
+			temp_vsync = temp.vfp + temp.vsw + temp.vbp;
+			timing_vsync = timing->vfp + timing->vsw + timing->vbp;
+
+			DSSDBG("temp_hsync = %d , temp_vsync = %d"
+				"timing_hsync = %d, timing_vsync = %d\n",
+				temp_hsync, temp_hsync,
+				timing_hsync, timing_vsync);
+
+			if ((temp_hsync == timing_hsync) &&
+					(temp_vsync == timing_vsync)) {
+				code = i;
+				cm.code = code_index[i];
+				if (code < 14)
+					cm.mode = HDMI_HDMI;
+				else
+					cm.mode = HDMI_DVI;
+				DSSDBG("Hdmi_code = %d mode = %d\n",
+					 cm.code, cm.mode);
+				break;
+			 }
+		}
+	}
+
+	return cm;
+}
+
+static void get_horz_vert_timing_info(int current_descriptor_addrs, u8 *edid ,
+		struct omap_video_timings *timings)
+{
+	/* X and Y resolution */
+	timings->x_res = (((edid[current_descriptor_addrs + 4] & 0xF0) << 4) |
+			 edid[current_descriptor_addrs + 2]);
+	timings->y_res = (((edid[current_descriptor_addrs + 7] & 0xF0) << 4) |
+			 edid[current_descriptor_addrs + 5]);
+
+	timings->pixel_clock = ((edid[current_descriptor_addrs + 1] << 8) |
+				edid[current_descriptor_addrs]);
+
+	timings->pixel_clock = 10 * timings->pixel_clock;
+
+	/* HORIZONTAL FRONT PORCH */
+	timings->hfp = edid[current_descriptor_addrs + 8] |
+			((edid[current_descriptor_addrs + 11] & 0xc0) << 2);
+	/* HORIZONTAL SYNC WIDTH */
+	timings->hsw = edid[current_descriptor_addrs + 9] |
+			((edid[current_descriptor_addrs + 11] & 0x30) << 4);
+	/* HORIZONTAL BACK PORCH */
+	timings->hbp = (((edid[current_descriptor_addrs + 4] & 0x0F) << 8) |
+			edid[current_descriptor_addrs + 3]) -
+			(timings->hfp + timings->hsw);
+	/* VERTICAL FRONT PORCH */
+	timings->vfp = ((edid[current_descriptor_addrs + 10] & 0xF0) >> 4) |
+			((edid[current_descriptor_addrs + 11] & 0x0f) << 2);
+	/* VERTICAL SYNC WIDTH */
+	timings->vsw = (edid[current_descriptor_addrs + 10] & 0x0F) |
+			((edid[current_descriptor_addrs + 11] & 0x03) << 4);
+	/* VERTICAL BACK PORCH */
+	timings->vbp = (((edid[current_descriptor_addrs + 7] & 0x0F) << 8) |
+			edid[current_descriptor_addrs + 6]) -
+			(timings->vfp + timings->vsw);
+
+}
+
+/* Description : This function gets the resolution information from EDID */
+static void get_edid_timing_data(u8 *edid)
+{
+	u8 count;
+	u16 current_descriptor_addrs;
+	struct hdmi_cm cm;
+	struct omap_video_timings edid_timings;
+
+	/* seach block 0, there are 4 DTDs arranged in priority order */
+	for (count = 0; count < EDID_SIZE_BLOCK0_TIMING_DESCRIPTOR; count++) {
+		current_descriptor_addrs =
+			EDID_DESCRIPTOR_BLOCK0_ADDRESS +
+			count * EDID_TIMING_DESCRIPTOR_SIZE;
+		get_horz_vert_timing_info(current_descriptor_addrs,
+				edid, &edid_timings);
+		cm = hdmi_get_code(&edid_timings);
+		DSSDBG("Block0[%d] value matches code = %d , mode = %d\n",
+			count, cm.code, cm.mode);
+		if (cm.code == -1) {
+			continue;
+		} else {
+			hdmi.code = cm.code;
+			hdmi.mode = cm.mode;
+			DSSDBG("code = %d , mode = %d\n",
+				hdmi.code, hdmi.mode);
+			return;
+		}
+	}
+	if (edid[0x7e] != 0x00) {
+		for (count = 0; count < EDID_SIZE_BLOCK1_TIMING_DESCRIPTOR;
+			count++) {
+			current_descriptor_addrs =
+			EDID_DESCRIPTOR_BLOCK1_ADDRESS +
+			count * EDID_TIMING_DESCRIPTOR_SIZE;
+			get_horz_vert_timing_info(current_descriptor_addrs,
+						edid, &edid_timings);
+			cm = hdmi_get_code(&edid_timings);
+			DSSDBG("Block1[%d] value matches code = %d, mode = %d",
+				count, cm.code, cm.mode);
+			if (cm.code == -1) {
+				continue;
+			} else {
+				hdmi.code = cm.code;
+				hdmi.mode = cm.mode;
+				DSSDBG("code = %d , mode = %d\n",
+					hdmi.code, hdmi.mode);
+				return;
+			}
+		}
+	}
+
+	DSSINFO("no valid timing found , falling back to VGA\n");
+	hdmi.code = 4; /* setting default value of 640 480 VGA */
+	hdmi.mode = HDMI_DVI;
+}
+
+static void hdmi_read_edid(struct omap_video_timings *dp)
+{
+	int ret = 0, code;
+
+	memset(hdmi.edid, 0, HDMI_EDID_MAX_LENGTH);
+
+	if (!hdmi.edid_set)
+		ret = read_edid(hdmi.edid, HDMI_EDID_MAX_LENGTH);
+
+	if (!ret) {
+		if (!memcmp(hdmi.edid, edid_header, sizeof(edid_header))) {
+			/* search for timings of default resolution */
+			get_edid_timing_data(hdmi.edid);
+			hdmi.edid_set = true;
+		}
+	} else {
+		DSSWARN("failed to read E-EDID\n");
+	}
+
+	if (!hdmi.edid_set) {
+		DSSINFO("fallback to VGA\n");
+		hdmi.code = 4; /* setting default value of 640 480 VGA */
+		hdmi.mode = HDMI_DVI;
+	}
+
+	code = get_timings_index();
+
+	*dp = cea_vesa_timings[code].timings;
+}
+
+static void hdmi_core_init(struct hdmi_core_video_config *video_cfg,
+			struct hdmi_core_infoframe_avi *avi_cfg,
+			struct hdmi_core_packet_enable_repeat *repeat_cfg)
+{
+	DSSDBG("Enter hdmi_core_init\n");
+
+	/* video core */
+	video_cfg->ip_bus_width = HDMI_INPUT_8BIT;
+	video_cfg->op_dither_truc = HDMI_OUTPUTTRUNCATION_8BIT;
+	video_cfg->deep_color_pkt = HDMI_DEEPCOLORPACKECTDISABLE;
+	video_cfg->pkt_mode = HDMI_PACKETMODERESERVEDVALUE;
+	video_cfg->hdmi_dvi = HDMI_DVI;
+	video_cfg->tclk_sel_clkmult = HDMI_FPLL10IDCK;
+
+	/* info frame */
+	avi_cfg->db1_format = 0;
+	avi_cfg->db1_active_info = 0;
+	avi_cfg->db1_bar_info_dv = 0;
+	avi_cfg->db1_scan_info = 0;
+	avi_cfg->db2_colorimetry = 0;
+	avi_cfg->db2_aspect_ratio = 0;
+	avi_cfg->db2_active_fmt_ar = 0;
+	avi_cfg->db3_itc = 0;
+	avi_cfg->db3_ec = 0;
+	avi_cfg->db3_q_range = 0;
+	avi_cfg->db3_nup_scaling = 0;
+	avi_cfg->db4_videocode = 0;
+	avi_cfg->db5_pixel_repeat = 0;
+	avi_cfg->db6_7_line_eoftop = 0 ;
+	avi_cfg->db8_9_line_sofbottom = 0;
+	avi_cfg->db10_11_pixel_eofleft = 0;
+	avi_cfg->db12_13_pixel_sofright = 0;
+
+	/* packet enable and repeat */
+	repeat_cfg->audio_pkt = 0;
+	repeat_cfg->audio_pkt_repeat = 0;
+	repeat_cfg->avi_infoframe = 0;
+	repeat_cfg->avi_infoframe_repeat = 0;
+	repeat_cfg->gen_cntrl_pkt = 0;
+	repeat_cfg->gen_cntrl_pkt_repeat = 0;
+	repeat_cfg->generic_pkt = 0;
+	repeat_cfg->generic_pkt_repeat = 0;
+}
+
+static void hdmi_core_powerdown_disable(void)
+{
+	DSSDBG("Enter hdmi_core_powerdown_disable\n");
+	REG_FLD_MOD(HDMI_CORE_CTRL1, 0x0, 0, 0);
+}
+
+static void hdmi_core_swreset_release(void)
+{
+	DSSDBG("Enter hdmi_core_swreset_release\n");
+	REG_FLD_MOD(HDMI_CORE_SYS_SRST, 0x0, 0, 0);
+}
+
+static void hdmi_core_swreset_assert(void)
+{
+	DSSDBG("Enter hdmi_core_swreset_assert\n");
+	REG_FLD_MOD(HDMI_CORE_SYS_SRST, 0x1, 0, 0);
+}
+
+/* DSS_HDMI_CORE_VIDEO_CONFIG */
+static void hdmi_core_video_config(struct hdmi_core_video_config *cfg)
+{
+	u32 r = 0;
+
+	/* sys_ctrl1 default configuration not tunable */
+	r = hdmi_read_reg(HDMI_CORE_CTRL1);
+	r = FLD_MOD(r, HDMI_CORE_CTRL1_VEN_FOLLOWVSYNC, 5, 5);
+	r = FLD_MOD(r, HDMI_CORE_CTRL1_HEN_FOLLOWHSYNC, 4, 4);
+	r = FLD_MOD(r, HDMI_CORE_CTRL1_BSEL_24BITBUS, 2, 2);
+	r = FLD_MOD(r, HDMI_CORE_CTRL1_EDGE_RISINGEDGE, 1, 1);
+	hdmi_write_reg(HDMI_CORE_CTRL1, r);
+
+	REG_FLD_MOD(HDMI_CORE_SYS_VID_ACEN, cfg->ip_bus_width, 7, 6);
+
+	/* Vid_Mode */
+	r = hdmi_read_reg(HDMI_CORE_SYS_VID_MODE);
+
+	/* dither truncation configuration */
+	if (cfg->op_dither_truc > HDMI_OUTPUTTRUNCATION_12BIT) {
+		r = FLD_MOD(r, cfg->op_dither_truc - 3, 7, 6);
+		r = FLD_MOD(r, 1, 5, 5);
+	} else {
+		r = FLD_MOD(r, cfg->op_dither_truc, 7, 6);
+		r = FLD_MOD(r, 0, 5, 5);
+	}
+	hdmi_write_reg(HDMI_CORE_SYS_VID_MODE, r);
+
+	/* HDMI_Ctrl */
+	r = hdmi_read_reg(HDMI_CORE_AV_HDMI_CTRL);
+	r = FLD_MOD(r, cfg->deep_color_pkt, 6, 6);
+	r = FLD_MOD(r, cfg->pkt_mode, 5, 3);
+	r = FLD_MOD(r, cfg->hdmi_dvi, 0, 0);
+	hdmi_write_reg(HDMI_CORE_AV_HDMI_CTRL, r);
+
+	/* TMDS_CTRL */
+	REG_FLD_MOD(HDMI_CORE_SYS_TMDS_CTRL,
+		cfg->tclk_sel_clkmult, 6, 5);
+}
+
+static void hdmi_core_aux_infoframe_avi_config(
+		struct hdmi_core_infoframe_avi info_avi)
+{
+	u32 val;
+	char sum = 0, checksum = 0;
+
+	sum += 0x82 + 0x002 + 0x00D;
+	hdmi_write_reg(HDMI_CORE_AV_AVI_TYPE, 0x082);
+	hdmi_write_reg(HDMI_CORE_AV_AVI_VERS, 0x002);
+	hdmi_write_reg(HDMI_CORE_AV_AVI_LEN, 0x00D);
+
+	val = (info_avi.db1_format << 5) |
+		(info_avi.db1_active_info << 4) |
+		(info_avi.db1_bar_info_dv << 2) |
+		(info_avi.db1_scan_info);
+	hdmi_write_reg(HDMI_CORE_AV_AVI_DBYTE(0), val);
+	sum += val;
+
+	val = (info_avi.db2_colorimetry << 6) |
+		(info_avi.db2_aspect_ratio << 4) |
+		(info_avi.db2_active_fmt_ar);
+	hdmi_write_reg(HDMI_CORE_AV_AVI_DBYTE(1), val);
+	sum += val;
+
+	val = (info_avi.db3_itc << 7) |
+		(info_avi.db3_ec << 4) |
+		(info_avi.db3_q_range << 2) |
+		(info_avi.db3_nup_scaling);
+	hdmi_write_reg(HDMI_CORE_AV_AVI_DBYTE(2), val);
+	sum += val;
+
+	hdmi_write_reg(HDMI_CORE_AV_AVI_DBYTE(3), info_avi.db4_videocode);
+	sum += info_avi.db4_videocode;
+
+	val = info_avi.db5_pixel_repeat;
+	hdmi_write_reg(HDMI_CORE_AV_AVI_DBYTE(4), val);
+	sum += val;
+
+	val = info_avi.db6_7_line_eoftop & 0x00FF;
+	hdmi_write_reg(HDMI_CORE_AV_AVI_DBYTE(5), val);
+	sum += val;
+
+	val = ((info_avi.db6_7_line_eoftop >> 8) & 0x00FF);
+	hdmi_write_reg(HDMI_CORE_AV_AVI_DBYTE(6), val);
+	sum += val;
+
+	val = info_avi.db8_9_line_sofbottom & 0x00FF;
+	hdmi_write_reg(HDMI_CORE_AV_AVI_DBYTE(7), val);
+	sum += val;
+
+	val = ((info_avi.db8_9_line_sofbottom >> 8) & 0x00FF);
+	hdmi_write_reg(HDMI_CORE_AV_AVI_DBYTE(8), val);
+	sum += val;
+
+	val = info_avi.db10_11_pixel_eofleft & 0x00FF;
+	hdmi_write_reg(HDMI_CORE_AV_AVI_DBYTE(9), val);
+	sum += val;
+
+	val = ((info_avi.db10_11_pixel_eofleft >> 8) & 0x00FF);
+	hdmi_write_reg(HDMI_CORE_AV_AVI_DBYTE(10), val);
+	sum += val;
+
+	val = info_avi.db12_13_pixel_sofright & 0x00FF;
+	hdmi_write_reg(HDMI_CORE_AV_AVI_DBYTE(11), val);
+	sum += val;
+
+	val = ((info_avi.db12_13_pixel_sofright >> 8) & 0x00FF);
+	hdmi_write_reg(HDMI_CORE_AV_AVI_DBYTE(12), val);
+	sum += val;
+
+	checksum = 0x100 - sum;
+	hdmi_write_reg(HDMI_CORE_AV_AVI_CHSUM, checksum);
+}
+
+static void hdmi_core_av_packet_config(
+		struct hdmi_core_packet_enable_repeat repeat_cfg)
+{
+	/* enable/repeat the infoframe */
+	hdmi_write_reg(HDMI_CORE_AV_PB_CTRL1,
+		(repeat_cfg.audio_pkt << 5) |
+		(repeat_cfg.audio_pkt_repeat << 4) |
+		(repeat_cfg.avi_infoframe << 1) |
+		(repeat_cfg.avi_infoframe_repeat));
+
+	/* enable/repeat the packet */
+	hdmi_write_reg(HDMI_CORE_AV_PB_CTRL2,
+		(repeat_cfg.gen_cntrl_pkt << 3) |
+		(repeat_cfg.gen_cntrl_pkt_repeat << 2) |
+		(repeat_cfg.generic_pkt << 1) |
+		(repeat_cfg.generic_pkt_repeat));
+}
+
+static void hdmi_wp_init(struct omap_video_timings *timings,
+			struct hdmi_video_format *video_fmt,
+			struct hdmi_video_interface *video_int)
+{
+	DSSDBG("Enter hdmi_wp_init\n");
+
+	timings->hbp = 0;
+	timings->hfp = 0;
+	timings->hsw = 0;
+	timings->vbp = 0;
+	timings->vfp = 0;
+	timings->vsw = 0;
+
+	video_fmt->packing_mode = HDMI_PACK_10b_RGB_YUV444;
+	video_fmt->y_res = 0;
+	video_fmt->x_res = 0;
+
+	video_int->vsp = 0;
+	video_int->hsp = 0;
+
+	video_int->interlacing = 0;
+	video_int->tm = 0; /* HDMI_TIMING_SLAVE */
+
+}
+
+static void hdmi_wp_video_start(bool start)
+{
+	REG_FLD_MOD(HDMI_WP_VIDEO_CFG, start, 31, 31);
+}
+
+static void hdmi_wp_video_init_format(struct hdmi_video_format *video_fmt,
+	struct omap_video_timings *timings, struct hdmi_config *param)
+{
+	DSSDBG("Enter hdmi_wp_video_init_format\n");
+
+	video_fmt->y_res = param->timings.timings.y_res;
+	video_fmt->x_res = param->timings.timings.x_res;
+
+	timings->hbp = param->timings.timings.hbp;
+	timings->hfp = param->timings.timings.hfp;
+	timings->hsw = param->timings.timings.hsw;
+	timings->vbp = param->timings.timings.vbp;
+	timings->vfp = param->timings.timings.vfp;
+	timings->vsw = param->timings.timings.vsw;
+}
+
+static void hdmi_wp_video_config_format(
+		struct hdmi_video_format *video_fmt)
+{
+	u32 l = 0;
+
+	REG_FLD_MOD(HDMI_WP_VIDEO_CFG, video_fmt->packing_mode, 10, 8);
+
+	l |= FLD_VAL(video_fmt->y_res, 31, 16);
+	l |= FLD_VAL(video_fmt->x_res, 15, 0);
+	hdmi_write_reg(HDMI_WP_VIDEO_SIZE, l);
+}
+
+static void hdmi_wp_video_config_interface(
+		struct hdmi_video_interface *video_int)
+{
+	u32 r;
+	DSSDBG("Enter hdmi_wp_video_config_interface\n");
+
+	r = hdmi_read_reg(HDMI_WP_VIDEO_CFG);
+	r = FLD_MOD(r, video_int->vsp, 7, 7);
+	r = FLD_MOD(r, video_int->hsp, 6, 6);
+	r = FLD_MOD(r, video_int->interlacing, 3, 3);
+	r = FLD_MOD(r, video_int->tm, 1, 0);
+	hdmi_write_reg(HDMI_WP_VIDEO_CFG, r);
+}
+
+static void hdmi_wp_video_config_timing(
+		struct omap_video_timings *timings)
+{
+	u32 timing_h = 0;
+	u32 timing_v = 0;
+
+	DSSDBG("Enter hdmi_wp_video_config_timing\n");
+
+	timing_h |= FLD_VAL(timings->hbp, 31, 20);
+	timing_h |= FLD_VAL(timings->hfp, 19, 8);
+	timing_h |= FLD_VAL(timings->hsw, 7, 0);
+	hdmi_write_reg(HDMI_WP_VIDEO_TIMING_H, timing_h);
+
+	timing_v |= FLD_VAL(timings->vbp, 31, 20);
+	timing_v |= FLD_VAL(timings->vfp, 19, 8);
+	timing_v |= FLD_VAL(timings->vsw, 7, 0);
+	hdmi_write_reg(HDMI_WP_VIDEO_TIMING_V, timing_v);
+}
+
+static void hdmi_basic_configure(struct hdmi_config *cfg)
+{
+	/* HDMI */
+	struct omap_video_timings video_timing;
+	struct hdmi_video_format video_format;
+	struct hdmi_video_interface video_interface;
+	/* HDMI core */
+	struct hdmi_core_infoframe_avi avi_cfg;
+	struct hdmi_core_video_config v_core_cfg;
+	struct hdmi_core_packet_enable_repeat repeat_cfg;
+
+	hdmi_wp_init(&video_timing, &video_format,
+		&video_interface);
+
+	hdmi_core_init(&v_core_cfg,
+		&avi_cfg,
+		&repeat_cfg);
+
+	hdmi_wp_video_init_format(&video_format,
+			&video_timing, cfg);
+
+	hdmi_wp_video_config_timing(&video_timing);
+
+	/* video config */
+	video_format.packing_mode = HDMI_PACK_24b_RGB_YUV444_YUV422;
+
+	hdmi_wp_video_config_format(&video_format);
+
+	video_interface.vsp = cfg->timings.vsync_pol;
+	video_interface.hsp = cfg->timings.hsync_pol;
+	video_interface.interlacing = cfg->interlace;
+	video_interface.tm = 1 ; /* HDMI_TIMING_MASTER_24BIT */
+
+	hdmi_wp_video_config_interface(&video_interface);
+
+	/*
+	 * configure core video part
+	 * set software reset in the core
+	 */
+	hdmi_core_swreset_assert();
+
+	/* power down off */
+	hdmi_core_powerdown_disable();
+
+	v_core_cfg.pkt_mode = HDMI_PACKETMODE24BITPERPIXEL;
+	v_core_cfg.hdmi_dvi = cfg->cm.mode;
+
+	hdmi_core_video_config(&v_core_cfg);
+
+	/* release software reset in the core */
+	hdmi_core_swreset_release();
+
+	/*
+	 * configure packet
+	 * info frame video see doc CEA861-D page 65
+	 */
+	avi_cfg.db1_format = HDMI_INFOFRAME_AVI_DB1Y_RGB;
+	avi_cfg.db1_active_info =
+		HDMI_INFOFRAME_AVI_DB1A_ACTIVE_FORMAT_OFF;
+	avi_cfg.db1_bar_info_dv = HDMI_INFOFRAME_AVI_DB1B_NO;
+	avi_cfg.db1_scan_info = HDMI_INFOFRAME_AVI_DB1S_0;
+	avi_cfg.db2_colorimetry = HDMI_INFOFRAME_AVI_DB2C_NO;
+	avi_cfg.db2_aspect_ratio = HDMI_INFOFRAME_AVI_DB2M_NO;
+	avi_cfg.db2_active_fmt_ar = HDMI_INFOFRAME_AVI_DB2R_SAME;
+	avi_cfg.db3_itc = HDMI_INFOFRAME_AVI_DB3ITC_NO;
+	avi_cfg.db3_ec = HDMI_INFOFRAME_AVI_DB3EC_XVYUV601;
+	avi_cfg.db3_q_range = HDMI_INFOFRAME_AVI_DB3Q_DEFAULT;
+	avi_cfg.db3_nup_scaling = HDMI_INFOFRAME_AVI_DB3SC_NO;
+	avi_cfg.db4_videocode = cfg->cm.code;
+	avi_cfg.db5_pixel_repeat = HDMI_INFOFRAME_AVI_DB5PR_NO;
+	avi_cfg.db6_7_line_eoftop = 0;
+	avi_cfg.db8_9_line_sofbottom = 0;
+	avi_cfg.db10_11_pixel_eofleft = 0;
+	avi_cfg.db12_13_pixel_sofright = 0;
+
+	hdmi_core_aux_infoframe_avi_config(avi_cfg);
+
+	/* enable/repeat the infoframe */
+	repeat_cfg.avi_infoframe = HDMI_PACKETENABLE;
+	repeat_cfg.avi_infoframe_repeat = HDMI_PACKETREPEATON;
+	/* wakeup */
+	repeat_cfg.audio_pkt = HDMI_PACKETENABLE;
+	repeat_cfg.audio_pkt_repeat = HDMI_PACKETREPEATON;
+	hdmi_core_av_packet_config(repeat_cfg);
+}
+
+static void update_hdmi_timings(struct hdmi_config *cfg,
+		struct omap_video_timings *timings, int code)
+{
+	cfg->timings.timings.x_res = timings->x_res;
+	cfg->timings.timings.y_res = timings->y_res;
+	cfg->timings.timings.hbp = timings->hbp;
+	cfg->timings.timings.hfp = timings->hfp;
+	cfg->timings.timings.hsw = timings->hsw;
+	cfg->timings.timings.vbp = timings->vbp;
+	cfg->timings.timings.vfp = timings->vfp;
+	cfg->timings.timings.vsw = timings->vsw;
+	cfg->timings.timings.pixel_clock = timings->pixel_clock;
+	cfg->timings.vsync_pol = cea_vesa_timings[code].vsync_pol;
+	cfg->timings.hsync_pol = cea_vesa_timings[code].hsync_pol;
+}
+
+static void hdmi_compute_pll(unsigned long clkin, int phy,
+	int n, struct hdmi_pll_info *pi)
+{
+	unsigned long refclk;
+	u32 mf;
+
+	/*
+	 * Input clock is predivided by N + 1
+	 * out put of which is reference clk
+	 */
+	refclk = clkin / (n + 1);
+	pi->regn = n;
+
+	/*
+	 * multiplier is pixel_clk/ref_clk
+	 * Multiplying by 100 to avoid fractional part removal
+	 */
+	pi->regm = (phy * 100/(refclk))/100;
+	pi->regm2 = 1;
+
+	/*
+	 * fractional multiplier is remainder of the difference between
+	 * multiplier and actual phy(required pixel clock thus should be
+	 * multiplied by 2^18(262144) divided by the reference clock
+	 */
+	mf = (phy - pi->regm * refclk) * 262144;
+	pi->regmf = mf/(refclk);
+
+	/*
+	 * Dcofreq should be set to 1 if required pixel clock
+	 * is greater than 1000MHz
+	 */
+	pi->dcofreq = phy > 1000 * 100;
+	pi->regsd = ((pi->regm * clkin / 10) / ((n + 1) * 250) + 5) / 10;
+
+	DSSDBG("M = %d Mf = %d\n", pi->regm, pi->regmf);
+	DSSDBG("range = %d sd = %d\n", pi->dcofreq, pi->regsd);
+}
+
+static void hdmi_enable_clocks(int enable)
+{
+	if (enable)
+		dss_clk_enable(DSS_CLK_ICK | DSS_CLK_FCK |
+				DSS_CLK_SYSCK | DSS_CLK_VIDFCK);
+	else
+		dss_clk_disable(DSS_CLK_ICK | DSS_CLK_FCK |
+				DSS_CLK_SYSCK | DSS_CLK_VIDFCK);
+}
+
+static int hdmi_power_on(struct omap_dss_device *dssdev)
+{
+	int r, code = 0;
+	struct hdmi_pll_info pll_data;
+	struct omap_video_timings *p;
+	int clkin, n, phy;
+
+	hdmi_enable_clocks(1);
+
+	dispc_enable_channel(OMAP_DSS_CHANNEL_DIGIT, 0);
+
+	p = &dssdev->panel.timings;
+
+	DSSDBG("hdmi_power_on x_res= %d y_res = %d\n",
+		dssdev->panel.timings.x_res,
+		dssdev->panel.timings.y_res);
+
+	if (!hdmi.custom_set) {
+		DSSDBG("Read EDID as no EDID is not set on poweron\n");
+		hdmi_read_edid(p);
+	}
+	code = get_timings_index();
+	dssdev->panel.timings = cea_vesa_timings[code].timings;
+	update_hdmi_timings(&hdmi.cfg, p, code);
+
+	clkin = 3840; /* 38.4 MHz */
+	n = 15; /* this is a constant for our math */
+	phy = p->pixel_clock;
+
+	hdmi_compute_pll(clkin, phy, n, &pll_data);
+
+	hdmi_wp_video_start(0);
+
+	/* config the PLL and PHY first */
+	r = hdmi_pll_program(&pll_data);
+	if (r) {
+		DSSDBG("Failed to lock PLL\n");
+		goto err;
+	}
+
+	r = hdmi_phy_init();
+	if (r) {
+		DSSDBG("Failed to start PHY\n");
+		goto err;
+	}
+
+	hdmi.cfg.cm.mode = hdmi.mode;
+	hdmi.cfg.cm.code = hdmi.code;
+	hdmi_basic_configure(&hdmi.cfg);
+
+	/* Make selection of HDMI in DSS */
+	dss_select_hdmi_venc_clk_source(DSS_HDMI_M_PCLK);
+
+	/* Select the dispc clock source as PRCM clock, to ensure that it is not
+	 * DSI PLL source as the clock selected by DSI PLL might not be
+	 * sufficient for the resolution selected / that can be changed
+	 * dynamically by user. This can be moved to single location , say
+	 * Boardfile.
+	 */
+	dss_select_dispc_clk_source(DSS_CLK_SRC_FCK);
+
+	/* bypass TV gamma table */
+	dispc_enable_gamma_table(0);
+
+	/* tv size */
+	dispc_set_digit_size(dssdev->panel.timings.x_res,
+			dssdev->panel.timings.y_res);
+
+	dispc_enable_channel(OMAP_DSS_CHANNEL_DIGIT, 1);
+
+	hdmi_wp_video_start(1);
+
+	return 0;
+err:
+	hdmi_enable_clocks(0);
+	return -EIO;
+}
+
+static void hdmi_power_off(struct omap_dss_device *dssdev)
+{
+	dispc_enable_channel(OMAP_DSS_CHANNEL_DIGIT, 0);
+
+	hdmi_wp_video_start(0);
+	hdmi_phy_off();
+	hdmi_set_pll_pwr(HDMI_PLLPWRCMD_ALLOFF);
+	hdmi_enable_clocks(0);
+
+	hdmi.edid_set = 0;
+}
+
+int omapdss_hdmi_display_check_timing(struct omap_dss_device *dssdev,
+					struct omap_video_timings *timings)
+{
+	struct hdmi_cm cm;
+
+	cm = hdmi_get_code(timings);
+	if (cm.code == -1) {
+		DSSERR("Invalid timing entered\n");
+		return -EINVAL;
+	}
+
+	return 0;
+
+}
+
+void omapdss_hdmi_display_set_timing(struct omap_dss_device *dssdev)
+{
+	struct hdmi_cm cm;
+
+	hdmi.custom_set = 1;
+	cm = hdmi_get_code(&dssdev->panel.timings);
+	hdmi.code = cm.code;
+	hdmi.mode = cm.mode;
+	omapdss_hdmi_display_enable(dssdev);
+	hdmi.custom_set = 0;
+}
+
+int omapdss_hdmi_display_enable(struct omap_dss_device *dssdev)
+{
+	int r = 0;
+
+	DSSDBG("ENTER hdmi_display_enable\n");
+
+	mutex_lock(&hdmi.lock);
+
+	r = omap_dss_start_device(dssdev);
+	if (r) {
+		DSSERR("failed to start device\n");
+		goto err0;
+	}
+
+	if (dssdev->platform_enable) {
+		r = dssdev->platform_enable(dssdev);
+		if (r) {
+			DSSERR("failed to enable GPIO's\n");
+			goto err1;
+		}
+	}
+
+	r = hdmi_power_on(dssdev);
+	if (r) {
+		DSSERR("failed to power on device\n");
+		goto err2;
+	}
+
+	mutex_unlock(&hdmi.lock);
+	return 0;
+
+err2:
+	if (dssdev->platform_disable)
+		dssdev->platform_disable(dssdev);
+err1:
+	omap_dss_stop_device(dssdev);
+err0:
+	mutex_unlock(&hdmi.lock);
+	return r;
+}
+
+void omapdss_hdmi_display_disable(struct omap_dss_device *dssdev)
+{
+	DSSDBG("Enter hdmi_display_disable\n");
+
+	mutex_lock(&hdmi.lock);
+
+	hdmi_power_off(dssdev);
+
+	if (dssdev->platform_disable)
+		dssdev->platform_disable(dssdev);
+
+	omap_dss_stop_device(dssdev);
+
+	mutex_unlock(&hdmi.lock);
+}
+
+/* HDMI HW IP initialisation */
+static int omapdss_hdmihw_probe(struct platform_device *pdev)
+{
+	struct resource *hdmi_mem;
+
+	hdmi.pdata = pdev->dev.platform_data;
+	hdmi.pdev = pdev;
+
+	mutex_init(&hdmi.lock);
+
+	hdmi_mem = platform_get_resource(hdmi.pdev, IORESOURCE_MEM, 0);
+	if (!hdmi_mem) {
+		DSSERR("can't get IORESOURCE_MEM HDMI\n");
+		return -EINVAL;
+	}
+
+	/* Base address taken from platform */
+	hdmi.base_wp = ioremap(hdmi_mem->start, resource_size(hdmi_mem));
+	if (!hdmi.base_wp) {
+		DSSERR("can't ioremap WP\n");
+		return -ENOMEM;
+	}
+
+	hdmi_panel_init();
+
+	return 0;
+}
+
+static int omapdss_hdmihw_remove(struct platform_device *pdev)
+{
+	hdmi_panel_exit();
+
+	iounmap(hdmi.base_wp);
+
+	return 0;
+}
+
+static struct platform_driver omapdss_hdmihw_driver = {
+	.probe          = omapdss_hdmihw_probe,
+	.remove         = omapdss_hdmihw_remove,
+	.driver         = {
+		.name   = "omapdss_hdmi",
+		.owner  = THIS_MODULE,
+	},
+};
+
+int hdmi_init_platform_driver(void)
+{
+	return platform_driver_register(&omapdss_hdmihw_driver);
+}
+
+void hdmi_uninit_platform_driver(void)
+{
+	return platform_driver_unregister(&omapdss_hdmihw_driver);
+}
-- 
1.5.6.3


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

* [PATCH v5 06/10] OMAP4 : DSS2 : HDMI: HDMI panel driver addition in the DSS
  2011-03-10 10:44         ` [PATCH v5 05/10] OMAP4 : DSS2 : HDMI: HDMI driver addition in the DSS Mythri P K
@ 2011-03-10 10:44           ` Mythri P K
  2011-03-10 10:44             ` [PATCH v5 07/10] OMAP4 : DSS2 : HDMI: Add makefile and kconfig changes to enable HDMI in OMAP4 Mythri P K
  2011-03-10 13:58           ` [PATCH v5 05/10] OMAP4 : DSS2 : HDMI: HDMI driver addition in the DSS Tomi Valkeinen
  1 sibling, 1 reply; 73+ messages in thread
From: Mythri P K @ 2011-03-10 10:44 UTC (permalink / raw)
  To: linux-omap, tomi.valkeinen; +Cc: Mythri P K

The panel driver(hdmi_omap4_panel.c) in omap2/dss acts as a controller
to manage the enable and disable requests and synchronize audio and video.

Signed-off-by: Mythri P K <mythripk@ti.com>
---
 drivers/video/omap2/dss/dss.h              |    2 +
 drivers/video/omap2/dss/hdmi_omap4_panel.c |  222 ++++++++++++++++++++++++++++
 2 files changed, 224 insertions(+), 0 deletions(-)
 create mode 100644 drivers/video/omap2/dss/hdmi_omap4_panel.c

diff --git a/drivers/video/omap2/dss/dss.h b/drivers/video/omap2/dss/dss.h
index 6bf923c..05ccd00 100644
--- a/drivers/video/omap2/dss/dss.h
+++ b/drivers/video/omap2/dss/dss.h
@@ -483,6 +483,8 @@ void omapdss_hdmi_display_disable(struct omap_dss_device *dssdev);
 void omapdss_hdmi_display_set_timing(struct omap_dss_device *dssdev);
 int omapdss_hdmi_display_check_timing(struct omap_dss_device *dssdev,
 					struct omap_video_timings *timings);
+int hdmi_panel_init(void);
+void hdmi_panel_exit(void);
 
 /* RFBI */
 #ifdef CONFIG_OMAP2_DSS_RFBI
diff --git a/drivers/video/omap2/dss/hdmi_omap4_panel.c b/drivers/video/omap2/dss/hdmi_omap4_panel.c
new file mode 100644
index 0000000..ffb5de9
--- /dev/null
+++ b/drivers/video/omap2/dss/hdmi_omap4_panel.c
@@ -0,0 +1,222 @@
+/*
+ * hdmi_omap4_panel.c
+ *
+ * HDMI library support functions for TI OMAP4 processors.
+ *
+ * Copyright (C) 2010-2011 Texas Instruments Incorporated - http://www.ti.com/
+ * Authors:	Mythri P k <mythripk@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/kernel.h>
+#include <linux/err.h>
+#include <linux/io.h>
+#include <linux/mutex.h>
+#include <linux/module.h>
+#include <plat/display.h>
+
+#include "dss.h"
+
+static struct {
+	struct mutex hdmi_lock;
+} hdmi;
+
+
+static int hdmi_panel_probe(struct omap_dss_device *dssdev)
+{
+	DSSDBG("ENTER hdmi_panel_probe\n");
+
+	dssdev->panel.config = OMAP_DSS_LCD_TFT |
+			OMAP_DSS_LCD_IVS | OMAP_DSS_LCD_IHS;
+
+	/*
+	 * Initialize the timings to 640 * 480
+	 * This is only for framebuffer update not for TV timing setting
+	 * Setting TV timing will be done only on enable
+	 */
+	dssdev->panel.timings.x_res = 640;
+	dssdev->panel.timings.y_res = 480;
+
+	DSSDBG("hdmi_panel_probe x_res= %d y_res = %d\n",
+		dssdev->panel.timings.x_res,
+		dssdev->panel.timings.y_res);
+	return 0;
+}
+
+static void hdmi_panel_remove(struct omap_dss_device *dssdev)
+{
+
+}
+
+static int hdmi_panel_enable(struct omap_dss_device *dssdev)
+{
+	int r = 0;
+	DSSDBG("ENTER hdmi_panel_enable\n");
+
+	mutex_lock(&hdmi.hdmi_lock);
+
+	if (dssdev->state != OMAP_DSS_DISPLAY_DISABLED) {
+		r = -EINVAL;
+		goto err;
+	}
+
+	r = omapdss_hdmi_display_enable(dssdev);
+	if (r) {
+		DSSERR("failed to power on\n");
+		goto err;
+	}
+
+	dssdev->state = OMAP_DSS_DISPLAY_ACTIVE;
+
+err:
+	mutex_unlock(&hdmi.hdmi_lock);
+
+	return r;
+}
+
+static void hdmi_panel_disable(struct omap_dss_device *dssdev)
+{
+	mutex_lock(&hdmi.hdmi_lock);
+
+	if (dssdev->state == OMAP_DSS_DISPLAY_ACTIVE)
+		omapdss_hdmi_display_disable(dssdev);
+
+	dssdev->state = OMAP_DSS_DISPLAY_DISABLED;
+
+	mutex_unlock(&hdmi.hdmi_lock);
+}
+
+static int hdmi_panel_suspend(struct omap_dss_device *dssdev)
+{
+	int r = 0;
+
+	mutex_lock(&hdmi.hdmi_lock);
+
+	if (dssdev->state != OMAP_DSS_DISPLAY_ACTIVE) {
+		r = -EINVAL;
+		goto err;
+	}
+
+	dssdev->state = OMAP_DSS_DISPLAY_SUSPENDED;
+
+	omapdss_hdmi_display_disable(dssdev);
+
+err:
+	mutex_unlock(&hdmi.hdmi_lock);
+
+	return r;
+}
+
+static int hdmi_panel_resume(struct omap_dss_device *dssdev)
+{
+	int r = 0;
+
+	mutex_lock(&hdmi.hdmi_lock);
+
+	if (dssdev->state != OMAP_DSS_DISPLAY_SUSPENDED) {
+		r = -EINVAL;
+		goto err;
+	}
+
+	r = omapdss_hdmi_display_enable(dssdev);
+	if (r) {
+		DSSERR("failed to power on\n");
+		goto err;
+	}
+
+	dssdev->state = OMAP_DSS_DISPLAY_ACTIVE;
+
+err:
+	mutex_unlock(&hdmi.hdmi_lock);
+
+	return r;
+}
+
+static void hdmi_get_timings(struct omap_dss_device *dssdev,
+			struct omap_video_timings *timings)
+{
+	mutex_lock(&hdmi.hdmi_lock);
+
+	*timings = dssdev->panel.timings;
+
+	mutex_unlock(&hdmi.hdmi_lock);
+}
+
+static void hdmi_set_timings(struct omap_dss_device *dssdev,
+			struct omap_video_timings *timings)
+{
+	DSSDBG("hdmi_set_timings\n");
+
+	mutex_lock(&hdmi.hdmi_lock);
+
+	dssdev->panel.timings = *timings;
+
+	if (dssdev->state == OMAP_DSS_DISPLAY_ACTIVE) {
+		/* turn the hdmi off and on to get new timings to use */
+		omapdss_hdmi_display_disable(dssdev);
+		omapdss_hdmi_display_set_timing(dssdev);
+	}
+
+	mutex_unlock(&hdmi.hdmi_lock);
+}
+
+static int hdmi_check_timings(struct omap_dss_device *dssdev,
+			struct omap_video_timings *timings)
+{
+	int r = 0;
+
+	DSSDBG("hdmi_check_timings\n");
+
+	mutex_lock(&hdmi.hdmi_lock);
+
+	r = omapdss_hdmi_display_check_timing(dssdev, timings);
+	if (r) {
+		DSSERR("Timing cannot be applied\n");
+		goto err;
+	}
+err:
+	mutex_unlock(&hdmi.hdmi_lock);
+	return r;
+}
+
+static struct omap_dss_driver hdmi_driver = {
+	.probe		= hdmi_panel_probe,
+	.remove		= hdmi_panel_remove,
+	.enable		= hdmi_panel_enable,
+	.disable	= hdmi_panel_disable,
+	.suspend	= hdmi_panel_suspend,
+	.resume		= hdmi_panel_resume,
+	.get_timings	= hdmi_get_timings,
+	.set_timings	= hdmi_set_timings,
+	.check_timings	= hdmi_check_timings,
+	.driver			= {
+		.name   = "hdmi_panel",
+		.owner  = THIS_MODULE,
+	},
+};
+
+int hdmi_panel_init(void)
+{
+	mutex_init(&hdmi.hdmi_lock);
+
+	omap_dss_register_driver(&hdmi_driver);
+
+	return 0;
+}
+
+void hdmi_panel_exit(void)
+{
+	omap_dss_unregister_driver(&hdmi_driver);
+
+}
-- 
1.5.6.3


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

* [PATCH v5 07/10] OMAP4 : DSS2 : HDMI: Add makefile and kconfig changes to enable HDMI in OMAP4
  2011-03-10 10:44           ` [PATCH v5 06/10] OMAP4 : DSS2 : HDMI: HDMI panel " Mythri P K
@ 2011-03-10 10:44             ` Mythri P K
  2011-03-10 10:44               ` [PATCH v5 08/10] OMAP4 : DSS : HDMI: Call to HDMI module init to register driver Mythri P K
  2011-03-10 13:59               ` [PATCH v5 07/10] OMAP4 : DSS2 : HDMI: Add makefile and kconfig changes to enable HDMI in OMAP4 Tomi Valkeinen
  0 siblings, 2 replies; 73+ messages in thread
From: Mythri P K @ 2011-03-10 10:44 UTC (permalink / raw)
  To: linux-omap, tomi.valkeinen; +Cc: Mythri P K


Signed-off-by: Mythri P K <mythripk@ti.com>
---
 drivers/video/omap2/dss/Kconfig  |    8 ++++++++
 drivers/video/omap2/dss/Makefile |    2 ++
 2 files changed, 10 insertions(+), 0 deletions(-)

diff --git a/drivers/video/omap2/dss/Kconfig b/drivers/video/omap2/dss/Kconfig
index db01473..bfc5da0 100644
--- a/drivers/video/omap2/dss/Kconfig
+++ b/drivers/video/omap2/dss/Kconfig
@@ -60,6 +60,14 @@ config OMAP2_DSS_VENC
 	help
 	  OMAP Video Encoder support for S-Video and composite TV-out.
 
+config OMAP4_DSS_HDMI
+	bool "HDMI support"
+	depends on ARCH_OMAP4
+        default y
+	help
+	  HDMI Interface. This adds the High Definition Multimedia Interface.
+	  See http://www.hdmi.org/ for HDMI specification.
+
 config OMAP2_DSS_SDI
 	bool "SDI support"
 	depends on ARCH_OMAP3
diff --git a/drivers/video/omap2/dss/Makefile b/drivers/video/omap2/dss/Makefile
index 7db17b5..10d9d3b 100644
--- a/drivers/video/omap2/dss/Makefile
+++ b/drivers/video/omap2/dss/Makefile
@@ -5,3 +5,5 @@ omapdss-$(CONFIG_OMAP2_DSS_RFBI) += rfbi.o
 omapdss-$(CONFIG_OMAP2_DSS_VENC) += venc.o
 omapdss-$(CONFIG_OMAP2_DSS_SDI) += sdi.o
 omapdss-$(CONFIG_OMAP2_DSS_DSI) += dsi.o
+omapdss-$(CONFIG_OMAP4_DSS_HDMI) += hdmi.o \
+				    hdmi_omap4_panel.o
-- 
1.5.6.3


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

* [PATCH v5 08/10] OMAP4 : DSS : HDMI: Call to HDMI module init to register driver.
  2011-03-10 10:44             ` [PATCH v5 07/10] OMAP4 : DSS2 : HDMI: Add makefile and kconfig changes to enable HDMI in OMAP4 Mythri P K
@ 2011-03-10 10:44               ` Mythri P K
  2011-03-10 10:44                 ` [PATCH v5 09/10] OMAP4 : HDMI : Add HDMI structure in the board file for OMAP4 SDP Mythri P K
  2011-03-10 14:04                 ` [PATCH v5 08/10] OMAP4 : DSS : HDMI: Call to HDMI module init to register driver Tomi Valkeinen
  2011-03-10 13:59               ` [PATCH v5 07/10] OMAP4 : DSS2 : HDMI: Add makefile and kconfig changes to enable HDMI in OMAP4 Tomi Valkeinen
  1 sibling, 2 replies; 73+ messages in thread
From: Mythri P K @ 2011-03-10 10:44 UTC (permalink / raw)
  To: linux-omap, tomi.valkeinen; +Cc: Mythri P K

calling the platform registration of HDMI driver from core
during initialization.

Signed-off-by: Mythri P K <mythripk@ti.com>
---
 drivers/video/omap2/dss/core.c |    9 +++++++++
 1 files changed, 9 insertions(+), 0 deletions(-)

diff --git a/drivers/video/omap2/dss/core.c b/drivers/video/omap2/dss/core.c
index c2f930b..1aa2ed1 100644
--- a/drivers/video/omap2/dss/core.c
+++ b/drivers/video/omap2/dss/core.c
@@ -209,6 +209,12 @@ static int omap_dss_probe(struct platform_device *pdev)
 		goto err_dsi;
 	}
 
+	r = hdmi_init_platform_driver();
+	if (r) {
+		DSSERR("Failed to initialize hdmi\n");
+		goto err_hdmi;
+	}
+
 	r = dss_initialize_debugfs();
 	if (r)
 		goto err_debugfs;
@@ -238,6 +244,8 @@ static int omap_dss_probe(struct platform_device *pdev)
 err_register:
 	dss_uninitialize_debugfs();
 err_debugfs:
+	hdmi_uninit_platform_driver();
+err_hdmi:
 	dsi_uninit_platform_driver();
 err_dsi:
 	venc_uninit_platform_driver();
@@ -263,6 +271,7 @@ static int omap_dss_remove(struct platform_device *pdev)
 	dispc_uninit_platform_driver();
 	rfbi_uninit_platform_driver();
 	dsi_uninit_platform_driver();
+	hdmi_uninit_platform_driver();
 	dss_uninit_platform_driver();
 
 	dss_uninit_overlays(pdev);
-- 
1.5.6.3


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

* [PATCH v5 09/10] OMAP4 : HDMI : Add HDMI structure in the board file for OMAP4 SDP
  2011-03-10 10:44               ` [PATCH v5 08/10] OMAP4 : DSS : HDMI: Call to HDMI module init to register driver Mythri P K
@ 2011-03-10 10:44                 ` Mythri P K
  2011-03-10 10:44                   ` [PATCH v5 10/10] OMAP4 : HDMI : Add HDMI structure in the board file for OMAP4 PANDA Mythri P K
  2011-03-10 14:04                 ` [PATCH v5 08/10] OMAP4 : DSS : HDMI: Call to HDMI module init to register driver Tomi Valkeinen
  1 sibling, 1 reply; 73+ messages in thread
From: Mythri P K @ 2011-03-10 10:44 UTC (permalink / raw)
  To: linux-omap, tomi.valkeinen; +Cc: Mythri P K

Adding  board file structure for display which adds the display
structure with HDMI as the default driver when the display init
is called.
HDMI GPIO configurations are also done in this file.

Signed-off-by: Mythri P K <mythripk@ti.com>
---
 arch/arm/mach-omap2/board-4430sdp.c |   75 +++++++++++++++++++++++++++++++++++
 1 files changed, 75 insertions(+), 0 deletions(-)

diff --git a/arch/arm/mach-omap2/board-4430sdp.c b/arch/arm/mach-omap2/board-4430sdp.c
index 85805d4..f5fcc5f 100644
--- a/arch/arm/mach-omap2/board-4430sdp.c
+++ b/arch/arm/mach-omap2/board-4430sdp.c
@@ -36,6 +36,7 @@
 #include <plat/usb.h>
 #include <plat/mmc.h>
 #include <plat/omap4-keypad.h>
+#include <plat/display.h>
 
 #include "mux.h"
 #include "hsmmc.h"
@@ -47,6 +48,8 @@
 #define ETH_KS8851_QUART		138
 #define OMAP4_SFH7741_SENSOR_OUTPUT_GPIO	184
 #define OMAP4_SFH7741_ENABLE_GPIO		188
+#define HDMI_GPIO_HPD 60 /* Hot plug pin for HDMI */
+#define HDMI_GPIO_LS_OE 41 /* Level shifter for HDMI */
 
 static const int sdp4430_keymap[] = {
 	KEY(0, 0, KEY_E),
@@ -620,6 +623,76 @@ static void __init omap_sfh7741prox_init(void)
 	}
 }
 
+static void sdp4430_hdmi_mux_init(void)
+{
+	/* PAD0_HDMI_HPD_PAD1_HDMI_CEC */
+	omap_mux_init_signal("hdmi_hpd",
+			OMAP_PIN_INPUT_PULLUP);
+	omap_mux_init_signal("hdmi_cec",
+			OMAP_PIN_INPUT_PULLUP);
+	/* PAD0_HDMI_DDC_SCL_PAD1_HDMI_DDC_SDA */
+	omap_mux_init_signal("hdmi_ddc_scl",
+			OMAP_PIN_INPUT_PULLUP);
+	omap_mux_init_signal("hdmi_ddc_sda",
+			OMAP_PIN_INPUT_PULLUP);
+}
+
+static int sdp4430_panel_enable_hdmi(struct omap_dss_device *dssdev)
+{
+	int status;
+
+	status = gpio_request_one(HDMI_GPIO_HPD, GPIOF_OUT_INIT_HIGH,
+							"hdmi_gpio_hpd");
+	if (status) {
+		pr_err("Cannot request GPIO %d\n", HDMI_GPIO_HPD);
+		return status;
+	}
+	status = gpio_request_one(HDMI_GPIO_LS_OE, GPIOF_OUT_INIT_HIGH,
+							"hdmi_gpio_ls_oe");
+	if (status) {
+		pr_err("Cannot request GPIO %d\n", HDMI_GPIO_LS_OE);
+		goto error1;
+	}
+
+	return 0;
+
+error1:
+	gpio_free(HDMI_GPIO_HPD);
+
+	return status;
+}
+
+static void sdp4430_panel_disable_hdmi(struct omap_dss_device *dssdev)
+{
+	gpio_free(HDMI_GPIO_LS_OE);
+	gpio_free(HDMI_GPIO_HPD);
+}
+
+static struct omap_dss_device sdp4430_hdmi_device = {
+	.name = "hdmi",
+	.driver_name = "hdmi_panel",
+	.type = OMAP_DISPLAY_TYPE_HDMI,
+	.platform_enable = sdp4430_panel_enable_hdmi,
+	.platform_disable = sdp4430_panel_disable_hdmi,
+	.channel = OMAP_DSS_CHANNEL_DIGIT,
+};
+
+static struct omap_dss_device *sdp4430_dss_devices[] = {
+	&sdp4430_hdmi_device,
+};
+
+static struct omap_dss_board_info sdp4430_dss_data = {
+	.num_devices	= ARRAY_SIZE(sdp4430_dss_devices),
+	.devices	= sdp4430_dss_devices,
+	.default_device	= &sdp4430_hdmi_device,
+};
+
+void omap_4430sdp_display_init(void)
+{
+	sdp4430_hdmi_mux_init();
+	omap_display_init(&sdp4430_dss_data);
+}
+
 #ifdef CONFIG_OMAP_MUX
 static struct omap_board_mux board_mux[] __initdata = {
 	OMAP4_MUX(USBB2_ULPITLL_CLK, OMAP_MUX_MODE4 | OMAP_PIN_OUTPUT),
@@ -661,6 +734,8 @@ static void __init omap_4430sdp_init(void)
 	status = omap4_keyboard_init(&sdp4430_keypad_data);
 	if (status)
 		pr_err("Keypad initialization failed: %d\n", status);
+
+	omap_4430sdp_display_init();
 }
 
 static void __init omap_4430sdp_map_io(void)
-- 
1.5.6.3


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

* [PATCH v5 10/10] OMAP4 : HDMI : Add HDMI structure in the board file for OMAP4 PANDA
  2011-03-10 10:44                 ` [PATCH v5 09/10] OMAP4 : HDMI : Add HDMI structure in the board file for OMAP4 SDP Mythri P K
@ 2011-03-10 10:44                   ` Mythri P K
  2011-03-15  4:23                     ` Tomi Valkeinen
  0 siblings, 1 reply; 73+ messages in thread
From: Mythri P K @ 2011-03-10 10:44 UTC (permalink / raw)
  To: linux-omap, tomi.valkeinen; +Cc: Mythri P K

Adding  board file structure for display which adds the display
structure with HDMI as the default driver when the display init
is called.
HDMI GPIO configurations are also done in this file.

Signed-off-by: Mythri P K <mythripk@ti.com>
---
 arch/arm/mach-omap2/board-omap4panda.c |   74 ++++++++++++++++++++++++++++++++
 1 files changed, 74 insertions(+), 0 deletions(-)

diff --git a/arch/arm/mach-omap2/board-omap4panda.c b/arch/arm/mach-omap2/board-omap4panda.c
index a94ce07..4869c0f 100644
--- a/arch/arm/mach-omap2/board-omap4panda.c
+++ b/arch/arm/mach-omap2/board-omap4panda.c
@@ -34,6 +34,7 @@
 #include <asm/mach-types.h>
 #include <asm/mach/arch.h>
 #include <asm/mach/map.h>
+#include <plat/display.h>
 
 #include <plat/board.h>
 #include <plat/common.h>
@@ -49,6 +50,8 @@
 #define GPIO_HUB_NRESET		62
 #define GPIO_WIFI_PMENA		43
 #define GPIO_WIFI_IRQ		53
+#define HDMI_GPIO_HPD 60 /* Hot plug pin for HDMI */
+#define HDMI_GPIO_LS_OE 41 /* Level shifter for HDMI */
 
 /* wl127x BT, FM, GPS connectivity chip */
 static int wl1271_gpios[] = {46, -1, -1};
@@ -467,6 +470,76 @@ static struct omap_board_mux board_mux[] __initdata = {
 #define board_mux	NULL
 #endif
 
+static void sdp4430_hdmi_mux_init(void)
+{
+	/* PAD0_HDMI_HPD_PAD1_HDMI_CEC */
+	omap_mux_init_signal("hdmi_hpd",
+			OMAP_PIN_INPUT_PULLUP);
+	omap_mux_init_signal("hdmi_cec",
+			OMAP_PIN_INPUT_PULLUP);
+	/* PAD0_HDMI_DDC_SCL_PAD1_HDMI_DDC_SDA */
+	omap_mux_init_signal("hdmi_ddc_scl",
+			OMAP_PIN_INPUT_PULLUP);
+	omap_mux_init_signal("hdmi_ddc_sda",
+			OMAP_PIN_INPUT_PULLUP);
+}
+
+static int sdp4430_panel_enable_hdmi(struct omap_dss_device *dssdev)
+{
+	int status;
+
+	status = gpio_request_one(HDMI_GPIO_HPD, GPIOF_OUT_INIT_HIGH,
+							"hdmi_gpio_hpd");
+	if (status) {
+		pr_err("Cannot request GPIO %d\n", HDMI_GPIO_HPD);
+		return status;
+	}
+	status = gpio_request_one(HDMI_GPIO_LS_OE, GPIOF_OUT_INIT_HIGH,
+							"hdmi_gpio_ls_oe");
+	if (status) {
+		pr_err("Cannot request GPIO %d\n", HDMI_GPIO_LS_OE);
+		goto error1;
+	}
+
+	return 0;
+
+error1:
+	gpio_free(HDMI_GPIO_HPD);
+
+	return status;
+}
+
+static void sdp4430_panel_disable_hdmi(struct omap_dss_device *dssdev)
+{
+	gpio_free(HDMI_GPIO_LS_OE);
+	gpio_free(HDMI_GPIO_HPD);
+}
+
+static struct omap_dss_device sdp4430_hdmi_device = {
+	.name = "hdmi",
+	.driver_name = "hdmi_panel",
+	.type = OMAP_DISPLAY_TYPE_HDMI,
+	.platform_enable = sdp4430_panel_enable_hdmi,
+	.platform_disable = sdp4430_panel_disable_hdmi,
+	.channel = OMAP_DSS_CHANNEL_DIGIT,
+};
+
+static struct omap_dss_device *sdp4430_dss_devices[] = {
+	&sdp4430_hdmi_device,
+};
+
+static struct omap_dss_board_info sdp4430_dss_data = {
+	.num_devices	= ARRAY_SIZE(sdp4430_dss_devices),
+	.devices	= sdp4430_dss_devices,
+	.default_device	= &sdp4430_hdmi_device,
+};
+
+void omap_panda_display_init(void)
+{
+	sdp4430_hdmi_mux_init();
+	omap_display_init(&sdp4430_dss_data);
+}
+
 static void __init omap4_panda_init(void)
 {
 	int package = OMAP_PACKAGE_CBS;
@@ -485,6 +558,7 @@ static void __init omap4_panda_init(void)
 	omap4_twl6030_hsmmc_init(mmc);
 	omap4_ehci_init();
 	usb_musb_init(&musb_board_data);
+	omap_panda_display_init();
 }
 
 static void __init omap4_panda_map_io(void)
-- 
1.5.6.3


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

* Re: [PATCH v5 00/10] OMAP4 : DSS2 : HDMI support on OMAP4
  2011-03-10 10:44 [PATCH v5 00/10] OMAP4 : DSS2 : HDMI support on OMAP4 Mythri P K
  2011-03-10 10:44 ` [PATCH v5 01/10] OMAP4 : DSS2 : Add display type HDMI to DSS2 Mythri P K
@ 2011-03-10 13:44 ` Tomi Valkeinen
  2011-03-10 14:45   ` Stephan Raue
  2011-03-14 10:37   ` Jan, Sebastien
  2011-03-10 15:06 ` Tomi Valkeinen
  2 siblings, 2 replies; 73+ messages in thread
From: Tomi Valkeinen @ 2011-03-10 13:44 UTC (permalink / raw)
  To: K, Mythri P; +Cc: linux-omap

On Thu, 2011-03-10 at 04:44 -0600, K, Mythri P wrote:
> Adding HDMI support on OMAP4.
> 
> HDMI is a driver that is similar to the VENC or the DSI driver to support
> HDMI/DVI sink device.
> 
> The current design adheres to the DSS2 architecture.
> 
> It is split into the HDMI DSS driver and HDMI panel driver.

I think this version is good. It works for me, at least =).

Any Panda or Blaze owners reading this want to give this a try?

There are a couple of cosmetic fixes you could still do, I'll email
about those separately. But they are just about comments/descriptions,
you can fix them and email me a tarball for the patches, no need to spam
the mailing list.

 Tomi



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

* Re: [PATCH v5 01/10] OMAP4 : DSS2 : Add display type HDMI to DSS2
  2011-03-10 10:44 ` [PATCH v5 01/10] OMAP4 : DSS2 : Add display type HDMI to DSS2 Mythri P K
  2011-03-10 10:44   ` [PATCH v5 02/10] OMAP4 : DSS2 : HDMI: Select between HDMI VENC clock source Mythri P K
@ 2011-03-10 13:48   ` Tomi Valkeinen
  2011-03-10 16:53     ` Aaro Koskinen
  1 sibling, 1 reply; 73+ messages in thread
From: Tomi Valkeinen @ 2011-03-10 13:48 UTC (permalink / raw)
  To: K, Mythri P; +Cc: linux-omap

On Thu, 2011-03-10 at 04:44 -0600, K, Mythri P wrote:
> Adding HDMI type in dss_features , overlay and
> the manager so that HDMI type of display will be recognized.
> 
> Signed-off-by: Mythri P K <mythripk@ti.com>

What editor are you using? Your descriptions and comments are often
oddly formatted, like this. The editor should handle things like that
automatically, if it's a decent one.

What it should be is:

Adding HDMI type in dss_features , overlay and the manager so that HDMI
type of display will be recognized.

Well, there's the extra space before the comma, which should also be
fixed.

Generally, split the lines at column, say, 78. And leave a blank line
between paragraphs (not in this case, but elsewhere).

 Tomi



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

* Re: [PATCH v5 02/10] OMAP4 : DSS2 : HDMI: Select between HDMI VENC clock source.
  2011-03-10 10:44   ` [PATCH v5 02/10] OMAP4 : DSS2 : HDMI: Select between HDMI VENC clock source Mythri P K
  2011-03-10 10:44     ` [PATCH v5 03/10] OMAP4 : DSS2 : HDMI: Dispc gamma enable set/reset function for TV Mythri P K
@ 2011-03-10 13:49     ` Tomi Valkeinen
  1 sibling, 0 replies; 73+ messages in thread
From: Tomi Valkeinen @ 2011-03-10 13:49 UTC (permalink / raw)
  To: K, Mythri P; +Cc: linux-omap

On Thu, 2011-03-10 at 04:44 -0600, K, Mythri P wrote:
> Signed-off-by: Mythri P K <mythripk@ti.com>
> ---
>  drivers/video/omap2/dss/dss.c |    5 +++++
>  drivers/video/omap2/dss/dss.h |    6 ++++++
>  2 files changed, 11 insertions(+), 0 deletions(-)

This patch is missing description.

 Tomi



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

* Re: [PATCH v5 03/10] OMAP4 : DSS2 : HDMI: Dispc gamma enable set/reset function for TV.
  2011-03-10 10:44     ` [PATCH v5 03/10] OMAP4 : DSS2 : HDMI: Dispc gamma enable set/reset function for TV Mythri P K
  2011-03-10 10:44       ` [PATCH v5 04/10] OMAP4 : DSS2 : HDMI: HDMI driver header file addition Mythri P K
@ 2011-03-10 13:52       ` Tomi Valkeinen
  2011-05-05 13:50       ` Laurent Pinchart
  2 siblings, 0 replies; 73+ messages in thread
From: Tomi Valkeinen @ 2011-03-10 13:52 UTC (permalink / raw)
  To: K, Mythri P; +Cc: linux-omap

On Thu, 2011-03-10 at 04:44 -0600, K, Mythri P wrote:
> Adding function to reset/set gamma table bit for TV interface
> currentl only support for disabled is added.

I guess this is missing a period, a capital C, and currently is typoed.

> Signed-off-by: Mythri P K <mythripk@ti.com>
> ---
>  drivers/video/omap2/dss/dispc.c |   13 +++++++++++++
>  drivers/video/omap2/dss/dss.h   |    1 +
>  2 files changed, 14 insertions(+), 0 deletions(-)
> 
> diff --git a/drivers/video/omap2/dss/dispc.c b/drivers/video/omap2/dss/dispc.c
> index b8c576a..9b86f5f 100644
> --- a/drivers/video/omap2/dss/dispc.c
> +++ b/drivers/video/omap2/dss/dispc.c
> @@ -1008,6 +1008,19 @@ void dispc_set_burst_size(enum omap_plane plane,
>  	enable_clocks(0);
>  }
>  
> +void dispc_enable_gamma_table(bool enable)
> +{
> +	/* This is partially implemented to support only
> +	 *  disabling of the gamma table.
> +	 */

This isn't the kernel multiline comment convention.

 Tomi



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

* Re: [PATCH v5 05/10] OMAP4 : DSS2 : HDMI: HDMI driver addition in the DSS
  2011-03-10 10:44         ` [PATCH v5 05/10] OMAP4 : DSS2 : HDMI: HDMI driver addition in the DSS Mythri P K
  2011-03-10 10:44           ` [PATCH v5 06/10] OMAP4 : DSS2 : HDMI: HDMI panel " Mythri P K
@ 2011-03-10 13:58           ` Tomi Valkeinen
  1 sibling, 0 replies; 73+ messages in thread
From: Tomi Valkeinen @ 2011-03-10 13:58 UTC (permalink / raw)
  To: K, Mythri P; +Cc: linux-omap

On Thu, 2011-03-10 at 04:44 -0600, K, Mythri P wrote:
> Adding the hdmi interface driver(hdmi.c) to the dss driver.
> It configures the audio and video portion of HDMI based on
> functionality called by the  panel driver.
> 
> Signed-off-by: Mythri P K <mythripk@ti.com>
>                 Yong Zhi <y-zhi@ti.com>

This isn't the correct way to have signed off. Each person should be in
its own signed-off-by: line.

<snip>

> +/*
> + * Logic for the below structure :
> + * user enters the CEA or VESA timings by specifying the HDMI/DVI code.
> + * There is a correspondence between CEA/VESA timing and code , Please
> + * refer to section 6.3 in HDMI 1.3 specification for timing code.
> + * In the below structure, cea_vesa_timings corresponds to all OMAP4
> + * supported CEA and VESA timing values.
> + * code_cea corresponds to the CEA code , It is used to get the timing
> + * from cea_vesa_timing array. Similarly with code_vesa.
> + * code_index is used for back mapping, That is once EDID is read from
> + * the TV, EDID is parsed to find the timing values and then map it to
> + * corresponding CEA or VESA index.
> + */

This comment is still rather messy. Check capital letters, periods,
spaces before commas. Also, if you divide text into paragraphs, use an
empty line between the paragraphs. If you don't divide into paragraphs,
then the text should be evenly formatted.

 Tomi



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

* Re: [PATCH v5 07/10] OMAP4 : DSS2 : HDMI: Add makefile and kconfig changes to enable HDMI in OMAP4
  2011-03-10 10:44             ` [PATCH v5 07/10] OMAP4 : DSS2 : HDMI: Add makefile and kconfig changes to enable HDMI in OMAP4 Mythri P K
  2011-03-10 10:44               ` [PATCH v5 08/10] OMAP4 : DSS : HDMI: Call to HDMI module init to register driver Mythri P K
@ 2011-03-10 13:59               ` Tomi Valkeinen
  1 sibling, 0 replies; 73+ messages in thread
From: Tomi Valkeinen @ 2011-03-10 13:59 UTC (permalink / raw)
  To: K, Mythri P; +Cc: linux-omap

On Thu, 2011-03-10 at 04:44 -0600, K, Mythri P wrote:
> Signed-off-by: Mythri P K <mythripk@ti.com>
> ---
>  drivers/video/omap2/dss/Kconfig  |    8 ++++++++
>  drivers/video/omap2/dss/Makefile |    2 ++
>  2 files changed, 10 insertions(+), 0 deletions(-)
> 
> diff --git a/drivers/video/omap2/dss/Kconfig b/drivers/video/omap2/dss/Kconfig
> index db01473..bfc5da0 100644
> --- a/drivers/video/omap2/dss/Kconfig
> +++ b/drivers/video/omap2/dss/Kconfig
> @@ -60,6 +60,14 @@ config OMAP2_DSS_VENC
>  	help
>  	  OMAP Video Encoder support for S-Video and composite TV-out.
>  
> +config OMAP4_DSS_HDMI
> +	bool "HDMI support"
> +	depends on ARCH_OMAP4
> +        default y
> +	help
> +	  HDMI Interface. This adds the High Definition Multimedia Interface.
> +	  See http://www.hdmi.org/ for HDMI specification.
> +

Patch is missing description. The default line also seems to be indented
differently than the others.

  Tomi



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

* Re: [PATCH v5 08/10] OMAP4 : DSS : HDMI: Call to HDMI module init to register driver.
  2011-03-10 10:44               ` [PATCH v5 08/10] OMAP4 : DSS : HDMI: Call to HDMI module init to register driver Mythri P K
  2011-03-10 10:44                 ` [PATCH v5 09/10] OMAP4 : HDMI : Add HDMI structure in the board file for OMAP4 SDP Mythri P K
@ 2011-03-10 14:04                 ` Tomi Valkeinen
  1 sibling, 0 replies; 73+ messages in thread
From: Tomi Valkeinen @ 2011-03-10 14:04 UTC (permalink / raw)
  To: K, Mythri P; +Cc: linux-omap

On Thu, 2011-03-10 at 04:44 -0600, K, Mythri P wrote:
> calling the platform registration of HDMI driver from core
> during initialization.

Capital letter.

And don't say calling foo, or adding bar, or similar in the patch
description (I've seen this in other patches also). I'm not a master in
English, but I don't think that's proper English =).

Just say "call foo" or "add bar". Or "this patch adds foo".

 Tomi



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

* Re: [PATCH v5 00/10] OMAP4 : DSS2 : HDMI support on OMAP4
  2011-03-10 13:44 ` [PATCH v5 00/10] OMAP4 : DSS2 : HDMI support on OMAP4 Tomi Valkeinen
@ 2011-03-10 14:45   ` Stephan Raue
  2011-03-10 14:51     ` Tomi Valkeinen
  2011-03-11  7:12     ` Tomi Valkeinen
  2011-03-14 10:37   ` Jan, Sebastien
  1 sibling, 2 replies; 73+ messages in thread
From: Stephan Raue @ 2011-03-10 14:45 UTC (permalink / raw)
  To: Tomi Valkeinen; +Cc: K, Mythri P, linux-omap

Hi,

if i try this patch series the boot stops after (seeing via serial console):

   Starting kernel ...

   Uncompressing Linux... done, booting the kernel.

without this patch series i can see the boot to th OS. I am using this 
patches on top of

   http://gitorious.org/linux-omap-dss2/linux/commits/master

Do i anything wrong or do i use a wrong git repo (the patches apply 
cleanly)? Her my kernel config: http://fpaste.org/9Esw/

Stephan

Am 10.03.2011 14:44, schrieb Tomi Valkeinen:
> On Thu, 2011-03-10 at 04:44 -0600, K, Mythri P wrote:
>> Adding HDMI support on OMAP4.
>>
>> HDMI is a driver that is similar to the VENC or the DSI driver to support
>> HDMI/DVI sink device.
>>
>> The current design adheres to the DSS2 architecture.
>>
>> It is split into the HDMI DSS driver and HDMI panel driver.
> I think this version is good. It works for me, at least =).
>
> Any Panda or Blaze owners reading this want to give this a try?
>
> There are a couple of cosmetic fixes you could still do, I'll email
> about those separately. But they are just about comments/descriptions,
> you can fix them and email me a tarball for the patches, no need to spam
> the mailing list.
>
>   Tomi
>
>
> --
> 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] 73+ messages in thread

* Re: [PATCH v5 00/10] OMAP4 : DSS2 : HDMI support on OMAP4
  2011-03-10 14:45   ` Stephan Raue
@ 2011-03-10 14:51     ` Tomi Valkeinen
  2011-03-11  0:07       ` Stephan Raue
  2011-03-11  7:12     ` Tomi Valkeinen
  1 sibling, 1 reply; 73+ messages in thread
From: Tomi Valkeinen @ 2011-03-10 14:51 UTC (permalink / raw)
  To: Stephan Raue; +Cc: K, Mythri P, linux-omap

On Thu, 2011-03-10 at 08:45 -0600, Stephan Raue wrote:
> Hi,
> 
> if i try this patch series the boot stops after (seeing via serial console):
> 
>    Starting kernel ...
> 
>    Uncompressing Linux... done, booting the kernel.
> 
> without this patch series i can see the boot to th OS. I am using this 
> patches on top of
> 
>    http://gitorious.org/linux-omap-dss2/linux/commits/master
> 
> Do i anything wrong or do i use a wrong git repo (the patches apply 
> cleanly)? Her my kernel config: http://fpaste.org/9Esw/

Ah, I guess you hit one yet unsolved problem on on omap4: VENC register
access fails. 

Can you try switching this off: CONFIG_OMAP2_DSS_VENC.

I need to make some quick hack to get VENC disabled on OMAP4 until we
find the solution for this.

 Tomi



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

* Re: [PATCH v5 00/10] OMAP4 : DSS2 : HDMI support on OMAP4
  2011-03-10 10:44 [PATCH v5 00/10] OMAP4 : DSS2 : HDMI support on OMAP4 Mythri P K
  2011-03-10 10:44 ` [PATCH v5 01/10] OMAP4 : DSS2 : Add display type HDMI to DSS2 Mythri P K
  2011-03-10 13:44 ` [PATCH v5 00/10] OMAP4 : DSS2 : HDMI support on OMAP4 Tomi Valkeinen
@ 2011-03-10 15:06 ` Tomi Valkeinen
  2011-03-11  8:24   ` K, Mythri P
  2 siblings, 1 reply; 73+ messages in thread
From: Tomi Valkeinen @ 2011-03-10 15:06 UTC (permalink / raw)
  To: K, Mythri P; +Cc: linux-omap

Hi Mythri,

On Thu, 2011-03-10 at 04:44 -0600, K, Mythri P wrote:
> Adding HDMI support on OMAP4.
> 
> HDMI is a driver that is similar to the VENC or the DSI driver to support
> HDMI/DVI sink device.
> 
> The current design adheres to the DSS2 architecture.

I was testing this on Blaze, with VENC enabled in Kconfig and a small
hack in venc.c which skips registering the venc device on omap4.

I haven't seen these earlier, so it may just be I've been lucky, or
enabling VENC affected this.

I've seen this twice when loading the modules:

[   23.007690] omapdss HDMI: no valid timing found , falling back to VGA
[   23.040161] omapdss HDMI error: PLL GO bit not set
[   23.045196] omapdss HDMI error: failed to power on device
[   23.050964] omapdss error: failed to power on
[   23.055572] omapfb omapfb: Failed to enable display 'hdmi'
[   23.066162] omapfb omapfb: failed to setup omapfb
[   23.071166] omapfb: probe of omapfb failed with error -5

And I've seen this once when unloading modules:

[  126.473419] omapdss DISPC error: SYNC_LOST_DIGIT, disabling TV
[  126.569244] omapdss DISPC error: timeout waiting for EVSYNC
[  126.670776] omapdss DISPC error: timeout waiting for EVSYNC
[  126.773376] omapdss HDMI: no valid timing found , falling back to VGA
[  126.881896] omapdss DISPC error: timeout waiting for EVSYNC
[  126.983367] omapdss DISPC error: timeout waiting for EVSYNC
rmmod: can't unload 'omapdss': Resource temporarily unavailable

This looks a bit bad, as it sounds to me that when an error happened,
some code path returned too early and the omapdss driver could not
unload.

There is this code in dss.c:

#ifdef CONFIG_OMAP2_DSS_VENC
        REG_FLD_MOD(DSS_CONTROL, 1, 4, 4);      /* venc dac demen */
        REG_FLD_MOD(DSS_CONTROL, 1, 3, 3);      /* venc clock 4x enable */
        REG_FLD_MOD(DSS_CONTROL, 0, 2, 2);      /* venc clock mode = normal */
#endif

They don't sound like they would affect HDMI, but that was the only
difference I found (between VENC enabled and disabled) with a quick
search.

 Tomi



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

* Re: [PATCH v5 01/10] OMAP4 : DSS2 : Add display type HDMI to DSS2
  2011-03-10 13:48   ` [PATCH v5 01/10] OMAP4 : DSS2 : Add display type HDMI to DSS2 Tomi Valkeinen
@ 2011-03-10 16:53     ` Aaro Koskinen
  0 siblings, 0 replies; 73+ messages in thread
From: Aaro Koskinen @ 2011-03-10 16:53 UTC (permalink / raw)
  To: Tomi Valkeinen; +Cc: K, Mythri P, linux-omap

Hi,

On Thu, 10 Mar 2011, Tomi Valkeinen wrote:
> Generally, split the lines at column, say, 78.

I think it should be 75 at most, which is also default for "fmt".

"git log" idents the comment by 4 spaces, and it would be nice to have
logs readable with an 80-column screen.

A.

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

* Re: [PATCH v5 00/10] OMAP4 : DSS2 : HDMI support on OMAP4
  2011-03-10 14:51     ` Tomi Valkeinen
@ 2011-03-11  0:07       ` Stephan Raue
  2011-03-11  6:16         ` K, Mythri P
  0 siblings, 1 reply; 73+ messages in thread
From: Stephan Raue @ 2011-03-11  0:07 UTC (permalink / raw)
  To: Tomi Valkeinen; +Cc: K, Mythri P, linux-omap

Hi Tomi,

Am 10.03.2011 15:51, schrieb Tomi Valkeinen:
> On Thu, 2011-03-10 at 08:45 -0600, Stephan Raue wrote:
>> Hi,
>>
>> if i try this patch series the boot stops after (seeing via serial console):
>>
>>     Starting kernel ...
>>
>>     Uncompressing Linux... done, booting the kernel.
>>
>> without this patch series i can see the boot to th OS. I am using this
>> patches on top of
>>
>>     http://gitorious.org/linux-omap-dss2/linux/commits/master
>>
>> Do i anything wrong or do i use a wrong git repo (the patches apply
>> cleanly)? Her my kernel config: http://fpaste.org/9Esw/
> Ah, I guess you hit one yet unsolved problem on on omap4: VENC register
> access fails.
>
> Can you try switching this off: CONFIG_OMAP2_DSS_VENC.
>
> I need to make some quick hack to get VENC disabled on OMAP4 until we
> find the solution for this.
>
>   Tomi
>
thanks, this helps to boot the kernel. but now i get:

[    3.281127] Power Management for TI OMAP4.
[    3.291870] mmc0: host does not support reading read-only switch. assuming write-enable.
[    3.312957] clock: disabling unused clocks to save power
[    3.318695] mmc0: new high speed SDHC card at address 0001
[    3.325622] mmcblk0: mmc0:0001 00000 7.46 GiB
[    3.333618]  mmcblk0: p1 p2
[    3.335540] Unhandled fault: imprecise external abort (0x1406) at 0xffed6a6a
[    3.335571] Internal error: : 1406 [#1] PREEMPT SMP
[    3.335571] last sysfs file:
[    3.335571] Modules linked in:
[    3.335571] CPU: 0    Not tainted  (2.6.38-rc8 #1)
[    3.335601] PC is at dss_clk_disable_no_ctx+0x0/0xa4
[    3.335632] LR is at omap_dispc_register_isr+0xa4/0xcc
[    3.335632] pc : [<c066b4f8>]    lr : [<c066c65c>]    psr: 20000093
[    3.335632] sp : ef845e20  ip : c0e6ffd0  fp : c09fbb90
[    3.335632] r10: c0f774ac  r9 : 00000088  r8 : c0673644
[    3.335662] r7 : 0004000e  r6 : a0000093  r5 : 00000000  r4 : 00000000
[    3.335662] r3 : f08c4000  r2 : f08c4000  r1 : 0006964a  r0 : 00000003
[    3.335662] Flags: nzCv  IRQs off  FIQs on  Mode SVC_32  ISA ARM  Segment kernel
[    3.335693] Control: 10c5387d  Table: 8000404a  DAC: 00000015
[    3.335693] Process swapper (pid: 1, stack limit = 0xef8442f8)
[    3.335693] Stack: (0xef845e20 to 0xef846000)
[    3.335693] 5e20: 00001887 c0f78588 00000000 c0f78588 00000044 00000001 eed70b40 c06735d8
[    3.335723] 5e40: c0f785f4 f0a00000 c0f785b4 60000013 00000080 ef814000 c09fd630 00000000
[    3.335723] 5e60: ef814698 ef814264 eeeae6e0 00000003 eeeae400 c067a528 00000000 c082f738
[    3.335723] 5e80: eeeae6e0 c09fd628 ef814694 eee26fc0 ef845ed8 c0537e70 00000001 bf600000
[    3.335754] 5ea0: f0a00000 02800280 000001e0 00000080 00000000 00000000 00000000 02800000
[    3.335754] 5ec0: 00ff01e0 c0538780 ef848000 c0830e38 ef804ac4 00000003 ef8ad4c0 00000000
[    3.335784] 5ee0: c09fd664 c09fd630 c09fd664 c0a0f540 c0a0f540 00000000 00000000 c09e776c
[    3.335784] 5f00: 00000000 c06bc470 c06bc45c c06bb670 00000000 c09fd630 c09fd664 c0a0f540
[    3.335784] 5f20: 00000000 c06bb794 c0a0f540 ef845f38 c06bb72c c06ba8c4 ef804a5c ef8ae054
[    3.335815] 5f40: c0a0f540 c0a0f540 eee24680 c0a19328 00000000 c06baf78 c092c550 00000480
[    3.335815] 5f60: ef845f50 c0a0f540 c002d640 c09e7680 c001edd8 00000000 c09e776c c06bb9dc
[    3.335815] 5f80: 00000000 c002d624 c002d640 c09e7680 c001edd8 00000000 c09e776c c001edfc
[    3.335845] 5fa0: ef844000 c041e644 c0933524 00000198 c0a01b8c c09e7680 c09e7770 c002d624
[    3.335845] 5fc0: c002d640 c09e7680 c09e7770 00000002 c09e776c c0008b2c 00000004 00000000
[    3.335876] 5fe0: c00089d4 c0423f1c 00000013 00000000 00000000 c0423f1c faffd73f 00100e0a
[    3.335876] [<c066b4f8>] (dss_clk_disable_no_ctx+0x0/0xa4) from [<c0f78588>] (num_managers+0x0/0x4)
[    3.335906] Code: e8bd8070 c0f77254 c0954a8a 000218de (e92d4038)
[    3.335906] ---[ end trace b7597bb719140d9a ]---
[    3.335906] note: swapper[1] exited with preempt_count 2
[    3.335937] Kernel panic - not syncing: Attempted to kill init!
[    3.588439] CPU1: stopping
[    3.591308] [<c0428bec>] (unwind_backtrace+0x0/0xe4) from [<c041e2d8>] (do_IPI+0xe4/0x15c)
[    3.600036] [<c041e2d8>] (do_IPI+0xe4/0x15c) from [<c08314cc>] (__irq_svc+0x4c/0xcc)
[    3.608184] Exception stack(0xef861b60 to 0xef861ba8)
[    3.613494] 1b60: c04582a0 ef861ba8 ef861b98 00000000 ef860000 00000282 00000002 ef861c00
[    3.622100] 1b80: 00000001 ef860000 00000001 0000000a 005b820e ef861ba8 c04582a0 c04582a4
[    3.630706] 1ba0: 60000113 ffffffff
[    3.634399] [<c08314cc>] (__irq_svc+0x4c/0xcc) from [<c04582a4>] (__do_softirq+0x6c/0x250)
[    3.643096] [<c04582a4>] (__do_softirq+0x6c/0x250) from [<c0458988>] (irq_exit+0x58/0xb0)
[    3.651733] [<c0458988>] (irq_exit+0x58/0xb0) from [<c041e29c>] (do_IPI+0xa8/0x15c)
[    3.659790] [<c041e29c>] (do_IPI+0xa8/0x15c) from [<c08314cc>] (__irq_svc+0x4c/0xcc)
[    3.667938] Exception stack(0xef861c00 to 0xef861c48)
[    3.673248] 1c00: 00000001 00000001 00000000 ef84a800 00000025 00000001 c09fe67c c0a32340
[    3.681854] 1c20: c6b2f9f3 00000001 00000001 00000036 60000113 ef861c48 c0452e18 c0452e20
[    3.690460] 1c40: 60000113 ffffffff
[    3.694152] [<c08314cc>] (__irq_svc+0x4c/0xcc) from [<c0452e20>] (vprintk+0x3d8/0x468)
[    3.702484] [<c0452e20>] (vprintk+0x3d8/0x468) from [<c082d2cc>] (printk+0x18/0x24)
[    3.710571] [<c082d2cc>] (printk+0x18/0x24) from [<c0533800>] (rescan_partitions+0x1e4/0x47c)
[    3.719543] [<c0533800>] (rescan_partitions+0x1e4/0x47c) from [<c050f7a8>] (__blkdev_get+0x230/0x2f4)
[    3.729248] [<c050f7a8>] (__blkdev_get+0x230/0x2f4) from [<c050fa20>] (blkdev_get+0x1b4/0x2bc)
[    3.738342] [<c050fa20>] (blkdev_get+0x1b4/0x2bc) from [<c06410bc>] (register_disk+0xdc/0x158)
[    3.747406] [<c06410bc>] (register_disk+0xdc/0x158) from [<c064121c>] (add_disk+0xe4/0x28c)
[    3.756225] [<c064121c>] (add_disk+0xe4/0x28c) from [<c0762dd8>] (mmc_blk_probe+0x2a8/0x2f4)
[    3.765106] [<c0762dd8>] (mmc_blk_probe+0x2a8/0x2f4) from [<c075bab8>] (mmc_bus_probe+0x14/0x18)
[    3.774383] [<c075bab8>] (mmc_bus_probe+0x14/0x18) from [<c06bb670>] (driver_probe_device+0xc8/0x184)
[    3.784088] [<c06bb670>] (driver_probe_device+0xc8/0x184) from [<c06ba5f8>] (bus_for_each_drv+0x4c/0x84)
[    3.794067] [<c06ba5f8>] (bus_for_each_drv+0x4c/0x84) from [<c06bb4c4>] (device_attach+0x68/0x94)
[    3.803405] [<c06bb4c4>] (device_attach+0x68/0x94) from [<c06bae28>] (bus_probe_device+0x24/0x40)
[    3.812774] [<c06bae28>] (bus_probe_device+0x24/0x40) from [<c06b91bc>] (device_add+0x394/0x524)
[    3.822021] [<c06b91bc>] (device_add+0x394/0x524) from [<c075be24>] (mmc_add_card+0xf4/0x134)
[    3.830993] [<c075be24>] (mmc_add_card+0xf4/0x134) from [<c075e7e8>] (mmc_attach_sd+0x158/0x1dc)
[    3.840270] [<c075e7e8>] (mmc_attach_sd+0x158/0x1dc) from [<c075b7f0>] (mmc_rescan+0x204/0x264)
[    3.849426] [<c075b7f0>] (mmc_rescan+0x204/0x264) from [<c0468790>] (process_one_work+0x2d8/0x510)
[    3.858856] [<c0468790>] (process_one_work+0x2d8/0x510) from [<c046aa60>] (worker_thread+0x1c0/0x2b8)
[    3.868591] [<c046aa60>] (worker_thread+0x1c0/0x2b8) from [<c046e3e4>] (kthread+0x80/0x88)
[    3.877288] [<c046e3e4>] (kthread+0x80/0x88) from [<c0423f1c>] (kernel_thread_exit+0x0/0x8)

see also: http://paste.pocoo.org/show/351648/

if i remove this patchserie again it boots, see here: http://paste.pocoo.org/show/351650/

thanks

Stephan



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

* Re: [PATCH v5 00/10] OMAP4 : DSS2 : HDMI support on OMAP4
  2011-03-11  0:07       ` Stephan Raue
@ 2011-03-11  6:16         ` K, Mythri P
  2011-03-11  7:24           ` Tomi Valkeinen
  0 siblings, 1 reply; 73+ messages in thread
From: K, Mythri P @ 2011-03-11  6:16 UTC (permalink / raw)
  To: Stephan Raue; +Cc: Tomi Valkeinen, linux-omap

Hi Stephan,

On Fri, Mar 11, 2011 at 5:37 AM, Stephan Raue <mailinglists@openelec.tv> wrote:
> Hi Tomi,
>
> Am 10.03.2011 15:51, schrieb Tomi Valkeinen:
>>
>> On Thu, 2011-03-10 at 08:45 -0600, Stephan Raue wrote:
>>>
>>> Hi,
>>>
>>> if i try this patch series the boot stops after (seeing via serial
>>> console):
>>>
>>>    Starting kernel ...
>>>
>>>    Uncompressing Linux... done, booting the kernel.
>>>
>>> without this patch series i can see the boot to th OS. I am using this
>>> patches on top of
>>>
>>>    http://gitorious.org/linux-omap-dss2/linux/commits/master
>>>
>>> Do i anything wrong or do i use a wrong git repo (the patches apply
>>> cleanly)? Her my kernel config: http://fpaste.org/9Esw/
>>
>> Ah, I guess you hit one yet unsolved problem on on omap4: VENC register
>> access fails.
>>
>> Can you try switching this off: CONFIG_OMAP2_DSS_VENC.
>>
>> I need to make some quick hack to get VENC disabled on OMAP4 until we
>> find the solution for this.
>>
>>  Tomi
>>
> thanks, this helps to boot the kernel. but now i get:
>

<snip>

> see also: http://paste.pocoo.org/show/351648/
>

I see that you kernel is not booting because of dss clk
 [    3.335601] PC is at dss_clk_disable_no_ctx+0x0/0xa4
[    3.335632] LR is at omap_dispc_register_isr+0xa4/0xcc
Tomi is this related to the clock issue you were mentioning , which
gets solved by adding a delay ?

Thanks and regards,
Mythri.

> if i remove this patchserie again it boots, see here:
> http://paste.pocoo.org/show/351650/
>
> thanks
>
> Stephan
>
>
>
--
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] 73+ messages in thread

* Re: [PATCH v5 00/10] OMAP4 : DSS2 : HDMI support on OMAP4
  2011-03-10 14:45   ` Stephan Raue
  2011-03-10 14:51     ` Tomi Valkeinen
@ 2011-03-11  7:12     ` Tomi Valkeinen
  2011-03-11  8:43       ` Stephan Raue
  1 sibling, 1 reply; 73+ messages in thread
From: Tomi Valkeinen @ 2011-03-11  7:12 UTC (permalink / raw)
  To: Stephan Raue; +Cc: K, Mythri P, linux-omap

On Thu, 2011-03-10 at 08:45 -0600, Stephan Raue wrote:
> Hi,
> 
> if i try this patch series the boot stops after (seeing via serial console):
> 
>    Starting kernel ...
> 
>    Uncompressing Linux... done, booting the kernel.
> 
> without this patch series i can see the boot to th OS. I am using this 
> patches on top of
> 
>    http://gitorious.org/linux-omap-dss2/linux/commits/master
> 
> Do i anything wrong or do i use a wrong git repo (the patches apply 
> cleanly)? Her my kernel config: http://fpaste.org/9Esw/

Hmm, I cannot even compile the kernel with that config:

  CC      arch/arm/mach-omap2/io.o
In file included from arch/arm/mm/init.c:27:0:
/home/tomba/work/linux/arch/arm/include/asm/tlb.h: In function 'tlb_flush_mmu':
/home/tomba/work/linux/arch/arm/include/asm/tlb.h:104:3: error: implicit declaration of function 'release_pages'
In file included from arch/arm/mm/init.c:27:0:
/home/tomba/work/linux/arch/arm/include/asm/tlb.h: In function 'tlb_remove_page':
/home/tomba/work/linux/arch/arm/include/asm/tlb.h:168:3: error: implicit declaration of function 'page_cache_release'
make[1]: *** [arch/arm/mm/init.o] Error 1
make: *** [arch/arm/mm] Error 2
make: *** Waiting for unfinished jobs....

 Tomi



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

* Re: [PATCH v5 00/10] OMAP4 : DSS2 : HDMI support on OMAP4
  2011-03-11  6:16         ` K, Mythri P
@ 2011-03-11  7:24           ` Tomi Valkeinen
  2011-03-11 13:23             ` Hiremath, Vaibhav
  0 siblings, 1 reply; 73+ messages in thread
From: Tomi Valkeinen @ 2011-03-11  7:24 UTC (permalink / raw)
  To: K, Mythri P; +Cc: Stephan Raue, linux-omap

On Fri, 2011-03-11 at 00:16 -0600, K, Mythri P wrote:
> Hi Stephan,
> 
> On Fri, Mar 11, 2011 at 5:37 AM, Stephan Raue <mailinglists@openelec.tv> wrote:

> > thanks, this helps to boot the kernel. but now i get:
> >
> 
> <snip>
> 
> > see also: http://paste.pocoo.org/show/351648/
> >
> 
> I see that you kernel is not booting because of dss clk
>  [    3.335601] PC is at dss_clk_disable_no_ctx+0x0/0xa4
> [    3.335632] LR is at omap_dispc_register_isr+0xa4/0xcc
> Tomi is this related to the clock issue you were mentioning , which
> gets solved by adding a delay ?

Well, I have a hack patch in my tree which adds a delay of 10us. That
fixed the problem for me, but the 10us is just a random guess. It could
be that it needs to be longer wait. But this could be something else
also.

 Tomi



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

* Re: [PATCH v5 00/10] OMAP4 : DSS2 : HDMI support on OMAP4
  2011-03-10 15:06 ` Tomi Valkeinen
@ 2011-03-11  8:24   ` K, Mythri P
  2011-03-16  8:32     ` Tomi Valkeinen
  0 siblings, 1 reply; 73+ messages in thread
From: K, Mythri P @ 2011-03-11  8:24 UTC (permalink / raw)
  To: Tomi Valkeinen; +Cc: linux-omap

Hi Tomi,

On Thu, Mar 10, 2011 at 8:36 PM, Tomi Valkeinen <tomi.valkeinen@ti.com> wrote:
> Hi Mythri,
>
> On Thu, 2011-03-10 at 04:44 -0600, K, Mythri P wrote:
>> Adding HDMI support on OMAP4.
>>
>> HDMI is a driver that is similar to the VENC or the DSI driver to support
>> HDMI/DVI sink device.
>>
>> The current design adheres to the DSS2 architecture.
>
> I was testing this on Blaze, with VENC enabled in Kconfig and a small
> hack in venc.c which skips registering the venc device on omap4.
>
> I haven't seen these earlier, so it may just be I've been lucky, or
> enabling VENC affected this.
>
> I've seen this twice when loading the modules:
>
> [   23.007690] omapdss HDMI: no valid timing found , falling back to VGA
> [   23.040161] omapdss HDMI error: PLL GO bit not set
> [   23.045196] omapdss HDMI error: failed to power on device
> [   23.050964] omapdss error: failed to power on
> [   23.055572] omapfb omapfb: Failed to enable display 'hdmi'
> [   23.066162] omapfb omapfb: failed to setup omapfb
> [   23.071166] omapfb: probe of omapfb failed with error -5
>
> And I've seen this once when unloading modules:
>
> [  126.473419] omapdss DISPC error: SYNC_LOST_DIGIT, disabling TV
> [  126.569244] omapdss DISPC error: timeout waiting for EVSYNC
> [  126.670776] omapdss DISPC error: timeout waiting for EVSYNC
> [  126.773376] omapdss HDMI: no valid timing found , falling back to VGA
> [  126.881896] omapdss DISPC error: timeout waiting for EVSYNC
> [  126.983367] omapdss DISPC error: timeout waiting for EVSYNC
> rmmod: can't unload 'omapdss': Resource temporarily unavailable
>
> This looks a bit bad, as it sounds to me that when an error happened,
> some code path returned too early and the omapdss driver could not
> unload.
>
I tried loading and unloading around 10-15 times and did not hit the problem,
Can you please paste the entire log ? Did you see this only when VENC was
enabled?

> There is this code in dss.c:
>
> #ifdef CONFIG_OMAP2_DSS_VENC
>        REG_FLD_MOD(DSS_CONTROL, 1, 4, 4);      /* venc dac demen */
>        REG_FLD_MOD(DSS_CONTROL, 1, 3, 3);      /* venc clock 4x enable */
>        REG_FLD_MOD(DSS_CONTROL, 0, 2, 2);      /* venc clock mode = normal */
> #endif
>
Regarding this piece of code , although it appears that is should not affect ,
I think we should move this out of dss_init , if any such change is needed
we should do that on VENC enable dont you think ?

> They don't sound like they would affect HDMI, but that was the only
> difference I found (between VENC enabled and disabled) with a quick
> search.
>
>  Tomi
>
Thanks and regards,
Mythri.
--
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] 73+ messages in thread

* Re: [PATCH v5 00/10] OMAP4 : DSS2 : HDMI support on OMAP4
  2011-03-11  7:12     ` Tomi Valkeinen
@ 2011-03-11  8:43       ` Stephan Raue
  2011-03-11 13:22         ` Tomi Valkeinen
  0 siblings, 1 reply; 73+ messages in thread
From: Stephan Raue @ 2011-03-11  8:43 UTC (permalink / raw)
  To: Tomi Valkeinen; +Cc: K, Mythri P, linux-omap

Am 11.03.2011 08:12, schrieb Tomi Valkeinen:
> On Thu, 2011-03-10 at 08:45 -0600, Stephan Raue wrote:
>> Hi,
>>
>> if i try this patch series the boot stops after (seeing via serial console):
>>
>>     Starting kernel ...
>>
>>     Uncompressing Linux... done, booting the kernel.
>>
>> without this patch series i can see the boot to th OS. I am using this
>> patches on top of
>>
>>     http://gitorious.org/linux-omap-dss2/linux/commits/master
>>
>> Do i anything wrong or do i use a wrong git repo (the patches apply
>> cleanly)? Her my kernel config: http://fpaste.org/9Esw/
> Hmm, I cannot even compile the kernel with that config:
>
>    CC      arch/arm/mach-omap2/io.o
> In file included from arch/arm/mm/init.c:27:0:
> /home/tomba/work/linux/arch/arm/include/asm/tlb.h: In function 'tlb_flush_mmu':
> /home/tomba/work/linux/arch/arm/include/asm/tlb.h:104:3: error: implicit declaration of function 'release_pages'
> In file included from arch/arm/mm/init.c:27:0:
> /home/tomba/work/linux/arch/arm/include/asm/tlb.h: In function 'tlb_remove_page':
> /home/tomba/work/linux/arch/arm/include/asm/tlb.h:168:3: error: implicit declaration of function 'page_cache_release'
> make[1]: *** [arch/arm/mm/init.o] Error 1
> make: *** [arch/arm/mm] Error 2
> make: *** Waiting for unfinished jobs....
>
>   Tomi
>
please enable swap support or try: 
http://ftp.arm.linux.org.uk/git/?p=linux-2.6-arm.git;a=commit;h=97594b0f35c0708cb9551c070b9693a52ec24ebf 
which is fixed in 2.6.38-rc8

Stephan


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

* Re: [PATCH v5 00/10] OMAP4 : DSS2 : HDMI support on OMAP4
  2011-03-11  8:43       ` Stephan Raue
@ 2011-03-11 13:22         ` Tomi Valkeinen
  2011-03-11 16:18           ` Stephan Raue
  0 siblings, 1 reply; 73+ messages in thread
From: Tomi Valkeinen @ 2011-03-11 13:22 UTC (permalink / raw)
  To: Stephan Raue; +Cc: K, Mythri P, linux-omap

On Fri, 2011-03-11 at 02:43 -0600, Stephan Raue wrote:
> Am 11.03.2011 08:12, schrieb Tomi Valkeinen:
> > On Thu, 2011-03-10 at 08:45 -0600, Stephan Raue wrote:
> >> Hi,
> >>
> >> if i try this patch series the boot stops after (seeing via serial console):
> >>
> >>     Starting kernel ...
> >>
> >>     Uncompressing Linux... done, booting the kernel.
> >>
> >> without this patch series i can see the boot to th OS. I am using this
> >> patches on top of
> >>
> >>     http://gitorious.org/linux-omap-dss2/linux/commits/master
> >>
> >> Do i anything wrong or do i use a wrong git repo (the patches apply
> >> cleanly)? Her my kernel config: http://fpaste.org/9Esw/
> > Hmm, I cannot even compile the kernel with that config:
> >
> >    CC      arch/arm/mach-omap2/io.o
> > In file included from arch/arm/mm/init.c:27:0:
> > /home/tomba/work/linux/arch/arm/include/asm/tlb.h: In function 'tlb_flush_mmu':
> > /home/tomba/work/linux/arch/arm/include/asm/tlb.h:104:3: error: implicit declaration of function 'release_pages'
> > In file included from arch/arm/mm/init.c:27:0:
> > /home/tomba/work/linux/arch/arm/include/asm/tlb.h: In function 'tlb_remove_page':
> > /home/tomba/work/linux/arch/arm/include/asm/tlb.h:168:3: error: implicit declaration of function 'page_cache_release'
> > make[1]: *** [arch/arm/mm/init.o] Error 1
> > make: *** [arch/arm/mm] Error 2
> > make: *** Waiting for unfinished jobs....
> >
> >   Tomi
> >
> please enable swap support or try: 
> http://ftp.arm.linux.org.uk/git/?p=linux-2.6-arm.git;a=commit;h=97594b0f35c0708cb9551c070b9693a52ec24ebf 
> which is fixed in 2.6.38-rc8

Ok. So you didn't have just my master branch and the HDMI patch set? I
see that the config you gave is for rc8, and mine is rc7, so I guess you
also merged rc8 into your tree?

 Tomi



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

* RE: [PATCH v5 00/10] OMAP4 : DSS2 : HDMI support on OMAP4
  2011-03-11  7:24           ` Tomi Valkeinen
@ 2011-03-11 13:23             ` Hiremath, Vaibhav
  2011-03-14  8:35               ` Hiremath, Vaibhav
  0 siblings, 1 reply; 73+ messages in thread
From: Hiremath, Vaibhav @ 2011-03-11 13:23 UTC (permalink / raw)
  To: Valkeinen, Tomi, K, Mythri P; +Cc: Stephan Raue, linux-omap

> -----Original Message-----
> From: linux-omap-owner@vger.kernel.org [mailto:linux-omap-
> owner@vger.kernel.org] On Behalf Of Valkeinen, Tomi
> Sent: Friday, March 11, 2011 12:55 PM
> To: K, Mythri P
> Cc: Stephan Raue; linux-omap@vger.kernel.org
> Subject: Re: [PATCH v5 00/10] OMAP4 : DSS2 : HDMI support on OMAP4
> 
> On Fri, 2011-03-11 at 00:16 -0600, K, Mythri P wrote:
> > Hi Stephan,
> >
> > On Fri, Mar 11, 2011 at 5:37 AM, Stephan Raue <mailinglists@openelec.tv>
> wrote:
> 
> > > thanks, this helps to boot the kernel. but now i get:
> > >
> >
> > <snip>
> >
> > > see also: http://paste.pocoo.org/show/351648/
> > >
> >
> > I see that you kernel is not booting because of dss clk
> >  [    3.335601] PC is at dss_clk_disable_no_ctx+0x0/0xa4
> > [    3.335632] LR is at omap_dispc_register_isr+0xa4/0xcc
> > Tomi is this related to the clock issue you were mentioning , which
> > gets solved by adding a delay ?
> 
> Well, I have a hack patch in my tree which adds a delay of 10us. That
> fixed the problem for me, but the 10us is just a random guess. It could
> be that it needs to be longer wait. But this could be something else
> also.
> 
>  Tomi
> 
[Hiremath, Vaibhav] Tomi, just thought of updating you,

The linux-omap/dss2 OMAP3EVM seems to be broken, I am trying to debug this at the moment and will update about my findings.

Since linux-omap/master is booting up fine, it looks like one of new DSS patch leading to this.

Thanks,
Vaibhav

> 
> --
> 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] 73+ messages in thread

* Re: [PATCH v5 00/10] OMAP4 : DSS2 : HDMI support on OMAP4
  2011-03-11 13:22         ` Tomi Valkeinen
@ 2011-03-11 16:18           ` Stephan Raue
  2011-03-11 18:27             ` Tomi Valkeinen
  0 siblings, 1 reply; 73+ messages in thread
From: Stephan Raue @ 2011-03-11 16:18 UTC (permalink / raw)
  To: Tomi Valkeinen; +Cc: K, Mythri P, linux-omap

Am 11.03.2011 14:22, schrieb Tomi Valkeinen:
> On Fri, 2011-03-11 at 02:43 -0600, Stephan Raue wrote:
>> Am 11.03.2011 08:12, schrieb Tomi Valkeinen:
>>> On Thu, 2011-03-10 at 08:45 -0600, Stephan Raue wrote:
>>>> Hi,
>>>>
>>>> if i try this patch series the boot stops after (seeing via serial console):
>>>>
>>>>      Starting kernel ...
>>>>
>>>>      Uncompressing Linux... done, booting the kernel.
>>>>
>>>> without this patch series i can see the boot to th OS. I am using this
>>>> patches on top of
>>>>
>>>>      http://gitorious.org/linux-omap-dss2/linux/commits/master
>>>>
>>>> Do i anything wrong or do i use a wrong git repo (the patches apply
>>>> cleanly)? Her my kernel config: http://fpaste.org/9Esw/
>>> Hmm, I cannot even compile the kernel with that config:
>>>
>>>     CC      arch/arm/mach-omap2/io.o
>>> In file included from arch/arm/mm/init.c:27:0:
>>> /home/tomba/work/linux/arch/arm/include/asm/tlb.h: In function 'tlb_flush_mmu':
>>> /home/tomba/work/linux/arch/arm/include/asm/tlb.h:104:3: error: implicit declaration of function 'release_pages'
>>> In file included from arch/arm/mm/init.c:27:0:
>>> /home/tomba/work/linux/arch/arm/include/asm/tlb.h: In function 'tlb_remove_page':
>>> /home/tomba/work/linux/arch/arm/include/asm/tlb.h:168:3: error: implicit declaration of function 'page_cache_release'
>>> make[1]: *** [arch/arm/mm/init.o] Error 1
>>> make: *** [arch/arm/mm] Error 2
>>> make: *** Waiting for unfinished jobs....
>>>
>>>    Tomi
>>>
>> please enable swap support or try:
>> http://ftp.arm.linux.org.uk/git/?p=linux-2.6-arm.git;a=commit;h=97594b0f35c0708cb9551c070b9693a52ec24ebf
>> which is fixed in 2.6.38-rc8
> Ok. So you didn't have just my master branch and the HDMI patch set? I
> see that the config you gave is for rc8, and mine is rc7, so I guess you
> also merged rc8 into your tree?
>
>   Tomi
>
yes, you are right, i have tested this with different kernel configs and 
both rc7 and rc8 with the same results.

Stephan

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

* Re: [PATCH v5 00/10] OMAP4 : DSS2 : HDMI support on OMAP4
  2011-03-11 16:18           ` Stephan Raue
@ 2011-03-11 18:27             ` Tomi Valkeinen
  2011-03-11 18:42               ` Stephan Raue
  0 siblings, 1 reply; 73+ messages in thread
From: Tomi Valkeinen @ 2011-03-11 18:27 UTC (permalink / raw)
  To: Stephan Raue; +Cc: K, Mythri P, linux-omap

On Fri, 2011-03-11 at 10:18 -0600, Stephan Raue wrote:
> Am 11.03.2011 14:22, schrieb Tomi Valkeinen:
> > On Fri, 2011-03-11 at 02:43 -0600, Stephan Raue wrote:
> >> Am 11.03.2011 08:12, schrieb Tomi Valkeinen:
> >>> On Thu, 2011-03-10 at 08:45 -0600, Stephan Raue wrote:
> >>>> Hi,
> >>>>
> >>>> if i try this patch series the boot stops after (seeing via serial console):
> >>>>
> >>>>      Starting kernel ...
> >>>>
> >>>>      Uncompressing Linux... done, booting the kernel.
> >>>>
> >>>> without this patch series i can see the boot to th OS. I am using this
> >>>> patches on top of
> >>>>
> >>>>      http://gitorious.org/linux-omap-dss2/linux/commits/master
> >>>>
> >>>> Do i anything wrong or do i use a wrong git repo (the patches apply
> >>>> cleanly)? Her my kernel config: http://fpaste.org/9Esw/
> >>> Hmm, I cannot even compile the kernel with that config:
> >>>
> >>>     CC      arch/arm/mach-omap2/io.o
> >>> In file included from arch/arm/mm/init.c:27:0:
> >>> /home/tomba/work/linux/arch/arm/include/asm/tlb.h: In function 'tlb_flush_mmu':
> >>> /home/tomba/work/linux/arch/arm/include/asm/tlb.h:104:3: error: implicit declaration of function 'release_pages'
> >>> In file included from arch/arm/mm/init.c:27:0:
> >>> /home/tomba/work/linux/arch/arm/include/asm/tlb.h: In function 'tlb_remove_page':
> >>> /home/tomba/work/linux/arch/arm/include/asm/tlb.h:168:3: error: implicit declaration of function 'page_cache_release'
> >>> make[1]: *** [arch/arm/mm/init.o] Error 1
> >>> make: *** [arch/arm/mm] Error 2
> >>> make: *** Waiting for unfinished jobs....
> >>>
> >>>    Tomi
> >>>
> >> please enable swap support or try:
> >> http://ftp.arm.linux.org.uk/git/?p=linux-2.6-arm.git;a=commit;h=97594b0f35c0708cb9551c070b9693a52ec24ebf
> >> which is fixed in 2.6.38-rc8
> > Ok. So you didn't have just my master branch and the HDMI patch set? I
> > see that the config you gave is for rc8, and mine is rc7, so I guess you
> > also merged rc8 into your tree?
> >
> >   Tomi
> >
> yes, you are right, i have tested this with different kernel configs and 
> both rc7 and rc8 with the same results.

Ok. I need to dig out my panda and try to get it running. Blaze board
seems to work fine, at least for me.

Does the crash happen every time?

 Tomi



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

* Re: [PATCH v5 00/10] OMAP4 : DSS2 : HDMI support on OMAP4
  2011-03-11 18:27             ` Tomi Valkeinen
@ 2011-03-11 18:42               ` Stephan Raue
  2011-03-12  6:51                 ` K, Mythri P
  0 siblings, 1 reply; 73+ messages in thread
From: Stephan Raue @ 2011-03-11 18:42 UTC (permalink / raw)
  To: Tomi Valkeinen; +Cc: K, Mythri P, linux-omap

Am 11.03.2011 19:27, schrieb Tomi Valkeinen:
> On Fri, 2011-03-11 at 10:18 -0600, Stephan Raue wrote:
>> Am 11.03.2011 14:22, schrieb Tomi Valkeinen:
>>> On Fri, 2011-03-11 at 02:43 -0600, Stephan Raue wrote:
>>>> Am 11.03.2011 08:12, schrieb Tomi Valkeinen:
>>>>> On Thu, 2011-03-10 at 08:45 -0600, Stephan Raue wrote:
>>>>>> Hi,
>>>>>>
>>>>>> if i try this patch series the boot stops after (seeing via serial console):
>>>>>>
>>>>>>       Starting kernel ...
>>>>>>
>>>>>>       Uncompressing Linux... done, booting the kernel.
>>>>>>
>>>>>> without this patch series i can see the boot to th OS. I am using this
>>>>>> patches on top of
>>>>>>
>>>>>>       http://gitorious.org/linux-omap-dss2/linux/commits/master
>>>>>>
>>>>>> Do i anything wrong or do i use a wrong git repo (the patches apply
>>>>>> cleanly)? Her my kernel config: http://fpaste.org/9Esw/
>>>>> Hmm, I cannot even compile the kernel with that config:
>>>>>
>>>>>      CC      arch/arm/mach-omap2/io.o
>>>>> In file included from arch/arm/mm/init.c:27:0:
>>>>> /home/tomba/work/linux/arch/arm/include/asm/tlb.h: In function 'tlb_flush_mmu':
>>>>> /home/tomba/work/linux/arch/arm/include/asm/tlb.h:104:3: error: implicit declaration of function 'release_pages'
>>>>> In file included from arch/arm/mm/init.c:27:0:
>>>>> /home/tomba/work/linux/arch/arm/include/asm/tlb.h: In function 'tlb_remove_page':
>>>>> /home/tomba/work/linux/arch/arm/include/asm/tlb.h:168:3: error: implicit declaration of function 'page_cache_release'
>>>>> make[1]: *** [arch/arm/mm/init.o] Error 1
>>>>> make: *** [arch/arm/mm] Error 2
>>>>> make: *** Waiting for unfinished jobs....
>>>>>
>>>>>     Tomi
>>>>>
>>>> please enable swap support or try:
>>>> http://ftp.arm.linux.org.uk/git/?p=linux-2.6-arm.git;a=commit;h=97594b0f35c0708cb9551c070b9693a52ec24ebf
>>>> which is fixed in 2.6.38-rc8
>>> Ok. So you didn't have just my master branch and the HDMI patch set? I
>>> see that the config you gave is for rc8, and mine is rc7, so I guess you
>>> also merged rc8 into your tree?
>>>
>>>    Tomi
>>>
>> yes, you are right, i have tested this with different kernel configs and
>> both rc7 and rc8 with the same results.
> Ok. I need to dig out my panda and try to get it running. Blaze board
> seems to work fine, at least for me.
>
> Does the crash happen every time?
>
>   Tomi
>
> omap2plus_defconfig
yes, with all configs i tried. will try a "make omap2plus_defconfig" too 
and let you know.

thanks much

Stephan

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

* Re: [PATCH v5 00/10] OMAP4 : DSS2 : HDMI support on OMAP4
  2011-03-11 18:42               ` Stephan Raue
@ 2011-03-12  6:51                 ` K, Mythri P
  2011-03-13 14:32                   ` Stephan Raue
  0 siblings, 1 reply; 73+ messages in thread
From: K, Mythri P @ 2011-03-12  6:51 UTC (permalink / raw)
  To: Stephan Raue; +Cc: Tomi Valkeinen, linux-omap

Hi,


On Sat, Mar 12, 2011 at 12:12 AM, Stephan Raue <mailinglists@openelec.tv> wrote:
> Am 11.03.2011 19:27, schrieb Tomi Valkeinen:
>>
>> On Fri, 2011-03-11 at 10:18 -0600, Stephan Raue wrote:
>>>
>>> Am 11.03.2011 14:22, schrieb Tomi Valkeinen:
>>>>
>>>> On Fri, 2011-03-11 at 02:43 -0600, Stephan Raue wrote:
>>>>>
>>>>> Am 11.03.2011 08:12, schrieb Tomi Valkeinen:
>>>>>>
>>>>>> On Thu, 2011-03-10 at 08:45 -0600, Stephan Raue wrote:
>>>>>>>
>>>>>>> Hi,
>>>>>>>
>>>>>>> if i try this patch series the boot stops after (seeing via serial
>>>>>>> console):
>>>>>>>
>>>>>>>      Starting kernel ...
>>>>>>>
>>>>>>>      Uncompressing Linux... done, booting the kernel.
>>>>>>>
>>>>>>> without this patch series i can see the boot to th OS. I am using
>>>>>>> this
>>>>>>> patches on top of
>>>>>>>
>>>>>>>      http://gitorious.org/linux-omap-dss2/linux/commits/master
>>>>>>>
>>>>>>> Do i anything wrong or do i use a wrong git repo (the patches apply
>>>>>>> cleanly)? Her my kernel config: http://fpaste.org/9Esw/
>>>>>>
>>>>>> Hmm, I cannot even compile the kernel with that config:
>>>>>>
>>>>>>     CC      arch/arm/mach-omap2/io.o
>>>>>> In file included from arch/arm/mm/init.c:27:0:
>>>>>> /home/tomba/work/linux/arch/arm/include/asm/tlb.h: In function
>>>>>> 'tlb_flush_mmu':
>>>>>> /home/tomba/work/linux/arch/arm/include/asm/tlb.h:104:3: error:
>>>>>> implicit declaration of function 'release_pages'
>>>>>> In file included from arch/arm/mm/init.c:27:0:
>>>>>> /home/tomba/work/linux/arch/arm/include/asm/tlb.h: In function
>>>>>> 'tlb_remove_page':
>>>>>> /home/tomba/work/linux/arch/arm/include/asm/tlb.h:168:3: error:
>>>>>> implicit declaration of function 'page_cache_release'
>>>>>> make[1]: *** [arch/arm/mm/init.o] Error 1
>>>>>> make: *** [arch/arm/mm] Error 2
>>>>>> make: *** Waiting for unfinished jobs....
>>>>>>
>>>>>>    Tomi
>>>>>>
>>>>> please enable swap support or try:
>>>>>
>>>>> http://ftp.arm.linux.org.uk/git/?p=linux-2.6-arm.git;a=commit;h=97594b0f35c0708cb9551c070b9693a52ec24ebf
>>>>> which is fixed in 2.6.38-rc8
>>>>
>>>> Ok. So you didn't have just my master branch and the HDMI patch set? I
>>>> see that the config you gave is for rc8, and mine is rc7, so I guess you
>>>> also merged rc8 into your tree?
>>>>
>>>>   Tomi
>>>>
>>> yes, you are right, i have tested this with different kernel configs and
>>> both rc7 and rc8 with the same results.
>>
>> Ok. I need to dig out my panda and try to get it running. Blaze board
>> seems to work fine, at least for me.
>>
>> Does the crash happen every time?
>>
>>  Tomi
>>
>> omap2plus_defconfig
>
> yes, with all configs i tried. will try a "make omap2plus_defconfig" too and
> let you know.
>
I have tried booting on Panda board and it works fine , I am using
OMAP2PLUS defconfig.
I have disabled VENC though( without that i see that kernel hangs , ie
because reading VENC register in hwmod probe is resulting in a crash.

> thanks much
>
> Stephan
>
Vaibhav,
You see a crash even without this patch set right ? so should we take
that in a different thread?

Thanks and regards,
Mythri.
--
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] 73+ messages in thread

* Re: [PATCH v5 00/10] OMAP4 : DSS2 : HDMI support on OMAP4
  2011-03-12  6:51                 ` K, Mythri P
@ 2011-03-13 14:32                   ` Stephan Raue
  2011-03-13 16:20                     ` Stephan Raue
  0 siblings, 1 reply; 73+ messages in thread
From: Stephan Raue @ 2011-03-13 14:32 UTC (permalink / raw)
  To: K, Mythri P; +Cc: Tomi Valkeinen, linux-omap

Am 12.03.2011 07:51, schrieb K, Mythri P:
> Hi,
>
>
> On Sat, Mar 12, 2011 at 12:12 AM, Stephan Raue<mailinglists@openelec.tv>  wrote:
>> Am 11.03.2011 19:27, schrieb Tomi Valkeinen:
>>> On Fri, 2011-03-11 at 10:18 -0600, Stephan Raue wrote:
>>>> Am 11.03.2011 14:22, schrieb Tomi Valkeinen:
>>>>> On Fri, 2011-03-11 at 02:43 -0600, Stephan Raue wrote:
>>>>>> Am 11.03.2011 08:12, schrieb Tomi Valkeinen:
>>>>>>> On Thu, 2011-03-10 at 08:45 -0600, Stephan Raue wrote:
>>>>>>>> Hi,
>>>>>>>>
>>>>>>>> if i try this patch series the boot stops after (seeing via serial
>>>>>>>> console):
>>>>>>>>
>>>>>>>>       Starting kernel ...
>>>>>>>>
>>>>>>>>       Uncompressing Linux... done, booting the kernel.
>>>>>>>>
>>>>>>>> without this patch series i can see the boot to th OS. I am using
>>>>>>>> this
>>>>>>>> patches on top of
>>>>>>>>
>>>>>>>>       http://gitorious.org/linux-omap-dss2/linux/commits/master
>>>>>>>>
>>>>>>>> Do i anything wrong or do i use a wrong git repo (the patches apply
>>>>>>>> cleanly)? Her my kernel config: http://fpaste.org/9Esw/
>>>>>>> Hmm, I cannot even compile the kernel with that config:
>>>>>>>
>>>>>>>      CC      arch/arm/mach-omap2/io.o
>>>>>>> In file included from arch/arm/mm/init.c:27:0:
>>>>>>> /home/tomba/work/linux/arch/arm/include/asm/tlb.h: In function
>>>>>>> 'tlb_flush_mmu':
>>>>>>> /home/tomba/work/linux/arch/arm/include/asm/tlb.h:104:3: error:
>>>>>>> implicit declaration of function 'release_pages'
>>>>>>> In file included from arch/arm/mm/init.c:27:0:
>>>>>>> /home/tomba/work/linux/arch/arm/include/asm/tlb.h: In function
>>>>>>> 'tlb_remove_page':
>>>>>>> /home/tomba/work/linux/arch/arm/include/asm/tlb.h:168:3: error:
>>>>>>> implicit declaration of function 'page_cache_release'
>>>>>>> make[1]: *** [arch/arm/mm/init.o] Error 1
>>>>>>> make: *** [arch/arm/mm] Error 2
>>>>>>> make: *** Waiting for unfinished jobs....
>>>>>>>
>>>>>>>     Tomi
>>>>>>>
>>>>>> please enable swap support or try:
>>>>>>
>>>>>> http://ftp.arm.linux.org.uk/git/?p=linux-2.6-arm.git;a=commit;h=97594b0f35c0708cb9551c070b9693a52ec24ebf
>>>>>> which is fixed in 2.6.38-rc8
>>>>> Ok. So you didn't have just my master branch and the HDMI patch set? I
>>>>> see that the config you gave is for rc8, and mine is rc7, so I guess you
>>>>> also merged rc8 into your tree?
>>>>>
>>>>>    Tomi
>>>>>
>>>> yes, you are right, i have tested this with different kernel configs and
>>>> both rc7 and rc8 with the same results.
>>> Ok. I need to dig out my panda and try to get it running. Blaze board
>>> seems to work fine, at least for me.
>>>
>>> Does the crash happen every time?
>>>
>>>   Tomi
>>>
>>> omap2plus_defconfig
>> yes, with all configs i tried. will try a "make omap2plus_defconfig" too and
>> let you know.
>>
> I have tried booting on Panda board and it works fine , I am using
> OMAP2PLUS defconfig.
> I have disabled VENC though( without that i see that kernel hangs , ie
> because reading VENC register in hwmod probe is resulting in a crash.
>
i have tried this omap2plus defconfig now too, with some little changes 
needed to boot my system (config: http://paste.pocoo.org/show/352917/). 
Now i get this error (see also: http://paste.pocoo.org/show/352915/)

[    3.255065] omapdss HDMI: fallback to VGA
[    3.271636] omapdss HDMI error: Failed to set PHY_PWR_STATUS
[    3.277587] omapdss HDMI error: failed to power on device
[    3.283325] omapdss error: failed to power on
[    3.287902] omapfb omapfb: Failed to enable display 'hdmi'
[    3.293853] Console: switching to colour dummy device 80x30
[    3.304595] omapfb omapfb: failed to setup omapfb
[    3.309539] omapfb: probe of omapfb failed with error -5

thanks

Stephan

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

* Re: [PATCH v5 00/10] OMAP4 : DSS2 : HDMI support on OMAP4
  2011-03-13 14:32                   ` Stephan Raue
@ 2011-03-13 16:20                     ` Stephan Raue
  2011-03-16  6:51                       ` Tomi Valkeinen
  0 siblings, 1 reply; 73+ messages in thread
From: Stephan Raue @ 2011-03-13 16:20 UTC (permalink / raw)
  To: K, Mythri P; +Cc: Tomi Valkeinen, linux-omap

Am 13.03.2011 15:32, schrieb Stephan Raue:
> Am 12.03.2011 07:51, schrieb K, Mythri P:
>> Hi,
>>
>>
>> On Sat, Mar 12, 2011 at 12:12 AM, Stephan 
>> Raue<mailinglists@openelec.tv>  wrote:
>>> Am 11.03.2011 19:27, schrieb Tomi Valkeinen:
>>>> On Fri, 2011-03-11 at 10:18 -0600, Stephan Raue wrote:
>>>>> Am 11.03.2011 14:22, schrieb Tomi Valkeinen:
>>>>>> On Fri, 2011-03-11 at 02:43 -0600, Stephan Raue wrote:
>>>>>>> Am 11.03.2011 08:12, schrieb Tomi Valkeinen:
>>>>>>>> On Thu, 2011-03-10 at 08:45 -0600, Stephan Raue wrote:
>>>>>>>>> Hi,
>>>>>>>>>
>>>>>>>>> if i try this patch series the boot stops after (seeing via 
>>>>>>>>> serial
>>>>>>>>> console):
>>>>>>>>>
>>>>>>>>>       Starting kernel ...
>>>>>>>>>
>>>>>>>>>       Uncompressing Linux... done, booting the kernel.
>>>>>>>>>
>>>>>>>>> without this patch series i can see the boot to th OS. I am using
>>>>>>>>> this
>>>>>>>>> patches on top of
>>>>>>>>>
>>>>>>>>>       http://gitorious.org/linux-omap-dss2/linux/commits/master
>>>>>>>>>
>>>>>>>>> Do i anything wrong or do i use a wrong git repo (the patches 
>>>>>>>>> apply
>>>>>>>>> cleanly)? Her my kernel config: http://fpaste.org/9Esw/
>>>>>>>> Hmm, I cannot even compile the kernel with that config:
>>>>>>>>
>>>>>>>>      CC      arch/arm/mach-omap2/io.o
>>>>>>>> In file included from arch/arm/mm/init.c:27:0:
>>>>>>>> /home/tomba/work/linux/arch/arm/include/asm/tlb.h: In function
>>>>>>>> 'tlb_flush_mmu':
>>>>>>>> /home/tomba/work/linux/arch/arm/include/asm/tlb.h:104:3: error:
>>>>>>>> implicit declaration of function 'release_pages'
>>>>>>>> In file included from arch/arm/mm/init.c:27:0:
>>>>>>>> /home/tomba/work/linux/arch/arm/include/asm/tlb.h: In function
>>>>>>>> 'tlb_remove_page':
>>>>>>>> /home/tomba/work/linux/arch/arm/include/asm/tlb.h:168:3: error:
>>>>>>>> implicit declaration of function 'page_cache_release'
>>>>>>>> make[1]: *** [arch/arm/mm/init.o] Error 1
>>>>>>>> make: *** [arch/arm/mm] Error 2
>>>>>>>> make: *** Waiting for unfinished jobs....
>>>>>>>>
>>>>>>>>     Tomi
>>>>>>>>
>>>>>>> please enable swap support or try:
>>>>>>>
>>>>>>> http://ftp.arm.linux.org.uk/git/?p=linux-2.6-arm.git;a=commit;h=97594b0f35c0708cb9551c070b9693a52ec24ebf 
>>>>>>>
>>>>>>> which is fixed in 2.6.38-rc8
>>>>>> Ok. So you didn't have just my master branch and the HDMI patch 
>>>>>> set? I
>>>>>> see that the config you gave is for rc8, and mine is rc7, so I 
>>>>>> guess you
>>>>>> also merged rc8 into your tree?
>>>>>>
>>>>>>    Tomi
>>>>>>
>>>>> yes, you are right, i have tested this with different kernel 
>>>>> configs and
>>>>> both rc7 and rc8 with the same results.
>>>> Ok. I need to dig out my panda and try to get it running. Blaze board
>>>> seems to work fine, at least for me.
>>>>
>>>> Does the crash happen every time?
>>>>
>>>>   Tomi
>>>>
>>>> omap2plus_defconfig
>>> yes, with all configs i tried. will try a "make omap2plus_defconfig" 
>>> too and
>>> let you know.
>>>
>> I have tried booting on Panda board and it works fine , I am using
>> OMAP2PLUS defconfig.
>> I have disabled VENC though( without that i see that kernel hangs , ie
>> because reading VENC register in hwmod probe is resulting in a crash.
>>
> i have tried this omap2plus defconfig now too, with some little 
> changes needed to boot my system (config: 
> http://paste.pocoo.org/show/352917/). Now i get this error (see also: 
> http://paste.pocoo.org/show/352915/)
>
> [    3.255065] omapdss HDMI: fallback to VGA
> [    3.271636] omapdss HDMI error: Failed to set PHY_PWR_STATUS
> [    3.277587] omapdss HDMI error: failed to power on device
> [    3.283325] omapdss error: failed to power on
> [    3.287902] omapfb omapfb: Failed to enable display 'hdmi'
> [    3.293853] Console: switching to colour dummy device 80x30
> [    3.304595] omapfb omapfb: failed to setup omapfb
> [    3.309539] omapfb: probe of omapfb failed with error -5

using omap2plus defconfig with my little changes i need to boot my 
system i get the error above, also if i remove CONFIG_ARCH_OMAP2. but if 
i remove CONFIG_ARCH_OMAP3 too i get the error i reported originally 
(the kernel begins to boot, but crashes) (diff between omap2plus 
defconfig without CONFIG_ARCH_OMAP2 and omap2plus defconfig without 
CONFIG_ARCH_OMAP2, CONFIG_ARCH_OMAP3: http://paste.pocoo.org/show/352960/)

thanks

Stephan

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

* RE: [PATCH v5 00/10] OMAP4 : DSS2 : HDMI support on OMAP4
  2011-03-11 13:23             ` Hiremath, Vaibhav
@ 2011-03-14  8:35               ` Hiremath, Vaibhav
  2011-03-14  9:24                 ` Tomi Valkeinen
  0 siblings, 1 reply; 73+ messages in thread
From: Hiremath, Vaibhav @ 2011-03-14  8:35 UTC (permalink / raw)
  To: Hiremath, Vaibhav, Valkeinen, Tomi, K, Mythri P; +Cc: Stephan Raue, linux-omap

> -----Original Message-----
> From: linux-omap-owner@vger.kernel.org [mailto:linux-omap-
> owner@vger.kernel.org] On Behalf Of Hiremath, Vaibhav
> Sent: Friday, March 11, 2011 6:53 PM
> To: Valkeinen, Tomi; K, Mythri P
> Cc: Stephan Raue; linux-omap@vger.kernel.org
> Subject: RE: [PATCH v5 00/10] OMAP4 : DSS2 : HDMI support on OMAP4
> 
> > -----Original Message-----
> > From: linux-omap-owner@vger.kernel.org [mailto:linux-omap-
> > owner@vger.kernel.org] On Behalf Of Valkeinen, Tomi
> > Sent: Friday, March 11, 2011 12:55 PM
> > To: K, Mythri P
> > Cc: Stephan Raue; linux-omap@vger.kernel.org
> > Subject: Re: [PATCH v5 00/10] OMAP4 : DSS2 : HDMI support on OMAP4
> >
> > On Fri, 2011-03-11 at 00:16 -0600, K, Mythri P wrote:
> > > Hi Stephan,
> > >
> > > On Fri, Mar 11, 2011 at 5:37 AM, Stephan Raue
> <mailinglists@openelec.tv>
> > wrote:
> >
> > > > thanks, this helps to boot the kernel. but now i get:
> > > >
> > >
> > > <snip>
> > >
> > > > see also: http://paste.pocoo.org/show/351648/
> > > >
> > >
> > > I see that you kernel is not booting because of dss clk
> > >  [    3.335601] PC is at dss_clk_disable_no_ctx+0x0/0xa4
> > > [    3.335632] LR is at omap_dispc_register_isr+0xa4/0xcc
> > > Tomi is this related to the clock issue you were mentioning , which
> > > gets solved by adding a delay ?
> >
> > Well, I have a hack patch in my tree which adds a delay of 10us. That
> > fixed the problem for me, but the 10us is just a random guess. It could
> > be that it needs to be longer wait. But this could be something else
> > also.
> >
> >  Tomi
> >
> [Hiremath, Vaibhav] Tomi, just thought of updating you,
> 
> The linux-omap/dss2 OMAP3EVM seems to be broken, I am trying to debug this
> at the moment and will update about my findings.
> 
> Since linux-omap/master is booting up fine, it looks like one of new DSS
> patch leading to this.
> 
[Hiremath, Vaibhav] I think I found the where and why the kernel is crashing but not sure about root-cause - 

The root-cause turned out to be - 

void dss_clk_enable(enum dss_clock clks)
{
...

if (check_ctx && cpu_is_omap34xx() && dss_need_ctx_restore())
       restore_all_ctx();
...
}

In this case, restore never happens, if I understand correctly, I am expecting, the context must be restored when all clock (especially interface clock) is disabled. 
In order to do this, dss_need_ctx_restore must be implemented here, which I think should be ORed with other conditions. 

if (cpu_is_omap34xx() && (check_ctx || dss_need_ctx_restore()))

(This results in kernel crash at my end)

Personally I don't know any platform is implementing this function OR how one should make use of it. I remember last time we had similar discussion and the comment came was, restore only required in case of off mode. I feel, this is not applicable here, since irrespective of retention/inactive/off mode if driver is disabling clock for the peripheral we must restore the context.


Thanks,
Vaibhav

> Thanks,
> Vaibhav
> 
> >
> > --
> > 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
> --
> 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] 73+ messages in thread

* RE: [PATCH v5 00/10] OMAP4 : DSS2 : HDMI support on OMAP4
  2011-03-14  8:35               ` Hiremath, Vaibhav
@ 2011-03-14  9:24                 ` Tomi Valkeinen
  2011-03-14  9:35                   ` Hiremath, Vaibhav
  0 siblings, 1 reply; 73+ messages in thread
From: Tomi Valkeinen @ 2011-03-14  9:24 UTC (permalink / raw)
  To: Hiremath, Vaibhav; +Cc: K, Mythri P, Stephan Raue, linux-omap

On Mon, 2011-03-14 at 03:35 -0500, Hiremath, Vaibhav wrote:
> > -----Original Message-----
> > From: linux-omap-owner@vger.kernel.org [mailto:linux-omap-
> > owner@vger.kernel.org] On Behalf Of Hiremath, Vaibhav
> > Sent: Friday, March 11, 2011 6:53 PM
> > To: Valkeinen, Tomi; K, Mythri P
> > Cc: Stephan Raue; linux-omap@vger.kernel.org
> > Subject: RE: [PATCH v5 00/10] OMAP4 : DSS2 : HDMI support on OMAP4
> > 
> > > -----Original Message-----
> > > From: linux-omap-owner@vger.kernel.org [mailto:linux-omap-
> > > owner@vger.kernel.org] On Behalf Of Valkeinen, Tomi
> > > Sent: Friday, March 11, 2011 12:55 PM
> > > To: K, Mythri P
> > > Cc: Stephan Raue; linux-omap@vger.kernel.org
> > > Subject: Re: [PATCH v5 00/10] OMAP4 : DSS2 : HDMI support on OMAP4
> > >
> > > On Fri, 2011-03-11 at 00:16 -0600, K, Mythri P wrote:
> > > > Hi Stephan,
> > > >
> > > > On Fri, Mar 11, 2011 at 5:37 AM, Stephan Raue
> > <mailinglists@openelec.tv>
> > > wrote:
> > >
> > > > > thanks, this helps to boot the kernel. but now i get:
> > > > >
> > > >
> > > > <snip>
> > > >
> > > > > see also: http://paste.pocoo.org/show/351648/
> > > > >
> > > >
> > > > I see that you kernel is not booting because of dss clk
> > > >  [    3.335601] PC is at dss_clk_disable_no_ctx+0x0/0xa4
> > > > [    3.335632] LR is at omap_dispc_register_isr+0xa4/0xcc
> > > > Tomi is this related to the clock issue you were mentioning , which
> > > > gets solved by adding a delay ?
> > >
> > > Well, I have a hack patch in my tree which adds a delay of 10us. That
> > > fixed the problem for me, but the 10us is just a random guess. It could
> > > be that it needs to be longer wait. But this could be something else
> > > also.
> > >
> > >  Tomi
> > >
> > [Hiremath, Vaibhav] Tomi, just thought of updating you,
> > 
> > The linux-omap/dss2 OMAP3EVM seems to be broken, I am trying to debug this
> > at the moment and will update about my findings.
> > 
> > Since linux-omap/master is booting up fine, it looks like one of new DSS
> > patch leading to this.
> > 
> [Hiremath, Vaibhav] I think I found the where and why the kernel is crashing but not sure about root-cause - 
> 
> The root-cause turned out to be - 
> 
> void dss_clk_enable(enum dss_clock clks)
> {
> ...
> 
> if (check_ctx && cpu_is_omap34xx() && dss_need_ctx_restore())
>        restore_all_ctx();
> ...
> }
> 
> In this case, restore never happens, if I understand correctly, I am expecting, the context must be restored when all clock (especially interface clock) is disabled. 
> In order to do this, dss_need_ctx_restore must be implemented here, which I think should be ORed with other conditions. 
> 
> if (cpu_is_omap34xx() && (check_ctx || dss_need_ctx_restore()))
> 
> (This results in kernel crash at my end)
> 
> Personally I don't know any platform is implementing this function OR how one should make use of it. I remember last time we had similar discussion and the comment came was, restore only required in case of off mode. I feel, this is not applicable here, since irrespective of retention/inactive/off mode if driver is disabling clock for the peripheral we must restore the context.

I don't know about OMAP4, but on OMAP3 the register contents are only
lost when DSS goes to OFF mode. If you just turn off the clocks and OFF
mode is not enabled in the PM, context restore is not needed. I am not
sure of the current status of OFF mode in the mainline kernel.

However, for some reason DSS works fine on my Overo board. I would
imagine that it would break also if OFF is enabled for all omap
boards...

As for get_last_off_on_transaction_id(), it seems to be called
get_context_loss_count() in the mainline kernel and returns u32, not
int. I haven't tested it, but get_last_off_on_transaction_id pointer in
the dss platform data should be set to get_context_loss_count in the
board file (or in arch/arm/plat-omap/display.c if using the dss2 tree).

 Tomi



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

* RE: [PATCH v5 00/10] OMAP4 : DSS2 : HDMI support on OMAP4
  2011-03-14  9:24                 ` Tomi Valkeinen
@ 2011-03-14  9:35                   ` Hiremath, Vaibhav
  2011-03-16  6:45                     ` Tomi Valkeinen
  0 siblings, 1 reply; 73+ messages in thread
From: Hiremath, Vaibhav @ 2011-03-14  9:35 UTC (permalink / raw)
  To: Valkeinen, Tomi; +Cc: K, Mythri P, Stephan Raue, linux-omap


> -----Original Message-----
> From: Valkeinen, Tomi
> Sent: Monday, March 14, 2011 2:55 PM
> To: Hiremath, Vaibhav
> Cc: K, Mythri P; Stephan Raue; linux-omap@vger.kernel.org
> Subject: RE: [PATCH v5 00/10] OMAP4 : DSS2 : HDMI support on OMAP4
> 
> On Mon, 2011-03-14 at 03:35 -0500, Hiremath, Vaibhav wrote:
> > > -----Original Message-----
> > > From: linux-omap-owner@vger.kernel.org [mailto:linux-omap-
> > > owner@vger.kernel.org] On Behalf Of Hiremath, Vaibhav
> > > Sent: Friday, March 11, 2011 6:53 PM
> > > To: Valkeinen, Tomi; K, Mythri P
> > > Cc: Stephan Raue; linux-omap@vger.kernel.org
> > > Subject: RE: [PATCH v5 00/10] OMAP4 : DSS2 : HDMI support on OMAP4
> > >
> > > > -----Original Message-----
> > > > From: linux-omap-owner@vger.kernel.org [mailto:linux-omap-
> > > > owner@vger.kernel.org] On Behalf Of Valkeinen, Tomi
> > > > Sent: Friday, March 11, 2011 12:55 PM
> > > > To: K, Mythri P
> > > > Cc: Stephan Raue; linux-omap@vger.kernel.org
> > > > Subject: Re: [PATCH v5 00/10] OMAP4 : DSS2 : HDMI support on OMAP4
> > > >
> > > > On Fri, 2011-03-11 at 00:16 -0600, K, Mythri P wrote:
> > > > > Hi Stephan,
> > > > >
> > > > > On Fri, Mar 11, 2011 at 5:37 AM, Stephan Raue
> > > <mailinglists@openelec.tv>
> > > > wrote:
> > > >
> > > > > > thanks, this helps to boot the kernel. but now i get:
> > > > > >
> > > > >
> > > > > <snip>
> > > > >
> > > > > > see also: http://paste.pocoo.org/show/351648/
> > > > > >
> > > > >
> > > > > I see that you kernel is not booting because of dss clk
> > > > >  [    3.335601] PC is at dss_clk_disable_no_ctx+0x0/0xa4
> > > > > [    3.335632] LR is at omap_dispc_register_isr+0xa4/0xcc
> > > > > Tomi is this related to the clock issue you were mentioning ,
> which
> > > > > gets solved by adding a delay ?
> > > >
> > > > Well, I have a hack patch in my tree which adds a delay of 10us.
> That
> > > > fixed the problem for me, but the 10us is just a random guess. It
> could
> > > > be that it needs to be longer wait. But this could be something else
> > > > also.
> > > >
> > > >  Tomi
> > > >
> > > [Hiremath, Vaibhav] Tomi, just thought of updating you,
> > >
> > > The linux-omap/dss2 OMAP3EVM seems to be broken, I am trying to debug
> this
> > > at the moment and will update about my findings.
> > >
> > > Since linux-omap/master is booting up fine, it looks like one of new
> DSS
> > > patch leading to this.
> > >
> > [Hiremath, Vaibhav] I think I found the where and why the kernel is
> crashing but not sure about root-cause -
> >
> > The root-cause turned out to be -
> >
> > void dss_clk_enable(enum dss_clock clks)
> > {
> > ...
> >
> > if (check_ctx && cpu_is_omap34xx() && dss_need_ctx_restore())
> >        restore_all_ctx();
> > ...
> > }
> >
> > In this case, restore never happens, if I understand correctly, I am
> expecting, the context must be restored when all clock (especially
> interface clock) is disabled.
> > In order to do this, dss_need_ctx_restore must be implemented here,
> which I think should be ORed with other conditions.
> >
> > if (cpu_is_omap34xx() && (check_ctx || dss_need_ctx_restore()))
> >
> > (This results in kernel crash at my end)
> >
> > Personally I don't know any platform is implementing this function OR
> how one should make use of it. I remember last time we had similar
> discussion and the comment came was, restore only required in case of off
> mode. I feel, this is not applicable here, since irrespective of
> retention/inactive/off mode if driver is disabling clock for the
> peripheral we must restore the context.
> 
> I don't know about OMAP4, but on OMAP3 the register contents are only
> lost when DSS goes to OFF mode. If you just turn off the clocks and OFF
> mode is not enabled in the PM, context restore is not needed. I am not
> sure of the current status of OFF mode in the mainline kernel.
> 
> However, for some reason DSS works fine on my Overo board. I would
> imagine that it would break also if OFF is enabled for all omap
> boards...
> 
> As for get_last_off_on_transaction_id(), it seems to be called
> get_context_loss_count() in the mainline kernel and returns u32, not
> int. I haven't tested it, but get_last_off_on_transaction_id pointer in
> the dss platform data should be set to get_context_loss_count in the
> board file (or in arch/arm/plat-omap/display.c if using the dss2 tree).
> 
[Hiremath, Vaibhav] Let me try this out.

Thanks,
Vaibhav

>  Tomi
> 


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

* Re: [PATCH v5 00/10] OMAP4 : DSS2 : HDMI support on OMAP4
  2011-03-10 13:44 ` [PATCH v5 00/10] OMAP4 : DSS2 : HDMI support on OMAP4 Tomi Valkeinen
  2011-03-10 14:45   ` Stephan Raue
@ 2011-03-14 10:37   ` Jan, Sebastien
  2011-03-15  4:06     ` Tomi Valkeinen
  1 sibling, 1 reply; 73+ messages in thread
From: Jan, Sebastien @ 2011-03-14 10:37 UTC (permalink / raw)
  To: Tomi Valkeinen; +Cc: K, Mythri P, linux-omap

Hi Tomi,

On Thu, Mar 10, 2011 at 2:44 PM, Tomi Valkeinen <tomi.valkeinen@ti.com> wrote:
> I think this version is good. It works for me, at least =).
>
> Any Panda or Blaze owners reading this want to give this a try?

Tested on my pandaboard, with these patches applied on top of your
dss2 tree: I get a working display on my DVI or my HDMI screen. => I
tested by running the Ubuntu UI.

I have a couple of these traces from times to times (seems linked to
screen saver enabling/disabling the screen):
omapdss DISPC error: timeout waiting for EVSYNC

The best screen resolution is properly selected on both of my screens,
but the frame-buffer is sized to 640x480. So the display works but the
usable surface when going though /dev/fb0 is quite reduced.
Is there a way to get the FB sized according to the screen resolution
(in the init sequence, it appears that the FBs are allocated before
the init of the HDMI)?

Fyi, I have also tested with the patches for DVI support and can get
both outputs working simultaneously (my tree is here:
http://dev.omapzoom.org/?p=sebjan/kernel.git;a=shortlog;h=refs/tags/topic-display-iv1-2.6.38-rc7).

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

* Re: [PATCH v5 00/10] OMAP4 : DSS2 : HDMI support on OMAP4
  2011-03-14 10:37   ` Jan, Sebastien
@ 2011-03-15  4:06     ` Tomi Valkeinen
  2011-03-15  4:38       ` K, Mythri P
  0 siblings, 1 reply; 73+ messages in thread
From: Tomi Valkeinen @ 2011-03-15  4:06 UTC (permalink / raw)
  To: Jan, Sebastien; +Cc: K, Mythri P, linux-omap

On Mon, 2011-03-14 at 05:37 -0500, Jan, Sebastien wrote:
> Hi Tomi,
> 
> On Thu, Mar 10, 2011 at 2:44 PM, Tomi Valkeinen <tomi.valkeinen@ti.com> wrote:
> > I think this version is good. It works for me, at least =).
> >
> > Any Panda or Blaze owners reading this want to give this a try?
> 
> Tested on my pandaboard, with these patches applied on top of your
> dss2 tree: I get a working display on my DVI or my HDMI screen. => I
> tested by running the Ubuntu UI.
> 
> I have a couple of these traces from times to times (seems linked to
> screen saver enabling/disabling the screen):
> omapdss DISPC error: timeout waiting for EVSYNC

Yes, I get those every time I enable or disable the HDMI output. That
shouldn't cause any problems, but it's something that needs to be fixed
at some point.

> The best screen resolution is properly selected on both of my screens,
> but the frame-buffer is sized to 640x480. So the display works but the
> usable surface when going though /dev/fb0 is quite reduced.
> Is there a way to get the FB sized according to the screen resolution
> (in the init sequence, it appears that the FBs are allocated before
> the init of the HDMI)?

Currently the resolution has to be configured by the user manually. I
haven't tried, but I think giving the resolution with boot parameters
should also work. Mythri, have you tried that?

I don't think it is possible for the omapdss, panel or omapfb drivers to
configure the resolution automatically, except at boot time. After we
have booted up, there may be users for the framebuffer and changing it
"secretly" would cause problems.

I think the best way here is that the HDMI/omapdss driver gives hotplug
event, which is conveyed through omapfb to an userspace application.
This application can then query the available resolutions via some
mechanism, and select one of those.

> Fyi, I have also tested with the patches for DVI support and can get
> both outputs working simultaneously (my tree is here:
> http://dev.omapzoom.org/?p=sebjan/kernel.git;a=shortlog;h=refs/tags/topic-display-iv1-2.6.38-rc7).

Thanks. I'll also set up a "test" branch in DSS2 tree shortly, to which
I'll add DVI and HDMI patches for easier testing.

 Tomi



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

* Re: [PATCH v5 10/10] OMAP4 : HDMI : Add HDMI structure in the board file for OMAP4 PANDA
  2011-03-10 10:44                   ` [PATCH v5 10/10] OMAP4 : HDMI : Add HDMI structure in the board file for OMAP4 PANDA Mythri P K
@ 2011-03-15  4:23                     ` Tomi Valkeinen
  2011-03-15 14:47                       ` John S
  0 siblings, 1 reply; 73+ messages in thread
From: Tomi Valkeinen @ 2011-03-15  4:23 UTC (permalink / raw)
  To: K, Mythri P; +Cc: linux-omap

On Thu, 2011-03-10 at 04:44 -0600, K, Mythri P wrote:
> Adding  board file structure for display which adds the display
> structure with HDMI as the default driver when the display init
> is called.
> HDMI GPIO configurations are also done in this file.
> 
> Signed-off-by: Mythri P K <mythripk@ti.com>
> ---
>  arch/arm/mach-omap2/board-omap4panda.c |   74 ++++++++++++++++++++++++++++++++
>  1 files changed, 74 insertions(+), 0 deletions(-)

<snip>

> +static struct omap_dss_device *sdp4430_dss_devices[] = {
> +	&sdp4430_hdmi_device,
> +};
> +
> +static struct omap_dss_board_info sdp4430_dss_data = {
> +	.num_devices	= ARRAY_SIZE(sdp4430_dss_devices),
> +	.devices	= sdp4430_dss_devices,
> +	.default_device	= &sdp4430_hdmi_device,
> +};
> +
> +void omap_panda_display_init(void)
> +{
> +	sdp4430_hdmi_mux_init();
> +	omap_display_init(&sdp4430_dss_data);
> +}
> +

The sdp4430 structs and functions should be renamed to panda.

 Tomi



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

* Re: [PATCH v5 00/10] OMAP4 : DSS2 : HDMI support on OMAP4
  2011-03-15  4:06     ` Tomi Valkeinen
@ 2011-03-15  4:38       ` K, Mythri P
  0 siblings, 0 replies; 73+ messages in thread
From: K, Mythri P @ 2011-03-15  4:38 UTC (permalink / raw)
  To: Tomi Valkeinen; +Cc: Jan, Sebastien, linux-omap

Hi Tomi,Sebastien,

On Tue, Mar 15, 2011 at 9:36 AM, Tomi Valkeinen <tomi.valkeinen@ti.com> wrote:
> On Mon, 2011-03-14 at 05:37 -0500, Jan, Sebastien wrote:
>> Hi Tomi,
>>
>> On Thu, Mar 10, 2011 at 2:44 PM, Tomi Valkeinen <tomi.valkeinen@ti.com> wrote:
>> > I think this version is good. It works for me, at least =).
>> >
>> > Any Panda or Blaze owners reading this want to give this a try?
>>
>> Tested on my pandaboard, with these patches applied on top of your
>> dss2 tree: I get a working display on my DVI or my HDMI screen. => I
>> tested by running the Ubuntu UI.
>>
>> I have a couple of these traces from times to times (seems linked to
>> screen saver enabling/disabling the screen):
>> omapdss DISPC error: timeout waiting for EVSYNC
>
> Yes, I get those every time I enable or disable the HDMI output. That
> shouldn't cause any problems, but it's something that needs to be fixed
> at some point.
>
>> The best screen resolution is properly selected on both of my screens,
>> but the frame-buffer is sized to 640x480. So the display works but the
>> usable surface when going though /dev/fb0 is quite reduced.
>> Is there a way to get the FB sized according to the screen resolution
>> (in the init sequence, it appears that the FBs are allocated before
>> the init of the HDMI)?
>
> Currently the resolution has to be configured by the user manually. I
> haven't tried, but I think giving the resolution with boot parameters
> should also work. Mythri, have you tried that?
>
You could configure the timings later on with the sysfs ( set_timings ) or
HDMI driver would pick the best timing (as suggested by standard) , but
yes framebuffer would have picked the timing on probe so it will not update.

> I don't think it is possible for the omapdss, panel or omapfb drivers to
> configure the resolution automatically, except at boot time. After we
> have booted up, there may be users for the framebuffer and changing it
> "secretly" would cause problems.
>
> I think the best way here is that the HDMI/omapdss driver gives hotplug
> event, which is conveyed through omapfb to an userspace application.
> This application can then query the available resolutions via some
> mechanism, and select one of those.
>
>> Fyi, I have also tested with the patches for DVI support and can get
>> both outputs working simultaneously (my tree is here:
>> http://dev.omapzoom.org/?p=sebjan/kernel.git;a=shortlog;h=refs/tags/topic-display-iv1-2.6.38-rc7).
>
> Thanks. I'll also set up a "test" branch in DSS2 tree shortly, to which
> I'll add DVI and HDMI patches for easier testing.
>
>  Tomi
>

Thanks and regards,
Mythri.
--
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] 73+ messages in thread

* Re: [PATCH v5 10/10] OMAP4 : HDMI : Add HDMI structure in the board file for OMAP4 PANDA
  2011-03-15  4:23                     ` Tomi Valkeinen
@ 2011-03-15 14:47                       ` John S
  0 siblings, 0 replies; 73+ messages in thread
From: John S @ 2011-03-15 14:47 UTC (permalink / raw)
  To: Tomi Valkeinen, mythripk; +Cc: linux-omap

On 3/15/11, Tomi Valkeinen <tomi.valkeinen@ti.com> wrote:
> On Thu, 2011-03-10 at 04:44 -0600, K, Mythri P wrote:
>> Adding  board file structure for display which adds the display
>> structure with HDMI as the default driver when the display init
>> is called.
>> HDMI GPIO configurations are also done in this file.
>>
>> Signed-off-by: Mythri P K <mythripk@ti.com>
>> ---
>>  arch/arm/mach-omap2/board-omap4panda.c |   74
>> ++++++++++++++++++++++++++++++++
>>  1 files changed, 74 insertions(+), 0 deletions(-)
>
> <snip>
>
>> +static struct omap_dss_device *sdp4430_dss_devices[] = {
>> +	&sdp4430_hdmi_device,
>> +};
>> +
>> +static struct omap_dss_board_info sdp4430_dss_data = {
>> +	.num_devices	= ARRAY_SIZE(sdp4430_dss_devices),
>> +	.devices	= sdp4430_dss_devices,
>> +	.default_device	= &sdp4430_hdmi_device,
>> +};
>> +
>> +void omap_panda_display_init(void)

Using omap4_panda_display_init would be a good option as most of the
other init in this file are using omap4 not omap

>> +{
>> +	sdp4430_hdmi_mux_init();
>> +	omap_display_init(&sdp4430_dss_data);
>> +}
>> +
>
> The sdp4430 structs and functions should be renamed to panda.
>
>  Tomi
>
>
> --
> 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] 73+ messages in thread

* RE: [PATCH v5 00/10] OMAP4 : DSS2 : HDMI support on OMAP4
  2011-03-14  9:35                   ` Hiremath, Vaibhav
@ 2011-03-16  6:45                     ` Tomi Valkeinen
  2011-03-16  6:47                       ` Hiremath, Vaibhav
  0 siblings, 1 reply; 73+ messages in thread
From: Tomi Valkeinen @ 2011-03-16  6:45 UTC (permalink / raw)
  To: Hiremath, Vaibhav; +Cc: K, Mythri P, Stephan Raue, linux-omap

On Mon, 2011-03-14 at 04:35 -0500, Hiremath, Vaibhav wrote:
> > -----Original Message-----
> > From: Valkeinen, Tomi
> > Sent: Monday, March 14, 2011 2:55 PM
> > To: Hiremath, Vaibhav
> > Cc: K, Mythri P; Stephan Raue; linux-omap@vger.kernel.org
> > Subject: RE: [PATCH v5 00/10] OMAP4 : DSS2 : HDMI support on OMAP4
 
<snip>

> > > Personally I don't know any platform is implementing this function OR
> > how one should make use of it. I remember last time we had similar
> > discussion and the comment came was, restore only required in case of off
> > mode. I feel, this is not applicable here, since irrespective of
> > retention/inactive/off mode if driver is disabling clock for the
> > peripheral we must restore the context.
> > 
> > I don't know about OMAP4, but on OMAP3 the register contents are only
> > lost when DSS goes to OFF mode. If you just turn off the clocks and OFF
> > mode is not enabled in the PM, context restore is not needed. I am not
> > sure of the current status of OFF mode in the mainline kernel.
> > 
> > However, for some reason DSS works fine on my Overo board. I would
> > imagine that it would break also if OFF is enabled for all omap
> > boards...
> > 
> > As for get_last_off_on_transaction_id(), it seems to be called
> > get_context_loss_count() in the mainline kernel and returns u32, not
> > int. I haven't tested it, but get_last_off_on_transaction_id pointer in
> > the dss platform data should be set to get_context_loss_count in the
> > board file (or in arch/arm/plat-omap/display.c if using the dss2 tree).
> > 
> [Hiremath, Vaibhav] Let me try this out.

Did you have time to test this?

 Tomi



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

* RE: [PATCH v5 00/10] OMAP4 : DSS2 : HDMI support on OMAP4
  2011-03-16  6:45                     ` Tomi Valkeinen
@ 2011-03-16  6:47                       ` Hiremath, Vaibhav
  0 siblings, 0 replies; 73+ messages in thread
From: Hiremath, Vaibhav @ 2011-03-16  6:47 UTC (permalink / raw)
  To: Valkeinen, Tomi; +Cc: K, Mythri P, Stephan Raue, linux-omap


> -----Original Message-----
> From: Valkeinen, Tomi
> Sent: Wednesday, March 16, 2011 12:15 PM
> To: Hiremath, Vaibhav
> Cc: K, Mythri P; Stephan Raue; linux-omap@vger.kernel.org
> Subject: RE: [PATCH v5 00/10] OMAP4 : DSS2 : HDMI support on OMAP4
> 
> On Mon, 2011-03-14 at 04:35 -0500, Hiremath, Vaibhav wrote:
> > > -----Original Message-----
> > > From: Valkeinen, Tomi
> > > Sent: Monday, March 14, 2011 2:55 PM
> > > To: Hiremath, Vaibhav
> > > Cc: K, Mythri P; Stephan Raue; linux-omap@vger.kernel.org
> > > Subject: RE: [PATCH v5 00/10] OMAP4 : DSS2 : HDMI support on OMAP4
> 
> <snip>
> 
> > > > Personally I don't know any platform is implementing this function
> OR
> > > how one should make use of it. I remember last time we had similar
> > > discussion and the comment came was, restore only required in case of
> off
> > > mode. I feel, this is not applicable here, since irrespective of
> > > retention/inactive/off mode if driver is disabling clock for the
> > > peripheral we must restore the context.
> > >
> > > I don't know about OMAP4, but on OMAP3 the register contents are only
> > > lost when DSS goes to OFF mode. If you just turn off the clocks and
> OFF
> > > mode is not enabled in the PM, context restore is not needed. I am not
> > > sure of the current status of OFF mode in the mainline kernel.
> > >
> > > However, for some reason DSS works fine on my Overo board. I would
> > > imagine that it would break also if OFF is enabled for all omap
> > > boards...
> > >
> > > As for get_last_off_on_transaction_id(), it seems to be called
> > > get_context_loss_count() in the mainline kernel and returns u32, not
> > > int. I haven't tested it, but get_last_off_on_transaction_id pointer
> in
> > > the dss platform data should be set to get_context_loss_count in the
> > > board file (or in arch/arm/plat-omap/display.c if using the dss2 tree).
> > >
> > [Hiremath, Vaibhav] Let me try this out.
> 
> Did you have time to test this?
> 
[Hiremath, Vaibhav] Yesterday got pulled into different issue, will try today.

Thanks,
Vaibhav

>  Tomi
> 


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

* Re: [PATCH v5 00/10] OMAP4 : DSS2 : HDMI support on OMAP4
  2011-03-13 16:20                     ` Stephan Raue
@ 2011-03-16  6:51                       ` Tomi Valkeinen
  2011-03-16 10:53                         ` K, Mythri P
  0 siblings, 1 reply; 73+ messages in thread
From: Tomi Valkeinen @ 2011-03-16  6:51 UTC (permalink / raw)
  To: Stephan Raue; +Cc: K, Mythri P, linux-omap

On Sun, 2011-03-13 at 11:20 -0500, Stephan Raue wrote:
> Am 13.03.2011 15:32, schrieb Stephan Raue:

<snip>

> > i have tried this omap2plus defconfig now too, with some little 
> > changes needed to boot my system (config: 
> > http://paste.pocoo.org/show/352917/). Now i get this error (see also: 
> > http://paste.pocoo.org/show/352915/)
> >
> > [    3.255065] omapdss HDMI: fallback to VGA 
> > [    3.271636] omapdss HDMI error: Failed to set PHY_PWR_STATUS
> > [    3.277587] omapdss HDMI error: failed to power on device
> > [    3.283325] omapdss error: failed to power on
> > [    3.287902] omapfb omapfb: Failed to enable display 'hdmi'
> > [    3.293853] Console: switching to colour dummy device 80x30
> > [    3.304595] omapfb omapfb: failed to setup omapfb
> > [    3.309539] omapfb: probe of omapfb failed with error -5
> 
> using omap2plus defconfig with my little changes i need to boot my 
> system i get the error above, also if i remove CONFIG_ARCH_OMAP2. but if 
> i remove CONFIG_ARCH_OMAP3 too i get the error i reported originally 
> (the kernel begins to boot, but crashes) (diff between omap2plus 
> defconfig without CONFIG_ARCH_OMAP2 and omap2plus defconfig without 
> CONFIG_ARCH_OMAP2, CONFIG_ARCH_OMAP3: http://paste.pocoo.org/show/352960/)

I'm currently traveling for this week so I have quite limited ability to
test this. Mythri still haven't been able to reproduce any of these
errors, right?

Anybody else there to test HDMI on Panda and/or Blaze? I pushed the
latest DSS + HDMI patches to a test branch for easier testing (I'll push
Panda DVI patches there also when I get the new version):

git://gitorious.org/linux-omap-dss2/linux.git test

 Tomi



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

* Re: [PATCH v5 00/10] OMAP4 : DSS2 : HDMI support on OMAP4
  2011-03-11  8:24   ` K, Mythri P
@ 2011-03-16  8:32     ` Tomi Valkeinen
  0 siblings, 0 replies; 73+ messages in thread
From: Tomi Valkeinen @ 2011-03-16  8:32 UTC (permalink / raw)
  To: K, Mythri P; +Cc: linux-omap

On Fri, 2011-03-11 at 02:24 -0600, K, Mythri P wrote:
> Hi Tomi,
> 
> On Thu, Mar 10, 2011 at 8:36 PM, Tomi Valkeinen <tomi.valkeinen@ti.com> wrote:

> > There is this code in dss.c:
> >
> > #ifdef CONFIG_OMAP2_DSS_VENC
> >        REG_FLD_MOD(DSS_CONTROL, 1, 4, 4);      /* venc dac demen */
> >        REG_FLD_MOD(DSS_CONTROL, 1, 3, 3);      /* venc clock 4x enable */
> >        REG_FLD_MOD(DSS_CONTROL, 0, 2, 2);      /* venc clock mode = normal */
> > #endif
> >
> Regarding this piece of code , although it appears that is should not affect ,
> I think we should move this out of dss_init , if any such change is needed
> we should do that on VENC enable dont you think ?

Either we should enable them on venc_enable, or remove the ifdef. If
there are side effects (which we don't know currently) we should use do
them on venc_enable. If there aren't any side effects, we should just
write the register always.

 Tomi
 


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

* Re: [PATCH v5 00/10] OMAP4 : DSS2 : HDMI support on OMAP4
  2011-03-16  6:51                       ` Tomi Valkeinen
@ 2011-03-16 10:53                         ` K, Mythri P
  2011-03-16 10:59                           ` Tomi Valkeinen
  2011-03-16 23:49                           ` Stephan Raue
  0 siblings, 2 replies; 73+ messages in thread
From: K, Mythri P @ 2011-03-16 10:53 UTC (permalink / raw)
  To: Tomi Valkeinen; +Cc: Stephan Raue, linux-omap

Hi Tomi,

On Wed, Mar 16, 2011 at 12:21 PM, Tomi Valkeinen <tomi.valkeinen@ti.com> wrote:
> On Sun, 2011-03-13 at 11:20 -0500, Stephan Raue wrote:
>> Am 13.03.2011 15:32, schrieb Stephan Raue:
>
> <snip>
>
>> > i have tried this omap2plus defconfig now too, with some little
>> > changes needed to boot my system (config:
>> > http://paste.pocoo.org/show/352917/). Now i get this error (see also:
>> > http://paste.pocoo.org/show/352915/)
>> >
>> > [    3.255065] omapdss HDMI: fallback to VGA
>> > [    3.271636] omapdss HDMI error: Failed to set PHY_PWR_STATUS
>> > [    3.277587] omapdss HDMI error: failed to power on device
>> > [    3.283325] omapdss error: failed to power on
>> > [    3.287902] omapfb omapfb: Failed to enable display 'hdmi'
>> > [    3.293853] Console: switching to colour dummy device 80x30
>> > [    3.304595] omapfb omapfb: failed to setup omapfb
>> > [    3.309539] omapfb: probe of omapfb failed with error -5
>>
>> using omap2plus defconfig with my little changes i need to boot my
>> system i get the error above, also if i remove CONFIG_ARCH_OMAP2. but if
>> i remove CONFIG_ARCH_OMAP3 too i get the error i reported originally
>> (the kernel begins to boot, but crashes) (diff between omap2plus
>> defconfig without CONFIG_ARCH_OMAP2 and omap2plus defconfig without
>> CONFIG_ARCH_OMAP2, CONFIG_ARCH_OMAP3: http://paste.pocoo.org/show/352960/)
>
> I'm currently traveling for this week so I have quite limited ability to
> test this. Mythri still haven't been able to reproduce any of these
> errors, right?
>
That's right i have not been able to reproduce the error.  I have
tried with 4 Panda Boards with atleast 4  - 5 Montiors connected (
Also without connecting any monitor).

> Anybody else there to test HDMI on Panda and/or Blaze? I pushed the
> latest DSS + HDMI patches to a test branch for easier testing (I'll push
> Panda DVI patches there also when I get the new version):
>
> git://gitorious.org/linux-omap-dss2/linux.git test

Stephan,
It would be great if you could try out with this tree with omap2plus_defconfig.
Note : Please disable VENC , there is a known issue of kernel crash
with VENC enabled.

Thanks and regards,
Mythri.
--
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] 73+ messages in thread

* Re: [PATCH v5 00/10] OMAP4 : DSS2 : HDMI support on OMAP4
  2011-03-16 10:53                         ` K, Mythri P
@ 2011-03-16 10:59                           ` Tomi Valkeinen
  2011-03-16 23:49                           ` Stephan Raue
  1 sibling, 0 replies; 73+ messages in thread
From: Tomi Valkeinen @ 2011-03-16 10:59 UTC (permalink / raw)
  To: K, Mythri P; +Cc: Stephan Raue, linux-omap

On Wed, 2011-03-16 at 05:53 -0500, K, Mythri P wrote:
> Hi Tomi,
> 
> On Wed, Mar 16, 2011 at 12:21 PM, Tomi Valkeinen <tomi.valkeinen@ti.com> wrote:

> > Anybody else there to test HDMI on Panda and/or Blaze? I pushed the
> > latest DSS + HDMI patches to a test branch for easier testing (I'll push
> > Panda DVI patches there also when I get the new version):
> >
> > git://gitorious.org/linux-omap-dss2/linux.git test
> 
> Stephan,
> It would be great if you could try out with this tree with omap2plus_defconfig.
> Note : Please disable VENC , there is a known issue of kernel crash
> with VENC enabled.

My test branch actually contains a simple hack patch that skips
registering the venc driver on omap4, which should circumvent this
problem.

 Tomi



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

* Re: [PATCH v5 00/10] OMAP4 : DSS2 : HDMI support on OMAP4
  2011-03-16 10:53                         ` K, Mythri P
  2011-03-16 10:59                           ` Tomi Valkeinen
@ 2011-03-16 23:49                           ` Stephan Raue
  2011-03-17 11:11                             ` Tomi Valkeinen
                                               ` (14 more replies)
  1 sibling, 15 replies; 73+ messages in thread
From: Stephan Raue @ 2011-03-16 23:49 UTC (permalink / raw)
  To: K, Mythri P; +Cc: Tomi Valkeinen, linux-omap

Am 16.03.2011 11:53, schrieb K, Mythri P:
> Hi Tomi,
>
> On Wed, Mar 16, 2011 at 12:21 PM, Tomi Valkeinen<tomi.valkeinen@ti.com>  wrote:
>> On Sun, 2011-03-13 at 11:20 -0500, Stephan Raue wrote:
>>> Am 13.03.2011 15:32, schrieb Stephan Raue:
>> <snip>
>>
>>>> i have tried this omap2plus defconfig now too, with some little
>>>> changes needed to boot my system (config:
>>>> http://paste.pocoo.org/show/352917/). Now i get this error (see also:
>>>> http://paste.pocoo.org/show/352915/)
>>>>
>>>> [    3.255065] omapdss HDMI: fallback to VGA
>>>> [    3.271636] omapdss HDMI error: Failed to set PHY_PWR_STATUS
>>>> [    3.277587] omapdss HDMI error: failed to power on device
>>>> [    3.283325] omapdss error: failed to power on
>>>> [    3.287902] omapfb omapfb: Failed to enable display 'hdmi'
>>>> [    3.293853] Console: switching to colour dummy device 80x30
>>>> [    3.304595] omapfb omapfb: failed to setup omapfb
>>>> [    3.309539] omapfb: probe of omapfb failed with error -5
>>> using omap2plus defconfig with my little changes i need to boot my
>>> system i get the error above, also if i remove CONFIG_ARCH_OMAP2. but if
>>> i remove CONFIG_ARCH_OMAP3 too i get the error i reported originally
>>> (the kernel begins to boot, but crashes) (diff between omap2plus
>>> defconfig without CONFIG_ARCH_OMAP2 and omap2plus defconfig without
>>> CONFIG_ARCH_OMAP2, CONFIG_ARCH_OMAP3: http://paste.pocoo.org/show/352960/)
>> I'm currently traveling for this week so I have quite limited ability to
>> test this. Mythri still haven't been able to reproduce any of these
>> errors, right?
>>
> That's right i have not been able to reproduce the error.  I have
> tried with 4 Panda Boards with atleast 4  - 5 Montiors connected (
> Also without connecting any monitor).
>
>> Anybody else there to test HDMI on Panda and/or Blaze? I pushed the
>> latest DSS + HDMI patches to a test branch for easier testing (I'll push
>> Panda DVI patches there also when I get the new version):
>>
>> git://gitorious.org/linux-omap-dss2/linux.git test
> Stephan,
> It would be great if you could try out with this tree with omap2plus_defconfig.
> Note : Please disable VENC , there is a known issue of kernel crash
> with VENC enabled.
>
> Thanks and regards,
> Mythri.
Hi,

i tried this test tree with omap2plus_defconfig.

it seems the kernel crashes and poweroff the board on loading this hdmi 
stuff, but dont print any crashlog. is there a way any backtraces will 
be printed?
output from serial console: http://paste.pocoo.org/show/354850/
kernel config (omap2plus_defconfig, added squashfs support, added 
support to include initramfs in kernel, build omapfb stuff statically 
into the kernel): http://paste.pocoo.org/show/354853/

i am using a own toolchain to crosscompile with gcc-4.5.2, binutils-2.21...

Stephan

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

* Re: [PATCH v5 00/10] OMAP4 : DSS2 : HDMI support on OMAP4
  2011-03-16 23:49                           ` Stephan Raue
@ 2011-03-17 11:11                             ` Tomi Valkeinen
  2011-03-17 16:20                               ` Janorkar, Mayuresh
  2011-03-18  5:43                             ` Anand Gadiyar
                                               ` (13 subsequent siblings)
  14 siblings, 1 reply; 73+ messages in thread
From: Tomi Valkeinen @ 2011-03-17 11:11 UTC (permalink / raw)
  To: Stephan Raue; +Cc: K, Mythri P, linux-omap

Hi,

On Wed, 2011-03-16 at 18:49 -0500, Stephan Raue wrote:

> i tried this test tree with omap2plus_defconfig.
> 
> it seems the kernel crashes and poweroff the board on loading this hdmi 
> stuff, but dont print any crashlog. is there a way any backtraces will 
> be printed?
> output from serial console: http://paste.pocoo.org/show/354850/
> kernel config (omap2plus_defconfig, added squashfs support, added 
> support to include initramfs in kernel, build omapfb stuff statically 
> into the kernel): http://paste.pocoo.org/show/354853/

Have the HDMI on your setup worked in any (prebuilt) image? What I'm
asking is if you are sure the HDMI HW works on your board?

Powering off quietly sounds strange. Is your power supply sufficient?
Well, I don't think that would explain the first crash you posted...

 Tomi



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

* RE: [PATCH v5 00/10] OMAP4 : DSS2 : HDMI support on OMAP4
  2011-03-17 11:11                             ` Tomi Valkeinen
@ 2011-03-17 16:20                               ` Janorkar, Mayuresh
  2011-03-17 20:16                                 ` Stephan Raue
  0 siblings, 1 reply; 73+ messages in thread
From: Janorkar, Mayuresh @ 2011-03-17 16:20 UTC (permalink / raw)
  To: Valkeinen, Tomi, Stephan Raue; +Cc: K, Mythri P, linux-omap

Raue,

> -----Original Message-----
> From: linux-omap-owner@vger.kernel.org [mailto:linux-omap-
> owner@vger.kernel.org] On Behalf Of Valkeinen, Tomi
> Sent: Thursday, March 17, 2011 4:41 PM
> To: Stephan Raue
> Cc: K, Mythri P; linux-omap@vger.kernel.org
> Subject: Re: [PATCH v5 00/10] OMAP4 : DSS2 : HDMI support on OMAP4
> 
> Hi,
> 
> On Wed, 2011-03-16 at 18:49 -0500, Stephan Raue wrote:
> 
> > i tried this test tree with omap2plus_defconfig.
> >
> > it seems the kernel crashes and poweroff the board on loading this hdmi
> > stuff, but dont print any crashlog. is there a way any backtraces will
> > be printed?
> > output from serial console: http://paste.pocoo.org/show/354850/
> > kernel config (omap2plus_defconfig, added squashfs support, added
> > support to include initramfs in kernel, build omapfb stuff statically
> > into the kernel): http://paste.pocoo.org/show/354853/

Is it possible for you to enable low-level debugging and pass omapfb.debug=1 omapdss.debug=1 in your bootargs?
This would show the Framebuffer and DSSDBG prints. We would get an idea if kernel is getting stuck in DSS/OMAPFB.

Let me know if you any help in enabling debug prints.

Also one more suggestion/ question, are you seeing a hang if DSS is not enabled in kernel?

-Thanks,
Mayuresh

> 
> Have the HDMI on your setup worked in any (prebuilt) image? What I'm
> asking is if you are sure the HDMI HW works on your board?
> 
> Powering off quietly sounds strange. Is your power supply sufficient?
> Well, I don't think that would explain the first crash you posted...
> 
>  Tomi
> 
> 
> --
> 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] 73+ messages in thread

* Re: [PATCH v5 00/10] OMAP4 : DSS2 : HDMI support on OMAP4
  2011-03-17 16:20                               ` Janorkar, Mayuresh
@ 2011-03-17 20:16                                 ` Stephan Raue
  2011-03-17 21:13                                   ` Stephan Raue
  0 siblings, 1 reply; 73+ messages in thread
From: Stephan Raue @ 2011-03-17 20:16 UTC (permalink / raw)
  To: Janorkar, Mayuresh; +Cc: Valkeinen, Tomi, K, Mythri P, linux-omap

Am 17.03.2011 17:20, schrieb Janorkar, Mayuresh:
> Raue,
>
>> -----Original Message-----
>> From: linux-omap-owner@vger.kernel.org [mailto:linux-omap-
>> owner@vger.kernel.org] On Behalf Of Valkeinen, Tomi
>> Sent: Thursday, March 17, 2011 4:41 PM
>> To: Stephan Raue
>> Cc: K, Mythri P; linux-omap@vger.kernel.org
>> Subject: Re: [PATCH v5 00/10] OMAP4 : DSS2 : HDMI support on OMAP4
>>
>> Hi,
>>
>> On Wed, 2011-03-16 at 18:49 -0500, Stephan Raue wrote:
>>
>>> i tried this test tree with omap2plus_defconfig.
>>>
>>> it seems the kernel crashes and poweroff the board on loading this hdmi
>>> stuff, but dont print any crashlog. is there a way any backtraces will
>>> be printed?
>>> output from serial console: http://paste.pocoo.org/show/354850/
>>> kernel config (omap2plus_defconfig, added squashfs support, added
>>> support to include initramfs in kernel, build omapfb stuff statically
>>> into the kernel): http://paste.pocoo.org/show/354853/
> Is it possible for you to enable low-level debugging and pass omapfb.debug=1 omapdss.debug=1 in your bootargs?
> This would show the Framebuffer and DSSDBG prints. We would get an idea if kernel is getting stuck in DSS/OMAPFB.
>
> Let me know if you any help in enabling debug prints.
>
> Also one more suggestion/ question, are you seeing a hang if DSS is not enabled in kernel?
>
> -Thanks,
> Mayuresh
>
i have done, there is not more output with enable low level debugging 
and passing this options... :-(

disabling DSS lets boot the kernel and start initramfs (see: 
http://paste.pocoo.org/show/355262/)

>> Have the HDMI on your setup worked in any (prebuilt) image? What I'm
>> asking is if you are sure the HDMI HW works on your board?
yes, prebuild ubuntu images based on TI's 2.6.35 kernel with hdmi 
support gives me output on my monitor.
>> Powering off quietly sounds strange. Is your power supply sufficient?
>> Well, I don't think that would explain the first crash you posted...
i have seen the board dont poweroff, i have also added LED support so 
the LED's begins to flash after kernel start. but only for a very short 
time until the kernel crashes. so i was thinking it does a power off, 
but the chips on the board are not cold even after some minutes/hours, 
so the board is powered on. The powersupply is the recommended 
powersupply from digikey, so its ok.

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

* Re: [PATCH v5 00/10] OMAP4 : DSS2 : HDMI support on OMAP4
  2011-03-17 20:16                                 ` Stephan Raue
@ 2011-03-17 21:13                                   ` Stephan Raue
  2011-03-17 21:34                                     ` Stephan Raue
  2011-03-18  3:45                                     ` Tomi Valkeinen
  0 siblings, 2 replies; 73+ messages in thread
From: Stephan Raue @ 2011-03-17 21:13 UTC (permalink / raw)
  To: Janorkar, Mayuresh; +Cc: Valkeinen, Tomi, K, Mythri P, linux-omap

Am 17.03.2011 21:16, schrieb Stephan Raue:
> Am 17.03.2011 17:20, schrieb Janorkar, Mayuresh:
...
>> Is it possible for you to enable low-level debugging and pass 
>> omapfb.debug=1 omapdss.debug=1 in your bootargs?
>> This would show the Framebuffer and DSSDBG prints. We would get an 
>> idea if kernel is getting stuck in DSS/OMAPFB.
>>
>> Let me know if you any help in enabling debug prints.
>>
>> Also one more suggestion/ question, are you seeing a hang if DSS is 
>> not enabled in kernel?
>>
>> -Thanks,
>> Mayuresh
>>
> i have done, there is not more output with enable low level debugging 
> and passing this options... :-(
>
> disabling DSS lets boot the kernel and start initramfs (see: 
> http://paste.pocoo.org/show/355262/)
an update:

compiled with DSS/HDMI support as modules, loading modules with:

   modprobe omapdss
   modprobe omapfb

and doing a

   dmesg

in the init script gives me:

   modprobe: can't load module omapdss 
(kernel/drivers/video/omap2/dss/omapdss.ko): invalid module format
   modprobe: can't load module cfbcopyarea 
(kernel/drivers/video/cfbcopyarea.ko): invalid module format

see: http://paste.pocoo.org/show/355300/ line 254,255,514,515

why? the complete kernel with modules is rebuild from scratch

thanks much

Stephan

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

* Re: [PATCH v5 00/10] OMAP4 : DSS2 : HDMI support on OMAP4
  2011-03-17 21:13                                   ` Stephan Raue
@ 2011-03-17 21:34                                     ` Stephan Raue
  2011-03-18  3:45                                     ` Tomi Valkeinen
  1 sibling, 0 replies; 73+ messages in thread
From: Stephan Raue @ 2011-03-17 21:34 UTC (permalink / raw)
  To: Janorkar, Mayuresh; +Cc: Valkeinen, Tomi, K, Mythri P, linux-omap

Am 17.03.2011 22:13, schrieb Stephan Raue:
> Am 17.03.2011 21:16, schrieb Stephan Raue:
> an update:
>
> compiled with DSS/HDMI support as modules, loading modules with:
>
>   modprobe omapdss
>   modprobe omapfb
>
> and doing a
>
>   dmesg
>
> in the init script gives me:
>
>   modprobe: can't load module omapdss 
> (kernel/drivers/video/omap2/dss/omapdss.ko): invalid module format
>   modprobe: can't load module cfbcopyarea 
> (kernel/drivers/video/cfbcopyarea.ko): invalid module format
>
> see: http://paste.pocoo.org/show/355300/ line 254,255,514,515
>
> why? the complete kernel with modules is rebuild from scratch
next update:

disable:

CONFIG_LOCALVERSION_AUTO
CONFIG_MODULE_FORCE_LOAD
CONFIG_MODULE_FORCE_UNLOAD
CONFIG_MODVERSIONS
CONFIG_MODULE_SRCVERSION_ALL

gives:

[    3.934814] Bad mode in data abort handler detected
[    3.939941] Internal error: Oops - bad mode: 0 [#1] SMP
[    3.945404] last sysfs file: /sys/devices/virtual/graphics/fbcon/cursor_blink
[    3.952911] Modules linked in: omapdss(+)
[    3.957122] CPU: 0    Not tainted  (2.6.38 #1)
[    3.961791] PC is at 0xffff0018
[    3.965179] LR is at omap_dsshw_probe+0x1d4/0x358 [omapdss]
[    3.971008] pc : [<ffff0018>]    lr : [<bf000d14>]    psr: 60000092
[    3.971038] sp : ef149d08  ip : c0e2bcd8  fp : 00000000
[    3.983093] r10: 00000028  r9 : c0ef4338  r8 : 00000000
[    3.988555] r7 : bf012904  r6 : 00000000  r5 : ef947c40  r4 : 00000000
[    3.995422] r3 : f08fc000  r2 : 02102006  r1 : ef149cf0  r0 : 00000000
[    4.002288] Flags: nZCv  IRQs off  FIQs on  Mode IRQ_32  ISA ARM  Segment user
[    4.009857] Control: 10c53c7d  Table: af3b404a  DAC: 00000015
[    4.015899] Process modprobe (pid: 559, stack limit = 0xef1482f8)
[    4.022308] Stack: (0xef149d08 to 0xef14a000)
[    4.026885] 9d00:                   00000000 ef149cf0 02102006 f08fc000 00000000 ef947c40
[    4.035461] 9d20: 00000000 bf012904 00000000 c0ef4338 00000028 00000000 c0e2bcd8 ef149d08
[    4.044067] 9d40: bf000d14 ffff0018 60000092 ffffffff bf013050 ef947c40 00000000 bf000d14
[    4.052642] 9d60: ef954008 ef95403c bf012904 c067b8b4 c067b8a0 c067aacc 00000000 ef954008
[    4.061248] 9d80: ef95403c bf012904 00000000 c067abf0 bf012904 ef149da0 c067ab88 c0679d38
[    4.069824] 9da0: ef84f658 ef949730 bf012904 bf012904 ef1e7a60 c09cac08 00000000 c067a3d0
[    4.078430] 9dc0: bf00e65b 00000468 00000000 bf012904 c09b4d90 c09b0b28 bf012848 00000000
[    4.087005] 9de0: 00000028 c067ae44 00000000 bf013034 c09b4d90 c09b0b28 bf012848 00000000
[    4.095611] 9e00: 00000028 bf00053c c09b4d90 efa72690 c0aa1380 c09b4d98 c09b4dcc bf012848
[    4.104217] 9e20: bf012848 00000000 00000028 c067b8b4 c067b8a0 c067aacc 00000000 c09b4d98
[    4.112792] 9e40: c09b4dcc bf012848 00000000 c067abf0 bf012848 ef149e60 c067ab88 c0679d38
[    4.121398] 9e60: ef84f658 ef9491b0 bf012848 bf012848 ef1e7c60 c09cac08 00000000 c067a3d0
[    4.129974] 9e80: bf00e09e 00000468 00000000 bf012848 00000000 ef27f9a0 bf01d000 00000000
[    4.138580] 9ea0: 00000028 c067ae44 c067b8d8 00000000 00000000 ef27f9a0 bf01d000 00000000
[    4.147155] 9ec0: 00000028 bf01d064 bf012ed4 c0431694 00000000 00000001 bf012ed4 bf012ed4
[    4.155761] 9ee0: 00000001 bf012ed4 00000000 ef27f9a0 bf012f1c 00000001 00000028 c04af9e4
[    4.164337] 9f00: bf012ee0 000aa048 00000003 c04ad17c c0ef4330 c07f45bc bf013018 000aa048
[    4.172943] 9f20: 00000000 f08d9000 000201b0 f08ec450 f08ec2dc f08f11a8 ef385800 00014740
[    4.181518] 9f40: 000186a0 00000000 00000000 00000023 00000024 00000019 00000000 0000000f
[    4.190124] 9f60: 00000000 bf011a34 00000016 00000000 00000000 00000000 00000000 00000080
[    4.198699] 9f80: 60000010 400368e0 00000000 00000000 00000080 c043b5c8 ef148000 00000000
[    4.207305] 9fa0: 00000003 c043b400 400368e0 00000000 4020e000 000201b0 000aa048 00000003
[    4.215881] 9fc0: 400368e0 00000000 00000000 00000080 00000000 00000000 000aa048 00000003
[    4.224487] 9fe0: bee1a880 bee1a870 00036138 401ab0a0 60000010 4020e000 aaaaaaaa aaaaaaaa
[    4.233093] [<bf000d14>] (omap_dsshw_probe+0x1d4/0x358 [omapdss]) from [<f08fc000>] (0xf08fc000)
[    4.242340] Code: e59ff410 ea0000bb ea00009a ea0000fa (ea000078)
[    4.248748] ------------[ cut here ]------------
[    4.253601] WARNING: at arch/arm/mach-omap2/omap_l3_noc.c:98 l3_interrupt_handler+0xb8/0x134()
[    4.262664] L3 standard error: SOURCE:DSS  at address 0x10
[    4.268402] Modules linked in: omapdss(+)
[    4.272644] [<c044239c>] (unwind_backtrace+0x0/0xe4) from [<c047457c>] (warn_slowpath_common+0x4c/0x64)
[    4.282531] [<c047457c>] (warn_slowpath_common+0x4c/0x64) from [<c0474614>] (warn_slowpath_fmt+0x2c/0x3c)
[    4.292572] [<c0474614>] (warn_slowpath_fmt+0x2c/0x3c) from [<c0455898>] (l3_interrupt_handler+0xb8/0x134)
[    4.302734] [<c0455898>] (l3_interrupt_handler+0xb8/0x134) from [<c04b46f8>] (handle_IRQ_event+0x6c/0x15c)
[    4.312896] [<c04b46f8>] (handle_IRQ_event+0x6c/0x15c) from [<c04b6344>] (handle_level_irq+0xdc/0x160)
[    4.322692] [<c04b6344>] (handle_level_irq+0xdc/0x160) from [<c0431088>] (asm_do_IRQ+0x88/0xc8)
[    4.331848] [<c0431088>] (asm_do_IRQ+0x88/0xc8) from [<c07e985c>] (__irq_svc+0x3c/0xe0)
[    4.340240] Exception stack(0xef149c90 to 0xef149cd8)
[    4.345550] 9c80:                                     c07e93cc 00000001 ef149cc8 00000000
[    4.354125] 9ca0: c0978d1c ef148000 efa72200 00000001 00000000 c0ef4338 00000028 00000000
[    4.362731] 9cc0: 00000000 ef149cd8 c07e93cc c07e93d0 60000013 ffffffff
[    4.369689] [<c07e985c>] (__irq_svc+0x3c/0xe0) from [<c07e93d0>] (_raw_spin_unlock_irq+0x28/0x2c)
[    4.378997] [<c07e93d0>] (_raw_spin_unlock_irq+0x28/0x2c) from [<c043f868>] (die+0x15c/0x1e0)
[    4.387969] [<c043f868>] (die+0x15c/0x1e0) from [<c043fb18>] (bad_mode+0x3c/0x60)
[    4.395843] [<c043fb18>] (bad_mode+0x3c/0x60) from [<bf000d14>] (omap_dsshw_probe+0x1d4/0x358 [omapdss])
[    4.405853] [<bf000d14>] (omap_dsshw_probe+0x1d4/0x358 [omapdss]) from [<f08fc000>] (0xf08fc000)
[    4.415069] ---[ end trace 19eb980927cfdf2c ]---
[    4.419952] ---[ end trace 19eb980927cfdf2d ]---
Segmentation fault
[   34.458221] omapfb: gave up waiting for init of module omapdss.
[   34.464447] omapfb: Unknown symbol omap_dss_get_num_overlays (err -16)
[   64.466033] omapfb: gave up waiting for init of module omapdss.
[   64.472259] omapfb: Unknown symbol omap_dss_get_device (err -16)

see also: http://paste.pocoo.org/show/355314/

thanks much,

Stephan



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

* Re: [PATCH v5 00/10] OMAP4 : DSS2 : HDMI support on OMAP4
  2011-03-17 21:13                                   ` Stephan Raue
  2011-03-17 21:34                                     ` Stephan Raue
@ 2011-03-18  3:45                                     ` Tomi Valkeinen
  1 sibling, 0 replies; 73+ messages in thread
From: Tomi Valkeinen @ 2011-03-18  3:45 UTC (permalink / raw)
  To: Stephan Raue; +Cc: Janorkar, Mayuresh, K, Mythri P, linux-omap

On Thu, 2011-03-17 at 16:13 -0500, Stephan Raue wrote:

> compiled with DSS/HDMI support as modules, loading modules with:
> 
>    modprobe omapdss
>    modprobe omapfb
> 
> and doing a
> 
>    dmesg
> 
> in the init script gives me:
> 
>    modprobe: can't load module omapdss 
> (kernel/drivers/video/omap2/dss/omapdss.ko): invalid module format
>    modprobe: can't load module cfbcopyarea 
> (kernel/drivers/video/cfbcopyarea.ko): invalid module format
> 
> see: http://paste.pocoo.org/show/355300/ line 254,255,514,515
> 
> why? the complete kernel with modules is rebuild from scratch

I don't see how that could be a problem in DSS. I mostly use DSS as
modules, so it works ok. Are you sure DSS compiled fine, and those
modules are right for the kernel you run? Can you load any other module
compiled at that time?

 Tomi



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

* RE: [PATCH v5 00/10] OMAP4 : DSS2 : HDMI support on OMAP4
  2011-03-16 23:49                           ` Stephan Raue
  2011-03-17 11:11                             ` Tomi Valkeinen
  2011-03-18  5:43                             ` Anand Gadiyar
@ 2011-03-18  5:43                             ` Anand Gadiyar
  2011-03-18  5:52                             ` Anand Gadiyar
                                               ` (11 subsequent siblings)
  14 siblings, 0 replies; 73+ messages in thread
From: Anand Gadiyar @ 2011-03-18  5:43 UTC (permalink / raw)
  To: Stephan Raue, Mythri P K; +Cc: Tomi Valkeinen, linux-omap

> i tried this test tree with omap2plus_defconfig.
>
> it seems the kernel crashes and poweroff the board on loading
> this hdmi stuff, but dont print any crashlog. is there a
> way any backtraces will be printed?
> output from serial console: http://paste.pocoo.org/show/354850/
> kernel config (omap2plus_defconfig, added squashfs support, added
> support to include initramfs in kernel, build omapfb stuff statically
> into the kernel): http://paste.pocoo.org/show/354853/
>
> i am using a own toolchain to crosscompile with gcc-4.5.2,
> binutils-2.21...

Just a hunch, but could you please turn off CONFIG_OMAP2_DSS_SDI
and try again?

- Anand

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

* RE: [PATCH v5 00/10] OMAP4 : DSS2 : HDMI support on OMAP4
  2011-03-16 23:49                           ` Stephan Raue
  2011-03-17 11:11                             ` Tomi Valkeinen
@ 2011-03-18  5:43                             ` Anand Gadiyar
  2011-03-18  6:17                               ` Gadiyar, Anand
  2011-03-18  5:43                             ` Anand Gadiyar
                                               ` (12 subsequent siblings)
  14 siblings, 1 reply; 73+ messages in thread
From: Anand Gadiyar @ 2011-03-18  5:43 UTC (permalink / raw)
  To: Stephan Raue, Mythri P K; +Cc: Tomi Valkeinen, linux-omap

> i tried this test tree with omap2plus_defconfig.
>
> it seems the kernel crashes and poweroff the board on loading
> this hdmi stuff, but dont print any crashlog. is there a
> way any backtraces will be printed?
> output from serial console: http://paste.pocoo.org/show/354850/
> kernel config (omap2plus_defconfig, added squashfs support, added
> support to include initramfs in kernel, build omapfb stuff statically
> into the kernel): http://paste.pocoo.org/show/354853/
>
> i am using a own toolchain to crosscompile with gcc-4.5.2,
> binutils-2.21...

Just a hunch, but could you please turn off CONFIG_OMAP2_DSS_SDI
and try again?

- Anand

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

* RE: [PATCH v5 00/10] OMAP4 : DSS2 : HDMI support on OMAP4
  2011-03-16 23:49                           ` Stephan Raue
                                               ` (7 preceding siblings ...)
  2011-03-18  5:52                             ` Anand Gadiyar
@ 2011-03-18  5:52                             ` Anand Gadiyar
  2011-03-18  5:52                             ` Anand Gadiyar
                                               ` (5 subsequent siblings)
  14 siblings, 0 replies; 73+ messages in thread
From: Anand Gadiyar @ 2011-03-18  5:52 UTC (permalink / raw)
  To: Stephan Raue, Mythri P K; +Cc: Tomi Valkeinen, linux-omap

> i tried this test tree with omap2plus_defconfig.
>
> it seems the kernel crashes and poweroff the board on loading
> this hdmi stuff, but dont print any crashlog. is there a
> way any backtraces will be printed?
> output from serial console: http://paste.pocoo.org/show/354850/
> kernel config (omap2plus_defconfig, added squashfs support, added
> support to include initramfs in kernel, build omapfb stuff statically
> into the kernel): http://paste.pocoo.org/show/354853/
>
> i am using a own toolchain to crosscompile with gcc-4.5.2,
> binutils-2.21...

Just a hunch, but could you please turn off CONFIG_OMAP2_DSS_SDI
and try again?

- Anand

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

* RE: [PATCH v5 00/10] OMAP4 : DSS2 : HDMI support on OMAP4
  2011-03-16 23:49                           ` Stephan Raue
                                               ` (5 preceding siblings ...)
  2011-03-18  5:52                             ` Anand Gadiyar
@ 2011-03-18  5:52                             ` Anand Gadiyar
  2011-03-18  5:52                             ` Anand Gadiyar
                                               ` (7 subsequent siblings)
  14 siblings, 0 replies; 73+ messages in thread
From: Anand Gadiyar @ 2011-03-18  5:52 UTC (permalink / raw)
  To: Stephan Raue, Mythri P K; +Cc: Tomi Valkeinen, linux-omap

> i tried this test tree with omap2plus_defconfig.
>
> it seems the kernel crashes and poweroff the board on loading
> this hdmi stuff, but dont print any crashlog. is there a
> way any backtraces will be printed?
> output from serial console: http://paste.pocoo.org/show/354850/
> kernel config (omap2plus_defconfig, added squashfs support, added
> support to include initramfs in kernel, build omapfb stuff statically
> into the kernel): http://paste.pocoo.org/show/354853/
>
> i am using a own toolchain to crosscompile with gcc-4.5.2,
> binutils-2.21...

Just a hunch, but could you please turn off CONFIG_OMAP2_DSS_SDI
and try again?

- Anand

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

* RE: [PATCH v5 00/10] OMAP4 : DSS2 : HDMI support on OMAP4
  2011-03-16 23:49                           ` Stephan Raue
                                               ` (3 preceding siblings ...)
  2011-03-18  5:52                             ` Anand Gadiyar
@ 2011-03-18  5:52                             ` Anand Gadiyar
  2011-03-18  5:52                             ` Anand Gadiyar
                                               ` (9 subsequent siblings)
  14 siblings, 0 replies; 73+ messages in thread
From: Anand Gadiyar @ 2011-03-18  5:52 UTC (permalink / raw)
  To: Stephan Raue, Mythri P K; +Cc: Tomi Valkeinen, linux-omap

> i tried this test tree with omap2plus_defconfig.
>
> it seems the kernel crashes and poweroff the board on loading
> this hdmi stuff, but dont print any crashlog. is there a
> way any backtraces will be printed?
> output from serial console: http://paste.pocoo.org/show/354850/
> kernel config (omap2plus_defconfig, added squashfs support, added
> support to include initramfs in kernel, build omapfb stuff statically
> into the kernel): http://paste.pocoo.org/show/354853/
>
> i am using a own toolchain to crosscompile with gcc-4.5.2,
> binutils-2.21...

Just a hunch, but could you please turn off CONFIG_OMAP2_DSS_SDI
and try again?

- Anand

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

* RE: [PATCH v5 00/10] OMAP4 : DSS2 : HDMI support on OMAP4
  2011-03-16 23:49                           ` Stephan Raue
                                               ` (4 preceding siblings ...)
  2011-03-18  5:52                             ` Anand Gadiyar
@ 2011-03-18  5:52                             ` Anand Gadiyar
  2011-03-18  5:52                             ` Anand Gadiyar
                                               ` (8 subsequent siblings)
  14 siblings, 0 replies; 73+ messages in thread
From: Anand Gadiyar @ 2011-03-18  5:52 UTC (permalink / raw)
  To: Stephan Raue, Mythri P K; +Cc: Tomi Valkeinen, linux-omap

> i tried this test tree with omap2plus_defconfig.
>
> it seems the kernel crashes and poweroff the board on loading
> this hdmi stuff, but dont print any crashlog. is there a
> way any backtraces will be printed?
> output from serial console: http://paste.pocoo.org/show/354850/
> kernel config (omap2plus_defconfig, added squashfs support, added
> support to include initramfs in kernel, build omapfb stuff statically
> into the kernel): http://paste.pocoo.org/show/354853/
>
> i am using a own toolchain to crosscompile with gcc-4.5.2,
> binutils-2.21...

Just a hunch, but could you please turn off CONFIG_OMAP2_DSS_SDI
and try again?

- Anand

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

* RE: [PATCH v5 00/10] OMAP4 : DSS2 : HDMI support on OMAP4
  2011-03-16 23:49                           ` Stephan Raue
                                               ` (11 preceding siblings ...)
  2011-03-18  5:52                             ` Anand Gadiyar
@ 2011-03-18  5:52                             ` Anand Gadiyar
  2011-03-18  5:52                             ` Anand Gadiyar
  2011-03-18  5:52                             ` Anand Gadiyar
  14 siblings, 0 replies; 73+ messages in thread
From: Anand Gadiyar @ 2011-03-18  5:52 UTC (permalink / raw)
  To: Stephan Raue, Mythri P K; +Cc: Tomi Valkeinen, linux-omap

> i tried this test tree with omap2plus_defconfig.
>
> it seems the kernel crashes and poweroff the board on loading
> this hdmi stuff, but dont print any crashlog. is there a
> way any backtraces will be printed?
> output from serial console: http://paste.pocoo.org/show/354850/
> kernel config (omap2plus_defconfig, added squashfs support, added
> support to include initramfs in kernel, build omapfb stuff statically
> into the kernel): http://paste.pocoo.org/show/354853/
>
> i am using a own toolchain to crosscompile with gcc-4.5.2,
> binutils-2.21...

Just a hunch, but could you please turn off CONFIG_OMAP2_DSS_SDI
and try again?

- Anand

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

* RE: [PATCH v5 00/10] OMAP4 : DSS2 : HDMI support on OMAP4
  2011-03-16 23:49                           ` Stephan Raue
                                               ` (10 preceding siblings ...)
  2011-03-18  5:52                             ` Anand Gadiyar
@ 2011-03-18  5:52                             ` Anand Gadiyar
  2011-03-18  5:52                             ` Anand Gadiyar
                                               ` (2 subsequent siblings)
  14 siblings, 0 replies; 73+ messages in thread
From: Anand Gadiyar @ 2011-03-18  5:52 UTC (permalink / raw)
  To: Stephan Raue, Mythri P K; +Cc: Tomi Valkeinen, linux-omap

> i tried this test tree with omap2plus_defconfig.
>
> it seems the kernel crashes and poweroff the board on loading
> this hdmi stuff, but dont print any crashlog. is there a
> way any backtraces will be printed?
> output from serial console: http://paste.pocoo.org/show/354850/
> kernel config (omap2plus_defconfig, added squashfs support, added
> support to include initramfs in kernel, build omapfb stuff statically
> into the kernel): http://paste.pocoo.org/show/354853/
>
> i am using a own toolchain to crosscompile with gcc-4.5.2,
> binutils-2.21...

Just a hunch, but could you please turn off CONFIG_OMAP2_DSS_SDI
and try again?

- Anand

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

* RE: [PATCH v5 00/10] OMAP4 : DSS2 : HDMI support on OMAP4
  2011-03-16 23:49                           ` Stephan Raue
                                               ` (2 preceding siblings ...)
  2011-03-18  5:43                             ` Anand Gadiyar
@ 2011-03-18  5:52                             ` Anand Gadiyar
  2011-03-18  5:52                             ` Anand Gadiyar
                                               ` (10 subsequent siblings)
  14 siblings, 0 replies; 73+ messages in thread
From: Anand Gadiyar @ 2011-03-18  5:52 UTC (permalink / raw)
  To: Stephan Raue, Mythri P K; +Cc: Tomi Valkeinen, linux-omap

> i tried this test tree with omap2plus_defconfig.
>
> it seems the kernel crashes and poweroff the board on loading
> this hdmi stuff, but dont print any crashlog. is there a
> way any backtraces will be printed?
> output from serial console: http://paste.pocoo.org/show/354850/
> kernel config (omap2plus_defconfig, added squashfs support, added
> support to include initramfs in kernel, build omapfb stuff statically
> into the kernel): http://paste.pocoo.org/show/354853/
>
> i am using a own toolchain to crosscompile with gcc-4.5.2,
> binutils-2.21...

Just a hunch, but could you please turn off CONFIG_OMAP2_DSS_SDI
and try again?

- Anand

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

* RE: [PATCH v5 00/10] OMAP4 : DSS2 : HDMI support on OMAP4
  2011-03-16 23:49                           ` Stephan Raue
                                               ` (9 preceding siblings ...)
  2011-03-18  5:52                             ` Anand Gadiyar
@ 2011-03-18  5:52                             ` Anand Gadiyar
  2011-03-18  5:52                             ` Anand Gadiyar
                                               ` (3 subsequent siblings)
  14 siblings, 0 replies; 73+ messages in thread
From: Anand Gadiyar @ 2011-03-18  5:52 UTC (permalink / raw)
  To: Stephan Raue, Mythri P K; +Cc: Tomi Valkeinen, linux-omap

> i tried this test tree with omap2plus_defconfig.
>
> it seems the kernel crashes and poweroff the board on loading
> this hdmi stuff, but dont print any crashlog. is there a
> way any backtraces will be printed?
> output from serial console: http://paste.pocoo.org/show/354850/
> kernel config (omap2plus_defconfig, added squashfs support, added
> support to include initramfs in kernel, build omapfb stuff statically
> into the kernel): http://paste.pocoo.org/show/354853/
>
> i am using a own toolchain to crosscompile with gcc-4.5.2,
> binutils-2.21...

Just a hunch, but could you please turn off CONFIG_OMAP2_DSS_SDI
and try again?

- Anand

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

* RE: [PATCH v5 00/10] OMAP4 : DSS2 : HDMI support on OMAP4
  2011-03-16 23:49                           ` Stephan Raue
                                               ` (12 preceding siblings ...)
  2011-03-18  5:52                             ` Anand Gadiyar
@ 2011-03-18  5:52                             ` Anand Gadiyar
  2011-03-18  5:52                             ` Anand Gadiyar
  14 siblings, 0 replies; 73+ messages in thread
From: Anand Gadiyar @ 2011-03-18  5:52 UTC (permalink / raw)
  To: Stephan Raue, Mythri P K; +Cc: Tomi Valkeinen, linux-omap

> i tried this test tree with omap2plus_defconfig.
>
> it seems the kernel crashes and poweroff the board on loading
> this hdmi stuff, but dont print any crashlog. is there a
> way any backtraces will be printed?
> output from serial console: http://paste.pocoo.org/show/354850/
> kernel config (omap2plus_defconfig, added squashfs support, added
> support to include initramfs in kernel, build omapfb stuff statically
> into the kernel): http://paste.pocoo.org/show/354853/
>
> i am using a own toolchain to crosscompile with gcc-4.5.2,
> binutils-2.21...

Just a hunch, but could you please turn off CONFIG_OMAP2_DSS_SDI
and try again?

- Anand

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

* RE: [PATCH v5 00/10] OMAP4 : DSS2 : HDMI support on OMAP4
  2011-03-16 23:49                           ` Stephan Raue
                                               ` (8 preceding siblings ...)
  2011-03-18  5:52                             ` Anand Gadiyar
@ 2011-03-18  5:52                             ` Anand Gadiyar
  2011-03-18  5:52                             ` Anand Gadiyar
                                               ` (4 subsequent siblings)
  14 siblings, 0 replies; 73+ messages in thread
From: Anand Gadiyar @ 2011-03-18  5:52 UTC (permalink / raw)
  To: Stephan Raue, Mythri P K; +Cc: Tomi Valkeinen, linux-omap

> i tried this test tree with omap2plus_defconfig.
>
> it seems the kernel crashes and poweroff the board on loading
> this hdmi stuff, but dont print any crashlog. is there a
> way any backtraces will be printed?
> output from serial console: http://paste.pocoo.org/show/354850/
> kernel config (omap2plus_defconfig, added squashfs support, added
> support to include initramfs in kernel, build omapfb stuff statically
> into the kernel): http://paste.pocoo.org/show/354853/
>
> i am using a own toolchain to crosscompile with gcc-4.5.2,
> binutils-2.21...

Just a hunch, but could you please turn off CONFIG_OMAP2_DSS_SDI
and try again?

- Anand

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

* RE: [PATCH v5 00/10] OMAP4 : DSS2 : HDMI support on OMAP4
  2011-03-16 23:49                           ` Stephan Raue
                                               ` (6 preceding siblings ...)
  2011-03-18  5:52                             ` Anand Gadiyar
@ 2011-03-18  5:52                             ` Anand Gadiyar
  2011-03-18  5:52                             ` Anand Gadiyar
                                               ` (6 subsequent siblings)
  14 siblings, 0 replies; 73+ messages in thread
From: Anand Gadiyar @ 2011-03-18  5:52 UTC (permalink / raw)
  To: Stephan Raue, Mythri P K; +Cc: Tomi Valkeinen, linux-omap

> i tried this test tree with omap2plus_defconfig.
>
> it seems the kernel crashes and poweroff the board on loading
> this hdmi stuff, but dont print any crashlog. is there a
> way any backtraces will be printed?
> output from serial console: http://paste.pocoo.org/show/354850/
> kernel config (omap2plus_defconfig, added squashfs support, added
> support to include initramfs in kernel, build omapfb stuff statically
> into the kernel): http://paste.pocoo.org/show/354853/
>
> i am using a own toolchain to crosscompile with gcc-4.5.2,
> binutils-2.21...

Just a hunch, but could you please turn off CONFIG_OMAP2_DSS_SDI
and try again?

- Anand

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

* RE: [PATCH v5 00/10] OMAP4 : DSS2 : HDMI support on OMAP4
  2011-03-16 23:49                           ` Stephan Raue
                                               ` (13 preceding siblings ...)
  2011-03-18  5:52                             ` Anand Gadiyar
@ 2011-03-18  5:52                             ` Anand Gadiyar
  14 siblings, 0 replies; 73+ messages in thread
From: Anand Gadiyar @ 2011-03-18  5:52 UTC (permalink / raw)
  To: Stephan Raue, Mythri P K; +Cc: Tomi Valkeinen, linux-omap

> i tried this test tree with omap2plus_defconfig.
>
> it seems the kernel crashes and poweroff the board on loading
> this hdmi stuff, but dont print any crashlog. is there a
> way any backtraces will be printed?
> output from serial console: http://paste.pocoo.org/show/354850/
> kernel config (omap2plus_defconfig, added squashfs support, added
> support to include initramfs in kernel, build omapfb stuff statically
> into the kernel): http://paste.pocoo.org/show/354853/
>
> i am using a own toolchain to crosscompile with gcc-4.5.2,
> binutils-2.21...

Just a hunch, but could you please turn off CONFIG_OMAP2_DSS_SDI
and try again?

- Anand

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

* Re: [PATCH v5 00/10] OMAP4 : DSS2 : HDMI support on OMAP4
  2011-03-18  5:43                             ` Anand Gadiyar
@ 2011-03-18  6:17                               ` Gadiyar, Anand
  0 siblings, 0 replies; 73+ messages in thread
From: Gadiyar, Anand @ 2011-03-18  6:17 UTC (permalink / raw)
  To: Stephan Raue, Mythri P K; +Cc: Tomi Valkeinen, linux-omap

On Fri, Mar 18, 2011 at 11:13 AM, Anand Gadiyar <gadiyar@ti.com> wrote:
>> i tried this test tree with omap2plus_defconfig.
>>
>> it seems the kernel crashes and poweroff the board on loading
>> this hdmi stuff, but dont print any crashlog. is there a
>> way any backtraces will be printed?
>> output from serial console: http://paste.pocoo.org/show/354850/
>> kernel config (omap2plus_defconfig, added squashfs support, added
>> support to include initramfs in kernel, build omapfb stuff statically
>> into the kernel): http://paste.pocoo.org/show/354853/
>>
>> i am using a own toolchain to crosscompile with gcc-4.5.2,
>> binutils-2.21...
>
> Just a hunch, but could you please turn off CONFIG_OMAP2_DSS_SDI
> and try again?
>
> - Anand
>

Sorry for the spam - my mailer went berserk.

I offlined it for now while I figure out what's going on.

- Anand

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

* Re: [PATCH v5 03/10] OMAP4 : DSS2 : HDMI: Dispc gamma enable set/reset function for TV.
  2011-03-10 10:44     ` [PATCH v5 03/10] OMAP4 : DSS2 : HDMI: Dispc gamma enable set/reset function for TV Mythri P K
  2011-03-10 10:44       ` [PATCH v5 04/10] OMAP4 : DSS2 : HDMI: HDMI driver header file addition Mythri P K
  2011-03-10 13:52       ` [PATCH v5 03/10] OMAP4 : DSS2 : HDMI: Dispc gamma enable set/reset function for TV Tomi Valkeinen
@ 2011-05-05 13:50       ` Laurent Pinchart
  2 siblings, 0 replies; 73+ messages in thread
From: Laurent Pinchart @ 2011-05-05 13:50 UTC (permalink / raw)
  To: Mythri P K; +Cc: linux-omap, tomi.valkeinen

Hi Mythri,

Sorry for the late reply, I've only noticed this issue today.

On Thursday 10 March 2011 11:44:11 Mythri P K wrote:
> Adding function to reset/set gamma table bit for TV interface
> currentl only support for disabled is added.
> 
> Signed-off-by: Mythri P K <mythripk@ti.com>
> ---
>  drivers/video/omap2/dss/dispc.c |   13 +++++++++++++
>  drivers/video/omap2/dss/dss.h   |    1 +
>  2 files changed, 14 insertions(+), 0 deletions(-)
> 
> diff --git a/drivers/video/omap2/dss/dispc.c
> b/drivers/video/omap2/dss/dispc.c index b8c576a..9b86f5f 100644
> --- a/drivers/video/omap2/dss/dispc.c
> +++ b/drivers/video/omap2/dss/dispc.c
> @@ -1008,6 +1008,19 @@ void dispc_set_burst_size(enum omap_plane plane,
>  	enable_clocks(0);
>  }
> 
> +void dispc_enable_gamma_table(bool enable)
> +{
> +	/* This is partially implemented to support only
> +	 *  disabling of the gamma table.
> +	 */
> +	if (enable) {
> +		DSSWARN("Gamma table enabling for TV not yet supported");
> +		return;
> +	}
> +
> +	REG_FLD_MOD(DISPC_CONFIG, enable, 9, 9);

Bit 9 in the DISPC_CONFIG register is as FUNCGATED for the OMAP3. From a quick 
glance at the OMAP36xx and OMAP4430 public TRMs, that's the only DISPC_CONFIG 
bit that has been changed between OMAP3 and OMAP4.

> +}
> +
>  static void _dispc_set_vid_color_conv(enum omap_plane plane, bool enable)
>  {
>  	u32 val;
> diff --git a/drivers/video/omap2/dss/dss.h b/drivers/video/omap2/dss/dss.h
> index c2c0fcf..9f563a6 100644
> --- a/drivers/video/omap2/dss/dss.h
> +++ b/drivers/video/omap2/dss/dss.h
> @@ -376,6 +376,7 @@ void dispc_set_plane_size(enum omap_plane plane, u16
> width, u16 height); void dispc_set_channel_out(enum omap_plane plane,
>  		enum omap_channel channel_out);
> 
> +void dispc_enable_gamma_table(bool enable);
>  int dispc_setup_plane(enum omap_plane plane,
>  		      u32 paddr, u16 screen_width,
>  		      u16 pos_x, u16 pos_y,

-- 
Regards,

Laurent Pinchart

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

end of thread, other threads:[~2011-05-05 13:49 UTC | newest]

Thread overview: 73+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2011-03-10 10:44 [PATCH v5 00/10] OMAP4 : DSS2 : HDMI support on OMAP4 Mythri P K
2011-03-10 10:44 ` [PATCH v5 01/10] OMAP4 : DSS2 : Add display type HDMI to DSS2 Mythri P K
2011-03-10 10:44   ` [PATCH v5 02/10] OMAP4 : DSS2 : HDMI: Select between HDMI VENC clock source Mythri P K
2011-03-10 10:44     ` [PATCH v5 03/10] OMAP4 : DSS2 : HDMI: Dispc gamma enable set/reset function for TV Mythri P K
2011-03-10 10:44       ` [PATCH v5 04/10] OMAP4 : DSS2 : HDMI: HDMI driver header file addition Mythri P K
2011-03-10 10:44         ` [PATCH v5 05/10] OMAP4 : DSS2 : HDMI: HDMI driver addition in the DSS Mythri P K
2011-03-10 10:44           ` [PATCH v5 06/10] OMAP4 : DSS2 : HDMI: HDMI panel " Mythri P K
2011-03-10 10:44             ` [PATCH v5 07/10] OMAP4 : DSS2 : HDMI: Add makefile and kconfig changes to enable HDMI in OMAP4 Mythri P K
2011-03-10 10:44               ` [PATCH v5 08/10] OMAP4 : DSS : HDMI: Call to HDMI module init to register driver Mythri P K
2011-03-10 10:44                 ` [PATCH v5 09/10] OMAP4 : HDMI : Add HDMI structure in the board file for OMAP4 SDP Mythri P K
2011-03-10 10:44                   ` [PATCH v5 10/10] OMAP4 : HDMI : Add HDMI structure in the board file for OMAP4 PANDA Mythri P K
2011-03-15  4:23                     ` Tomi Valkeinen
2011-03-15 14:47                       ` John S
2011-03-10 14:04                 ` [PATCH v5 08/10] OMAP4 : DSS : HDMI: Call to HDMI module init to register driver Tomi Valkeinen
2011-03-10 13:59               ` [PATCH v5 07/10] OMAP4 : DSS2 : HDMI: Add makefile and kconfig changes to enable HDMI in OMAP4 Tomi Valkeinen
2011-03-10 13:58           ` [PATCH v5 05/10] OMAP4 : DSS2 : HDMI: HDMI driver addition in the DSS Tomi Valkeinen
2011-03-10 13:52       ` [PATCH v5 03/10] OMAP4 : DSS2 : HDMI: Dispc gamma enable set/reset function for TV Tomi Valkeinen
2011-05-05 13:50       ` Laurent Pinchart
2011-03-10 13:49     ` [PATCH v5 02/10] OMAP4 : DSS2 : HDMI: Select between HDMI VENC clock source Tomi Valkeinen
2011-03-10 13:48   ` [PATCH v5 01/10] OMAP4 : DSS2 : Add display type HDMI to DSS2 Tomi Valkeinen
2011-03-10 16:53     ` Aaro Koskinen
2011-03-10 13:44 ` [PATCH v5 00/10] OMAP4 : DSS2 : HDMI support on OMAP4 Tomi Valkeinen
2011-03-10 14:45   ` Stephan Raue
2011-03-10 14:51     ` Tomi Valkeinen
2011-03-11  0:07       ` Stephan Raue
2011-03-11  6:16         ` K, Mythri P
2011-03-11  7:24           ` Tomi Valkeinen
2011-03-11 13:23             ` Hiremath, Vaibhav
2011-03-14  8:35               ` Hiremath, Vaibhav
2011-03-14  9:24                 ` Tomi Valkeinen
2011-03-14  9:35                   ` Hiremath, Vaibhav
2011-03-16  6:45                     ` Tomi Valkeinen
2011-03-16  6:47                       ` Hiremath, Vaibhav
2011-03-11  7:12     ` Tomi Valkeinen
2011-03-11  8:43       ` Stephan Raue
2011-03-11 13:22         ` Tomi Valkeinen
2011-03-11 16:18           ` Stephan Raue
2011-03-11 18:27             ` Tomi Valkeinen
2011-03-11 18:42               ` Stephan Raue
2011-03-12  6:51                 ` K, Mythri P
2011-03-13 14:32                   ` Stephan Raue
2011-03-13 16:20                     ` Stephan Raue
2011-03-16  6:51                       ` Tomi Valkeinen
2011-03-16 10:53                         ` K, Mythri P
2011-03-16 10:59                           ` Tomi Valkeinen
2011-03-16 23:49                           ` Stephan Raue
2011-03-17 11:11                             ` Tomi Valkeinen
2011-03-17 16:20                               ` Janorkar, Mayuresh
2011-03-17 20:16                                 ` Stephan Raue
2011-03-17 21:13                                   ` Stephan Raue
2011-03-17 21:34                                     ` Stephan Raue
2011-03-18  3:45                                     ` Tomi Valkeinen
2011-03-18  5:43                             ` Anand Gadiyar
2011-03-18  6:17                               ` Gadiyar, Anand
2011-03-18  5:43                             ` Anand Gadiyar
2011-03-18  5:52                             ` Anand Gadiyar
2011-03-18  5:52                             ` Anand Gadiyar
2011-03-18  5:52                             ` Anand Gadiyar
2011-03-18  5:52                             ` Anand Gadiyar
2011-03-18  5:52                             ` Anand Gadiyar
2011-03-18  5:52                             ` Anand Gadiyar
2011-03-18  5:52                             ` Anand Gadiyar
2011-03-18  5:52                             ` Anand Gadiyar
2011-03-18  5:52                             ` Anand Gadiyar
2011-03-18  5:52                             ` Anand Gadiyar
2011-03-18  5:52                             ` Anand Gadiyar
2011-03-18  5:52                             ` Anand Gadiyar
2011-03-14 10:37   ` Jan, Sebastien
2011-03-15  4:06     ` Tomi Valkeinen
2011-03-15  4:38       ` K, Mythri P
2011-03-10 15:06 ` Tomi Valkeinen
2011-03-11  8:24   ` K, Mythri P
2011-03-16  8:32     ` Tomi Valkeinen

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.