The first patch in this series is a follow up on the previously posted series
'OMAPDSS: APPLY: Treat overlay manager timings as shadow registers'. It is
required for HDMI and DPI interfaces to work properly, it ensures manager
timings are applied in the set_timing() ops for these interfaces.
The next 3 patches remove some unnecessary usage of omap_dss_device pointer in
DISPC and APPLY.
The last 2 patches are miscellaneous fixes and are self explanatory.
Reference tree containing this series:
git://gitorious.org/~boddob/linux-omap-dss2/archit-dss2-clone.git mgr_timing_and_fixes
Tested on OMAP4 SDP.
Archit Taneja (6):
OMAPDSS: DPI/HDMI: Apply manager timings even if panel is disabled
OMAPDSS: APPLY: Remove an unnecessary omap_dss_device pointer
OMAPDSS: DISPC: Remove omap_dss_device pointer usage from
dispc_mgr_pclk_rate()
OMAPDSS: DISPC: Remove usage of dispc_mgr_get_device()
OMAPDSS: Fix DSI_FCLK clock source selection
OMAPDSS: DISPC: Remove Fake VSYNC support
drivers/video/omap2/dss/Kconfig | 9 ------
drivers/video/omap2/dss/apply.c | 3 --
drivers/video/omap2/dss/dispc.c | 61 +++++++++++++-------------------------
drivers/video/omap2/dss/dpi.c | 2 +
drivers/video/omap2/dss/dsi.c | 4 --
drivers/video/omap2/dss/dss.c | 5 ++-
drivers/video/omap2/dss/dss.h | 1 -
drivers/video/omap2/dss/hdmi.c | 2 +
8 files changed, 28 insertions(+), 59 deletions(-)
--
1.7.5.4
The HDMI and DPI interfaces use their 'set_timing' functions to take in a new
set of timings. If the panel is disabled, they do not disable and re-enable
the interface. Currently, the manager timings are applied in hdmi_power_on()
and dpi_set_mode() respectively, these are not called by set_timings if the
panel is disabled.
When checking overlay and manager data, the DSS driver uses the last applied
manager timings, and not the timings stored in omap_dss_device struct. Hence,
there is a need to apply the new manager timings even if the panel is disabled.
Apply the manager timings if the panel is disabled. Eventually, there should be
one common place where the timings are applied independent of the state of the
panel.
Signed-off-by: Archit Taneja <redacted>
---
drivers/video/omap2/dss/dpi.c | 2 ++
drivers/video/omap2/dss/hdmi.c | 2 ++
2 files changed, 4 insertions(+), 0 deletions(-)
@@ -435,6 +435,8 @@ void omapdss_hdmi_display_set_timing(struct omap_dss_device *dssdev)r=hdmi_power_on(dssdev);if(r)DSSERR("failed to power on device\n");+}else{+dss_mgr_set_timings(dssdev->manager,&dssdev->panel.timings);}}
The pixel clock rate for the TV manager is calculated by checking the device
type connected to the manager, and then requesting the VENC/HDMI interface for
the pixel clock rate.
Remove the use of omap_dss_device pointer from here by checking which interface
generates the pixel clock by reading the DSS_CTRL.VENC_HDMI_SWITCH bit.
Signed-off-by: Archit Taneja <redacted>
---
drivers/video/omap2/dss/dispc.c | 11 ++++++-----
1 files changed, 6 insertions(+), 5 deletions(-)
The functions calc_fclk_five_taps() and check_horiz_timing_omap3() use the
function dispc_mgr_get_device() to get the omap_dss_device pointer to which
the manager is connected, the width of the panel is derived from that.
Replace this by using dss_mgr_get_device() which returns the manager's timing
stored in it's private data in APPLY. This contains the latest timings applied
to the manager. Remove the function dispc_mgr_get_device() as it isn't used
any more.
Signed-off-by: Archit Taneja <redacted>
---
drivers/video/omap2/dss/dispc.c | 29 +++++++++++++++--------------
1 files changed, 15 insertions(+), 14 deletions(-)
The wrong bit field was being updated in DSS_CTRL when trying to configure the
clock source of DSI2 functional clock. Use the correct bit field based on the
dsi module number.
Signed-off-by: Archit Taneja <redacted>
---
drivers/video/omap2/dss/dss.c | 5 +++--
1 files changed, 3 insertions(+), 2 deletions(-)
Fake VSYNC support is a hack and has some bugs in it. It isn't used by any user
of DSS. Remove Fake VSYNC support. For DSI command mode and RFBI panels, a user
of DSS should wait for the completion of a frame by using the panel driver's
sync op.
Signed-off-by: Archit Taneja <redacted>
---
drivers/video/omap2/dss/Kconfig | 9 ---------
drivers/video/omap2/dss/dispc.c | 21 ---------------------
drivers/video/omap2/dss/dsi.c | 4 ----
drivers/video/omap2/dss/dss.h | 1 -
4 files changed, 0 insertions(+), 35 deletions(-)
From: Tomi Valkeinen <hidden> Date: 2012-05-08 11:58:57
On Mon, 2012-05-07 at 16:51 +0530, Archit Taneja wrote:
The first patch in this series is a follow up on the previously posted series
'OMAPDSS: APPLY: Treat overlay manager timings as shadow registers'. It is
required for HDMI and DPI interfaces to work properly, it ensures manager
timings are applied in the set_timing() ops for these interfaces.
The next 3 patches remove some unnecessary usage of omap_dss_device pointer in
DISPC and APPLY.
The last 2 patches are miscellaneous fixes and are self explanatory.
Reference tree containing this series:
git://gitorious.org/~boddob/linux-omap-dss2/archit-dss2-clone.git mgr_timing_and_fixes
Tested on OMAP4 SDP.
Archit Taneja (6):
OMAPDSS: DPI/HDMI: Apply manager timings even if panel is disabled
OMAPDSS: APPLY: Remove an unnecessary omap_dss_device pointer
OMAPDSS: DISPC: Remove omap_dss_device pointer usage from
dispc_mgr_pclk_rate()
OMAPDSS: DISPC: Remove usage of dispc_mgr_get_device()
OMAPDSS: Fix DSI_FCLK clock source selection
OMAPDSS: DISPC: Remove Fake VSYNC support
The first four patches seem to be related (or at least based) to the
set_timings series (and the first patch you already had included in
later version).
Should I take the two last patches and apply them already, as they are
fine and don't depend on anything? You could add the first 4 patches
into the set_timings series.
Tomi
On Tuesday 08 May 2012 05:28 PM, Tomi Valkeinen wrote:
On Mon, 2012-05-07 at 16:51 +0530, Archit Taneja wrote:
quoted
The first patch in this series is a follow up on the previously posted series
'OMAPDSS: APPLY: Treat overlay manager timings as shadow registers'. It is
required for HDMI and DPI interfaces to work properly, it ensures manager
timings are applied in the set_timing() ops for these interfaces.
The next 3 patches remove some unnecessary usage of omap_dss_device pointer in
DISPC and APPLY.
The last 2 patches are miscellaneous fixes and are self explanatory.
Reference tree containing this series:
git://gitorious.org/~boddob/linux-omap-dss2/archit-dss2-clone.git mgr_timing_and_fixes
Tested on OMAP4 SDP.
Archit Taneja (6):
OMAPDSS: DPI/HDMI: Apply manager timings even if panel is disabled
OMAPDSS: APPLY: Remove an unnecessary omap_dss_device pointer
OMAPDSS: DISPC: Remove omap_dss_device pointer usage from
dispc_mgr_pclk_rate()
OMAPDSS: DISPC: Remove usage of dispc_mgr_get_device()
OMAPDSS: Fix DSI_FCLK clock source selection
OMAPDSS: DISPC: Remove Fake VSYNC support
The first four patches seem to be related (or at least based) to the
set_timings series (and the first patch you already had included in
later version).
Should I take the two last patches and apply them already, as they are
fine and don't depend on anything? You could add the first 4 patches
into the set_timings series.
Yes, you can apply the last 2 patches.
Thanks,
Archit
On Mon, May 7, 2012 at 4:21 AM, Archit Taneja [off-list ref] wrote:
The first patch in this series is a follow up on the previously posted
series
'OMAPDSS: APPLY: Treat overlay manager timings as shadow registers'. It is
required for HDMI and DPI interfaces to work properly, it ensures manager
timings are applied in the set_timing() ops for these interfaces.
The next 3 patches remove some unnecessary usage of omap_dss_device
pointer in
DISPC and APPLY.
The last 2 patches are miscellaneous fixes and are self explanatory.
Reference tree containing this series:
git://gitorious.org/~boddob/linux-omap-dss2/archit-dss2-clone.git
mgr_timing_and_fixes
Tested on OMAP4 SDP.
Archit Taneja (6):
OMAPDSS: DPI/HDMI: Apply manager timings even if panel is disabled
OMAPDSS: APPLY: Remove an unnecessary omap_dss_device pointer
OMAPDSS: DISPC: Remove omap_dss_device pointer usage from
dispc_mgr_pclk_rate()
OMAPDSS: DISPC: Remove usage of dispc_mgr_get_device()
OMAPDSS: Fix DSI_FCLK clock source selection
OMAPDSS: DISPC: Remove Fake VSYNC support
drivers/video/omap2/dss/Kconfig | 9 ------
drivers/video/omap2/dss/apply.c | 3 --
drivers/video/omap2/dss/dispc.c | 61
+++++++++++++-------------------------
drivers/video/omap2/dss/dpi.c | 2 +
drivers/video/omap2/dss/dsi.c | 4 --
drivers/video/omap2/dss/dss.c | 5 ++-
drivers/video/omap2/dss/dss.h | 1 -
drivers/video/omap2/dss/hdmi.c | 2 +
8 files changed, 28 insertions(+), 59 deletions(-)
I did a build and boot of each one of the patches on the
mgr_timing_and_fixes branch including these on:
Beagleboard-xM rev C1
Beagleboard rev B4
Mistral AM37x-EVM
Zoom AM3517 EVM
Zoom AM1808 EVM
Tested-by: Russ.Dill@ti.com
On Wednesday 09 May 2012 05:08 AM, Russ Dill wrote:
On Mon, May 7, 2012 at 4:21 AM, Archit Taneja[off-list ref] wrote:
quoted
The first patch in this series is a follow up on the previously posted
series
'OMAPDSS: APPLY: Treat overlay manager timings as shadow registers'. It is
required for HDMI and DPI interfaces to work properly, it ensures manager
timings are applied in the set_timing() ops for these interfaces.
The next 3 patches remove some unnecessary usage of omap_dss_device
pointer in
DISPC and APPLY.
The last 2 patches are miscellaneous fixes and are self explanatory.
Reference tree containing this series:
git://gitorious.org/~boddob/linux-omap-dss2/archit-dss2-clone.git
mgr_timing_and_fixes
Tested on OMAP4 SDP.
Archit Taneja (6):
OMAPDSS: DPI/HDMI: Apply manager timings even if panel is disabled
OMAPDSS: APPLY: Remove an unnecessary omap_dss_device pointer
OMAPDSS: DISPC: Remove omap_dss_device pointer usage from
dispc_mgr_pclk_rate()
OMAPDSS: DISPC: Remove usage of dispc_mgr_get_device()
OMAPDSS: Fix DSI_FCLK clock source selection
OMAPDSS: DISPC: Remove Fake VSYNC support
drivers/video/omap2/dss/Kconfig | 9 ------
drivers/video/omap2/dss/apply.c | 3 --
drivers/video/omap2/dss/dispc.c | 61
+++++++++++++-------------------------
drivers/video/omap2/dss/dpi.c | 2 +
drivers/video/omap2/dss/dsi.c | 4 --
drivers/video/omap2/dss/dss.c | 5 ++-
drivers/video/omap2/dss/dss.h | 1 -
drivers/video/omap2/dss/hdmi.c | 2 +
8 files changed, 28 insertions(+), 59 deletions(-)
I did a build and boot of each one of the patches on the
mgr_timing_and_fixes branch including these on:
Beagleboard-xM rev C1
Beagleboard rev B4
Mistral AM37x-EVM
Zoom AM3517 EVM
Zoom AM1808 EVM
Thanks! I'll be posting out a newer version of the series with some
minor changes. But the content should be more or less the same.
Thanks,
Archit