Skip to contentSkip to conversation

omap display changes for 3.10

GIT PULL In review Tomi Valkeinen 2 participants 8 messages Apr 15, 2013 – Apr 22, 2013 Framebuffer layer

lore
Share & tools
lore
#0 lore raw

Hi Dave,

As agreed, here's the pull request for omap display.

One thing to note is that the panel platform data cleanups require changes to the board files, which go through linux-omap tree. Merging only either the tag in this pull request, or the board file changes, will give a kernel that compiles and boots, but not all omap panels work properly.

Tomi

The following changes since commit 07961ac7c0ee8b546658717034fe692fd12eefa9:

Linux 3.9-rc5 (2013-03-31 15:12:43 -0700)

are available in the git repository at:

git://gitorious.org/linux-omap-dss2/linux.git tags/omapdss-for-3.10

for you to fetch changes up to 3d62fe5b214fce69ae14abbdb88794a753418614:

OMAPDSS: Merge omapdss topic branches (2013-04-15 12:01:02 +0300)

----------------------------------------------------------------

Omapdss patches for 3.10 merge window

The biggest changes are:

* DSI video mode: automatic clock and timing calculation
* Lots of platform data related panel driver cleanups, to prepare for DT

----------------------------------------------------------------
Alexandru Gheorghiu (1):
drivers: video: omap2: dss: Use PTR_RET function

Archit Taneja (29):
OMAPDSS: panels: keep platform data of all panels in a single header
OMAPDSS: NEC-nl8048hl11: remove platform backlight support
OMAPDSS: Generic DPI Panel: use devm_kzalloc for allocating driver data
OMAPDSS: lb035q02: use devm_kzalloc for allocating driver data
OMAPDSS: picodlp: use devm_kzalloc for allocating driver data
OMAPDSS: panel acx565akm: remove omap_dss_device maximum backlight level usage
OMAPDSS: lb035q02: handle gpios in panel driver
OMAPDSS: lb035q02 panel: remove platform_enable/disable callbacks
OMAPDSS: generic dpi panel: remove uses of platform_enable/disable ops
OMAPDSS: sharp-ls panel: remove platform_enable/disable callbacks
OMAPDSS: acx565akm panel: handle gpios in panel driver
OMAPDSS: nec-nl8048 panel: handle gpios in panel driver
OMAPDSS: nec-nl8048 panel: remove platform_enable/disable callbacks
OMAPDSS: tpo-td043 panel: handle gpios in panel driver
OMAPDSS: tpo-td043: remove platform_enable/disable callbacks
OMAPDSS: picodlp panel: handle gpio data in panel driver
OMAPDSS: picodlp panel: remove platform_enable/disable callbacks
OMAPDSS: n8x0 panel: handle gpio data in panel driver
OMAPDSS: n8x0 panel: remove use of platform_enable/disable
OMAPDSS: VENC: remove platform_enable/disable calls
omapdss: DISPC: add max pixel clock limits for LCD and TV managers
omapdss: Features: Fix some parameter ranges
OMAPDSS: DISPC: Configure doublestride for NV12 when using 2D Tiler buffers
OMAPDSS: DISPC: Revert to older DISPC Smart Standby mechanism for OMAP5
omapdss: use devm_clk_get()
drm/omap: fix modeset_init if a panel doesn't satisfy omapdrm requirements drm/omap: Make fixed resolution panels work
drm/omap: Take a fb reference in omap_plane_update()
drm/omap: Fix and improve crtc and overlay manager correlation

Lars-Peter Clausen (1):
OMAPDSS: nec-nl8048 panel: Use dev_pm_ops

Sachin Kamat (1):
OMAPDSS: DSI: Use devm_clk_get()

