All of lore.kernel.org
 help / color / mirror / Atom feed
* [RFC PATCH 00/20] HWMOD Adaptation for DSS
@ 2010-08-23 15:57 Guruswamy Senthilvadivu
  2010-08-23 15:57 ` [PATCH 01/20] DSS HWMOD database generation for OMAP3 Guruswamy Senthilvadivu
                   ` (2 more replies)
  0 siblings, 3 replies; 46+ messages in thread
From: Guruswamy Senthilvadivu @ 2010-08-23 15:57 UTC (permalink / raw)
  To: linux-omap, tomi.valkeinen, paul, khilman; +Cc: Senthilvadivu Guruswamy

From: Senthilvadivu Guruswamy <svadivu@ti.com>

Patch Base:
===========
url = git://git.kernel.org/pub/scm/linux/kernel/git/khilman/linux-omap-pm.git
branch "pm-wip/hwmods-omap4"
Commit id: f6f7f1103b80b4dc0ace8a0314d95d1b1ebca726 
Description:  Merge branch 'pm-wip/hwmods' into pm-wip/hwmods-omap4-base
----------------------------------------------------------------------------

RFC focus on the proposed design of the HWMOD adaptation to the current DSS
driver.  DSS, DISPC, DSI, RFBI, VENC are made as platform drivers each 
corresponding to the HWMOD class in the HWMOD database.

No Hardcoding of silicon data:
HWMOD database abstracts the SOC data like base addr, irq numbers and are
implemented in this patch series.

Continue to have custom bus for display panels:
"omapdss" driver continues to be a platform driver that registers the custom
bus.  It also continues to register the display panels(omap_dss_device) on the
board to the panel drivers (omap_dss_driver)
For Eg:  primary lcd device would be registered with lcd panel driver.
lcd panel driver if it is on a parallel interface would use library functions 
exported from dpi.o.  if it is on a dsi interface would use library functions
exported from dsi platform driver(dsi.o).

Clocks:
Handling of clocks in DSS only is one of the design approach, that does not
change the existing implementation.  If each of the DSS HW IPs had to handle
their own clocks, then corresponding clock changes are requested in the HWMOD 
database as well which is not the present scenario.
For Eg: VENC would need 54MCLK which is termed as dss_opt clocks as of now apart
for the dss main clocks.  Currently VENC driver needs to be aware of this and has to
use clk_get/put, clk_enable/disable, since VENC HWMOD is not aware of 54MCLK.


Current dss driver:
-------------------
1.  Omapdss platform driver
        - initialises necessary Ips dss, dispc.
        - also initialises Ips like sdi, dsi, venc, rfbi
        - creates a custom bus and registers the display devices/drivers
        connected on the board to the custom bus.

2.  Suspend/resume of omapdss
        - in turn sends suspend/resume calls for each of the display devices
        registered to it.

Proposed change:
----------------
Platform driver for each DSS HW IP in addition to the software "omapdss"
driver.

Omapdss platform driver
        - initialises necessary software libraries like dpi, sdi.
        - continues to have a custom bus and registers the display devices 
        and drivers connected on the board to the custom bus.
        - continues to handle suspend/resume of the display devices registered
        to the custom bus.

DSS platform driver
        - initialises DSS IP alone
	- Handles the clocks related to the DSS and other DSSHW IPs like RFBI,
	DSI, VENC, DISPC.  Previously this was a part of "omapdss" driver in core.c
	- Continues to handle the DSS IRQs.
	- No suspend/resume hooks.

DISPC platform driver
        - initialises DSS IP alone
	- Gets the required clock from DSS platform driver.
	- No suspend/resume hooks.
	- Continues to provide DISPC library functions.

DSI platform driver
        - initialises DSI IP alone
	- Gets the required clock from DSS platform driver.
	- No suspend/resume hooks.
	- Continues to provide DISPC library functions.

RFBI, VENC platform drivers
        - initialises DSI,VENC IPs
	- Gets the required clock from DSS platform driver.
	- No suspend/resume hooks.
	- Continues to provide DISPC library functions.

The patches are tested on OMAP3430 and 3630.

