linux-fbdev.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [PATCH 0/6] OMAPDSS: remove cpu_is_* calls
@ 2012-09-28 10:35 Tomi Valkeinen
  2012-09-28 10:35 ` [PATCH 1/6] OMAPDSS: add omapdss_version Tomi Valkeinen
                   ` (6 more replies)
  0 siblings, 7 replies; 11+ messages in thread
From: Tomi Valkeinen @ 2012-09-28 10:35 UTC (permalink / raw)
  To: linux-omap, linux-fbdev
  Cc: Archit Taneja, Chandrabhanu Mahapatra, Raphaël Assénat,
	Tony Lindgren, Tomi Valkeinen

Hi,

This series adds an omapdss_version enum that is passed via platform data to
omapdss driver. This version identifier is then used instead of cpu_is_*()
calls.

After these, omapdss no longer contains any plat/ or mach/ includes. omapfb,
vrfb and vram still do, though.

 Tomi

Tomi Valkeinen (6):
  OMAPDSS: add omapdss_version
  OMAPDSS: use omapdss_version in dss_features.c
  OMAPDSS: DISPC: use omapdss_version
  OMAPDSS: DSS: use omapdss_version
  OMAPDSS: HDMI: use omapdss_version
  OMAPDSS: remove <plat/cpu.h> includes

 arch/arm/mach-omap2/display.c          |   38 +++++++++++++++++++
 drivers/video/omap2/dss/core.c         |    2 +-
 drivers/video/omap2/dss/dispc.c        |   41 +++++++++++++-------
 drivers/video/omap2/dss/dss.c          |   39 +++++++++++++------
 drivers/video/omap2/dss/dss_features.c |   64 ++++++++++++++++++++++----------
 drivers/video/omap2/dss/dss_features.h |    5 ++-
 drivers/video/omap2/dss/hdmi.c         |    3 +-
 include/video/omapdss.h                |   14 +++++++
 8 files changed, 157 insertions(+), 49 deletions(-)

-- 
1.7.9.5


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

* [PATCH 1/6] OMAPDSS: add omapdss_version
  2012-09-28 10:35 [PATCH 0/6] OMAPDSS: remove cpu_is_* calls Tomi Valkeinen