Tomi Valkeinen (38):
OMAPDSS: add fields to panels' platform data
OMAPDSS: DSI: remove DSI & DISPC clk divisors from dssdev
OMAPDSS: HDMI: remove HDMI clk divisors from dssdev
OMAPDSS: DPI: remove omap_dss_device uses
OMAPDSS: DSI: remove omap_dss_device uses
OMAPDSS: Taal: remove multi-panel support
OMAPDSS: APPLY: remove dssdev from dss_mgr_wait_for_vsync
OMAPDSS: add missing export for omap_dss_get_output()
OMAPDSS: HDMI: init output earlier
OMAPDSS: add output->name
OMAPDSS: add output->dispc_channel
OMAPDSS: DSI: delay dispc initialization
OMAPDSS: DSI: fix DSI channel source initialization
OMAPDSS: Taal: remove rotate & mirror support
OMAPDSS: DPI: fix dpi_get_dsidev() for omap5
OMAPDSS: DISPC: store core clk rate
OMAPDSS: DSI: fix wrong unsigned long long use
OMAPDSS: DSI: simplify dsi configuration
OMAPDSS: DSI: get line buffer size at probe
OMAPDSS: DSI: add enum omap_dss_dsi_trans_mode
OMAPDSS: DSI remove unneeded clk source setup code
OMAPDSS: DISPC: add new clock calculation code
OMAPDSS: DSS: add new clock calculation code
OMAPDSS: DSI: add new clock calculation code
OMAPDSS: SDI: use new clock calculation code
OMAPDSS: DPI: use new clock calculation code
OMAPDSS: DSI: use new clock calculation code
OMAPDSS: remove unused old clock calculation code
OMAPDSS: remove dsi videomode from dssdev
OMAPDSS: acx565akm: remove platform backlight calls
OMAPDSS: ls037v7dw01: remove platform backlight calls
OMAPDSS: n8x0: remove platform backlight calls
OMAPDSS: generic dpi panel: handle gpios in panel driver
OMAPDSS: LS037V7DW01: handle gpios in panel driver
OMAPDSS: fix dss_fck clock rate rounding
OMAPDSS: DPI: widen the pck search when using dss fck drm/omap: add statics to a few structs
OMAPDSS: Merge omapdss topic branches

 arch/arm/mach-omap2/board-2430sdp.c                |    2 +-
 arch/arm/mach-omap2/board-3430sdp.c                |    2 +-
 arch/arm/mach-omap2/board-am3517evm.c              |    3 +-
 arch/arm/mach-omap2/board-cm-t35.c                 |    3 +-
 arch/arm/mach-omap2/board-devkit8000.c             |    3 +-
 arch/arm/mach-omap2/board-h4.c                     |    2 +-
 arch/arm/mach-omap2/board-igep0020.c               |    2 +-
 arch/arm/mach-omap2/board-ldp.c                    |    2 +-
 arch/arm/mach-omap2/board-omap3beagle.c            |    2 +-
 arch/arm/mach-omap2/board-omap3evm.c               |    2 +-
 arch/arm/mach-omap2/board-omap3stalker.c           |    3 +-
 arch/arm/mach-omap2/board-overo.c                  |    3 +-
 arch/arm/mach-omap2/dss-common.c                   |    4 +-
 drivers/gpu/drm/omapdrm/omap_connector.c           |   27 +-
 drivers/gpu/drm/omapdrm/omap_crtc.c                |   21 +-
 drivers/gpu/drm/omapdrm/omap_drv.c                 |  165 ++-
 drivers/gpu/drm/omapdrm/omap_drv.h                 |   38 +-
 drivers/gpu/drm/omapdrm/omap_encoder.c             |   24 +-
 drivers/gpu/drm/omapdrm/omap_gem_dmabuf.c          |    2 +-
 drivers/gpu/drm/omapdrm/omap_irq.c                 |   17 +-
 drivers/gpu/drm/omapdrm/omap_plane.c               |    6 +
 drivers/video/omap2/displays/panel-acx565akm.c     |   59 +-
 drivers/video/omap2/displays/panel-generic-dpi.c   |   39 +-
 .../omap2/displays/panel-lgphilips-lb035q02.c      |   58 +-
 drivers/video/omap2/displays/panel-n8x0.c          |   95 +-
 .../omap2/displays/panel-nec-nl8048hl11-01b.c      |  135 +--
 drivers/video/omap2/displays/panel-picodlp.c       |   49 +-
 .../video/omap2/displays/panel-sharp-ls037v7dw01.c |  126 +-
 drivers/video/omap2/displays/panel-taal.c          |  300 +----
 drivers/video/omap2/displays/panel-tfp410.c        |    2 +-
 .../video/omap2/displays/panel-tpo-td043mtea1.c    |   45 +-
 drivers/video/omap2/dss/apply.c                    |   15 +-
 drivers/video/omap2/dss/core.c                     |    5 +-
 drivers/video/omap2/dss/dispc.c                    |  176 ++-
 drivers/video/omap2/dss/dispc.h                    |    1 +
 drivers/video/omap2/dss/dpi.c                      |  316 +++--
 drivers/video/omap2/dss/dsi.c                      | 1221 ++++++++++++--------
 drivers/video/omap2/dss/dss.c                      |  181 +--
 drivers/video/omap2/dss/dss.h                      |   36 +-
 drivers/video/omap2/dss/dss_features.c             |    8 +-
 drivers/video/omap2/dss/hdmi.c                     |   35 +-
 drivers/video/omap2/dss/output.c                   |    1 +
 drivers/video/omap2/dss/rfbi.c                     |    2 +
 drivers/video/omap2/dss/sdi.c                      |   70 +-
 drivers/video/omap2/dss/venc.c                     |   23 +-
 drivers/video/omap2/omapfb/omapfb-main.c           |    2 +-
 include/video/omap-panel-data.h                    |  150 +++
 include/video/omap-panel-generic-dpi.h             |   37 -
 include/video/omap-panel-n8x0.h                    |   15 -
 include/video/omap-panel-nokia-dsi.h               |   32 -
 include/video/omap-panel-picodlp.h                 |   23 -
 include/video/omap-panel-tfp410.h                  |   35 -
 include/video/omapdss.h                            |   86 +-
 53 files changed, 1972 insertions(+), 1739 deletions(-)
 create mode 100644 include/video/omap-panel-data.h
 delete mode 100644 include/video/omap-panel-generic-dpi.h
 delete mode 100644 include/video/omap-panel-n8x0.h
 delete mode 100644 include/video/omap-panel-nokia-dsi.h
 delete mode 100644 include/video/omap-panel-picodlp.h
 delete mode 100644 include/video/omap-panel-tfp410.h
