[PATCH v5 00/17] OMAP2,3: hwmod DSS Adaptation

2011-01-07 Thread Sumit Semwal
v4 of the DSS hwmod patch series focusses on fixing the review comments. OMAP4 
hwmod support will be posted after the acceptance of this basic change in
the dss2 design.

This patch series decouples the Clocks for DSS in hwmod adaptation changes
from this series.  Another series would be posted which could be discussed
w.r.t clocks in DSS across omap2,3.

Removing the SYSCONFIG settings from DSS driver would also be part of these
clock changes series and not covered in this series as it depends on some of
the omap_hwmod framework changes w.r.t opt clocks handling.

Summary of the hwmod DSS design:

DSS, DISPC, DSI, RFBI, VENC are made as platform drivers each 
corresponding to the hwmod class in the hwmod database. 

Each of these platform drivers' init / deinit are handled from core.c's
omap_dss_probe() in the exact sequence as required.

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 approaches, that does not
change the existing implementation.  If each of the DSS HW IPs had to handle
their own clocks, then corresponding clock changes can be requested in the hwmod
database as well which is not the current design/implementation.  As stated, 
this would be handled in another series seperately.
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.

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

Omapdss platform driver
- initialises necessary h/w IPs' platform drivers [dss, dispc, dsi, 
venc, rfbi]
  and 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 DISPC 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 DSI 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 RFBI and VENC library functions.

Testing:
-
The patches are tested on 2420-n800, 2430sdp, 3630zoom, 3430sdp.
Complete bootup with penguins on panel is done on 3430sdp.
For the rest of the mentioned platforms, kernel is built with OMAP2_DSS
and bootup is tested so that base address and clk_get calls are successful.

DSS was built successfully as module, though not tested yet.

Changes since v4:

1) Following review comments incorporated:
 *  http://www.mail-archive.com/linux-omap@vger.kernel.org/msg41970.html
Corrected the clocks to be enabled in omap_dss_probe.
Changes since v3:

1.) Following review comments incorporated:
 *  http://www.mail-archive.com/linux-omap@vger.kernel.org/msg41705.html
http://www.mail-archive.com/linux-omap@vger.kernel.org/msg41683.html
Created a new display.c file for dss driver registration 
related code.   

 *  

Re: [PATCH v5 00/17] OMAP2,3: hwmod DSS Adaptation

2011-01-07 Thread Tomi Valkeinen
Hi Tony,

The patch set below is based on l-o tree, as it touches OMAP
hwmod/clock/board stuff. It doesn't even apply to my mainline based
tree.

I'm still in the process of reviewing the latest changes, but is it ok
for you to apply these to your tree after I've acked the DSS parts? Or
do you have a stable branch (going to Linus soon) that I can use as a
base?

 Tomi

On Fri, 2011-01-07 at 16:55 +0530, ext Sumit Semwal wrote:
 v4 of the DSS hwmod patch series focusses on fixing the review comments. 
 OMAP4 
 hwmod support will be posted after the acceptance of this basic change in
 the dss2 design.
 
 This patch series decouples the Clocks for DSS in hwmod adaptation changes
 from this series.  Another series would be posted which could be discussed
 w.r.t clocks in DSS across omap2,3.
 
 Removing the SYSCONFIG settings from DSS driver would also be part of these
 clock changes series and not covered in this series as it depends on some of
 the omap_hwmod framework changes w.r.t opt clocks handling.
 
 Summary of the hwmod DSS design:
 
 DSS, DISPC, DSI, RFBI, VENC are made as platform drivers each 
 corresponding to the hwmod class in the hwmod database. 
 
 Each of these platform drivers' init / deinit are handled from core.c's
 omap_dss_probe() in the exact sequence as required.
 
 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 approaches, that does not
 change the existing implementation.  If each of the DSS HW IPs had to handle
 their own clocks, then corresponding clock changes can be requested in the 
 hwmod
 database as well which is not the current design/implementation.  As stated, 
 this would be handled in another series seperately.
 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.
 
 Modified change:
 ---
 Platform driver for each DSS HW IP in addition to the software omapdss
 driver.
 
 Omapdss platform driver
 - initialises necessary h/w IPs' platform drivers [dss, dispc, dsi, 
 venc, rfbi]
 and 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 DISPC 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 DSI 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 RFBI and VENC library functions.
 
 Testing:
 -
 The patches are tested on 2420-n800, 2430sdp, 3630zoom, 3430sdp.
 Complete bootup with penguins on panel is done on 3430sdp.
 For the rest of the mentioned platforms, kernel is built with OMAP2_DSS
 and bootup is tested so that base address and clk_get calls are successful.
 
 DSS was built successfully as module, though not tested yet.
 
 Changes since v4:
 
 1) Following review comments 

Re: [PATCH v5 00/17] OMAP2,3: hwmod DSS Adaptation

2011-01-07 Thread Tomi Valkeinen
Hi,

Ah, I just noticed (thanks Nishanth) that you've sent a pull request,
and these patches apply fine on top of the omap-for-linus branch. I'll
use that as a base.

 Tomi

On Fri, 2011-01-07 at 14:56 +0200, Tomi Valkeinen wrote:
 Hi Tony,
 
 The patch set below is based on l-o tree, as it touches OMAP
 hwmod/clock/board stuff. It doesn't even apply to my mainline based
 tree.
 
 I'm still in the process of reviewing the latest changes, but is it ok
 for you to apply these to your tree after I've acked the DSS parts? Or
 do you have a stable branch (going to Linus soon) that I can use as a
 base?
 
  Tomi
 
 On Fri, 2011-01-07 at 16:55 +0530, ext Sumit Semwal wrote:
  v4 of the DSS hwmod patch series focusses on fixing the review comments. 
  OMAP4 
  hwmod support will be posted after the acceptance of this basic change in
  the dss2 design.
  
  This patch series decouples the Clocks for DSS in hwmod adaptation changes
  from this series.  Another series would be posted which could be discussed
  w.r.t clocks in DSS across omap2,3.
  
  Removing the SYSCONFIG settings from DSS driver would also be part of these
  clock changes series and not covered in this series as it depends on some of
  the omap_hwmod framework changes w.r.t opt clocks handling.
  
  Summary of the hwmod DSS design:
  
  DSS, DISPC, DSI, RFBI, VENC are made as platform drivers each 
  corresponding to the hwmod class in the hwmod database. 
  
  Each of these platform drivers' init / deinit are handled from core.c's
  omap_dss_probe() in the exact sequence as required.
  
  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 approaches, that does 
  not
  change the existing implementation.  If each of the DSS HW IPs had to handle
  their own clocks, then corresponding clock changes can be requested in the 
  hwmod
  database as well which is not the current design/implementation.  As 
  stated, 
  this would be handled in another series seperately.
  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.
  
  Modified change:
  ---
  Platform driver for each DSS HW IP in addition to the software omapdss
  driver.
  
  Omapdss platform driver
  - initialises necessary h/w IPs' platform drivers [dss, dispc, dsi, 
  venc, rfbi]
and 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 DISPC 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 DSI 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 RFBI and VENC library functions.
  
  Testing:
  -
  The patches are tested on 2420-n800, 2430sdp, 3630zoom, 3430sdp.
  Complete