@ 2012-09-28 10:35 ` Tomi Valkeinen
  2012-09-28 10:44   ` Tomi Valkeinen
  2012-09-28 11:12   ` Archit Taneja
  2012-09-28 10:35 ` [PATCH 2/6] OMAPDSS: use omapdss_version in dss_features.c Tomi Valkeinen
                   ` (5 subsequent siblings)
  6 siblings, 2 replies; 11+ messages in thread
From: Tomi Valkeinen @ 2012-09-28 10:35 UTC (permalink / raw)
  To: linux-omap, linux-fbdev
  Cc: Archit Taneja, Chandrabhanu Mahapatra, Raphaël Assénat,
	Tony Lindgren, Tomi Valkeinen

Add new enum, omapdss_version, that is used to tell which DSS hardware
version the SoC has. This enum is initialized during platform init, and
passed in the platform data to omapdss driver.

Note that the versions are not "continuous", that is, you cannot check
if the version is less or greater than something, but you need to check
for exact version match. In other words, this is invalid:

/* test if DSS is 3630 or earlier */
if (ver <= OMAPDSS_VER_OMAP3630)
	...

Signed-off-by: Tomi Valkeinen <tomi.valkeinen@ti.com>
---
 arch/arm/mach-omap2/display.c |   38 ++++++++++++++++++++++++++++++++++++++
 include/video/omapdss.h       |   14 ++++++++++++++
 2 files changed, 52 insertions(+)

diff --git a/arch/arm/mach-omap2/display.c b/arch/arm/mach-omap2/display.c
index ee40739..33555da 100644
--- a/arch/arm/mach-omap2/display.c
+++ b/arch/arm/mach-omap2/display.c
@@ -284,6 +284,35 @@ err:
 	return ERR_PTR(r);
 }
 
+static enum omapdss_version omap_display_get_version(void)
+{
+	if (cpu_is_omap24xx())
+		return OMAPDSS_VER_OMAP24xx;
+	else if (cpu_is_omap3630())
+		return OMAPDSS_VER_OMAP3630;
+	else if (cpu_is_omap34xx()) {
+		if (soc_is_am35xx()) {
+			return OMAPDSS_VER_AM35xx;
+		} else {
+			if (omap_rev() < OMAP3430_REV_ES3_0)
+				return OMAPDSS_VER_OMAP34xx_ES1;
+			else
+				return OMAPDSS_VER_OMAP34xx_ES3;
+		}
+	} else if (omap_rev() = OMAP4430_REV_ES1_0)
+		return OMAPDSS_VER_OMAP4430_ES1;
+	else if (omap_rev() = OMAP4430_REV_ES2_0 ||
+			omap_rev() = OMAP4430_REV_ES2_1 ||
+			omap_rev() = OMAP4430_REV_ES2_2)
+		return OMAPDSS_VER_OMAP4430_ES2;
+	else if (cpu_is_omap44xx())
+		return OMAPDSS_VER_OMAP4;
+	else if (soc_is_omap54xx())
+		return OMAPDSS_VER_OMAP5;
+	else
+		return OMAPDSS_VER_UNKNOWN
+}
+
 int __init omap_display_init(struct omap_dss_board_info *board_data)
 {
 	int r = 0;
@@ -291,9 +320,18 @@ int __init omap_display_init(struct omap_dss_board_info *board_data)
 	int i, oh_count;
 	const struct omap_dss_hwmod_data *curr_dss_hwmod;
 	struct platform_device *dss_pdev;
+	enum omapdss_version ver;
 
 	/* create omapdss device */
 
+	ver = omap_display_get_version();
+
+	if (ver = OMAPDSS_VER_UNKNOWN) {
+		pr_err("DSS not supported on this SoC\n");
+		return -ENODEV;
+	}
+
+	board_data->version = ver;
 	board_data->dsi_enable_pads = omap_dsi_enable_pads;
 	board_data->dsi_disable_pads = omap_dsi_disable_pads;
 	board_data->get_context_loss_count = omap_pm_get_dev_context_loss_count;
diff --git a/include/video/omapdss.h b/include/video/omapdss.h
index 3729173..88c8294 100644
--- a/include/video/omapdss.h
+++ b/include/video/omapdss.h
@@ -314,6 +314,19 @@ int dsi_vc_send_bta_sync(struct omap_dss_device *dssdev, int channel);
 int dsi_enable_video_output(struct omap_dss_device *dssdev, int channel);
 void dsi_disable_video_output(struct omap_dss_device *dssdev, int channel);
 
+enum omapdss_version {
+	OMAPDSS_VER_UNKNOWN = 0,
+	OMAPDSS_VER_OMAP24xx,
+	OMAPDSS_VER_OMAP34xx_ES1,	/* OMAP3430 ES1.0, 2.0 */
+	OMAPDSS_VER_OMAP34xx_ES3,	/* OMAP3430 ES3.0+ */
+	OMAPDSS_VER_OMAP3630,
+	OMAPDSS_VER_AM35xx,
+	OMAPDSS_VER_OMAP4430_ES1,	/* OMAP4430 ES1.0 */
+	OMAPDSS_VER_OMAP4430_ES2,	/* OMAP4430 ES2.0, 2.1, 2.2 */
+	OMAPDSS_VER_OMAP4,		/* All other OMAP4s */
+	OMAPDSS_VER_OMAP5,
+};
+
 /* Board specific data */
 struct omap_dss_board_info {
 	int (*get_context_loss_count)(struct device *dev);
@@ -323,6 +336,7 @@ struct omap_dss_board_info {
 	int (*dsi_enable_pads)(int dsi_id, unsigned lane_mask);
 	void (*dsi_disable_pads)(int dsi_id, unsigned lane_mask);
 	int (*set_min_bus_tput)(struct device *dev, unsigned long r);
+	enum omapdss_version version;
 };
 
 /* Init with the board info */
-- 
1.7.9.5


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

* [PATCH 2/6] OMAPDSS: use omapdss_version in dss_features.c
  2012-09-28 10:35 [PATCH 0/6] OMAPDSS: remove cpu_is_* calls Tomi Valkeinen
  2012-09-28 10:35 ` [PATCH 1/6] OMAPDSS: add omapdss_version Tomi Valkeinen