#1 lore raw

PATCH 1/1 OMAPDSS: DPI: add dependency to DSI

Hi Tomi

Quoted 19 lines · Tomi Valkeinen

Tomi Valkeinen (38):
OMAPDSS: add fields to panels' platform data
OMAPDSS: DSI: remove DSI & DISPC clk divisors from dssdev
OMAPDSS: HDMI: remove HDMI clk divisors from dssdev
OMAPDSS: DPI: remove omap_dss_device uses
OMAPDSS: DSI: remove omap_dss_device uses
OMAPDSS: Taal: remove multi-panel support
OMAPDSS: APPLY: remove dssdev from dss_mgr_wait_for_vsync
OMAPDSS: add missing export for omap_dss_get_output()
OMAPDSS: HDMI: init output earlier
OMAPDSS: add output->name
OMAPDSS: add output->dispc_channel
OMAPDSS: DSI: delay dispc initialization
OMAPDSS: DSI: fix DSI channel source initialization
OMAPDSS: Taal: remove rotate & mirror support
OMAPDSS: DPI: fix dpi_get_dsidev() for omap5
OMAPDSS: DISPC: store core clk rate
OMAPDSS: DSI: fix wrong unsigned long long use
OMAPDSS: DSI: simplify dsi configuration

Quoted 8 lines

OMAPDSS: DSI: get line buffer size at probe
OMAPDSS: DSI: add enum omap_dss_dsi_trans_mode
OMAPDSS: DSI remove unneeded clk source setup code
OMAPDSS: DISPC: add new clock calculation code
OMAPDSS: DSS: add new clock calculation code
OMAPDSS: DSI: add new clock calculation code
OMAPDSS: SDI: use new clock calculation code
OMAPDSS: DPI: use new clock calculation code

With linux-next this patch breaks compiling here because DPI now depends on DSI - but my omap3 board here doesn't use DSI at all:

drivers/video/omap2/dss/dpi.c: In function ‘dpi_calc_pll_cb’:
drivers/video/omap2/dss/dpi.c:181: error: implicit declaration of function ‘dsi_hsdiv_calc’ drivers/video/omap2/dss/dpi.c: In function ‘dpi_dsi_clk_calc’:
drivers/video/omap2/dss/dpi.c:201: error: implicit declaration of function ‘dsi_get_pll_clkin’ drivers/video/omap2/dss/dpi.c:212: error: implicit declaration of function ‘dsi_pll_calc’

Enabling OMAP2_DSS_DSI fixes this. This is my proposed patch. You may be want to merge it?

From: Christoph Fritz <[email protected]>
Date: Thu, 18 Apr 2013 10:26:54 +0200
Subject: [PATCH] OMAPDSS: DPI: add dependency to DSI

A dependency from DPI to DSI is introduced by commit 100c82623 "OMAPDSS: DPI: use new clock calculation code".
This patch adds the dependency also on Kconfig-Level.

---
 drivers/video/omap2/dss/Kconfig |    1 +
 1 file changed, 1 insertion(+)
drivers/video/omap2/dss/Kconfig +1 -0
index cb0f145..b4211c5 100644
@@ -36,6 +36,7 @@ config OMAP2_DSS_COLLECT_IRQ_STATS
 config OMAP2_DSS_DPI
 	bool "DPI support"
 	default y
+	select OMAP2_DSS_DSI
 	help
 	  DPI Interface. This is the Parallel Display Interface.
 
Signature · 8 lines
1.7.10.4



--
To unsubscribe from this list: send the line "unsubscribe linux-omap" in
the body of a message to [email protected]
More majordomo info at  http://vger.kernel.org/majordomo-info.html
#2 lore raw

Re: [PATCH] OMAPDSS: DPI: add dependency to DSI

Quoted 34 lines · Christoph Fritz

Hi Tomi

Quoted 19 lines · Tomi Valkeinen

Tomi Valkeinen (38):
OMAPDSS: add fields to panels' platform data
OMAPDSS: DSI: remove DSI & DISPC clk divisors from dssdev
OMAPDSS: HDMI: remove HDMI clk divisors from dssdev
OMAPDSS: DPI: remove omap_dss_device uses
OMAPDSS: DSI: remove omap_dss_device uses
OMAPDSS: Taal: remove multi-panel support
OMAPDSS: APPLY: remove dssdev from dss_mgr_wait_for_vsync
OMAPDSS: add missing export for omap_dss_get_output()
OMAPDSS: HDMI: init output earlier
OMAPDSS: add output->name
OMAPDSS: add output->dispc_channel
OMAPDSS: DSI: delay dispc initialization
OMAPDSS: DSI: fix DSI channel source initialization
OMAPDSS: Taal: remove rotate & mirror support
OMAPDSS: DPI: fix dpi_get_dsidev() for omap5
OMAPDSS: DISPC: store core clk rate
OMAPDSS: DSI: fix wrong unsigned long long use
OMAPDSS: DSI: simplify dsi configuration

Quoted 8 lines

OMAPDSS: DSI: get line buffer size at probe
OMAPDSS: DSI: add enum omap_dss_dsi_trans_mode
OMAPDSS: DSI remove unneeded clk source setup code
OMAPDSS: DISPC: add new clock calculation code
OMAPDSS: DSS: add new clock calculation code
OMAPDSS: DSI: add new clock calculation code
OMAPDSS: SDI: use new clock calculation code
OMAPDSS: DPI: use new clock calculation code

With linux-next this patch breaks compiling here because DPI now depends on DSI - but my omap3 board here doesn't use DSI at all:

Quoted 7 lines

drivers/video/omap2/dss/dpi.c: In function ‘dpi_calc_pll_cb’:
drivers/video/omap2/dss/dpi.c:181: error: implicit declaration of function ‘dsi_hsdiv_calc’ drivers/video/omap2/dss/dpi.c: In function ‘dpi_dsi_clk_calc’:
drivers/video/omap2/dss/dpi.c:201: error: implicit declaration of function ‘dsi_get_pll_clkin’ drivers/video/omap2/dss/dpi.c:212: error: implicit declaration of function ‘dsi_pll_calc’