The below points are yet to be done, still the RFC is put out to start the
discussion on the design approach taken.

Yet to be implemented:
1) All the platform driver registration except DSS, are within the file core.c.
Registeration of these driver would go out of order when seperated to its own file.
Will test the implementation and send in the next version for review.
2) Usage of regulators by different drivers needs to implemented.
For Eg: Regulator used by VENC is moved to venc driver.  But vdda_dac would be 
needed by DPI and DSI as well.  Need to verify if a patch like this would work.
/* VPLL2 for digital video outputs */
static struct regulator_consumer_supply sdp3430_vpll2_supplies[] = {
	REGULATOR_SUPPLY("vdds_dsi", "omapdss"),
+	REGULATOR_SUPPLY("vdds_dsi", "dss_dsi1"),
};
3) SYSCONFIG of each of the dss HW IP has to be removed from the driver.
HWMOD framework is supposed to take care of it.  This change would be done in 
the next version of the patch series.
4) OMAP2 HWMOD database is yet to be generated.
5) Number of DSS HW IPs in a silicon are hardcoded in devices.c.
It is not evident from HWMOD database.  Need to find a cleaner way to register for OMAP2,3,4.
6) Module support for omapdss driver as per current DSS2 design.


Senthilvadivu Guruswamy (20):
  DSS HWMOD database generation for OMAP3
  Move DSS driver register from board to mach_omap2
  Build omap_device for each DSS HW IP
  Create platform_driver for each DSS HW IP
  Move dss platform driver to dss.c
  DSS driver name change in clock database
  Move clock functions from core driver to dss driver
  Replace clk_enable/disable APIs with HWMOD APIs
  Move dss_init to dsshw_probe
  Move rfbi init to rfbi probe
  Move dispc init to dispc probe
  Move venc init to venc probe
  Move dsi init to dsi probe
  Pass platform_device argument to rfbi,dispc
  Use platform device to get DSS base addr
  Get DISPC base addr with platform device
  Get VENC base addr from platform device
  Get DSI base addr with platform device
  Get RFBI baseaddr with platform device
  Get DSS IRQ with platform device

 arch/arm/mach-omap2/board-3430sdp.c        |   25 +-
 arch/arm/mach-omap2/clock3xxx_data.c       |   14 +-
 arch/arm/mach-omap2/devices.c              |   78 ++++
 arch/arm/mach-omap2/omap_hwmod_3xxx_data.c |  346 ++++++++++++++++
 arch/arm/plat-omap/include/plat/display.h  |   14 +
 drivers/video/omap2/dss/core.c             |  585 +++++++---------------------
 drivers/video/omap2/dss/dispc.c            |    7 +-
 drivers/video/omap2/dss/dsi.c              |    5 +-
 drivers/video/omap2/dss/dss.c              |  450 +++++++++++++++++++++-
 drivers/video/omap2/dss/dss.h              |   20 +-
 drivers/video/omap2/dss/rfbi.c             |    7 +-
 drivers/video/omap2/dss/venc.c             |   24 +-
 12 files changed, 1085 insertions(+), 490 deletions(-)



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

end of thread, other threads:[~2010-08-31 16:38 UTC | newest]