@ 2012-09-28 10:35 ` Tomi Valkeinen
  2012-09-28 10:35 ` [PATCH 3/6] OMAPDSS: DISPC: use omapdss_version Tomi Valkeinen
                   ` (4 subsequent siblings)
  6 siblings, 0 replies; 11+ messages in thread
From: Tomi Valkeinen @ 2012-09-28 10:35 UTC (permalink / raw)
  To: linux-omap, linux-fbdev
  Cc: Archit Taneja, Chandrabhanu Mahapatra, Raphaël Assénat,
	Tony Lindgren, Tomi Valkeinen

Pass the omapdss_version to dss_features.c and use it to select the
proper dss features.

Signed-off-by: Tomi Valkeinen <tomi.valkeinen@ti.com>
---
 drivers/video/omap2/dss/core.c         |    2 +-
 drivers/video/omap2/dss/dss_features.c |   49 +++++++++++++++++++++-----------
 drivers/video/omap2/dss/dss_features.h |    2 +-
 3 files changed, 34 insertions(+), 19 deletions(-)

diff --git a/drivers/video/omap2/dss/core.c b/drivers/video/omap2/dss/core.c
index b2af72d..d94ef9e 100644
--- a/drivers/video/omap2/dss/core.c
+++ b/drivers/video/omap2/dss/core.c
@@ -237,7 +237,7 @@ static int __init omap_dss_probe(struct platform_device *pdev)
 
 	core.pdev = pdev;
 
-	dss_features_init();
+	dss_features_init(pdata->version);
 
 	dss_apply_init();
 
diff --git a/drivers/video/omap2/dss/dss_features.c b/drivers/video/omap2/dss/dss_features.c
index acbc1e1..5936ba7 100644
--- a/drivers/video/omap2/dss/dss_features.c
+++ b/drivers/video/omap2/dss/dss_features.c
@@ -929,29 +929,44 @@ bool dss_feat_rotation_type_supported(enum omap_dss_rotation_type rot_type)
 	return omap_current_dss_features->supported_rotation_types & rot_type;
 }
 
-void dss_features_init(void)
+void dss_features_init(enum omapdss_version version)
 {
-	if (cpu_is_omap24xx())
+	switch (version) {
+	case OMAPDSS_VER_OMAP24xx:
 		omap_current_dss_features = &omap2_dss_features;
-	else if (cpu_is_omap3630())
+		break;
+
+	case OMAPDSS_VER_OMAP34xx_ES1:
+	case OMAPDSS_VER_OMAP34xx_ES3:
+		omap_current_dss_features = &omap3430_dss_features;
+		break;
+
+	case OMAPDSS_VER_OMAP3630:
 		omap_current_dss_features = &omap3630_dss_features;
-	else if (cpu_is_omap34xx()) {
-		if (soc_is_am35xx()) {
-			omap_current_dss_features = &am35xx_dss_features;
-		} else {
-			omap_current_dss_features = &omap3430_dss_features;
-		}
-	}
-	else if (omap_rev() = OMAP4430_REV_ES1_0)
+		break;
+
+	case OMAPDSS_VER_OMAP4430_ES1:
 		omap_current_dss_features = &omap4430_es1_0_dss_features;
-	else if (omap_rev() = OMAP4430_REV_ES2_0 ||
-		omap_rev() = OMAP4430_REV_ES2_1 ||
-		omap_rev() = OMAP4430_REV_ES2_2)
+		break;
+
+	case OMAPDSS_VER_OMAP4430_ES2:
 		omap_current_dss_features = &omap4430_es2_0_1_2_dss_features;
-	else if (cpu_is_omap44xx())
+		break;
+
+	case OMAPDSS_VER_OMAP4:
 		omap_current_dss_features = &omap4_dss_features;
-	else if (soc_is_omap54xx())
+		break;
+
+	case OMAPDSS_VER_OMAP5:
 		omap_current_dss_features = &omap5_dss_features;
-	else
+		break;
+
+	case OMAPDSS_VER_AM35xx:
+		omap_current_dss_features = &am35xx_dss_features;
+		break;
+
+	default:
 		DSSWARN("Unsupported OMAP version");
+		break;
+	}
 }
diff --git a/drivers/video/omap2/dss/dss_features.h b/drivers/video/omap2/dss/dss_features.h
index 9218113..14a412e 100644
--- a/drivers/video/omap2/dss/dss_features.h
+++ b/drivers/video/omap2/dss/dss_features.h
@@ -123,7 +123,7 @@ bool dss_feat_rotation_type_supported(enum omap_dss_rotation_type rot_type);
 
 bool dss_has_feature(enum dss_feat_id id);
 void dss_feat_get_reg_field(enum dss_feat_reg_field id, u8 *start, u8 *end);
-void dss_features_init(void);
+void dss_features_init(enum omapdss_version version);
 #if defined(CONFIG_OMAP4_DSS_HDMI)
 void dss_init_hdmi_ip_ops(struct hdmi_ip_data *ip_data);
 #endif
-- 
1.7.9.5


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

* [PATCH 3/6] OMAPDSS: DISPC: use omapdss_version
  2012-09-28 10:35 [PATCH 0/6] OMAPDSS: remove cpu_is_* calls Tomi Valkeinen
  2012-09-28 10:35 ` [PATCH 1/6] OMAPDSS: add omapdss_version Tomi Valkeinen
  2012-09-28 10:35 ` [PATCH 2/6] OMAPDSS: use omapdss_version in dss_features.c Tomi Valkeinen
@ 2012-09-28 10:35 ` Tomi Valkeinen
  2012-09-28 10:35 ` [PATCH 4/6] OMAPDSS: DSS: " Tomi Valkeinen
                   ` (3 subsequent siblings)
  6 siblings, 0 replies; 11+ messages in thread
From: Tomi Valkeinen @ 2012-09-28 10:35 UTC (permalink / raw)
  To: linux-omap, linux-fbdev
  Cc: Archit Taneja, Chandrabhanu Mahapatra, Raphaël Assénat,
	Tony Lindgren, Tomi Valkeinen

Use omapdss_version in dispc.c to select the proper dispc features.

Signed-off-by: Tomi Valkeinen <tomi.valkeinen@ti.com>
---
 drivers/video/omap2/dss/dispc.c |   41 ++++++++++++++++++++++++++-------------
 1 file changed, 28 insertions(+), 13 deletions(-)

diff --git a/drivers/video/omap2/dss/dispc.c b/drivers/video/omap2/dss/dispc.c
index a173a94..a5ab354 100644
--- a/drivers/video/omap2/dss/dispc.c
+++ b/drivers/video/omap2/dss/dispc.c
@@ -4040,29 +4040,44 @@ static const struct dispc_features omap44xx_dispc_feats __initconst = {
 	.gfx_fifo_workaround	=	true,
 };
 