Enabling OMAP2_DSS_DSI fixes this. This is my proposed patch. You may be want to merge it?

Thanks for reporting this. We shouldn't make DPI depend on DSI. We should make dummy functions for the above when DSI is not enabled so that DPI compiles. I'll make a fix.

Tomi

#3 lore raw

Re: [PATCH] OMAPDSS: DPI: add dependency to DSI

Quoted 11 lines · Tomi Valkeinen
Quoted 9 lines · Christoph Fritz

With linux-next this patch breaks compiling here because DPI now depends on DSI - but my omap3 board here doesn't use DSI at all:

drivers/video/omap2/dss/dpi.c: In function ‘dpi_calc_pll_cb’:
drivers/video/omap2/dss/dpi.c:181: error: implicit declaration of function ‘dsi_hsdiv_calc’ drivers/video/omap2/dss/dpi.c: In function ‘dpi_dsi_clk_calc’:
drivers/video/omap2/dss/dpi.c:201: error: implicit declaration of function ‘dsi_get_pll_clkin’ drivers/video/omap2/dss/dpi.c:212: error: implicit declaration of function ‘dsi_pll_calc’

Quoted 5 lines
Quoted 1 line

Enabling OMAP2_DSS_DSI fixes this. This is my proposed patch. You may be want to merge it?

Thanks for reporting this. We shouldn't make DPI depend on DSI. We should make dummy functions for the above when DSI is not enabled so that DPI compiles. I'll make a fix.

Patch below. Can you try it out? It works for me on Panda.

Tomi

From d91bf4127056c68e423109e7c9b46bd0f0b1673a Mon Sep 17 00:00:00 2001
From: Tomi Valkeinen <[email protected]>
Date: Thu, 18 Apr 2013 12:16:39 +0300
Subject: [PATCH] OMAPDSS: DPI: fix compilation if DSI not compiled in

Commit 100c826235793345efe06b3558cc9d36166b1e26 (OMAPDSS: DPI: use new clock calculation code) breaks dpi.c compilation if DSI is not enabled in the kernel configuration.

Fix compilation by adding dummy inline functions for the ones that dpi.c references. The functions will never be called, as dpi.c knows that there is no DSI device available.

---
 drivers/video/omap2/dss/dss.h |   31 +++++++++++++++++++++++++++----
 1 file changed, 27 insertions(+), 4 deletions(-)
drivers/video/omap2/dss/dss.h +27 -4
index faaf358..8475893 100644
@@ -277,6 +277,12 @@ int sdi_init_platform_driver(void) __init;
 void sdi_uninit_platform_driver(void) __exit;
 
 /* DSI */
+
+typedef bool (*dsi_pll_calc_func)(int regn, int regm, unsigned long fint,
+		unsigned long pll, void *data);
+typedef bool (*dsi_hsdiv_calc_func)(int regm_dispc, unsigned long dispc,
+		void *data);
+
 #ifdef CONFIG_OMAP2_DSS_DSI
 
 struct dentry;
@@ -295,10 +301,6 @@ u8 dsi_get_pixel_size(enum omap_dss_dsi_pixel_format fmt);
 
 unsigned long dsi_get_pll_clkin(struct platform_device *dsidev);
 
