From: Tomi Valkeinen <tomi.valkeinen@ti.com>
To: linux-omap@vger.kernel.org, linux-fbdev@vger.kernel.org
Cc: b-cousson@ti.com, paul@pwsan.com, khilman@ti.com,
Tomi Valkeinen <tomi.valkeinen@ti.com>
Subject: [PATCHv2 00/28] OMAP DSS runtime PM adaptation
Date: Thu, 09 Jun 2011 13:56:22 +0000 [thread overview]
Message-ID: <1307627810-3768-1-git-send-email-tomi.valkeinen@ti.com> (raw)
Hi,
This patch set implements runtime PM adaptation for OMAP DSS driver.
This is second version of the set, changing the way pm_runtime is used. In this
version the omapdss' pm_runtime adaptation is written as it should be, using
pm_runtime callbacks, in which context save/restore and opt-clock
enables/disables are made.
This required changes (hacks?) to OMAP4 hwmod database, but it is meant to be
fixed when the hwmod fmwk is improved to handle the DSS clocks properly.
However, when that fix is done, omapdss driver won't need any changes.
The bulk of the code is in the "OMAP: DSS2: Use PM runtime & HWMOD support"
patch, which is a bit too large for comfort, but I haven't found out ways to
split it up.
All DSS HW modules now handle enabling and disabling of the HW block
independently via pm_runtime calls. Some DSS modules also require other DSS
modules, and for that we have functions like dispc_runtime_get/put() which can
be used to enable that module.
Previously DSS driver did reset the HW every time before taking it into use.
This can no longer be done, as HWMOD framework handles the reset. While the
driver works without resetting the HW, an error could render the HW inoperable
and currently the driver may not be able to recover. So these patches may make
the driver more unreliable on error cases.
If a way to reset the HWMOD is added to the HWMOD framework, DSS driver can
take it into use and the above mentioned problem should go away.
Tested on OMAP4 Blaze, OMAP3 Overo, OMAP2420 N800. (However, N800 needs extra
patches to get it and DSS2 running, can be found from n800 branch in my tree).
The patch set still contains "OMAP: change get_context_loss_count ret value to
int" for completeness, but the patch should go through Paul Walmsley.
These patches can be found from:
git://gitorious.org/linux-omap-dss2/linux.git pmruntime
Changes in v2:
* Add a HWMOD patch "OMAP4: HWMOD: change DSS main_clk scheme", which allows us
to use pm_runtime as it should.
* Modify "OMAP: DSS2: Use PM runtime & HWMOD support" to use pm_runtime as it
should.
Tomi
Tomi Valkeinen (28):
OMAP: change get_context_loss_count ret value to int
OMAP: DSS2: Taal: Make driver more fault tolerant
OMAP: DSS2: Reset LANEx_ULPS_SIG2 bits after use
OMAP: DSS2: Handle dpll4_m4_ck in dss_get/put_clocks
OMAP: DSS2: Clean up probe for DSS & DSI
OMAP: DSS2: Init dispc first before other components
OMAP: DSS2: Remove clk optimization at dss init
OMAP: DSS2: rewrite use of context_loss_count
OMAP: DSS2: Use omap_pm_get_dev_context_loss_count to get ctx loss
count
OMAP: DSS2: DPI: remove unneeded SYSCK enable/disable
OMAP: DSS2: Add FEAT_VENC_REQUIRES_TV_DAC_CLK
OMAP: DSS2: Add new FEAT definitions for features missing from OMAP2
OMAP: DSS2: Remove core_dump_clocks
OMAP: DSS2: Remove CONFIG_OMAP2_DSS_SLEEP_BEFORE_RESET
OMAP4: HWMOD: Modify DSS opt clocks
OMAP3: HWMOD: Add DSS opt clocks
OMAP2420: HWMOD: Add DSS opt clocks
OMAP2430: HWMOD: Add DSS opt clocks
OMAP4: HWMOD: change DSS main_clk scheme
OMAP: DSS2: Use PM runtime & HWMOD support
OMAP4: HWMOD: Remove unneeded DSS opt clocks
OMAP: DSS2: Remove unused opt_clock_available
OMAP: DSS2: DISPC: remove finegrained clk enables/disables
OMAP: DSS2: Remove unused code from display.c
OMAP: DSS2: Remove ctx loss count from dss.c
OMAP4: CLKDEV: Remove omapdss clock aliases
OMAP: DSS2: DISPC: Fix context save/restore
OMAP: DSS2: DSS: Fix context save/restore
arch/arm/mach-omap2/clock44xx_data.c | 10 +-
arch/arm/mach-omap2/display.c | 26 +-
arch/arm/mach-omap2/omap_hwmod.c | 2 +-
arch/arm/mach-omap2/omap_hwmod_2420_data.c | 19 +
arch/arm/mach-omap2/omap_hwmod_2430_data.c | 19 +
arch/arm/mach-omap2/omap_hwmod_3xxx_data.c | 37 ++-
arch/arm/mach-omap2/omap_hwmod_44xx_data.c | 71 +++-
arch/arm/mach-omap2/powerdomain.c | 14 +-
arch/arm/mach-omap2/powerdomain.h | 2 +-
arch/arm/plat-omap/include/plat/omap-pm.h | 4 +-
arch/arm/plat-omap/include/plat/omap_device.h | 2 +-
arch/arm/plat-omap/include/plat/omap_hwmod.h | 2 +-
arch/arm/plat-omap/omap-pm-noop.c | 24 +-
arch/arm/plat-omap/omap_device.c | 2 +-
drivers/video/omap2/displays/panel-taal.c | 33 +-
drivers/video/omap2/dss/Kconfig | 12 -
drivers/video/omap2/dss/core.c | 15 +-
drivers/video/omap2/dss/dispc.c | 483 +++++++++++----------
drivers/video/omap2/dss/dpi.c | 73 ++--
drivers/video/omap2/dss/dsi.c | 262 +++++++-----
drivers/video/omap2/dss/dss.c | 583 ++++++-------------------
drivers/video/omap2/dss/dss.h | 34 +-
drivers/video/omap2/dss/dss_features.c | 13 +-
drivers/video/omap2/dss/dss_features.h | 4 +
drivers/video/omap2/dss/hdmi.c | 161 +++++--
drivers/video/omap2/dss/manager.c | 8 +-
drivers/video/omap2/dss/overlay.c | 27 +-
drivers/video/omap2/dss/rfbi.c | 110 ++++-
drivers/video/omap2/dss/sdi.c | 40 ++-
drivers/video/omap2/dss/venc.c | 163 ++++++-
include/video/omapdss.h | 4 +-
31 files changed, 1214 insertions(+), 1045 deletions(-)
--
1.7.4.1
next reply other threads:[~2011-06-09 13:56 UTC|newest]
Thread overview: 54+ messages / expand[flat|nested] mbox.gz Atom feed top
2011-06-09 13:56 Tomi Valkeinen [this message]
2011-06-09 13:56 ` [PATCHv2 01/28] OMAP: change get_context_loss_count ret value to int Tomi Valkeinen
2011-06-13 9:51 ` [PATCHv2 01/28] OMAP: change get_context_loss_count ret value Tomi Valkeinen
2011-06-13 16:37 ` [PATCHv2 01/28] OMAP: change get_context_loss_count ret value to int Ghongdemath, Girish
2011-06-13 16:45 ` [PATCHv2 01/28] OMAP: change get_context_loss_count ret value Tomi Valkeinen
2011-06-14 7:13 ` Paul Walmsley
2011-06-14 7:24 ` Tomi Valkeinen
2011-06-14 13:55 ` Rajendra Nayak
2011-06-15 9:19 ` Rajendra Nayak
2011-08-21 6:19 ` Paul Walmsley
2011-10-06 23:11 ` Paul Walmsley
2011-10-06 23:14 ` Tony Lindgren
2011-06-09 13:56 ` [PATCHv2 02/28] OMAP: DSS2: Taal: Make driver more fault tolerant Tomi Valkeinen
2011-06-09 13:56 ` [PATCHv2 03/28] OMAP: DSS2: Reset LANEx_ULPS_SIG2 bits after use Tomi Valkeinen
2011-06-09 13:56 ` [PATCHv2 04/28] OMAP: DSS2: Handle dpll4_m4_ck in dss_get/put_clocks Tomi Valkeinen
2011-06-09 13:56 ` [PATCHv2 05/28] OMAP: DSS2: Clean up probe for DSS & DSI Tomi Valkeinen
2011-06-09 13:56 ` [PATCHv2 06/28] OMAP: DSS2: Init dispc first before other components Tomi Valkeinen
2011-06-09 13:56 ` [PATCHv2 07/28] OMAP: DSS2: Remove clk optimization at dss init Tomi Valkeinen
2011-06-09 13:56 ` [PATCHv2 08/28] OMAP: DSS2: rewrite use of context_loss_count Tomi Valkeinen
2011-06-09 13:56 ` [PATCHv2 09/28] OMAP: DSS2: Use omap_pm_get_dev_context_loss_count to get ctx loss count Tomi Valkeinen
2011-06-09 13:56 ` [PATCHv2 10/28] OMAP: DSS2: DPI: remove unneeded SYSCK enable/disable Tomi Valkeinen
2011-06-09 13:56 ` [PATCHv2 11/28] OMAP: DSS2: Add FEAT_VENC_REQUIRES_TV_DAC_CLK Tomi Valkeinen
2011-06-09 13:56 ` [PATCHv2 12/28] OMAP: DSS2: Add new FEAT definitions for features missing from OMAP2 Tomi Valkeinen
2011-06-09 13:56 ` [PATCHv2 13/28] OMAP: DSS2: Remove core_dump_clocks Tomi Valkeinen
2011-06-09 13:56 ` [PATCHv2 14/28] OMAP: DSS2: Remove CONFIG_OMAP2_DSS_SLEEP_BEFORE_RESET Tomi Valkeinen
2011-06-09 13:56 ` [PATCHv2 15/28] OMAP4: HWMOD: Modify DSS opt clocks Tomi Valkeinen
2011-06-15 11:23 ` Tomi Valkeinen
2011-06-21 6:20 ` Tomi Valkeinen
2011-06-09 13:56 ` [PATCHv2 16/28] OMAP3: HWMOD: Add " Tomi Valkeinen
2011-07-15 6:49 ` Paul Walmsley
2011-08-02 1:27 ` Paul Walmsley
2011-08-02 7:47 ` Tomi Valkeinen
2011-06-09 13:56 ` [PATCHv2 17/28] OMAP2420: " Tomi Valkeinen
2011-07-15 6:48 ` Paul Walmsley
2011-08-02 1:14 ` Paul Walmsley
2011-08-02 7:57 ` Tomi Valkeinen
2011-06-09 13:56 ` [PATCHv2 18/28] OMAP2430: " Tomi Valkeinen
2011-07-15 6:49 ` Paul Walmsley
2011-06-09 13:56 ` [PATCHv2 19/28] OMAP4: HWMOD: change DSS main_clk scheme Tomi Valkeinen
2011-06-09 13:56 ` [PATCHv2 20/28] OMAP: DSS2: Use PM runtime & HWMOD support Tomi Valkeinen
2011-06-09 20:03 ` Paul Mundt
2011-06-10 6:52 ` Tomi Valkeinen
2011-06-10 7:24 ` Paul Mundt
2011-06-21 14:49 ` Kevin Hilman
2011-06-21 15:18 ` Tomi Valkeinen
2011-06-09 13:56 ` [PATCHv2 21/28] OMAP4: HWMOD: Remove unneeded DSS opt clocks Tomi Valkeinen
2011-06-09 13:56 ` [PATCHv2 22/28] OMAP: DSS2: Remove unused opt_clock_available Tomi Valkeinen
2011-06-09 13:56 ` [PATCHv2 23/28] OMAP: DSS2: DISPC: remove finegrained clk enables/disables Tomi Valkeinen
2011-06-09 13:56 ` [PATCHv2 24/28] OMAP: DSS2: Remove unused code from display.c Tomi Valkeinen
2011-06-09 13:56 ` [PATCHv2 25/28] OMAP: DSS2: Remove ctx loss count from dss.c Tomi Valkeinen
2011-06-09 13:56 ` [PATCHv2 26/28] OMAP4: CLKDEV: Remove omapdss clock aliases Tomi Valkeinen
2011-06-09 13:56 ` [PATCHv2 27/28] OMAP: DSS2: DISPC: Fix context save/restore Tomi Valkeinen
2011-06-09 13:56 ` [PATCHv2 28/28] OMAP: DSS2: DSS: " Tomi Valkeinen
2011-06-09 14:27 ` [PATCHv2 00/28] OMAP DSS runtime PM adaptation Tomi Valkeinen
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=1307627810-3768-1-git-send-email-tomi.valkeinen@ti.com \
--to=tomi.valkeinen@ti.com \
--cc=b-cousson@ti.com \
--cc=khilman@ti.com \
--cc=linux-fbdev@vger.kernel.org \
--cc=linux-omap@vger.kernel.org \
--cc=paul@pwsan.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
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).