-static int __init dispc_init_features(struct device *dev)
+static int __init dispc_init_features(struct platform_device *pdev)
 {
+	struct omap_dss_board_info *pdata = pdev->dev.platform_data;
 	const struct dispc_features *src;
 	struct dispc_features *dst;
 
-	dst = devm_kzalloc(dev, sizeof(*dst), GFP_KERNEL);
+	dst = devm_kzalloc(&pdev->dev, sizeof(*dst), GFP_KERNEL);
 	if (!dst) {
-		dev_err(dev, "Failed to allocate DISPC Features\n");
+		dev_err(&pdev->dev, "Failed to allocate DISPC Features\n");
 		return -ENOMEM;
 	}
 
-	if (cpu_is_omap24xx()) {
+	switch (pdata->version) {
+	case OMAPDSS_VER_OMAP24xx:
 		src = &omap24xx_dispc_feats;
-	} else if (cpu_is_omap34xx()) {
-		if (omap_rev() < OMAP3430_REV_ES3_0)
-			src = &omap34xx_rev1_0_dispc_feats;
-		else
-			src = &omap34xx_rev3_0_dispc_feats;
-	} else if (cpu_is_omap44xx()) {
+		break;
+
+	case OMAPDSS_VER_OMAP34xx_ES1:
+		src = &omap34xx_rev1_0_dispc_feats;
+		break;
+
+	case OMAPDSS_VER_OMAP34xx_ES3:
+	case OMAPDSS_VER_OMAP3630:
+	case OMAPDSS_VER_AM35xx:
+		src = &omap34xx_rev3_0_dispc_feats;
+		break;
+
+	case OMAPDSS_VER_OMAP4430_ES1:
+	case OMAPDSS_VER_OMAP4430_ES2:
+	case OMAPDSS_VER_OMAP4:
 		src = &omap44xx_dispc_feats;
-	} else if (soc_is_omap54xx()) {
+		break;
+
+	case OMAPDSS_VER_OMAP5:
 		src = &omap44xx_dispc_feats;
-	} else {
+		break;
+
+	default:
 		return -ENODEV;
 	}
 
@@ -4082,7 +4097,7 @@ static int __init omap_dispchw_probe(struct platform_device *pdev)
 
 	dispc.pdev = pdev;
 
-	r = dispc_init_features(&dispc.pdev->dev);
+	r = dispc_init_features(dispc.pdev);
 	if (r)
 		return r;
 
-- 
1.7.9.5


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

* [PATCH 4/6] OMAPDSS: DSS: use omapdss_version
  2012-09-28 10:35 [PATCH 0/6] OMAPDSS: remove cpu_is_* calls Tomi Valkeinen
                   ` (2 preceding siblings ...)
  2012-09-28 10:35 ` [PATCH 3/6] OMAPDSS: DISPC: use omapdss_version Tomi Valkeinen
@ 2012-09-28 10:35 ` Tomi Valkeinen
  2012-09-28 10:35 ` [PATCH 5/6] OMAPDSS: HDMI: " Tomi Valkeinen
                   ` (2 subsequent siblings)
  6 siblings, 0 replies; 11+ messages in thread
From: Tomi Valkeinen @ 2012-09-28 10:35 UTC (permalink / raw)
  To: linux-omap, linux-fbdev
  Cc: Archit Taneja, Chandrabhanu Mahapatra, Raphaël Assénat,
	Tony Lindgren, Tomi Valkeinen

Use omapdss_version in dss.c to select the proper dss features.

Signed-off-by: Tomi Valkeinen <tomi.valkeinen@ti.com>
---
 drivers/video/omap2/dss/dss.c |   37 +++++++++++++++++++++++++++----------
 1 file changed, 27 insertions(+), 10 deletions(-)

diff --git a/drivers/video/omap2/dss/dss.c b/drivers/video/omap2/dss/dss.c
index 2ab1c3e..2e74eef 100644
--- a/drivers/video/omap2/dss/dss.c
+++ b/drivers/video/omap2/dss/dss.c
@@ -792,29 +792,46 @@ static const struct dss_features omap54xx_dss_feats __initconst = {
 	.dpi_select_source	=	&dss_dpi_select_source_omap5,
 };
 
-static int __init dss_init_features(struct device *dev)
+static int __init dss_init_features(struct platform_device *pdev)
 {
+	struct omap_dss_board_info *pdata = pdev->dev.platform_data;
 	const struct dss_features *src;
 	struct dss_features *dst;
 
-	dst = devm_kzalloc(dev, sizeof(*dst), GFP_KERNEL);
+	dst = devm_kzalloc(&pdev->dev, sizeof(*dst), GFP_KERNEL);
 	if (!dst) {
-		dev_err(dev, "Failed to allocate local DSS Features\n");
+		dev_err(&pdev->dev, "Failed to allocate local DSS Features\n");
 		return -ENOMEM;
 	}
 
-	if (cpu_is_omap24xx())
+	switch (pdata->version) {
+	case OMAPDSS_VER_OMAP24xx:
 		src = &omap24xx_dss_feats;
-	else if (cpu_is_omap34xx())
+		break;
+
+	case OMAPDSS_VER_OMAP34xx_ES1:
+	case OMAPDSS_VER_OMAP34xx_ES3:
+	case OMAPDSS_VER_AM35xx:
 		src = &omap34xx_dss_feats;
-	else if (cpu_is_omap3630())
+		break;
+
+	case OMAPDSS_VER_OMAP3630:
 		src = &omap3630_dss_feats;
-	else if (cpu_is_omap44xx())
+		break;
+
+	case OMAPDSS_VER_OMAP4430_ES1:
+	case OMAPDSS_VER_OMAP4430_ES2:
+	case OMAPDSS_VER_OMAP4:
 		src = &omap44xx_dss_feats;
-	else if (soc_is_omap54xx())
+		break;
+
+	case OMAPDSS_VER_OMAP5:
 		src = &omap54xx_dss_feats;
-	else
+		break;
+
+	default:
 		return -ENODEV;
+	}
 
 	memcpy(dst, src, sizeof(*dst));
 	dss.feat = dst;
@@ -831,7 +848,7 @@ static int __init omap_dsshw_probe(struct platform_device *pdev)
 
 	dss.pdev = pdev;
 
-	r = dss_init_features(&dss.pdev->dev);
+	r = dss_init_features(dss.pdev);
 	if (r)
 		return r;
 
-- 
1.7.9.5


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

* [PATCH 5/6] OMAPDSS: HDMI: use omapdss_version
  2012-09-28 10:35 [PATCH 0/6] OMAPDSS: remove cpu_is_* calls Tomi Valkeinen
                   ` (3 preceding siblings ...)
  2012-09-28 10:35 ` [PATCH 4/6] OMAPDSS: DSS: " Tomi Valkeinen
@ 2012-09-28 10:35 ` Tomi Valkeinen
  2012-09-28 10:35 ` [PATCH 6/6] OMAPDSS: remove <plat/cpu.h> includes Tomi Valkeinen
  2012-10-04  1:33 ` [PATCH 0/6] OMAPDSS: remove cpu_is_* calls Jingoo Han
  6 siblings, 0 replies; 11+ messages in thread
From: Tomi Valkeinen @ 2012-09-28 10:35 UTC (permalink / raw)
  To: linux-omap, linux-fbdev
  Cc: Archit Taneja, Chandrabhanu Mahapatra, Raphaël Assénat,
	Tony Lindgren, Tomi Valkeinen

Use omapdss_version in hdmi.c to select the proper hdmi features.

Signed-off-by: Tomi Valkeinen <tomi.valkeinen@ti.com>
---
 drivers/video/omap2/dss/dss_features.c |   14 ++++++++++++--
 drivers/video/omap2/dss/dss_features.h |    3 ++-
 drivers/video/omap2/dss/hdmi.c         |    3 ++-
 3 files changed, 16 insertions(+), 4 deletions(-)

diff --git a/drivers/video/omap2/dss/dss_features.c b/drivers/video/omap2/dss/dss_features.c
index 5936ba7..e2c2e2b 100644
--- a/drivers/video/omap2/dss/dss_features.c
+++ b/drivers/video/omap2/dss/dss_features.c
@@ -825,10 +825,20 @@ static const struct ti_hdmi_ip_ops omap4_hdmi_functions = {
 
 };
 
-void dss_init_hdmi_ip_ops(struct hdmi_ip_data *ip_data)
+void dss_init_hdmi_ip_ops(struct hdmi_ip_data *ip_data,
+		enum omapdss_version version)
 {
-	if (cpu_is_omap44xx())
+	switch (version) {
+	case OMAPDSS_VER_OMAP4430_ES1:
+	case OMAPDSS_VER_OMAP4430_ES2:
+	case OMAPDSS_VER_OMAP4:
 		ip_data->ops = &omap4_hdmi_functions;
+		break;
+	default:
+		ip_data->ops = NULL;
+	}
+
+	WARN_ON(ip_data->ops = NULL);
 }
 #endif
 
diff --git a/drivers/video/omap2/dss/dss_features.h b/drivers/video/omap2/dss/dss_features.h
index 14a412e..fc492ef 100644
--- a/drivers/video/omap2/dss/dss_features.h
+++ b/drivers/video/omap2/dss/dss_features.h
@@ -125,6 +125,7 @@ bool dss_has_feature(enum dss_feat_id id);
 void dss_feat_get_reg_field(enum dss_feat_reg_field id, u8 *start, u8 *end);
 void dss_features_init(enum omapdss_version version);
 #if defined(CONFIG_OMAP4_DSS_HDMI)
-void dss_init_hdmi_ip_ops(struct hdmi_ip_data *ip_data);
+void dss_init_hdmi_ip_ops(struct hdmi_ip_data *ip_data,
+		enum omapdss_version version);
 #endif
 #endif
diff --git a/drivers/video/omap2/dss/hdmi.c b/drivers/video/omap2/dss/hdmi.c
index a48a7dd..adcc906 100644
--- a/drivers/video/omap2/dss/hdmi.c
+++ b/drivers/video/omap2/dss/hdmi.c
@@ -323,6 +323,7 @@ static void hdmi_runtime_put(void)
 
 static int __init hdmi_init_display(struct omap_dss_device *dssdev)
 {
+	struct omap_dss_board_info *pdata = hdmi.pdev->dev.platform_data;
 	int r;
 
 	struct gpio gpios[] = {
@@ -333,7 +334,7 @@ static int __init hdmi_init_display(struct omap_dss_device *dssdev)
 
 	DSSDBG("init_display\n");
 
-	dss_init_hdmi_ip_ops(&hdmi.ip_data);
+	dss_init_hdmi_ip_ops(&hdmi.ip_data, pdata->version);
 
 	if (hdmi.vdda_hdmi_dac_reg = NULL) {
 		struct regulator *reg;
-- 
1.7.9.5


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

* [PATCH 6/6] OMAPDSS: remove <plat/cpu.h> includes
  2012-09-28 10:35 [PATCH 0/6] OMAPDSS: remove cpu_is_* calls Tomi Valkeinen
                   ` (4 preceding siblings ...)
  2012-09-28 10:35 ` [PATCH 5/6] OMAPDSS: HDMI: " Tomi Valkeinen
@ 2012-09-28 10:35 ` Tomi Valkeinen
  2012-10-04  1:33 ` [PATCH 0/6] OMAPDSS: remove cpu_is_* calls Jingoo Han
  6 siblings, 0 replies; 11+ messages in thread
From: Tomi Valkeinen @ 2012-09-28 10:35 UTC (permalink / raw)
  To: linux-omap, linux-fbdev
  Cc: Archit Taneja, Chandrabhanu Mahapatra, Raphaël Assénat,
	Tony Lindgren, Tomi Valkeinen

cpu_is_* calls are no longer used in omapdss, so the includes for
<plat/cpu.h> can be removed.

Signed-off-by: Tomi Valkeinen <tomi.valkeinen@ti.com>
---
 drivers/video/omap2/dss/dss.c          |    2 --
 drivers/video/omap2/dss/dss_features.c |    1 -
 2 files changed, 3 deletions(-)

diff --git a/drivers/video/omap2/dss/dss.c b/drivers/video/omap2/dss/dss.c
index 2e74eef..363852a 100644
--- a/drivers/video/omap2/dss/dss.c
+++ b/drivers/video/omap2/dss/dss.c
@@ -35,8 +35,6 @@
 
 #include <video/omapdss.h>
 
-#include <plat/cpu.h>
-
 #include "dss.h"
 #include "dss_features.h"
 
diff --git a/drivers/video/omap2/dss/dss_features.c b/drivers/video/omap2/dss/dss_features.c
index e2c2e2b..3e8287c 100644
--- a/drivers/video/omap2/dss/dss_features.c
+++ b/drivers/video/omap2/dss/dss_features.c
@@ -23,7 +23,6 @@
 #include <linux/slab.h>
 
 #include <video/omapdss.h>
-#include <plat/cpu.h>
 
 #include "dss.h"
 #include "dss_features.h"
-- 
1.7.9.5


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

* Re: [PATCH 1/6] OMAPDSS: add omapdss_version
  2012-09-28 10:35 ` [PATCH 1/6] OMAPDSS: add omapdss_version Tomi Valkeinen
@ 2012-09-28 10:44   ` Tomi Valkeinen
  2012-09-28 11:12   ` Archit Taneja
  1 sibling, 0 replies; 11+ messages in thread
From: Tomi Valkeinen @ 2012-09-28 10:44 UTC (permalink / raw)
  To: linux-omap
  Cc: linux-fbdev, Archit Taneja, Chandrabhanu Mahapatra,
	Raphaël Assénat, Tony Lindgren

[-- Attachment #1: Type: text/plain, Size: 2102 bytes --]

On Fri, 2012-09-28 at 13:35 +0300, Tomi Valkeinen wrote:
> Add new enum, omapdss_version, that is used to tell which DSS hardware
> version the SoC has. This enum is initialized during platform init, and
> passed in the platform data to omapdss driver.
> 
> Note that the versions are not "continuous", that is, you cannot check
> if the version is less or greater than something, but you need to check
> for exact version match. In other words, this is invalid:
> 
> /* test if DSS is 3630 or earlier */
> if (ver <= OMAPDSS_VER_OMAP3630)
> 	...
> 
> Signed-off-by: Tomi Valkeinen <tomi.valkeinen@ti.com>
> ---
>  arch/arm/mach-omap2/display.c |   38 ++++++++++++++++++++++++++++++++++++++
>  include/video/omapdss.h       |   14 ++++++++++++++
>  2 files changed, 52 insertions(+)
> 
> diff --git a/arch/arm/mach-omap2/display.c b/arch/arm/mach-omap2/display.c
> index ee40739..33555da 100644
> --- a/arch/arm/mach-omap2/display.c
> +++ b/arch/arm/mach-omap2/display.c
> @@ -284,6 +284,35 @@ err:
>  	return ERR_PTR(r);
>  }
>  
> +static enum omapdss_version omap_display_get_version(void)
> +{
> +	if (cpu_is_omap24xx())
> +		return OMAPDSS_VER_OMAP24xx;
> +	else if (cpu_is_omap3630())
> +		return OMAPDSS_VER_OMAP3630;
> +	else if (cpu_is_omap34xx()) {
> +		if (soc_is_am35xx()) {
> +			return OMAPDSS_VER_AM35xx;
> +		} else {
> +			if (omap_rev() < OMAP3430_REV_ES3_0)
> +				return OMAPDSS_VER_OMAP34xx_ES1;
> +			else
> +				return OMAPDSS_VER_OMAP34xx_ES3;
> +		}
> +	} else if (omap_rev() == OMAP4430_REV_ES1_0)
> +		return OMAPDSS_VER_OMAP4430_ES1;
> +	else if (omap_rev() == OMAP4430_REV_ES2_0 ||
> +			omap_rev() == OMAP4430_REV_ES2_1 ||
> +			omap_rev() == OMAP4430_REV_ES2_2)
> +		return OMAPDSS_VER_OMAP4430_ES2;
> +	else if (cpu_is_omap44xx())
> +		return OMAPDSS_VER_OMAP4;
> +	else if (soc_is_omap54xx())
> +		return OMAPDSS_VER_OMAP5;
> +	else
> +		return OMAPDSS_VER_UNKNOWN

Sigh. I made a late minor change, and of course I broke the compilation
and didn't check it. So there's a ; missing in the above line.

 Tomi


[-- Attachment #2: This is a digitally signed message part --]
[-- Type: application/pgp-signature, Size: 836 bytes --]

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

* Re: [PATCH 1/6] OMAPDSS: add omapdss_version
  2012-09-28 11:12   ` Archit Taneja
@ 2012-09-28 11:07     ` Tomi Valkeinen
  0 siblings, 0 replies; 11+ messages in thread
From: Tomi Valkeinen @ 2012-09-28 11:07 UTC (permalink / raw)
  To: Archit Taneja
  Cc: linux-omap, linux-fbdev, Chandrabhanu Mahapatra,
	Raphaël Assénat, Tony Lindgren

[-- Attachment #1: Type: text/plain, Size: 1318 bytes --]

On Fri, 2012-09-28 at 16:30 +0530, Archit Taneja wrote:
> On Friday 28 September 2012 04:05 PM, Tomi Valkeinen wrote:
> > Add new enum, omapdss_version, that is used to tell which DSS hardware
> > version the SoC has. This enum is initialized during platform init, and
> > passed in the platform data to omapdss driver.
> >
> > Note that the versions are not "continuous", that is, you cannot check
> > if the version is less or greater than something, but you need to check
> > for exact version match. In other words, this is invalid:
> >
> > /* test if DSS is 3630 or earlier */
> > if (ver <= OMAPDSS_VER_OMAP3630)
> > 	...
> >
> > Signed-off-by: Tomi Valkeinen <tomi.valkeinen@ti.com>
> > ---
> >   arch/arm/mach-omap2/display.c |   38 ++++++++++++++++++++++++++++++++++++++
> >   include/video/omapdss.h       |   14 ++++++++++++++
> >   2 files changed, 52 insertions(+)
> >
> > diff --git a/arch/arm/mach-omap2/display.c b/arch/arm/mach-omap2/display.c
> > index ee40739..33555da 100644
> > --- a/arch/arm/mach-omap2/display.c
> > +++ b/arch/arm/mach-omap2/display.c
> > @@ -284,6 +284,35 @@ err:
> >   	return ERR_PTR(r);
> >   }
> >
> > +static enum omapdss_version omap_display_get_version(void)
> 
> We could add a __init for this function?

Good point, thanks.

 Tomi


[-- Attachment #2: This is a digitally signed message part --]
[-- Type: application/pgp-signature, Size: 836 bytes --]

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

* Re: [PATCH 1/6] OMAPDSS: add omapdss_version
  2012-09-28 10:35 ` [PATCH 1/6] OMAPDSS: add omapdss_version Tomi Valkeinen
  2012-09-28 10:44   ` Tomi Valkeinen
@ 2012-09-28 11:12   ` Archit Taneja
  2012-09-28 11:07     ` Tomi Valkeinen
  1 sibling, 1 reply; 11+ messages in thread
From: Archit Taneja @ 2012-09-28 11:12 UTC (permalink / raw)
  To: Tomi Valkeinen
  Cc: linux-omap, linux-fbdev, Chandrabhanu Mahapatra,
	Raphaël Assénat, Tony Lindgren

On Friday 28 September 2012 04:05 PM, Tomi Valkeinen wrote:
> Add new enum, omapdss_version, that is used to tell which DSS hardware
> version the SoC has. This enum is initialized during platform init, and
> passed in the platform data to omapdss driver.
>
> Note that the versions are not "continuous", that is, you cannot check
> if the version is less or greater than something, but you need to check
> for exact version match. In other words, this is invalid:
>
> /* test if DSS is 3630 or earlier */
> if (ver <= OMAPDSS_VER_OMAP3630)
> 	...
>
> Signed-off-by: Tomi Valkeinen <tomi.valkeinen@ti.com>
> ---
>   arch/arm/mach-omap2/display.c |   38 ++++++++++++++++++++++++++++++++++++++
>   include/video/omapdss.h       |   14 ++++++++++++++
>   2 files changed, 52 insertions(+)
>
> diff --git a/arch/arm/mach-omap2/display.c b/arch/arm/mach-omap2/display.c
> index ee40739..33555da 100644
> --- a/arch/arm/mach-omap2/display.c
> +++ b/arch/arm/mach-omap2/display.c
> @@ -284,6 +284,35 @@ err:
>   	return ERR_PTR(r);
>   }
>
> +static enum omapdss_version omap_display_get_version(void)

We could add a __init for this function?

Archit


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

* Re: [PATCH 0/6] OMAPDSS: remove cpu_is_* calls
  2012-09-28 10:35 [PATCH 0/6] OMAPDSS: remove cpu_is_* calls Tomi Valkeinen
                   ` (5 preceding siblings ...)
  2012-09-28 10:35 ` [PATCH 6/6] OMAPDSS: remove <plat/cpu.h> includes Tomi Valkeinen
@ 2012-10-04  1:33 ` Jingoo Han
  6 siblings, 0 replies; 11+ messages in thread
From: Jingoo Han @ 2012-10-04  1:33 UTC (permalink / raw)
  To: 'Tomi Valkeinen'
  Cc: linux-omap, linux-fbdev, 'Archit Taneja',
	'Chandrabhanu Mahapatra',
	'Raphaël Assénat', 'Tony Lindgren',
	'Jingoo Han'

On Friday, September 28, 2012 7:35 PM Tomi Valkeinen wrote
> 
> Hi,
> 
> This series adds an omapdss_version enum that is passed via platform data to
> omapdss driver. This version identifier is then used instead of cpu_is_*()
> calls.

Hi Tomi,

As you mentioned, cpu_is_*() is not preferable in driver.
Actually, I thought so, when I saw the OMAPDSS driver a few months ago.
Anyway, it looks good. :)

Best regards,
Jingoo Han

> 
> After these, omapdss no longer contains any plat/ or mach/ includes. omapfb,
> vrfb and vram still do, though.
> 
>  Tomi
> 
> Tomi Valkeinen (6):
>   OMAPDSS: add omapdss_version
>   OMAPDSS: use omapdss_version in dss_features.c
>   OMAPDSS: DISPC: use omapdss_version
>   OMAPDSS: DSS: use omapdss_version
>   OMAPDSS: HDMI: use omapdss_version
>   OMAPDSS: remove <plat/cpu.h> includes
> 
>  arch/arm/mach-omap2/display.c          |   38 +++++++++++++++++++
>  drivers/video/omap2/dss/core.c         |    2 +-
>  drivers/video/omap2/dss/dispc.c        |   41 +++++++++++++-------
>  drivers/video/omap2/dss/dss.c          |   39 +++++++++++++------
>  drivers/video/omap2/dss/dss_features.c |   64 ++++++++++++++++++++++----------
>  drivers/video/omap2/dss/dss_features.h |    5 ++-
>  drivers/video/omap2/dss/hdmi.c         |    3 +-
>  include/video/omapdss.h                |   14 +++++++
>  8 files changed, 157 insertions(+), 49 deletions(-)
> 
> --
> 1.7.9.5
> 
> --
> To unsubscribe from this list: send the line "unsubscribe linux-fbdev" 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] 11+ messages in thread

end of thread, other threads:[~2012-10-04  1:33 UTC | newest]

Thread overview: 11+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2012-09-28 10:35 [PATCH 0/6] OMAPDSS: remove cpu_is_* calls Tomi Valkeinen
2012-09-28 10:35 ` [PATCH 1/6] OMAPDSS: add omapdss_version Tomi Valkeinen
2012-09-28 10:44   ` Tomi Valkeinen
2012-09-28 11:12   ` Archit Taneja
2012-09-28 11:07     ` Tomi Valkeinen
2012-09-28 10:35 ` [PATCH 2/6] OMAPDSS: use omapdss_version in dss_features.c Tomi Valkeinen
2012-09-28 10:35 ` [PATCH 3/6] OMAPDSS: DISPC: use omapdss_version Tomi Valkeinen
2012-09-28 10:35 ` [PATCH 4/6] OMAPDSS: DSS: " Tomi Valkeinen
2012-09-28 10:35 ` [PATCH 5/6] OMAPDSS: HDMI: " Tomi Valkeinen
2012-09-28 10:35 ` [PATCH 6/6] OMAPDSS: remove <plat/cpu.h> includes Tomi Valkeinen
2012-10-04  1:33 ` [PATCH 0/6] OMAPDSS: remove cpu_is_* calls Jingoo Han

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).