-typedef bool (*dsi_pll_calc_func)(int regn, int regm, unsigned long fint,
-		unsigned long pll, void *data);
-typedef bool (*dsi_hsdiv_calc_func)(int regm_dispc, unsigned long dispc,
-		void *data);
 bool dsi_hsdiv_calc(struct platform_device *dsidev, unsigned long pll,
 		unsigned long out_min, dsi_hsdiv_calc_func func, void *data);
 bool dsi_pll_calc(struct platform_device *dsidev, unsigned long clkin,
@@ -358,6 +360,27 @@ static inline struct platform_device *dsi_get_dsidev_from_id(int module)
 {
 	return NULL;
 }
+
+static inline unsigned long dsi_get_pll_clkin(struct platform_device *dsidev)
+{
+	return 0;
+}
+
+static inline bool dsi_hsdiv_calc(struct platform_device *dsidev,
+		unsigned long pll, unsigned long out_min,
+		dsi_hsdiv_calc_func func, void *data)
+{
+	return false;
+}
+
+static inline bool dsi_pll_calc(struct platform_device *dsidev,
+		unsigned long clkin,
+		unsigned long pll_min, unsigned long pll_max,
+		dsi_pll_calc_func func, void *data)
+{
+	return false;
+}
+
 #endif
 
 /* DPI */
Signature · 1 line
1.7.10.4
#4 lore raw

Re: [PATCH] OMAPDSS: DPI: add dependency to DSI

Quoted 12 lines · Tomi Valkeinen
Quoted 11 lines · Tomi Valkeinen
Quoted 9 lines · Christoph Fritz

With linux-next this patch breaks compiling here because DPI now depends on DSI - but my omap3 board here doesn't use DSI at all:

drivers/video/omap2/dss/dpi.c: In function ‘dpi_calc_pll_cb’:
drivers/video/omap2/dss/dpi.c:181: error: implicit declaration of function ‘dsi_hsdiv_calc’ drivers/video/omap2/dss/dpi.c: In function ‘dpi_dsi_clk_calc’:
drivers/video/omap2/dss/dpi.c:201: error: implicit declaration of function ‘dsi_get_pll_clkin’ drivers/video/omap2/dss/dpi.c:212: error: implicit declaration of function ‘dsi_pll_calc’

Quoted 7 lines
Quoted 5 lines
Quoted 1 line

Enabling OMAP2_DSS_DSI fixes this. This is my proposed patch. You may be want to merge it?

Thanks for reporting this. We shouldn't make DPI depend on DSI. We should make dummy functions for the above when DSI is not enabled so that DPI compiles. I'll make a fix.

Patch below. Can you try it out? It works for me on Panda.

Thanks, it compiles here fine too.

and while booting I'm now getting as with 3.9-rc:

[    0.409729] OMAP DSS rev 2.0
[    0.410980] omapdss DPI error: can't get VDDS_DSI regulator
[    0.410980] omapdss DPI error: device ips-056t init failed: -517

But here with linux-next (in contrast to 3.9-rc) removing all regulator dependencies from drivers/video/omap2/dss/dpi.c does not make the trick. The display stays dark :-( ...

Thanks
-- Christoph

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

#5 lore raw

Re: [PATCH] OMAPDSS: DPI: add dependency to DSI

Quoted 23 lines · Christoph Fritz
Quoted 12 lines · Tomi Valkeinen
Quoted 11 lines · Tomi Valkeinen
Quoted 9 lines · Christoph Fritz

With linux-next this patch breaks compiling here because DPI now depends on DSI - but my omap3 board here doesn't use DSI at all:

drivers/video/omap2/dss/dpi.c: In function ‘dpi_calc_pll_cb’:
drivers/video/omap2/dss/dpi.c:181: error: implicit declaration of function ‘dsi_hsdiv_calc’ drivers/video/omap2/dss/dpi.c: In function ‘dpi_dsi_clk_calc’:
drivers/video/omap2/dss/dpi.c:201: error: implicit declaration of function ‘dsi_get_pll_clkin’ drivers/video/omap2/dss/dpi.c:212: error: implicit declaration of function ‘dsi_pll_calc’

Quoted 7 lines
Quoted 5 lines
Quoted 1 line

Enabling OMAP2_DSS_DSI fixes this. This is my proposed patch. You may be want to merge it?

Thanks for reporting this. We shouldn't make DPI depend on DSI. We should make dummy functions for the above when DSI is not enabled so that DPI compiles. I'll make a fix.

Patch below. Can you try it out? It works for me on Panda.

Thanks, it compiles here fine too.

Quoted 8 lines

and while booting I'm now getting as with 3.9-rc:

[    0.409729] OMAP DSS rev 2.0
[    0.410980] omapdss DPI error: can't get VDDS_DSI regulator
[    0.410980] omapdss DPI error: device ips-056t init failed: -517

But here with linux-next (in contrast to 3.9-rc) removing all regulator dependencies from drivers/video/omap2/dss/dpi.c does not make the trick. The display stays dark :-( ...

That's with your DT hacked kernel, right? Not the official supported one.

I don't think anything changed related to regulators in omapdss.

Tomi

#6 lore raw

Re: [PATCH] OMAPDSS: DPI: add dependency to DSI

Quoted 5 lines · Tomi Valkeinen
Quoted 3 lines

But here with linux-next (in contrast to 3.9-rc) removing all regulator dependencies from drivers/video/omap2/dss/dpi.c does not make the trick. The display stays dark :-( ...

That's with your DT hacked kernel, right? Not the official supported one.

yeah - it's fixed and working right now again.

Thanks
-- Christoph

#7 lore raw

Re: [PATCH] OMAPDSS: DPI: add dependency to DSI

In reply to Tomi Valkeinen

Hi Dave,

Quoted 12 lines · Tomi Valkeinen
Quoted 11 lines · Tomi Valkeinen
Quoted 9 lines · Christoph Fritz

With linux-next this patch breaks compiling here because DPI now depends on DSI - but my omap3 board here doesn't use DSI at all:

drivers/video/omap2/dss/dpi.c: In function ‘dpi_calc_pll_cb’:
drivers/video/omap2/dss/dpi.c:181: error: implicit declaration of function ‘dsi_hsdiv_calc’ drivers/video/omap2/dss/dpi.c: In function ‘dpi_dsi_clk_calc’:
drivers/video/omap2/dss/dpi.c:201: error: implicit declaration of function ‘dsi_get_pll_clkin’ drivers/video/omap2/dss/dpi.c:212: error: implicit declaration of function ‘dsi_pll_calc’

Quoted 7 lines
Quoted 5 lines
Quoted 1 line

Enabling OMAP2_DSS_DSI fixes this. This is my proposed patch. You may be want to merge it?

Thanks for reporting this. We shouldn't make DPI depend on DSI. We should make dummy functions for the above when DSI is not enabled so that DPI compiles. I'll make a fix.

Patch below. Can you try it out? It works for me on Panda.

Dave, can you queue the patch below (also attached) to the 3.10 drm changes? It fixes a compilation issue with the omapdss pull request I sent earlier.

Tomi

Quoted 68 lines

Tomi

From d91bf4127056c68e423109e7c9b46bd0f0b1673a Mon Sep 17 00:00:00 2001
From: Tomi Valkeinen <[email protected]>
Date: Thu, 18 Apr 2013 12:16:39 +0300
Subject: [PATCH] OMAPDSS: DPI: fix compilation if DSI not compiled in

Commit 100c826235793345efe06b3558cc9d36166b1e26 (OMAPDSS: DPI: use new clock calculation code) breaks dpi.c compilation if DSI is not enabled in the kernel configuration.

Fix compilation by adding dummy inline functions for the ones that dpi.c references. The functions will never be called, as dpi.c knows that there is no DSI device available.

---
 drivers/video/omap2/dss/dss.h |   31 +++++++++++++++++++++++++++----
 1 file changed, 27 insertions(+), 4 deletions(-)
drivers/video/omap2/dss/dss.h +20 -4
index faaf358..8475893 100644
@@ -277,6 +277,12 @@ int sdi_init_platform_driver(void) __init;
 void sdi_uninit_platform_driver(void) __exit;
 
 /* DSI */
+
+typedef bool (*dsi_pll_calc_func)(int regn, int regm, unsigned long fint,
+		unsigned long pll, void *data);
+typedef bool (*dsi_hsdiv_calc_func)(int regm_dispc, unsigned long dispc,
+		void *data);
+
 #ifdef CONFIG_OMAP2_DSS_DSI
 
 struct dentry;
@@ -295,10 +301,6 @@ u8 dsi_get_pixel_size(enum omap_dss_dsi_pixel_format fmt);
 
 unsigned long dsi_get_pll_clkin(struct platform_device *dsidev);
 
-typedef bool (*dsi_pll_calc_func)(int regn, int regm, unsigned long fint,
-		unsigned long pll, void *data);
-typedef bool (*dsi_hsdiv_calc_func)(int regm_dispc, unsigned long dispc,
-		void *data);
 bool dsi_hsdiv_calc(struct platform_device *dsidev, unsigned long pll,
 		unsigned long out_min, dsi_hsdiv_calc_func func, void *data);
 bool dsi_pll_calc(struct platform_device *dsidev, unsigned long clkin,
@@ -358,6 +360,27 @@ static inline struct platform_device *dsi_get_dsidev_from_id(int module)
 {
 	return NULL;
 }
+
+static inline unsigned long dsi_get_pll_clkin(struct platform_device *dsidev)
+{
+	return 0;
+}
+
+static inline bool dsi_hsdiv_calc(struct platform_device *dsidev,
+		unsigned long pll, unsigned long out_min,
+		dsi_hsdiv_calc_func func, void *data)
+{
+	return false;
+}
+
+static inline bool dsi_pll_calc(struct platform_device *dsidev,

drivers/video/omap2/dss/dss.h static inline struct platform_device *dsi_get_dsidev_from_id(int module) · line 386

Quoted 10 lines
drivers/video/omap2/dss/dss.h +7 -0
+		unsigned long clkin,
+		unsigned long pll_min, unsigned long pll_max,
+		dsi_pll_calc_func func, void *data)
+{
+	return false;
+}
+
 #endif
 
 /* DPI */

From d91bf4127056c68e423109e7c9b46bd0f0b1673a Mon Sep 17 00:00:00 2001
From: Tomi Valkeinen <[email protected]>
Date: Thu, 18 Apr 2013 12:16:39 +0300
Subject: [PATCH] OMAPDSS: DPI: fix compilation if DSI not compiled in

Commit 100c826235793345efe06b3558cc9d36166b1e26 (OMAPDSS: DPI: use new clock calculation code) breaks dpi.c compilation if DSI is not enabled in the kernel configuration.

Fix compilation by adding dummy inline functions for the ones that dpi.c references. The functions will never be called, as dpi.c knows that there is no DSI device available.

---
 drivers/video/omap2/dss/dss.h |   31 +++++++++++++++++++++++++++----
 1 file changed, 27 insertions(+), 4 deletions(-)
drivers/video/omap2/dss/dss.h +27 -4
index faaf358..8475893 100644
@@ -277,6 +277,12 @@ int sdi_init_platform_driver(void) __init;
 void sdi_uninit_platform_driver(void) __exit;
 
 /* DSI */
+
+typedef bool (*dsi_pll_calc_func)(int regn, int regm, unsigned long fint,
+		unsigned long pll, void *data);
+typedef bool (*dsi_hsdiv_calc_func)(int regm_dispc, unsigned long dispc,
+		void *data);
+
 #ifdef CONFIG_OMAP2_DSS_DSI
 
 struct dentry;
@@ -295,10 +301,6 @@ u8 dsi_get_pixel_size(enum omap_dss_dsi_pixel_format fmt);
 
 unsigned long dsi_get_pll_clkin(struct platform_device *dsidev);
 
-typedef bool (*dsi_pll_calc_func)(int regn, int regm, unsigned long fint,
-		unsigned long pll, void *data);
-typedef bool (*dsi_hsdiv_calc_func)(int regm_dispc, unsigned long dispc,
-		void *data);
 bool dsi_hsdiv_calc(struct platform_device *dsidev, unsigned long pll,
 		unsigned long out_min, dsi_hsdiv_calc_func func, void *data);
 bool dsi_pll_calc(struct platform_device *dsidev, unsigned long clkin,
@@ -358,6 +360,27 @@ static inline struct platform_device *dsi_get_dsidev_from_id(int module)
 {
 	return NULL;
 }
+
+static inline unsigned long dsi_get_pll_clkin(struct platform_device *dsidev)
+{
+	return 0;
+}
+
+static inline bool dsi_hsdiv_calc(struct platform_device *dsidev,
+		unsigned long pll, unsigned long out_min,
+		dsi_hsdiv_calc_func func, void *data)
+{
+	return false;
+}
+
+static inline bool dsi_pll_calc(struct platform_device *dsidev,
+		unsigned long clkin,
+		unsigned long pll_min, unsigned long pll_max,
+		dsi_pll_calc_func func, void *data)
+{
+	return false;
+}
+
 #endif
 
 /* DPI */
Signature · 1 line
1.7.10.4