Thread overview: 46+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2010-08-23 15:57 [RFC PATCH 00/20] HWMOD Adaptation for DSS Guruswamy Senthilvadivu
2010-08-23 15:57 ` [PATCH 01/20] DSS HWMOD database generation for OMAP3 Guruswamy Senthilvadivu
2010-08-23 15:57   ` [PATCH 02/20] Move DSS driver register from board to mach_omap2 Guruswamy Senthilvadivu
2010-08-23 15:57     ` [PATCH 03/20] Build omap_device for each DSS HW IP Guruswamy Senthilvadivu
2010-08-23 15:57       ` [PATCH 04/20] Create platform_driver " Guruswamy Senthilvadivu
2010-08-23 15:57         ` [PATCH 05/20] Move dss platform driver to dss.c Guruswamy Senthilvadivu
2010-08-23 15:57           ` [PATCH 06/20] DSS driver name change in clock database Guruswamy Senthilvadivu
2010-08-23 15:57             ` [PATCH 07/20] Move clock functions from core driver to dss driver Guruswamy Senthilvadivu
2010-08-23 15:57               ` [PATCH 08/20] Replace clk_enable/disable APIs with HWMOD APIs Guruswamy Senthilvadivu
2010-08-23 15:57                 ` [PATCH 09/20] Move dss_init to dsshw_probe Guruswamy Senthilvadivu
2010-08-23 15:57                   ` [PATCH 10/20] Move rfbi init to rfbi probe Guruswamy Senthilvadivu
2010-08-23 15:58                     ` [PATCH 11/20] Move dispc init to dispc probe Guruswamy Senthilvadivu
2010-08-23 15:58                       ` [PATCH 12/20] Move venc init to venc probe Guruswamy Senthilvadivu
2010-08-23 15:58                         ` [PATCH 13/20] Move dsi init to dsi probe Guruswamy Senthilvadivu
2010-08-23 15:58                           ` [PATCH 14/20] Pass platform_device argument to rfbi,dispc Guruswamy Senthilvadivu
2010-08-23 15:58                             ` [PATCH 15/20] Use platform device to get DSS base addr Guruswamy Senthilvadivu
2010-08-23 15:58                               ` [PATCH 16/20] Get DISPC base addr with platform device Guruswamy Senthilvadivu
2010-08-23 15:58                                 ` [PATCH 17/20] Get VENC base addr from " Guruswamy Senthilvadivu
2010-08-23 15:58                                   ` [PATCH 18/20] Get DSI base addr with " Guruswamy Senthilvadivu
2010-08-23 15:58                                     ` [PATCH 19/20] Get RFBI baseaddr " Guruswamy Senthilvadivu
2010-08-23 15:58                                       ` [PATCH 20/20] Get DSS IRQ " Guruswamy Senthilvadivu
2010-08-25 13:13                                 ` [PATCH 16/20] Get DISPC base addr " Tomi Valkeinen
2010-08-31  9:14                                   ` Guruswamy, Senthilvadivu
2010-08-23 21:43                               ` [PATCH 15/20] Use platform device to get DSS base addr Cousson, Benoit
2010-08-31 12:55                                 ` Guruswamy, Senthilvadivu
2010-08-26 23:54                     ` [PATCH 10/20] Move rfbi init to rfbi probe Kevin Hilman
2010-08-27 13:54                     ` Cousson, Benoit
2010-08-31 12:57                       ` Guruswamy, Senthilvadivu
2010-08-31 16:38                         ` Cousson, Benoit
2010-08-26 23:37                 ` [PATCH 08/20] Replace clk_enable/disable APIs with HWMOD APIs Kevin Hilman
2010-08-25  8:49           ` [PATCH 05/20] Move dss platform driver to dss.c Tomi Valkeinen
2010-08-31  9:13             ` Guruswamy, Senthilvadivu
2010-08-26 23:52         ` [PATCH 04/20] Create platform_driver for each DSS HW IP Kevin Hilman
2010-08-31 13:03           ` Guruswamy, Senthilvadivu
2010-08-31 15:27             ` Kevin Hilman
2010-08-26 23:33       ` [PATCH 03/20] Build omap_device " Kevin Hilman
2010-08-31 13:01         ` Guruswamy, Senthilvadivu
2010-08-31 15:29           ` Kevin Hilman
2010-08-25  8:31     ` [PATCH 02/20] Move DSS driver register from board to mach_omap2 Tomi Valkeinen
2010-08-31  9:14       ` Guruswamy, Senthilvadivu
2010-08-26 23:30   ` [PATCH 01/20] DSS HWMOD database generation for OMAP3 Kevin Hilman
2010-08-31 12:59     ` Guruswamy, Senthilvadivu
2010-08-23 21:40 ` [RFC PATCH 00/20] HWMOD Adaptation for DSS Cousson, Benoit
2010-08-31 12:54   ` Guruswamy, Senthilvadivu
2010-08-26 23:57 ` Kevin Hilman
2010-08-31 13:03   ` Guruswamy, Senthilvadivu

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.