Re: [PATCH 00/26] DSS device model change

2013-03-27 Thread Tomi Valkeinen
On 2013-03-26 19:10, Tony Lindgren wrote:
 * Tomi Valkeinen tomi.valkei...@ti.com [130326 06:38]:
 Hi,

 To make it possible to add DT support to DSS, and later use the Common 
 Display
 Framework, we need to change the DSS device model. We currently have a custom
 dss bus, and omap_dss_devices on that bus, and the aim is to get rid of that
 bus.

 The panel devices will be converted occording to the control bus of the 
 panel.
 For many panels this means that the panel device will become a 
 platform_device.
 For some, it means the panel devices become i2c or spi devices.

 This series takes the first step toward that goal. This series:

 * Converts DPI, HDMI and DSI outputs to work with new style panels
 * Converts TFP410, Taal and generic-dpi panels to new model
 * Converts Panda, 4430SDP and Overo boards to use the new panels

 The non-converted outputs and panels still work, so they can be converted in
 stages.
 
 This is nice, it removes a merge dependency between ARM code and the driver :)

Yes. It does give me a few more gray hairs, though =). It'd be so much
easier to have all related changes in one clean patch series.

 Note about board files: I only convert a few board files here for example. I
 have a branch with board file changes for all the affected board files. I did
 not include them as they are more or less identical. If this series looks 
 good,
 I will create an independent branch for the arch/arm stuff, so it can be 
 pulled
 separately.
 
 Great looks good to me thanks.

To make the DSS work properly after this device model change, we also
need to solve the problem related to multiple display devices on the
same video bus.

Did the approach I suggested in

http://permalink.gmane.org/gmane.linux.ports.arm.omap/96039

look ok? Overo is the most complex one, I think the rest of the boards
that require changes have just LCD and DVI that conflict. But it still
means we'll have that kind of choice Kconfig option for all those boards.

 Tomi




signature.asc
Description: OpenPGP digital signature


RE: [PATCH] ARM: AM33XX: Add missing .clkdm_name to clkdiv32k_ick clock

2013-03-27 Thread Hiremath, Vaibhav

 -Original Message-
 From: linux-omap-ow...@vger.kernel.org [mailto:linux-omap-
 ow...@vger.kernel.org] On Behalf Of Paul Walmsley
 Sent: Tuesday, March 26, 2013 11:43 PM
 To: Hiremath, Vaibhav
 Cc: linux-omap@vger.kernel.org; linux-arm-ker...@lists.infradead.org;
 Tony Lindgren
 Subject: Re: [PATCH] ARM: AM33XX: Add missing .clkdm_name to
 clkdiv32k_ick clock
 
 On Mon, 25 Mar 2013, Vaibhav Hiremath wrote:
 
  During common-clock migration, .clkdm_name field got missed
  for clkdiv32k_ick clock, which leaves clk_24mhz_clkdm
  unused; so boot process will try to disable the clockdomain
  even childs of this clock is enabled, which keeps child modules
  in idle mode.
 
 Looks fine to me.  You're planning to update the patch description,
 right?
 So should I wait until you repost it?
 
Yeup, will submit today.

 Also you should probably trim the crash log after [2.626025] LR is
 at
 clk_enable+0x30/0x3c
 
Ok, 

Thanks,
Vaibhav

 
 
 - Paul
 --
 To unsubscribe from this list: send the line unsubscribe linux-omap
 in
 the body of a message to majord...@vger.kernel.org
 More majordomo info at  http://vger.kernel.org/majordomo-info.html
--
To unsubscribe from this list: send the line unsubscribe linux-omap in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


Re: [PATCH v3 3/8] drm/omap: Make fixed resolution panels work

2013-03-27 Thread Tomi Valkeinen
On 2013-03-26 15:45, Archit Taneja wrote:
 The omapdrm driver requires omapdss panel drivers to expose ops like detect,
 set_timings and check_timings. These can be NULL for fixed panel DPI, DBI, DSI
 and SDI drivers. At some places, there are no checks to see if the panel 
 driver
 has these ops or not, and that leads to a crash.
 
 The following things are done to make fixed panels work:
 
 - The omap_connector's detect function is modified such that it considers 
 panel
   types which are generally fixed panels as always connected(provided the 
 panel
   driver doesn't have a detect op). Hence, the connector corresponding to 
 these
   panels is always in a 'connected' state.
 
 - If a panel driver doesn't have a check_timings op, assume that it supports 
 the
   mode passed to omap_connector_mode_valid(the 'mode_valid' drm helper 
 function)
 
 - The function omap_encoder_update shouldn't really do anything for fixed
   resolution panels, make sure that it calls set_timings only if the panel
   driver has one.
 
 Signed-off-by: Archit Taneja arc...@ti.com
 ---
 v3: clear the timings local variable first before using memcmp
 v2: make sure the timings we try to set for a fixed resolution panel match the
 panel's timings
 
  drivers/gpu/drm/omapdrm/omap_connector.c |   27 +--
  drivers/gpu/drm/omapdrm/omap_encoder.c   |   17 +++--
  2 files changed, 40 insertions(+), 4 deletions(-)
 
 diff --git a/drivers/gpu/drm/omapdrm/omap_connector.c 
 b/drivers/gpu/drm/omapdrm/omap_connector.c
 index c451c41..912759d 100644
 --- a/drivers/gpu/drm/omapdrm/omap_connector.c
 +++ b/drivers/gpu/drm/omapdrm/omap_connector.c
 @@ -110,6 +110,11 @@ static enum drm_connector_status omap_connector_detect(
   ret = connector_status_connected;
   else
   ret = connector_status_disconnected;
 + } else if (dssdev-type == OMAP_DISPLAY_TYPE_DPI ||
 + dssdev-type == OMAP_DISPLAY_TYPE_DBI ||
 + dssdev-type == OMAP_DISPLAY_TYPE_SDI ||
 + dssdev-type == OMAP_DISPLAY_TYPE_DSI) {
 + ret = connector_status_connected;
   } else {
   ret = connector_status_unknown;
   }

Can we leave this part out? I don't like hardcoding things like that,
and if I'm not mistaken, this only affects VENC.

If the code above would use detect where available, and presume the
panel is connected in other cases, it'll be right for all other displays
but VENC, for which we have no connect information.

Or, there could be a special case for VENC, like above, which sets the
connector status to unknown for that. And connected for all others. It'd
still be hardcoded, but for much less cases.

 Tomi




signature.asc
Description: OpenPGP digital signature


Re: [PATCH v2 5/8] omapdss: DISPC: add max pixel clock limits for LCD and TV managers

2013-03-27 Thread Tomi Valkeinen
On 2013-03-26 15:45, Archit Taneja wrote:
 Each version of OMAP has a limitation on the maximum pixel clock frequency
 supported by an overlay manager. This limit isn't checked by omapdss. Add
 dispc feats for lcd and tv managers and check whether the target timings can
 be supported or not.
 
 The pixel clock limitations are actually more complex. They depend on which 
 OPP
 OMAP is in, and they also depend on which encoder is the manager connected to.
 The OPP dependence is ignored as DSS forces the PM framework to be on OPP100
 when DSS is enabled, and the encoder dependencies are ignored by DISPC for 
 now.
 These limits should come from the encoder driver.
 
 The OMAP2 TRM doesn't mention the maximum pixel clock limit. This value is 
 left
 as half of DSS_FCLK, as OMAP2 requires the PCD to be atleast 2.
 
 Signed-off-by: Archit Taneja arc...@ti.com
 ---
  drivers/video/omap2/dss/dispc.c |   32 +++-
  1 file changed, 27 insertions(+), 5 deletions(-)
 
 diff --git a/drivers/video/omap2/dss/dispc.c b/drivers/video/omap2/dss/dispc.c
 index 8cfa27b..73a730a 100644
 --- a/drivers/video/omap2/dss/dispc.c
 +++ b/drivers/video/omap2/dss/dispc.c
 @@ -69,6 +69,8 @@ struct dispc_features {
   u8 mgr_height_start;
   u16 mgr_width_max;
   u16 mgr_height_max;
 + unsigned long max_lcd_pclk;
 + unsigned long max_tv_pclk;
   int (*calc_scaling) (unsigned long pclk, unsigned long lclk,
   const struct omap_video_timings *mgr_timings,
   u16 width, u16 height, u16 out_width, u16 out_height,
 @@ -2825,6 +2827,15 @@ static bool _dispc_lcd_timings_ok(int hsw, int hfp, 
 int hbp,
   return true;
  }
  
 +static bool _dispc_mgr_pclk_ok(enum omap_channel channel,
 + unsigned long pclk)
 +{
 + if (dss_mgr_is_lcd(channel))
 + return pclk = dispc.feat-max_lcd_pclk ? true : false;
 + else
 + return pclk = dispc.feat-max_tv_pclk ? true : false;
 +}
 +
  bool dispc_mgr_timings_ok(enum omap_channel channel,
   const struct omap_video_timings *timings)
  {
 @@ -2832,11 +2843,13 @@ bool dispc_mgr_timings_ok(enum omap_channel channel,
  
   timings_ok = _dispc_mgr_size_ok(timings-x_res, timings-y_res);
  
 - if (dss_mgr_is_lcd(channel))
 - timings_ok =  timings_ok  _dispc_lcd_timings_ok(timings-hsw,
 - timings-hfp, timings-hbp,
 - timings-vsw, timings-vfp,
 - timings-vbp);
 + timings_ok = _dispc_mgr_pclk_ok(channel, timings-pixel_clock * 1000);
 +
 + if (dss_mgr_is_lcd(channel)) {
 + timings_ok = _dispc_lcd_timings_ok(timings-hsw, timings-hfp,
 + timings-hbp, timings-vsw, timings-vfp,
 + timings-vbp);
 + }
  
   return timings_ok;
  }
 @@ -3491,6 +3504,7 @@ static const struct dispc_features omap24xx_dispc_feats 
 __initconst = {
   .mgr_height_start   =   26,
   .mgr_width_max  =   2048,
   .mgr_height_max =   2048,
 + .max_lcd_pclk   =   6650,
   .calc_scaling   =   dispc_ovl_calc_scaling_24xx,
   .calc_core_clk  =   calc_core_clk_24xx,
   .num_fifos  =   3,

OMAP2 has VENC output, but there's no max_tv_pclk above. This would make
VENC pclk check to fail always, wouldn't it?

 Tomi




signature.asc
Description: OpenPGP digital signature


Re: [PATCH v2 6/8] omapdss: Features: Fix some parameter ranges

2013-03-27 Thread Tomi Valkeinen
On 2013-03-26 15:45, Archit Taneja wrote:
 Increase the DSS_FCLK and DSI_FCLK max supported frequencies, these come 
 because
 some frequencies were increased from OMAP5 ES1 to OMAP5 ES2. We support only
 OMAP5 ES2 in the kernel, so replace the ES1 values with ES2 values. Increase 
 the
 DSI PLL Fint range, this was previously just copied from the OMAP4 param range
 struct.
 
 Fix the maximum DSS_FCLK on OMAP2, it's 133 Mhz according to the TRM.
 
 Signed-off-by: Archit Taneja arc...@ti.com
 ---
  drivers/video/omap2/dss/dss_features.c |8 
  1 file changed, 4 insertions(+), 4 deletions(-)
 
 diff --git a/drivers/video/omap2/dss/dss_features.c 
 b/drivers/video/omap2/dss/dss_features.c
 index 7f791ae..77dbe0c 100644
 --- a/drivers/video/omap2/dss/dss_features.c
 +++ b/drivers/video/omap2/dss/dss_features.c
 @@ -414,7 +414,7 @@ static const char * const omap5_dss_clk_source_names[] = {
  };
  
  static const struct dss_param_range omap2_dss_param_range[] = {
 - [FEAT_PARAM_DSS_FCK]= { 0, 17300 },
 + [FEAT_PARAM_DSS_FCK]= { 0, 13300 },
   [FEAT_PARAM_DSS_PCD]= { 2, 255 },
   [FEAT_PARAM_DSIPLL_REGN]= { 0, 0 },
   [FEAT_PARAM_DSIPLL_REGM]= { 0, 0 },
 @@ -459,15 +459,15 @@ static const struct dss_param_range 
 omap4_dss_param_range[] = {
  };
  
  static const struct dss_param_range omap5_dss_param_range[] = {
 - [FEAT_PARAM_DSS_FCK]= { 0, 2 },
 + [FEAT_PARAM_DSS_FCK]= { 0, 20925 },
   [FEAT_PARAM_DSS_PCD]= { 1, 255 },
   [FEAT_PARAM_DSIPLL_REGN]= { 0, (1  8) - 1 },
   [FEAT_PARAM_DSIPLL_REGM]= { 0, (1  12) - 1 },
   [FEAT_PARAM_DSIPLL_REGM_DISPC]  = { 0, (1  5) - 1 },
   [FEAT_PARAM_DSIPLL_REGM_DSI]= { 0, (1  5) - 1 },
 - [FEAT_PARAM_DSIPLL_FINT]= { 50, 250 },
 + [FEAT_PARAM_DSIPLL_FINT]= { 15, 5200 },

Just a note, I think the PLL FINT range for OMAP3/4 may be wrong also.
Some TRMs mention the FINT range being up to 52MHz or so. I don't think
it's ever very clearly stated, though...

 Tomi




signature.asc
Description: OpenPGP digital signature


Re: [PATCH v3 3/8] drm/omap: Make fixed resolution panels work

2013-03-27 Thread Archit Taneja

On Wednesday 27 March 2013 12:54 PM, Tomi Valkeinen wrote:

On 2013-03-26 15:45, Archit Taneja wrote:

The omapdrm driver requires omapdss panel drivers to expose ops like detect,
set_timings and check_timings. These can be NULL for fixed panel DPI, DBI, DSI
and SDI drivers. At some places, there are no checks to see if the panel driver
has these ops or not, and that leads to a crash.

The following things are done to make fixed panels work:

- The omap_connector's detect function is modified such that it considers panel
   types which are generally fixed panels as always connected(provided the panel
   driver doesn't have a detect op). Hence, the connector corresponding to these
   panels is always in a 'connected' state.

- If a panel driver doesn't have a check_timings op, assume that it supports the
   mode passed to omap_connector_mode_valid(the 'mode_valid' drm helper 
function)

- The function omap_encoder_update shouldn't really do anything for fixed
   resolution panels, make sure that it calls set_timings only if the panel
   driver has one.

Signed-off-by: Archit Taneja arc...@ti.com
---
v3: clear the timings local variable first before using memcmp
v2: make sure the timings we try to set for a fixed resolution panel match the
 panel's timings

  drivers/gpu/drm/omapdrm/omap_connector.c |   27 +--
  drivers/gpu/drm/omapdrm/omap_encoder.c   |   17 +++--
  2 files changed, 40 insertions(+), 4 deletions(-)

diff --git a/drivers/gpu/drm/omapdrm/omap_connector.c 
b/drivers/gpu/drm/omapdrm/omap_connector.c
index c451c41..912759d 100644
--- a/drivers/gpu/drm/omapdrm/omap_connector.c
+++ b/drivers/gpu/drm/omapdrm/omap_connector.c
@@ -110,6 +110,11 @@ static enum drm_connector_status omap_connector_detect(
ret = connector_status_connected;
else
ret = connector_status_disconnected;
+   } else if (dssdev-type == OMAP_DISPLAY_TYPE_DPI ||
+   dssdev-type == OMAP_DISPLAY_TYPE_DBI ||
+   dssdev-type == OMAP_DISPLAY_TYPE_SDI ||
+   dssdev-type == OMAP_DISPLAY_TYPE_DSI) {
+   ret = connector_status_connected;
} else {
ret = connector_status_unknown;
}


Can we leave this part out? I don't like hardcoding things like that,
and if I'm not mistaken, this only affects VENC.

If the code above would use detect where available, and presume the
panel is connected in other cases, it'll be right for all other displays
but VENC, for which we have no connect information.

Or, there could be a special case for VENC, like above, which sets the
connector status to unknown for that. And connected for all others. It'd
still be hardcoded, but for much less cases.


I guess we can leave the status for VENC as always connected too, if we 
leave it as unknown by default and have no detect func for VENC, it 
would never run with omapdrm.


Archit

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


Re: [PATCH v2 5/8] omapdss: DISPC: add max pixel clock limits for LCD and TV managers

2013-03-27 Thread Archit Taneja

On Wednesday 27 March 2013 01:00 PM, Tomi Valkeinen wrote:

On 2013-03-26 15:45, Archit Taneja wrote:

Each version of OMAP has a limitation on the maximum pixel clock frequency
supported by an overlay manager. This limit isn't checked by omapdss. Add
dispc feats for lcd and tv managers and check whether the target timings can
be supported or not.

The pixel clock limitations are actually more complex. They depend on which OPP
OMAP is in, and they also depend on which encoder is the manager connected to.
The OPP dependence is ignored as DSS forces the PM framework to be on OPP100
when DSS is enabled, and the encoder dependencies are ignored by DISPC for now.
These limits should come from the encoder driver.

The OMAP2 TRM doesn't mention the maximum pixel clock limit. This value is left
as half of DSS_FCLK, as OMAP2 requires the PCD to be atleast 2.

Signed-off-by: Archit Taneja arc...@ti.com
---
  drivers/video/omap2/dss/dispc.c |   32 +++-
  1 file changed, 27 insertions(+), 5 deletions(-)

diff --git a/drivers/video/omap2/dss/dispc.c b/drivers/video/omap2/dss/dispc.c
index 8cfa27b..73a730a 100644
--- a/drivers/video/omap2/dss/dispc.c
+++ b/drivers/video/omap2/dss/dispc.c
@@ -69,6 +69,8 @@ struct dispc_features {
u8 mgr_height_start;
u16 mgr_width_max;
u16 mgr_height_max;
+   unsigned long max_lcd_pclk;
+   unsigned long max_tv_pclk;
int (*calc_scaling) (unsigned long pclk, unsigned long lclk,
const struct omap_video_timings *mgr_timings,
u16 width, u16 height, u16 out_width, u16 out_height,
@@ -2825,6 +2827,15 @@ static bool _dispc_lcd_timings_ok(int hsw, int hfp, int 
hbp,
return true;
  }

+static bool _dispc_mgr_pclk_ok(enum omap_channel channel,
+   unsigned long pclk)
+{
+   if (dss_mgr_is_lcd(channel))
+   return pclk = dispc.feat-max_lcd_pclk ? true : false;
+   else
+   return pclk = dispc.feat-max_tv_pclk ? true : false;
+}
+
  bool dispc_mgr_timings_ok(enum omap_channel channel,
const struct omap_video_timings *timings)
  {
@@ -2832,11 +2843,13 @@ bool dispc_mgr_timings_ok(enum omap_channel channel,

timings_ok = _dispc_mgr_size_ok(timings-x_res, timings-y_res);

-   if (dss_mgr_is_lcd(channel))
-   timings_ok =  timings_ok  _dispc_lcd_timings_ok(timings-hsw,
-   timings-hfp, timings-hbp,
-   timings-vsw, timings-vfp,
-   timings-vbp);
+   timings_ok = _dispc_mgr_pclk_ok(channel, timings-pixel_clock * 1000);
+
+   if (dss_mgr_is_lcd(channel)) {
+   timings_ok = _dispc_lcd_timings_ok(timings-hsw, timings-hfp,
+   timings-hbp, timings-vsw, timings-vfp,
+   timings-vbp);
+   }

return timings_ok;
  }
@@ -3491,6 +3504,7 @@ static const struct dispc_features omap24xx_dispc_feats 
__initconst = {
.mgr_height_start   =   26,
.mgr_width_max  =   2048,
.mgr_height_max =   2048,
+   .max_lcd_pclk   =   6650,
.calc_scaling   =   dispc_ovl_calc_scaling_24xx,
.calc_core_clk  =   calc_core_clk_24xx,
.num_fifos  =   3,


OMAP2 has VENC output, but there's no max_tv_pclk above. This would make
VENC pclk check to fail always, wouldn't it?


oops, I missed adding it for omap2, will fix it.

Archit

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


Re: [PATCH v2 6/8] omapdss: Features: Fix some parameter ranges

2013-03-27 Thread Archit Taneja

On Wednesday 27 March 2013 01:03 PM, Tomi Valkeinen wrote:

On 2013-03-26 15:45, Archit Taneja wrote:

Increase the DSS_FCLK and DSI_FCLK max supported frequencies, these come because
some frequencies were increased from OMAP5 ES1 to OMAP5 ES2. We support only
OMAP5 ES2 in the kernel, so replace the ES1 values with ES2 values. Increase the
DSI PLL Fint range, this was previously just copied from the OMAP4 param range
struct.

Fix the maximum DSS_FCLK on OMAP2, it's 133 Mhz according to the TRM.

Signed-off-by: Archit Taneja arc...@ti.com
---
  drivers/video/omap2/dss/dss_features.c |8 
  1 file changed, 4 insertions(+), 4 deletions(-)

diff --git a/drivers/video/omap2/dss/dss_features.c 
b/drivers/video/omap2/dss/dss_features.c
index 7f791ae..77dbe0c 100644
--- a/drivers/video/omap2/dss/dss_features.c
+++ b/drivers/video/omap2/dss/dss_features.c
@@ -414,7 +414,7 @@ static const char * const omap5_dss_clk_source_names[] = {
  };

  static const struct dss_param_range omap2_dss_param_range[] = {
-   [FEAT_PARAM_DSS_FCK]= { 0, 17300 },
+   [FEAT_PARAM_DSS_FCK]= { 0, 13300 },
[FEAT_PARAM_DSS_PCD]= { 2, 255 },
[FEAT_PARAM_DSIPLL_REGN]= { 0, 0 },
[FEAT_PARAM_DSIPLL_REGM]= { 0, 0 },
@@ -459,15 +459,15 @@ static const struct dss_param_range 
omap4_dss_param_range[] = {
  };

  static const struct dss_param_range omap5_dss_param_range[] = {
-   [FEAT_PARAM_DSS_FCK]= { 0, 2 },
+   [FEAT_PARAM_DSS_FCK]= { 0, 20925 },
[FEAT_PARAM_DSS_PCD]= { 1, 255 },
[FEAT_PARAM_DSIPLL_REGN]= { 0, (1  8) - 1 },
[FEAT_PARAM_DSIPLL_REGM]= { 0, (1  12) - 1 },
[FEAT_PARAM_DSIPLL_REGM_DISPC]  = { 0, (1  5) - 1 },
[FEAT_PARAM_DSIPLL_REGM_DSI]= { 0, (1  5) - 1 },
-   [FEAT_PARAM_DSIPLL_FINT]= { 50, 250 },
+   [FEAT_PARAM_DSIPLL_FINT]= { 15, 5200 },


Just a note, I think the PLL FINT range for OMAP3/4 may be wrong also.
Some TRMs mention the FINT range being up to 52MHz or so. I don't think
it's ever very clearly stated, though...


I'll drop the FINT range modification for now. It's not that critical 
anyway since we manage to lock the PLL for most frequencies anyway. I'll 
do an update later after reading more detailed specs of the PLL.


Archit

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


Re: [PATCH v2 0/8] omapdss/omapdrm: Misc fixes and improvements

2013-03-27 Thread Tomi Valkeinen
On 2013-03-26 15:45, Archit Taneja wrote:
 These are misc fixes and improvements within omapdrm and omapdss. The fixes 
 do the
 following:
 
 - Make omapdrm smarter to choose the right overlay managers as it's crtcs. 
 This
   makes sure that omapdrm is functional for OMAP platforms with different
   combinations of panels connected to it.
 
 - Fix certain areas in omapdrm which allow fixed resolution panels to work.
 
 - Fix functional and pixel clock limits for DISPC, this ensures we don't try
   to try a mode that the hardware can't support.
 
 - Some changes that came in OMAP5 ES2 silicon.
 
 Note: The branch is based on the DSS misc series and dsi video mode calc 
 series
 posted by Tomi. Reference branch:
 
 git://gitorious.org/~boddob/linux-omap-dss2/archit-dss2-clone.git 
 for-3.10/misc_drm_dss

Which of the fixes should go for 3.9? We need those separately, based on
the mainline.

 Tomi




signature.asc
Description: OpenPGP digital signature


Re: [PATCH v2 0/8] omapdss/omapdrm: Misc fixes and improvements

2013-03-27 Thread Archit Taneja

On Wednesday 27 March 2013 01:24 PM, Tomi Valkeinen wrote:

On 2013-03-26 15:45, Archit Taneja wrote:

These are misc fixes and improvements within omapdrm and omapdss. The fixes do 
the
following:

- Make omapdrm smarter to choose the right overlay managers as it's crtcs. This
   makes sure that omapdrm is functional for OMAP platforms with different
   combinations of panels connected to it.

- Fix certain areas in omapdrm which allow fixed resolution panels to work.

- Fix functional and pixel clock limits for DISPC, this ensures we don't try
   to try a mode that the hardware can't support.

- Some changes that came in OMAP5 ES2 silicon.

Note: The branch is based on the DSS misc series and dsi video mode calc series
posted by Tomi. Reference branch:

git://gitorious.org/~boddob/linux-omap-dss2/archit-dss2-clone.git 
for-3.10/misc_drm_dss


Which of the fixes should go for 3.9? We need those separately, based on
the mainline.


The most important fix is omapdrm change which allocates crtcs in a 
better way, but it needs the 'dispc_channel' parameter in outputs, so 
that can't go.


We could queue patches 7 and 8 for 3.9, they are 2 things which we would 
want to have in 3.9 itself. These should apply on mainline directly.


Archit

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


[RFC 01/14] ARM: OMAP: remove DSS DT hack

2013-03-27 Thread Tomi Valkeinen
As a temporary solution to enable DSS for selected boards when booting
with DT, a hack was added to board-generic.c in
63d5fc0c2f748e20f38a0a0ec1c8494bddf5c288 (OMAP: board-generic: enable
DSS for panda  sdp boards).

We're now adding proper DT support, so the hack can be removed.

Signed-off-by: Tomi Valkeinen tomi.valkei...@ti.com
---
 arch/arm/mach-omap2/board-generic.c |8 
 arch/arm/mach-omap2/dss-common.c|   24 
 arch/arm/mach-omap2/dss-common.h|2 --
 3 files changed, 34 deletions(-)

diff --git a/arch/arm/mach-omap2/board-generic.c 
b/arch/arm/mach-omap2/board-generic.c
index e54a480..a61544b 100644
--- a/arch/arm/mach-omap2/board-generic.c
+++ b/arch/arm/mach-omap2/board-generic.c
@@ -41,14 +41,6 @@ static void __init omap_generic_init(void)
 
of_platform_populate(NULL, omap_dt_match_table, NULL, NULL);
 
-   /*
-* HACK: call display setup code for selected boards to enable omapdss.
-* This will be removed when omapdss supports DT.
-*/
-   if (of_machine_is_compatible(ti,omap4-panda))
-   omap4_panda_display_init_of();
-   else if (of_machine_is_compatible(ti,omap4-sdp))
-   omap_4430sdp_display_init_of();
 }
 
 #ifdef CONFIG_SOC_OMAP2420
diff --git a/arch/arm/mach-omap2/dss-common.c b/arch/arm/mach-omap2/dss-common.c
index a10c56b..78e409a 100644
--- a/arch/arm/mach-omap2/dss-common.c
+++ b/arch/arm/mach-omap2/dss-common.c
@@ -93,13 +93,6 @@ void __init omap4_panda_display_init(void)
omap_mux_init_gpio(HDMI_GPIO_HPD, OMAP_PIN_INPUT_PULLDOWN);
 }
 
-void __init omap4_panda_display_init_of(void)
-{
-   omap_display_init(omap4_panda_dss_data);
-   platform_device_register(omap4_panda_tfp410_device);
-   platform_device_register(omap4_panda_hdmi_device);
-}
-
 
 /* OMAP4 Blaze display data */
 
@@ -242,20 +235,3 @@ void __init omap_4430sdp_display_init(void)
omap_mux_init_gpio(HDMI_GPIO_CT_CP_HPD, OMAP_PIN_OUTPUT);
omap_mux_init_gpio(HDMI_GPIO_HPD, OMAP_PIN_INPUT_PULLDOWN);
 }
-
-void __init omap_4430sdp_display_init_of(void)
-{
-   int r;
-
-   /* Enable LCD2 by default (instead of Pico DLP) */
-   r = gpio_request_one(DISPLAY_SEL_GPIO, GPIOF_OUT_INIT_HIGH,
-   display_sel);
-   if (r)
-   pr_err(%s: Could not get display_sel GPIO\n, __func__);
-
-   sdp4430_picodlp_init();
-   omap_display_init(sdp4430_dss_data);
-   platform_device_register(sdp4430_hdmi_device);
-   platform_device_register(sdp4430_lcd1_device);
-   platform_device_register(sdp4430_lcd2_device);
-}
diff --git a/arch/arm/mach-omap2/dss-common.h b/arch/arm/mach-omap2/dss-common.h
index 915f6ff..611b341 100644
--- a/arch/arm/mach-omap2/dss-common.h
+++ b/arch/arm/mach-omap2/dss-common.h
@@ -7,8 +7,6 @@
  */
 
 void __init omap4_panda_display_init(void);
-void __init omap4_panda_display_init_of(void);
 void __init omap_4430sdp_display_init(void);
-void __init omap_4430sdp_display_init_of(void);
 
 #endif
-- 
1.7.10.4

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


[RFC 00/14] Add DT support to OMAPDSS

2013-03-27 Thread Tomi Valkeinen
Hi,

This is an RFC for OMAPDSS DT support. I've only added support for a few boards
and a few DSS outputs, but they should give quite a good range of different use
cases. If these work well, I think the rest of the outputs and panels will be
ok too.

The purpose of this series is to get comments about the dts changes. There are
still work to be done, like adding DT binding documentation.

Some notes:

* DSS Submodules

The DSS submodules are children of the dss_core node. This is done because the
submodules require the dss_core to be alive and initialized to work, even if
the submodules are not really behind dss_core. Having the submodules as
children will make runtime PM automatically handle the dependency to dss_core.
I think usually a node being a child means that it's on the parent's bus, which
is not the case here. I'm not sure if that's an issue or not.

* ti,dsi-module-id

There's a ti,dsi-module-id property in the dsi node. The reason for this
module-id property is that we have muxes in the dss_core that route clocks
to/from a particular DSI module. So we need some way to index the DSI modules.
Another option would be to have a list of DSI modules (phandles) in the
dss_core. Both options feel a bit wrong to me, but I went for the module-id
approach as that is already used when not using DT.

* Display chains

Currently omapdss driver can handle only one display device connected to one
OMAP SoC output. This is not right in many cases, as there may be multiple
display devices in a chain, like first an external encoder and then a panel.
However, I tried to model this right in the dts. 

So, for example, for Panda HDMI output we have the following display entities
in a chain: OMAP SoC HDMI output, TPD12S015 ESD/level shifter, and HDMI
connector. These are connected using the video-source property, which tells
where the component in question gets its video data.

You could ask why there's a separate node for HDMI connector. It's true it's
not really a proper device, but we need some kind of terminator for the display
chains. For HDMI we could as well have an embedded solution, having a chain
like this: SoC HDMI, TPD12S015, hardwired embedded HDMI panel. So the connector
marks the end of the chain, and acts as a panel in a sense.

* DSI lanes

The DSI panels contain lanes property, which tells how the SoCs DSI pins are
connected to the DSI panel. I'm not sure if the panel data is the proper place
for this, or should the data be separately for the OMAP DSI node.

 Tomi

Tomi Valkeinen (14):
  ARM: OMAP: remove DSS DT hack
  ARM: OMAP2+: add omapdss_init_of()
  OMAPDSS: Add DT support to DSS, DISPC, DPI
  OMAPDSS: Add DT support to DSI
  OMAPDSS: Add DT support to HDMI
  OMAPDSS: Taal: Add DT support
  OMAPDSS: TFP410: Add DT support
  OMAPDSS: panel-generic-dpi: add DT support
  ARM: omap3.dtsi: add omapdss information
  ARM: omap4.dtsi: add omapdss information
  ARM: omap4-panda.dts: add display information
  ARM: omap4-sdp.dts: add display information
  ARM: omap3-tobi.dts: add lcd (TEST)
  ARM: omap3-beagle.dts: add TFP410

 arch/arm/boot/dts/omap3-beagle.dts   |   20 +
 arch/arm/boot/dts/omap3-tobi.dts |   13 
 arch/arm/boot/dts/omap3.dtsi |   49 
 arch/arm/boot/dts/omap4-panda.dts|   44 +++
 arch/arm/boot/dts/omap4-sdp.dts  |   64 
 arch/arm/boot/dts/omap4.dtsi |   71 +
 arch/arm/mach-omap2/board-generic.c  |9 +--
 arch/arm/mach-omap2/common.h |2 +
 arch/arm/mach-omap2/display.c|   34 +
 arch/arm/mach-omap2/dss-common.c |   24 --
 arch/arm/mach-omap2/dss-common.h |2 -
 drivers/video/omap2/displays/panel-generic-dpi.c |   47 
 drivers/video/omap2/displays/panel-taal.c|   89 ++
 drivers/video/omap2/displays/panel-tfp410.c  |   71 +
 drivers/video/omap2/dss/dispc.c  |7 ++
 drivers/video/omap2/dss/dpi.c|8 ++
 drivers/video/omap2/dss/dsi.c|   24 +-
 drivers/video/omap2/dss/dss.c|7 ++
 drivers/video/omap2/dss/hdmi.c   |7 ++
 drivers/video/omap2/dss/hdmi_panel.c |   86 -
 20 files changed, 641 insertions(+), 37 deletions(-)

-- 
1.7.10.4

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


[RFC 02/14] ARM: OMAP2+: add omapdss_init_of()

2013-03-27 Thread Tomi Valkeinen
omapdss driver uses a omapdss platform device to pass platform specific
function pointers and DSS hardware version from the arch code to the
driver. This device is needed also when booting with DT.

This patch adds omapdss_init_of() function, called from board-generic at
init time, which creates the omapdss device.

Signed-off-by: Tomi Valkeinen tomi.valkei...@ti.com
---
 arch/arm/mach-omap2/board-generic.c |1 +
 arch/arm/mach-omap2/common.h|2 ++
 arch/arm/mach-omap2/display.c   |   34 ++
 3 files changed, 37 insertions(+)

diff --git a/arch/arm/mach-omap2/board-generic.c 
b/arch/arm/mach-omap2/board-generic.c
index a61544b..29eb085 100644
--- a/arch/arm/mach-omap2/board-generic.c
+++ b/arch/arm/mach-omap2/board-generic.c
@@ -41,6 +41,7 @@ static void __init omap_generic_init(void)
 
of_platform_populate(NULL, omap_dt_match_table, NULL, NULL);
 
+   omapdss_init_of();
 }
 
 #ifdef CONFIG_SOC_OMAP2420
diff --git a/arch/arm/mach-omap2/common.h b/arch/arm/mach-omap2/common.h
index 40f4a03..e9ac1fd 100644
--- a/arch/arm/mach-omap2/common.h
+++ b/arch/arm/mach-omap2/common.h
@@ -293,5 +293,7 @@ extern void omap_reserve(void);
 struct omap_hwmod;
 extern int omap_dss_reset(struct omap_hwmod *);
 
+int __init omapdss_init_of(void);
+
 #endif /* __ASSEMBLER__ */
 #endif /* __ARCH_ARM_MACH_OMAP2PLUS_COMMON_H */
diff --git a/arch/arm/mach-omap2/display.c b/arch/arm/mach-omap2/display.c
index ff37be1..c62aee0 100644
--- a/arch/arm/mach-omap2/display.c
+++ b/arch/arm/mach-omap2/display.c
@@ -23,6 +23,8 @@
 #include linux/clk.h
 #include linux/err.h
 #include linux/delay.h
+#include linux/of.h
+#include linux/of_platform.h
 
 #include video/omapdss.h
 #include omap_hwmod.h
@@ -564,3 +566,35 @@ int omap_dss_reset(struct omap_hwmod *oh)
 
return r;
 }
+
+int __init omapdss_init_of(void)
+{
+   int r;
+   enum omapdss_version ver;
+
+   static struct omap_dss_board_info board_data = {
+   .dsi_enable_pads = omap_dsi_enable_pads,
+   .dsi_disable_pads = omap_dsi_disable_pads,
+   .get_context_loss_count = omap_pm_get_dev_context_loss_count,
+   .set_min_bus_tput = omap_dss_set_min_bus_tput,
+   };
+
+   ver = omap_display_get_version();
+
+   if (ver == OMAPDSS_VER_UNKNOWN) {
+   pr_err(DSS not supported on this SoC\n);
+   return -ENODEV;
+   }
+
+   board_data.version = ver;
+
+   omap_display_device.dev.platform_data = board_data;
+
+   r = platform_device_register(omap_display_device);
+   if (r  0) {
+   pr_err(Unable to register omapdss device\n);
+   return r;
+   }
+
+   return 0;
+}
-- 
1.7.10.4

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


[RFC 03/14] OMAPDSS: Add DT support to DSS, DISPC, DPI

2013-03-27 Thread Tomi Valkeinen
Add the code to make DSS, DISPC and DPI drivers work with device tree on
OMAP3 and OMAP4. The only change is adding the of_match_tables.

Signed-off-by: Tomi Valkeinen tomi.valkei...@ti.com
---
 drivers/video/omap2/dss/dispc.c |7 +++
 drivers/video/omap2/dss/dpi.c   |8 
 drivers/video/omap2/dss/dss.c   |7 +++
 3 files changed, 22 insertions(+)

diff --git a/drivers/video/omap2/dss/dispc.c b/drivers/video/omap2/dss/dispc.c
index 8cfa27b..be53d64 100644
--- a/drivers/video/omap2/dss/dispc.c
+++ b/drivers/video/omap2/dss/dispc.c
@@ -3705,12 +3705,19 @@ static const struct dev_pm_ops dispc_pm_ops = {
.runtime_resume = dispc_runtime_resume,
 };
 
+static const struct of_device_id dispc_of_match[] = {
+   { .compatible = ti,omap3-dispc, },
+   { .compatible = ti,omap4-dispc, },
+   {},
+};
+
 static struct platform_driver omap_dispchw_driver = {
.remove = __exit_p(omap_dispchw_remove),
.driver = {
.name   = omapdss_dispc,
.owner  = THIS_MODULE,
.pm = dispc_pm_ops,
+   .of_match_table = dispc_of_match,
},
 };
 
diff --git a/drivers/video/omap2/dss/dpi.c b/drivers/video/omap2/dss/dpi.c
index e7beea2..dc7e324 100644
--- a/drivers/video/omap2/dss/dpi.c
+++ b/drivers/video/omap2/dss/dpi.c
@@ -30,6 +30,7 @@
 #include linux/platform_device.h
 #include linux/regulator/consumer.h
 #include linux/string.h
+#include linux/of.h
 
 #include video/omapdss.h
 
@@ -765,11 +766,18 @@ static int __exit omap_dpi_remove(struct platform_device 
*pdev)
return 0;
 }
 
+static const struct of_device_id dpi_of_match[] = {
+   { .compatible = ti,omap3-dpi, },
+   { .compatible = ti,omap4-dpi, },
+   {},
+};
+
 static struct platform_driver omap_dpi_driver = {
.remove = __exit_p(omap_dpi_remove),
.driver = {
.name   = omapdss_dpi,
.owner  = THIS_MODULE,
+   .of_match_table = dpi_of_match,
},
 };
 
diff --git a/drivers/video/omap2/dss/dss.c b/drivers/video/omap2/dss/dss.c
index 62db201..dc721f4 100644
--- a/drivers/video/omap2/dss/dss.c
+++ b/drivers/video/omap2/dss/dss.c
@@ -962,12 +962,19 @@ static const struct dev_pm_ops dss_pm_ops = {
.runtime_resume = dss_runtime_resume,
 };
 
+static const struct of_device_id dss_of_match[] = {
+   { .compatible = ti,omap3-dss, },
+   { .compatible = ti,omap4-dss, },
+   {},
+};
+
 static struct platform_driver omap_dsshw_driver = {
.remove = __exit_p(omap_dsshw_remove),
.driver = {
.name   = omapdss_dss,
.owner  = THIS_MODULE,
.pm = dss_pm_ops,
+   .of_match_table = dss_of_match,
},
 };
 
-- 
1.7.10.4

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


[RFC 04/14] OMAPDSS: Add DT support to DSI

2013-03-27 Thread Tomi Valkeinen
Add the code to make the DSI driver work with device tree on OMAP3 and
OMAP4. The of_match_table is added, and also a bit hacky
ti,dsi-module-id DT property, which tells the DSI ID number.

Signed-off-by: Tomi Valkeinen tomi.valkei...@ti.com
---
 drivers/video/omap2/dss/dsi.c |   24 +++-
 1 file changed, 23 insertions(+), 1 deletion(-)

diff --git a/drivers/video/omap2/dss/dsi.c b/drivers/video/omap2/dss/dsi.c
index fb77aa8..1058cab 100644
--- a/drivers/video/omap2/dss/dsi.c
+++ b/drivers/video/omap2/dss/dsi.c
@@ -38,6 +38,7 @@
 #include linux/slab.h
 #include linux/debugfs.h
 #include linux/pm_runtime.h
+#include linux/of.h
 
 #include video/omapdss.h
 #include video/mipi_display.h
@@ -5541,7 +5542,20 @@ static int __init omap_dsihw_probe(struct 
platform_device *dsidev)
if (!dsi)
return -ENOMEM;
 
-   dsi-module_id = dsidev-id;
+   if (dsidev-dev.of_node) {
+   u32 id;
+   r = of_property_read_u32(dsidev-dev.of_node,
+   ti,dsi-module-id, id);
+   if (r) {
+   DSSERR(failed to read DSI module ID\n);
+   return r;
+   }
+
+   dsi-module_id = id;
+   } else {
+   dsi-module_id = dsidev-id;
+   }
+
dsi-pdev = dsidev;
dev_set_drvdata(dsidev-dev, dsi);
 
@@ -5642,6 +5656,7 @@ static int __init omap_dsihw_probe(struct platform_device 
*dsidev)
else if (dsi-module_id == 1)
dss_debugfs_create_file(dsi2_irqs, dsi2_dump_irqs);
 #endif
+
return 0;
 
 err_runtime_get:
@@ -5700,12 +5715,19 @@ static const struct dev_pm_ops dsi_pm_ops = {
.runtime_resume = dsi_runtime_resume,
 };
 
+static const struct of_device_id dsi_of_match[] = {
+   { .compatible = ti,omap3-dsi, },
+   { .compatible = ti,omap4-dsi, },
+   {},
+};
+
 static struct platform_driver omap_dsihw_driver = {
.remove = __exit_p(omap_dsihw_remove),
.driver = {
.name   = omapdss_dsi,
.owner  = THIS_MODULE,
.pm = dsi_pm_ops,
+   .of_match_table = dsi_of_match,
},
 };
 
-- 
1.7.10.4

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


[RFC 05/14] OMAPDSS: Add DT support to HDMI

2013-03-27 Thread Tomi Valkeinen
Add the code to make the HDMI driver work with device tree.

The OMAP SoC HDMI (hdmi.c) change is simple, just add of_match_table.

The hdmi_panel.c is a bit more complex. We model both the TPD12S015 chip
and the HDMI connector, and handle both in the same driver. In the
future those should be separate drivers.

Signed-off-by: Tomi Valkeinen tomi.valkei...@ti.com
---
 drivers/video/omap2/dss/hdmi.c   |7 +++
 drivers/video/omap2/dss/hdmi_panel.c |   86 +-
 2 files changed, 91 insertions(+), 2 deletions(-)

diff --git a/drivers/video/omap2/dss/hdmi.c b/drivers/video/omap2/dss/hdmi.c
index f9e38c4..e7a18d3 100644
--- a/drivers/video/omap2/dss/hdmi.c
+++ b/drivers/video/omap2/dss/hdmi.c
@@ -34,6 +34,7 @@
 #include linux/clk.h
 #include linux/gpio.h
 #include linux/regulator/consumer.h
+#include linux/of_gpio.h
 #include video/omapdss.h
 
 #include ti_hdmi.h
@@ -1202,12 +1203,18 @@ static const struct dev_pm_ops hdmi_pm_ops = {
.runtime_resume = hdmi_runtime_resume,
 };
 
+static const struct of_device_id hdmi_of_match[] = {
+   { .compatible = ti,omap4-hdmi, },
+   {},
+};
+
 static struct platform_driver omapdss_hdmihw_driver = {
.remove = __exit_p(omapdss_hdmihw_remove),
.driver = {
.name   = omapdss_hdmi,
.owner  = THIS_MODULE,
.pm = hdmi_pm_ops,
+   .of_match_table = hdmi_of_match,
},
 };
 
diff --git a/drivers/video/omap2/dss/hdmi_panel.c 
b/drivers/video/omap2/dss/hdmi_panel.c
index bc4dea3..8dffd5d 100644
--- a/drivers/video/omap2/dss/hdmi_panel.c
+++ b/drivers/video/omap2/dss/hdmi_panel.c
@@ -27,12 +27,16 @@
 #include video/omapdss.h
 #include linux/slab.h
 #include linux/platform_device.h
+#include linux/of.h
+#include linux/of_gpio.h
 
 #include dss.h
 
 static struct {
struct omap_dss_device dssdev;
 
+   struct omap_dss_hdmi_data pdata;
+
/* This protects the panel ops, mainly when accessing the HDMI IP. */
struct mutex lock;
 #if defined(CONFIG_OMAP4_DSS_HDMI_AUDIO)
@@ -43,6 +47,62 @@ static struct {
 
 static struct omap_dss_driver hdmi_driver;
 
+static int hdmi_panel_probe_pdata(struct platform_device *pdev)
+{
+   const struct omap_dss_hdmi_data *pdata = dev_get_platdata(pdev-dev);
+
+   hdmi.pdata = *pdata;
+
+   return 0;
+}
+
+static int hdmi_parse_tpd12s015_of(struct device_node *node,
+   struct omap_dss_hdmi_data *pdata)
+{
+   int gpio;
+
+   gpio = of_get_gpio(node, 0);/* CT CP HPD */
+   if (!gpio_is_valid(gpio))
+   return -EINVAL;
+   pdata-ct_cp_hpd_gpio = gpio;
+
+   gpio = of_get_gpio(node, 1);/* LS OE */
+   if (!gpio_is_valid(gpio))
+   return -EINVAL;
+   pdata-ls_oe_gpio = gpio;
+
+   gpio = of_get_gpio(node, 2);/* HPD */
+   if (!gpio_is_valid(gpio))
+   return -EINVAL;
+   pdata-hpd_gpio = gpio;
+
+   return 0;
+}
+
+static int hdmi_panel_probe_of(struct platform_device *pdev)
+{
+   struct device_node *node = pdev-dev.of_node;
+   struct device_node *src_node;
+   int r;
+
+   /*
+* We don't have a real driver for the TPD12S015 chip, but it is
+* modeled right in the DT data. So we need to parse the TPD12S015 data
+* here.
+*/
+   src_node = of_parse_phandle(node, video-source, 0);
+   if (!src_node) {
+   dev_err(pdev-dev, failed to parse video source\n);
+   return -ENODEV;
+   }
+
+   r = hdmi_parse_tpd12s015_of(src_node, hdmi.pdata);
+   if (r)
+   return r;
+
+   return 0;
+}
+
 static int hdmi_panel_probe(struct platform_device *pdev)
 {
/* Initialize default timings to VGA in DVI mode */
@@ -63,12 +123,28 @@ static int hdmi_panel_probe(struct platform_device *pdev)
.interlace  = false,
};
 
-   struct omap_dss_hdmi_data *pdata = dev_get_platdata(pdev-dev);
struct omap_dss_device *dssdev = hdmi.dssdev;
int r;
 
DSSDBG(ENTER hdmi_panel_probe\n);
 
+   if (dev_get_platdata(pdev-dev)) {
+   r = hdmi_panel_probe_pdata(pdev);
+   if (r) {
+   dev_err(pdev-dev, failed to read platform data\n);
+   return r;
+   }
+   } else if (pdev-dev.of_node) {
+   r = hdmi_panel_probe_of(pdev);
+   if (r) {
+   dev_err(pdev-dev, failed to parse OF data\n);
+   return r;
+   }
+   } else {
+   return -ENODEV;
+   }
+
+
dssdev-panel.timings = default_timings;
dssdev-driver = hdmi_driver;
dssdev-name = hdmi;
@@ -78,7 +154,7 @@ static int hdmi_panel_probe(struct platform_device *pdev)
 * XXX for now, the hdmi panel's platform data contains the gpios for
 * the tpd level shifter chip, so we pass this data 

[RFC 06/14] OMAPDSS: Taal: Add DT support

2013-03-27 Thread Tomi Valkeinen
Add DT support to Taal panel driver.

Signed-off-by: Tomi Valkeinen tomi.valkei...@ti.com
---
 drivers/video/omap2/displays/panel-taal.c |   89 +
 1 file changed, 89 insertions(+)

diff --git a/drivers/video/omap2/displays/panel-taal.c 
b/drivers/video/omap2/displays/panel-taal.c
index 01de2a9..f8771da 100644
--- a/drivers/video/omap2/displays/panel-taal.c
+++ b/drivers/video/omap2/displays/panel-taal.c
@@ -32,6 +32,8 @@
 #include linux/slab.h
 #include linux/mutex.h
 #include linux/platform_device.h
+#include linux/of_device.h
+#include linux/of_gpio.h
 
 #include video/omapdss.h
 #include video/omap-panel-nokia-dsi.h
@@ -788,6 +790,81 @@ static int taal_probe_pdata(struct platform_device *pdev)
return 0;
 }
 
+static int taal_probe_of(struct platform_device *pdev)
+{
+   struct device_node *node = pdev-dev.of_node;
+   struct taal_data *td = dev_get_drvdata(pdev-dev);
+   struct property *prop;
+   struct device_node *src_node;
+   u32 lane_arr[10];
+   int gpio, len, num_pins;
+   int r, i;
+
+   src_node = of_parse_phandle(node, video-source, 0);
+   if (!src_node) {
+   dev_err(pdev-dev, failed to parse video source\n);
+   return -ENODEV;
+   }
+
+   td-src = omap_dss_find_output_by_node(src_node);
+   if (!td-src) {
+   dev_err(pdev-dev, failed to find video source\n);
+   return -ENODEV;
+   }
+
+   gpio = of_get_gpio(node, 0);
+
+   if (gpio_is_valid(gpio)) {
+   td-reset_gpio = gpio;
+   } else {
+   dev_err(pdev-dev, failed to parse reset gpio\n);
+   return gpio;
+   }
+
+   if (of_gpio_count(node)  1) {
+   gpio = of_get_gpio(node, 1);
+
+   if (gpio_is_valid(gpio)) {
+   td-ext_te_gpio = gpio;
+   } else if (gpio == -ENOENT) {
+   td-ext_te_gpio = -1;
+   } else {
+   dev_err(pdev-dev, failed to parse TE gpio\n);
+   return gpio;
+   }
+   } else {
+   td-ext_te_gpio = -1;
+   }
+
+   prop = of_find_property(node, lanes, len);
+   if (prop == NULL) {
+   dev_err(pdev-dev, failed to find lane data\n);
+   return -EINVAL;
+   }
+
+   num_pins = len / sizeof(u32);
+
+   if (num_pins  4 || num_pins % 2 != 0
+   || num_pins  ARRAY_SIZE(lane_arr)) {
+   dev_err(pdev-dev, bad number of lanes\n);
+   return -EINVAL;
+   }
+
+   r = of_property_read_u32_array(node, lanes, lane_arr, num_pins);
+   if (r) {
+   dev_err(pdev-dev, failed to read lane data\n);
+   return r;
+   }
+
+   td-pin_config.num_pins = num_pins;
+   for (i = 0; i  num_pins; ++i)
+   td-pin_config.pins[i] = (int)lane_arr[i];
+
+   td-dssdev.name = node-name;
+
+   return 0;
+}
+
 static int taal_probe(struct platform_device *pdev)
 {
const struct nokia_dsi_panel_data *pdata = dev_get_platdata(pdev-dev);
@@ -813,6 +890,12 @@ static int taal_probe(struct platform_device *pdev)
dev_err(pdev-dev, failed to read platform data\n);
return r;
}
+   } else if (pdev-dev.of_node) {
+   r = taal_probe_of(pdev);
+   if (r) {
+   dev_err(pdev-dev, failed to parse OF data\n);
+   return r;
+   }
} else {
return -ENODEV;
}
@@ -1576,12 +1659,18 @@ static struct omap_dss_driver taal_driver = {
.memory_read= taal_memory_read,
 };
 
+static const struct of_device_id taal_of_match[] = {
+   { .compatible = tpo,taal, },
+   {},
+};
+
 static struct platform_driver taal_platform_driver = {
.probe  = taal_probe,
.remove = __exit_p(taal_remove),
.driver = {
.name   = taal,
.owner  = THIS_MODULE,
+   .of_match_table = taal_of_match,
},
 };
 
-- 
1.7.10.4

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


[RFC 11/14] ARM: omap4-panda.dts: add display information

2013-03-27 Thread Tomi Valkeinen
Signed-off-by: Tomi Valkeinen tomi.valkei...@ti.com
---
 arch/arm/boot/dts/omap4-panda.dts |   44 +
 1 file changed, 44 insertions(+)

diff --git a/arch/arm/boot/dts/omap4-panda.dts 
b/arch/arm/boot/dts/omap4-panda.dts
index 4122efe..45dd40a 100644
--- a/arch/arm/boot/dts/omap4-panda.dts
+++ b/arch/arm/boot/dts/omap4-panda.dts
@@ -206,3 +206,47 @@
 twl_usb_comparator {
usb-supply = vusb;
 };
+
+dsi1 {
+   vdds_dsi-supply = vcxio;
+};
+
+dsi2 {
+   vdds_dsi-supply = vcxio;
+};
+
+hdmi {
+   vdda_hdmi_dac-supply = vdac;
+};
+
+/ {
+   tfp410: tfp410 {
+   compatible = ti,tfp410;
+   video-source = dpi;
+   data-lines = 24;
+   gpios = gpio1 0 0;   /* 0, power-down */
+   i2c-bus = i2c3;
+   };
+
+   dvi {
+   compatible = ti,dvi_connector;
+
+   video-source = tfp410;
+   };
+
+   tpd12s015: tpd12s015 {
+   compatible = ti,tpd12s015;
+
+   video-source = hdmi;
+
+   gpios = gpio2 28 0,  /* 60, CT CP HPD */
+   gpio2 9 0,   /* 41, LS OE */
+   gpio2 31 0;  /* 63, HPD */
+   };
+
+   hdmi {
+   compatible = ti,hdmi_connector;
+
+   video-source = tpd12s015;
+   };
+};
-- 
1.7.10.4

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


[RFC 12/14] ARM: omap4-sdp.dts: add display information

2013-03-27 Thread Tomi Valkeinen
Signed-off-by: Tomi Valkeinen tomi.valkei...@ti.com
---
 arch/arm/boot/dts/omap4-sdp.dts |   64 +++
 1 file changed, 64 insertions(+)

diff --git a/arch/arm/boot/dts/omap4-sdp.dts b/arch/arm/boot/dts/omap4-sdp.dts
index 43e5258..3bef36e 100644
--- a/arch/arm/boot/dts/omap4-sdp.dts
+++ b/arch/arm/boot/dts/omap4-sdp.dts
@@ -428,3 +428,67 @@
 twl_usb_comparator {
usb-supply = vusb;
 };
+
+dsi1 {
+   vdds_dsi-supply = vcxio;
+};
+
+dsi2 {
+   vdds_dsi-supply = vcxio;
+};
+
+hdmi {
+   vdda_hdmi_dac-supply = vdac;
+};
+
+/ {
+   lcd {
+   compatible = tpo,taal;
+
+   video-source = dsi1;
+
+   lanes = 
+   0   /* clk + */
+   1   /* clk - */
+   2   /* data1 + */
+   3   /* data1 - */
+   4   /* data2 + */
+   5   /* data2 - */
+   ;
+
+   gpios = gpio4 6 0;   /* 102, reset */
+   };
+
+   lcd2 {
+   compatible = tpo,taal;
+
+   video-source = dsi2;
+
+   lanes = 
+   0   /* clk + */
+   1   /* clk - */
+   2   /* data1 + */
+   3   /* data1 - */
+   4   /* data2 + */
+   5   /* data2 - */
+   ;
+
+   gpios = gpio4 8 0;   /* 104, reset */
+   };
+
+   tpd12s015: tpd12s015 {
+   compatible = ti,tpd12s015;
+
+   video-source = hdmi;
+
+   gpios = gpio2 28 0,  /* 60, CT CP HPD */
+   gpio2 9 0,   /* 41, LS OE */
+   gpio2 31 0;  /* 63, HPD */
+   };
+
+   hdmi {
+   compatible = ti,hdmi_connector;
+
+   video-source = tpd12s015;
+   };
+};
-- 
1.7.10.4

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


[RFC 07/14] OMAPDSS: TFP410: Add DT support

2013-03-27 Thread Tomi Valkeinen
In the DT data we model the TFP410 chip and the DVI connector. For the
moment we have only 1 driver to handle those both.

Signed-off-by: Tomi Valkeinen tomi.valkei...@ti.com
---
 drivers/video/omap2/displays/panel-tfp410.c |   71 +++
 1 file changed, 71 insertions(+)

diff --git a/drivers/video/omap2/displays/panel-tfp410.c 
b/drivers/video/omap2/displays/panel-tfp410.c
index a225ea1..a087489c 100644
--- a/drivers/video/omap2/displays/panel-tfp410.c
+++ b/drivers/video/omap2/displays/panel-tfp410.c
@@ -24,6 +24,8 @@
 #include linux/gpio.h
 #include linux/platform_device.h
 #include drm/drm_edid.h
+#include linux/of_gpio.h
+#include linux/of_i2c.h
 
 #include video/omap-panel-tfp410.h
 
@@ -112,6 +114,63 @@ static int tfp410_probe_pdata(struct platform_device *pdev)
return 0;
 }
 
+static int tfp410_probe_of(struct platform_device *pdev)
+{
+   struct device_node *node = pdev-dev.of_node;
+   struct panel_drv_data *ddata = dev_get_drvdata(pdev-dev);
+   struct device_node *adapter_node;
+   struct i2c_adapter *adapter;
+   int r, gpio, datalines;
+
+   ddata-name = node-name;
+
+   node = of_parse_phandle(node, video-source, 0);
+   if (!node) {
+   dev_err(pdev-dev, failed to parse video source\n);
+   return -ENODEV;
+   }
+
+   gpio = of_get_gpio(node, 0);
+
+   if (gpio_is_valid(gpio)) {
+   r = devm_gpio_request_one(pdev-dev, gpio,
+   GPIOF_OUT_INIT_LOW, tfp410 pd);
+   if (r) {
+   dev_err(pdev-dev, Failed to request PD GPIO %d\n,
+   gpio);
+   return r;
+   }
+
+   ddata-pd_gpio = gpio;
+   } else if (gpio == -ENOENT) {
+   ddata-pd_gpio = -1;
+   } else {
+   dev_err(pdev-dev, failed to parse PD gpio\n);
+   return gpio;
+   }
+
+   r = of_property_read_u32(node, data-lines, datalines);
+   if (r) {
+   dev_err(pdev-dev, failed to parse datalines);
+   return r;
+   }
+
+   ddata-data_lines = datalines;
+
+   adapter_node = of_parse_phandle(node, i2c-bus, 0);
+   if (adapter_node) {
+   adapter = of_find_i2c_adapter_by_node(adapter_node);
+   if (adapter == NULL) {
+   dev_err(pdev-dev, failed to parse i2c-bus\n);
+   return -EINVAL;
+   }
+
+   ddata-i2c_adapter = adapter;
+   }
+
+   return 0;
+}
+
 static int tfp410_probe(struct platform_device *pdev)
 {
struct tfp410_platform_data *pdata = dev_get_platdata(pdev-dev);
@@ -131,6 +190,10 @@ static int tfp410_probe(struct platform_device *pdev)
r = tfp410_probe_pdata(pdev);
if (r)
return r;
+   } else if (pdev-dev.of_node) {
+   r = tfp410_probe_of(pdev);
+   if (r)
+   return r;
} else {
return -ENODEV;
}
@@ -380,12 +443,20 @@ static struct omap_dss_driver tfp410_driver = {
.detect = tfp410_detect,
 };
 
+static const struct of_device_id tfp410_of_match[] = {
+   {
+   .compatible = ti,dvi_connector,
+   },
+   {},
+};
+
 static struct platform_driver tfp410_platform_driver = {
.probe  = tfp410_probe,
.remove = __exit_p(tfp410_remove),
.driver = {
.name   = tfp410,
.owner  = THIS_MODULE,
+   .of_match_table = tfp410_of_match,
},
 };
 
-- 
1.7.10.4

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


[RFC 14/14] ARM: omap3-beagle.dts: add TFP410

2013-03-27 Thread Tomi Valkeinen
Signed-off-by: Tomi Valkeinen tomi.valkei...@ti.com
---
 arch/arm/boot/dts/omap3-beagle.dts |   20 
 1 file changed, 20 insertions(+)

diff --git a/arch/arm/boot/dts/omap3-beagle.dts 
b/arch/arm/boot/dts/omap3-beagle.dts
index f624dc8..84785e7 100644
--- a/arch/arm/boot/dts/omap3-beagle.dts
+++ b/arch/arm/boot/dts/omap3-beagle.dts
@@ -65,3 +65,23 @@
 mmc3 {
status = disabled;
 };
+
+dpi {
+   vdds_dsi-supply = vpll2;
+};
+
+/ {
+   tfp410: tfp410 {
+   compatible = ti,tfp410;
+   video-source = dpi;
+   data-lines = 24;
+   gpios = gpio5 10 0;  /* 170, power-down */
+   i2c-bus = i2c3;
+   };
+
+   dvi {
+   compatible = ti,dvi_connector;
+
+   video-source = tfp410;
+   };
+};
-- 
1.7.10.4

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


[RFC 13/14] ARM: omap3-tobi.dts: add lcd (TEST)

2013-03-27 Thread Tomi Valkeinen
This is a test for Overo with Palo43 expansion, _not_ Tobi. Palo43
doesn't have a dts, but seems to work ok with omap3-tobi.dts, so I used
it as a test.

Not to be merged.

Signed-off-by: Tomi Valkeinen tomi.valkei...@ti.com
---
 arch/arm/boot/dts/omap3-tobi.dts |   13 +
 1 file changed, 13 insertions(+)

diff --git a/arch/arm/boot/dts/omap3-tobi.dts b/arch/arm/boot/dts/omap3-tobi.dts
index a13d12d..68e3c1b 100644
--- a/arch/arm/boot/dts/omap3-tobi.dts
+++ b/arch/arm/boot/dts/omap3-tobi.dts
@@ -33,3 +33,16 @@
 mmc3 {
status = disabled;
 };
+
+dpi {
+   vdds_dsi-supply = vpll2;
+};
+
+/ {
+   lcd43 {
+   compatible = ti,dpi_panel;
+   video-source = dpi;
+   data-lines = 24;
+   panel-name = samsung_lte430wq_f0c;
+   };
+};
-- 
1.7.10.4

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


[RFC 08/14] OMAPDSS: panel-generic-dpi: add DT support

2013-03-27 Thread Tomi Valkeinen
Signed-off-by: Tomi Valkeinen tomi.valkei...@ti.com
---
 drivers/video/omap2/displays/panel-generic-dpi.c |   47 ++
 1 file changed, 47 insertions(+)

diff --git a/drivers/video/omap2/displays/panel-generic-dpi.c 
b/drivers/video/omap2/displays/panel-generic-dpi.c
index cc49c48..a00c942 100644
--- a/drivers/video/omap2/displays/panel-generic-dpi.c
+++ b/drivers/video/omap2/displays/panel-generic-dpi.c
@@ -34,6 +34,7 @@
 #include linux/delay.h
 #include linux/slab.h
 #include linux/platform_device.h
+#include linux/of.h
 #include video/omapdss.h
 
 #include video/omap-panel-generic-dpi.h
@@ -618,6 +619,42 @@ static int generic_dpi_panel_probe_pdata(struct 
platform_device *pdev)
return 0;
 }
 
+static int generic_dpi_panel_probe_of(struct platform_device *pdev)
+{
+   struct device_node *node = pdev-dev.of_node;
+   struct panel_drv_data *drv_data = dev_get_drvdata(pdev-dev);
+   struct panel_config *panel_config = NULL;
+   int r, i;
+   int datalines;
+   const char *panel_name;
+
+   r = of_property_read_string(node, panel-name, panel_name);
+   if (r)
+   return r;
+
+   for (i = 0; i  ARRAY_SIZE(generic_dpi_panels); i++) {
+   if (strcmp(panel_name, generic_dpi_panels[i].name) == 0) {
+   panel_config = generic_dpi_panels[i];
+   break;
+   }
+   }
+
+   if (!panel_config)
+   return -EINVAL;
+
+   r = of_property_read_u32(node, data-lines, datalines);
+   if (r) {
+   dev_err(pdev-dev, failed to parse datalines);
+   return r;
+   }
+
+   drv_data-panel_config = panel_config;
+   drv_data-name = node-name;
+   drv_data-data_lines = datalines;
+
+   return 0;
+}
+
 static int generic_dpi_panel_probe(struct platform_device *pdev)
 {
struct panel_drv_data *drv_data;
@@ -636,6 +673,10 @@ static int generic_dpi_panel_probe(struct platform_device 
*pdev)
r = generic_dpi_panel_probe_pdata(pdev);
if (r)
return r;
+   } else if (pdev-dev.of_node) {
+   r = generic_dpi_panel_probe_of(pdev);
+   if (r)
+   return r;
} else {
return -EINVAL;
}
@@ -754,12 +795,18 @@ static struct omap_dss_driver generic_dpi_panel_driver = {
.get_resolution = omapdss_default_get_resolution,
 };
 
+static const struct of_device_id generic_dpi_panel_of_match[] = {
+   { .compatible = ti,dpi_panel, },
+   {},
+};
+
 static struct platform_driver generic_dpi_panel_platform_driver = {
.probe  = generic_dpi_panel_probe,
.remove = __exit_p(generic_dpi_panel_remove),
.driver = {
.name   = generic_dpi_panel,
.owner  = THIS_MODULE,
+   .of_match_table = generic_dpi_panel_of_match,
},
 };
 
-- 
1.7.10.4

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


[RFC 10/14] ARM: omap4.dtsi: add omapdss information

2013-03-27 Thread Tomi Valkeinen
Signed-off-by: Tomi Valkeinen tomi.valkei...@ti.com
---
 arch/arm/boot/dts/omap4.dtsi |   71 ++
 1 file changed, 71 insertions(+)

diff --git a/arch/arm/boot/dts/omap4.dtsi b/arch/arm/boot/dts/omap4.dtsi
index 739bb79..967f706 100644
--- a/arch/arm/boot/dts/omap4.dtsi
+++ b/arch/arm/boot/dts/omap4.dtsi
@@ -529,5 +529,76 @@
ti,hwmods = timer11;
ti,timer-pwm;
};
+
+   dss@5800 {
+   compatible = ti,omap4-dss, simple-bus;
+   reg = 0x5800 0x80;
+   ti,hwmods = dss_core;
+   #address-cells = 1;
+   #size-cells = 1;
+   ranges;
+
+   dispc@58001000 {
+   compatible = ti,omap4-dispc;
+   reg = 0x58001000 0x1000;
+   interrupts = 0 25 0x4;
+   ti,hwmods = dss_dispc;
+   };
+
+   dpi: dpi {
+   compatible = ti,omap4-dpi;
+   };
+
+   rfbi: rfbi@58002000  {
+   compatible = ti,omap4-rfbi;
+   reg = 0x58002000 0x1000;
+   ti,hwmods = dss_rfbi;
+   };
+
+   /*
+* Accessing venc registers cause a crash on omap4, so
+* this is disabled for now.
+*/
+   /*
+   venc: venc@58003000 {
+   compatible = ti,omap4-venc;
+   reg = 0x58003000 0x1000;
+   ti,hwmods = dss_venc;
+   };
+   */
+
+   dsi1: dsi@58004000 {
+   compatible = ti,omap4-dsi;
+   reg = 0x58004000 0x200;
+   interrupts = 0 53 0x4;
+   ti,hwmods = dss_dsi1;
+
+   /*
+* XXX dss_core needs to know module-id,
+* so this data should be there.
+*/
+   ti,dsi-module-id = 0;
+   };
+
+   dsi2: dsi@58005000 {
+   compatible = ti,omap4-dsi;
+   reg = 0x58005000 0x200;
+   interrupts = 0 84 0x4;
+   ti,hwmods = dss_dsi2;
+
+   /*
+* XXX dss_core needs to know module-id,
+* so this data should be there.
+*/
+   ti,dsi-module-id = 1;
+   };
+
+   hdmi: hdmi@58006000 {
+   compatible = ti,omap4-hdmi;
+   reg = 0x58006000 0x1000;
+   interrupts = 0 101 0x4;
+   ti,hwmods = dss_hdmi;
+   };
+   };
};
 };
-- 
1.7.10.4

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


[RFC 09/14] ARM: omap3.dtsi: add omapdss information

2013-03-27 Thread Tomi Valkeinen
Signed-off-by: Tomi Valkeinen tomi.valkei...@ti.com
---
 arch/arm/boot/dts/omap3.dtsi |   49 ++
 1 file changed, 49 insertions(+)

diff --git a/arch/arm/boot/dts/omap3.dtsi b/arch/arm/boot/dts/omap3.dtsi
index 1acc261..49de390 100644
--- a/arch/arm/boot/dts/omap3.dtsi
+++ b/arch/arm/boot/dts/omap3.dtsi
@@ -397,5 +397,54 @@
ti,timer-alwon;
ti,timer-secure;
};
+
+   dss@4805 {
+   compatible = ti,omap3-dss, simple-bus;
+   reg = 0x4805 0x200;
+   ti,hwmods = dss_core;
+   #address-cells = 1;
+   #size-cells = 1;
+   ranges;
+
+   dispc@48050400 {
+   compatible = ti,omap3-dispc;
+   reg = 0x48050400 0x400;
+   interrupts = 25;
+   ti,hwmods = dss_dispc;
+   };
+
+   dpi: dpi {
+   compatible = ti,omap3-dpi;
+   };
+
+   sdi: sdi {
+   compatible = ti,omap3-sdi;
+   };
+
+   dsi: dsi@4804fc00 {
+   compatible = ti,omap3-dsi;
+   reg = 0x4804fc00 0x400;
+   interrupts = 25;
+   ti,hwmods = dss_dsi1;
+
+   /*
+* XXX dss_core needs to know module-id,
+* so this data should be there.
+*/
+   ti,dsi-module-id = 0;
+   };
+
+   rfbi: rfbi@48050800 {
+   compatible = ti,omap3-rfbi;
+   reg = 0x48050800 0x100;
+   ti,hwmods = dss_rfbi;
+   };
+
+   venc: venc@48050c00 {
+   compatible = ti,omap3-venc;
+   reg = 0x48050c00 0x100;
+   ti,hwmods = dss_venc;
+   };
+   };
};
 };
-- 
1.7.10.4

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


Re: OMAP baseline test results for v3.9-rc3

2013-03-27 Thread Tero Kristo
On Tue, 2013-03-26 at 18:43 +, Paul Walmsley wrote:
 Hi.
 
 On Tue, 19 Mar 2013, Tero Kristo wrote:
 
  I think you should definitely upgrade your bootloader, the old one you
  are using is prone to cause trouble due to bugs it has, and we have no
  simple way to workaround the issues it causes on kernel side.
 
 So, the kernel should be independent of the bootloader that's used.  Many 
 of the rest of us have taken great care to ensure that devices get reset 
 to do this.  We've got pretty good coverage on OMAP3 and most of the other 
 OMAP4 IP blocks.
 
 You mention that there's no simple way to do it, but as far as I know, no 
 one has assessed what's needed to reset the remaining devices.  Or if 
 someone has this information, it hasn't been shared here - please do so.
 
 So what I'd like you to do is:
 
 1. Determine what devices are remaining to be reset and idled on OMAP4 
with the bootloader that I use.  As far as I know, there are only four 
that block full-chip idle: M3, DSP, SL2IF, FSUSB
 
 2. Determine what's needed to reset and idle them.  For the M3 and DSP, 
I'd assume this involves pointing the reset vector for those 
processors at a few lines of code that basically enter WFI or the C64x 
equivalent.

This is the nasty part. We need firmware support for the blocks to do
this, and this is imo a complete overkill for the task at hand, as it
will duplicate the DSP + M3 firmware and drivers at least partially. On
OMAP3, it was easy as you could just setup the boot mode for IVA and get
over with it. We don't have similar luxury on OMAP4.

If there was a simple way to do this, don't you think this would have
been done already a year back when we started to discuss this first
time? And, a year old bootloader is ancient seeing we didn't have any
kind of support for OMAP4 core idle in mainline back then and this
feature was essentially completely untested nobody cared about the
upstream u-boot PM compatibility before that.

-Tero

 
 3. At this point, we can determine the difficulty level of the task.
 
 4. Then, assuming it's of the level described in step 2, that reset/idle 
code should be implemented.
 
 This process will ensure both that users with old OMAP4 bootloaders -- 
 really, u-boot versions distributed less than a year ago, so not very old 
 at all -- will be able to successfully enter chip low power states.  It 
 will also ensure that users who boot to new kernels with kexec will be 
 able to do so successfully, with a minimum of interference from other 
 devices.
 
 
 - Paul
 --
 To unsubscribe from this list: send the line unsubscribe linux-omap in
 the body of a message to majord...@vger.kernel.org
 More majordomo info at  http://vger.kernel.org/majordomo-info.html


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


Re: [PATCH 2/5] capemgr: Add beaglebone's cape driver bindings

2013-03-27 Thread Pantelis Antoniou
Hi Grant

On Mar 26, 2013, at 7:36 PM, Grant Likely wrote:

 On Mon,  7 Jan 2013 20:51:03 +0200, Pantelis Antoniou 
 pa...@antoniou-consulting.com wrote:
 Document the beaglebone's cape driver bindings.
 
 Signed-off-by: Pantelis Antoniou pa...@antoniou-consulting.com
 
 Hi Pantelis,
 
 I'll go back and review the driver in a minute, but I'll start here
 since this is the data model that we'll be using for a long time.
 Overall this looks pretty sane. It's pretty well contained too which I
 like. Long term I do want to try and create some common patterns for
 overlay connections, but it's really hard to do that when this is the
 first serious attempt at implementing one.  :-) This is nicely contained
 to only the beaglebone use case which makes it easy to try out without
 forcing this exact data model on all users. If it works in other places,
 then fantastic! we've got our generic model. If not, then we can refine
 the interface for new boards without breaking beaglebone.
 

Glad you liked it. I really tried hard to keep things nicely separated since
we're definitely on to uncharted waters.

We will definitely adopt this for the beagleboard too (maybe some other boards 
too)
so some rearrangement will take place for the v2 of the patches.

We're under the gun for the new beaglebone that's coming out shortly, so the 
new patches
will be out in a couple of weeks.

 Comments below...
 
 ---
 .../devicetree/bindings/misc/capes-beaglebone.txt  | 110 
 +
 1 file changed, 110 insertions(+)
 create mode 100644 
 Documentation/devicetree/bindings/misc/capes-beaglebone.txt
 
 diff --git a/Documentation/devicetree/bindings/misc/capes-beaglebone.txt 
 b/Documentation/devicetree/bindings/misc/capes-beaglebone.txt
 new file mode 100644
 index 000..f73cab5
 --- /dev/null
 +++ b/Documentation/devicetree/bindings/misc/capes-beaglebone.txt
 @@ -0,0 +1,110 @@
 +* TI Beaglebone DT Overlay Cape Driver
 +
 +Required properties:
 +
 +- compatible: ti,bone-capemgr
 
 capemgr sounds like a software construct. Can you rename this to
 something that sounds more like describing concrete hardware? From that
 perspective, ti,bone-capebus would be appropriate here, regardless of
 where the driver actually lives in the kernel tree.
 

Hum, well I guess so, that would work. Perhaps same as with 
ti,beagle-capebus.

But I thought using the work bus was out :)

 It would be better to be more specific here with the compatible
 property also. Put the actual board name into the compatible string.
 Following the lead of the board level compatible property, call it
 'ti,am335x-bone-capebus. Newer boards can claim compatibilty with the
 older where appropriate.
 

Let's not put am335x there, there's nothing SoC specific. The bone is
a am335x, but the beagleboard is not, etc.

There's also some crazy talk about compatibility between different board
families; we can keep it aside for now, but let's not assign anything
SoC specific. 

 +
 +- eeprom: Contains the phandle beaglebone's baseboard i2c eeprom.
 +
 +- baseboardmaps - node containing a list of supported
 +beaglebone revisions; each node in should have the
 +following properties:
 +- board-name: The board name stored in the baseboard
 +eeprom.
 
 If it is stored in the baseboard eeprom, then why does it need to appear
 in the .dtb?

It needs to because there are slightly different revisions of the bone.
Defining the revisions it allows us to auto-load the dtbos containing the
differences for the baseboard revision.

In this way we keep the same kernel/software images working on all the
bone revisions, significantly reducing the support burden.

 
 +- compatible-name: The name which will be used for
 +matching compatible capes.
 
 What is the matching logic for this compatible capes? How does it get
 used?
 

See below.

 +
 +- slots: node containing a list of slot nodes (which in the beaglebone
 +case correspond to I2C addresses for dynamically probed capes,
 +or an override slot definition for hardcoded capes.
 +- eeprom: Contains the phandle beaglebone's cape i2c eeprom.
 +
 +It is possible to define override slots that will be activated
 +when the baseboard matches, and/or if supplied on the kernel command
 +line and/or when dynamically requested on runtime.
 +In that case the slot is marked with
 +- ti,cape-override: Marks a slot override.
 +- compatible: any of the runtime, kernel, or any compatible-name
 +  on a matching baseboardmap node.
 +- Any of the eeprom-format-revision, board-name, version, manufacturer,
 +  part-number, number-of-pins, serial-number, pin-usage, vdd-3v3exp,
 +  vdd-5v, sys-5v, dc-supplied properties which fill in the simulated
 +  cape's EEPROM fields. The part-number field is required, the rest
 +  are optional taking into default values.
 
 I could use some help understanding the use-case for the override slots.
 It isn't clear to me 

Re: [RFC 02/14] ARM: OMAP2+: add omapdss_init_of()

2013-03-27 Thread Benoit Cousson
Hi Tomi,

On 03/27/2013 09:45 AM, Tomi Valkeinen wrote:
 omapdss driver uses a omapdss platform device to pass platform specific
 function pointers and DSS hardware version from the arch code to the
 driver. This device is needed also when booting with DT.
 
 This patch adds omapdss_init_of() function, called from board-generic at
 init time, which creates the omapdss device.
 
 Signed-off-by: Tomi Valkeinen tomi.valkei...@ti.com
 ---
  arch/arm/mach-omap2/board-generic.c |1 +
  arch/arm/mach-omap2/common.h|2 ++
  arch/arm/mach-omap2/display.c   |   34 ++
  3 files changed, 37 insertions(+)
 
 diff --git a/arch/arm/mach-omap2/board-generic.c 
 b/arch/arm/mach-omap2/board-generic.c
 index a61544b..29eb085 100644
 --- a/arch/arm/mach-omap2/board-generic.c
 +++ b/arch/arm/mach-omap2/board-generic.c
 @@ -41,6 +41,7 @@ static void __init omap_generic_init(void)
  
   of_platform_populate(NULL, omap_dt_match_table, NULL, NULL);
  
 + omapdss_init_of();

Mmm, you should not have to call that explicitly. It looks like a hack
to me. Everything in theory should be initialized during
of_platform_populate / driver probe.

  }
  
  #ifdef CONFIG_SOC_OMAP2420
 diff --git a/arch/arm/mach-omap2/common.h b/arch/arm/mach-omap2/common.h
 index 40f4a03..e9ac1fd 100644
 --- a/arch/arm/mach-omap2/common.h
 +++ b/arch/arm/mach-omap2/common.h
 @@ -293,5 +293,7 @@ extern void omap_reserve(void);
  struct omap_hwmod;
  extern int omap_dss_reset(struct omap_hwmod *);
  
 +int __init omapdss_init_of(void);
 +
  #endif /* __ASSEMBLER__ */
  #endif /* __ARCH_ARM_MACH_OMAP2PLUS_COMMON_H */
 diff --git a/arch/arm/mach-omap2/display.c b/arch/arm/mach-omap2/display.c
 index ff37be1..c62aee0 100644
 --- a/arch/arm/mach-omap2/display.c
 +++ b/arch/arm/mach-omap2/display.c
 @@ -23,6 +23,8 @@
  #include linux/clk.h
  #include linux/err.h
  #include linux/delay.h
 +#include linux/of.h
 +#include linux/of_platform.h
  
  #include video/omapdss.h
  #include omap_hwmod.h
 @@ -564,3 +566,35 @@ int omap_dss_reset(struct omap_hwmod *oh)
  
   return r;
  }
 +
 +int __init omapdss_init_of(void)
 +{
 + int r;
 + enum omapdss_version ver;
 +
 + static struct omap_dss_board_info board_data = {
 + .dsi_enable_pads = omap_dsi_enable_pads,
 + .dsi_disable_pads = omap_dsi_disable_pads,

Pads config should be handle by pinmux framework is possible. Otherwise
a dedicated driver will be required.

 + .get_context_loss_count = omap_pm_get_dev_context_loss_count,
 + .set_min_bus_tput = omap_dss_set_min_bus_tput,


All that code should disappear with DT. hacking a platform device with
pdata is the old way of initializing a device.

I know that you do have some omap_pm callback, but you'd better get rid
of them in case of DT boot.
Fixing that is a generic issue, and as soon as a solution will be done
to handle these specific hooks, every drivers will be able to use that.

 + };
 +
 + ver = omap_display_get_version();
 +
 + if (ver == OMAPDSS_VER_UNKNOWN) {
 + pr_err(DSS not supported on this SoC\n);
 + return -ENODEV;
 + }
 +
 + board_data.version = ver;
 +
 + omap_display_device.dev.platform_data = board_data;

Regards,
Benoit

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


Re: [RFC 00/14] Add DT support to OMAPDSS

2013-03-27 Thread Benoit Cousson
Hi Tomi,

On 03/27/2013 09:45 AM, Tomi Valkeinen wrote:
 Hi,
 
 This is an RFC for OMAPDSS DT support. I've only added support for a few 
 boards
 and a few DSS outputs, but they should give quite a good range of different 
 use
 cases. If these work well, I think the rest of the outputs and panels will be
 ok too.
 
 The purpose of this series is to get comments about the dts changes. There are
 still work to be done, like adding DT binding documentation.
 
 Some notes:
 
 * DSS Submodules
 
 The DSS submodules are children of the dss_core node. This is done because the
 submodules require the dss_core to be alive and initialized to work, even if
 the submodules are not really behind dss_core. Having the submodules as
 children will make runtime PM automatically handle the dependency to dss_core.
 I think usually a node being a child means that it's on the parent's bus, 
 which
 is not the case here. I'm not sure if that's an issue or not.

FWIW, there is a L4_DSS interconnect. It is used internally to connect
all the submodules to the DSS L3 port. So this representation is
perfectly valid and does represent accurately the HW.

Regards,
Benoit

 
 * ti,dsi-module-id
 
 There's a ti,dsi-module-id property in the dsi node. The reason for this
 module-id property is that we have muxes in the dss_core that route clocks
 to/from a particular DSI module. So we need some way to index the DSI modules.
 Another option would be to have a list of DSI modules (phandles) in the
 dss_core. Both options feel a bit wrong to me, but I went for the module-id
 approach as that is already used when not using DT.
 
 * Display chains
 
 Currently omapdss driver can handle only one display device connected to one
 OMAP SoC output. This is not right in many cases, as there may be multiple
 display devices in a chain, like first an external encoder and then a panel.
 However, I tried to model this right in the dts. 
 
 So, for example, for Panda HDMI output we have the following display 
 entities
 in a chain: OMAP SoC HDMI output, TPD12S015 ESD/level shifter, and HDMI
 connector. These are connected using the video-source property, which tells
 where the component in question gets its video data.
 
 You could ask why there's a separate node for HDMI connector. It's true it's
 not really a proper device, but we need some kind of terminator for the 
 display
 chains. For HDMI we could as well have an embedded solution, having a chain
 like this: SoC HDMI, TPD12S015, hardwired embedded HDMI panel. So the 
 connector
 marks the end of the chain, and acts as a panel in a sense.
 
 * DSI lanes
 
 The DSI panels contain lanes property, which tells how the SoCs DSI pins are
 connected to the DSI panel. I'm not sure if the panel data is the proper place
 for this, or should the data be separately for the OMAP DSI node.
 
  Tomi
 
 Tomi Valkeinen (14):
   ARM: OMAP: remove DSS DT hack
   ARM: OMAP2+: add omapdss_init_of()
   OMAPDSS: Add DT support to DSS, DISPC, DPI
   OMAPDSS: Add DT support to DSI
   OMAPDSS: Add DT support to HDMI
   OMAPDSS: Taal: Add DT support
   OMAPDSS: TFP410: Add DT support
   OMAPDSS: panel-generic-dpi: add DT support
   ARM: omap3.dtsi: add omapdss information
   ARM: omap4.dtsi: add omapdss information
   ARM: omap4-panda.dts: add display information
   ARM: omap4-sdp.dts: add display information
   ARM: omap3-tobi.dts: add lcd (TEST)
   ARM: omap3-beagle.dts: add TFP410
 
  arch/arm/boot/dts/omap3-beagle.dts   |   20 +
  arch/arm/boot/dts/omap3-tobi.dts |   13 
  arch/arm/boot/dts/omap3.dtsi |   49 
  arch/arm/boot/dts/omap4-panda.dts|   44 +++
  arch/arm/boot/dts/omap4-sdp.dts  |   64 
  arch/arm/boot/dts/omap4.dtsi |   71 +
  arch/arm/mach-omap2/board-generic.c  |9 +--
  arch/arm/mach-omap2/common.h |2 +
  arch/arm/mach-omap2/display.c|   34 +
  arch/arm/mach-omap2/dss-common.c |   24 --
  arch/arm/mach-omap2/dss-common.h |2 -
  drivers/video/omap2/displays/panel-generic-dpi.c |   47 
  drivers/video/omap2/displays/panel-taal.c|   89 
 ++
  drivers/video/omap2/displays/panel-tfp410.c  |   71 +
  drivers/video/omap2/dss/dispc.c  |7 ++
  drivers/video/omap2/dss/dpi.c|8 ++
  drivers/video/omap2/dss/dsi.c|   24 +-
  drivers/video/omap2/dss/dss.c|7 ++
  drivers/video/omap2/dss/hdmi.c   |7 ++
  drivers/video/omap2/dss/hdmi_panel.c |   86 -
  20 files changed, 641 insertions(+), 37 deletions(-)
 

--
To unsubscribe from this list: send the line unsubscribe linux-omap in
the body of a message to majord...@vger.kernel.org
More majordomo info at  

Re: [RFC 00/14] Add DT support to OMAPDSS

2013-03-27 Thread Benoit Cousson
+ mturquette and Rajendra

On 03/27/2013 09:45 AM, Tomi Valkeinen wrote:

...

 * ti,dsi-module-id
 
 There's a ti,dsi-module-id property in the dsi node. The reason for this
 module-id property is that we have muxes in the dss_core that route clocks
 to/from a particular DSI module. So we need some way to index the DSI modules.
 Another option would be to have a list of DSI modules (phandles) in the
 dss_core. Both options feel a bit wrong to me, but I went for the module-id
 approach as that is already used when not using DT.

That's not a very nice representation. Ideally you should expose 1 clock
node per DSI node, and enabling one will select the proper mux for you.

Regards,
Benoit


 
 * Display chains
 
 Currently omapdss driver can handle only one display device connected to one
 OMAP SoC output. This is not right in many cases, as there may be multiple
 display devices in a chain, like first an external encoder and then a panel.
 However, I tried to model this right in the dts. 
 
 So, for example, for Panda HDMI output we have the following display 
 entities
 in a chain: OMAP SoC HDMI output, TPD12S015 ESD/level shifter, and HDMI
 connector. These are connected using the video-source property, which tells
 where the component in question gets its video data.
 
 You could ask why there's a separate node for HDMI connector. It's true it's
 not really a proper device, but we need some kind of terminator for the 
 display
 chains. For HDMI we could as well have an embedded solution, having a chain
 like this: SoC HDMI, TPD12S015, hardwired embedded HDMI panel. So the 
 connector
 marks the end of the chain, and acts as a panel in a sense.
 
 * DSI lanes
 
 The DSI panels contain lanes property, which tells how the SoCs DSI pins are
 connected to the DSI panel. I'm not sure if the panel data is the proper place
 for this, or should the data be separately for the OMAP DSI node.
 
  Tomi
 
 Tomi Valkeinen (14):
   ARM: OMAP: remove DSS DT hack
   ARM: OMAP2+: add omapdss_init_of()
   OMAPDSS: Add DT support to DSS, DISPC, DPI
   OMAPDSS: Add DT support to DSI
   OMAPDSS: Add DT support to HDMI
   OMAPDSS: Taal: Add DT support
   OMAPDSS: TFP410: Add DT support
   OMAPDSS: panel-generic-dpi: add DT support
   ARM: omap3.dtsi: add omapdss information
   ARM: omap4.dtsi: add omapdss information
   ARM: omap4-panda.dts: add display information
   ARM: omap4-sdp.dts: add display information
   ARM: omap3-tobi.dts: add lcd (TEST)
   ARM: omap3-beagle.dts: add TFP410
 
  arch/arm/boot/dts/omap3-beagle.dts   |   20 +
  arch/arm/boot/dts/omap3-tobi.dts |   13 
  arch/arm/boot/dts/omap3.dtsi |   49 
  arch/arm/boot/dts/omap4-panda.dts|   44 +++
  arch/arm/boot/dts/omap4-sdp.dts  |   64 
  arch/arm/boot/dts/omap4.dtsi |   71 +
  arch/arm/mach-omap2/board-generic.c  |9 +--
  arch/arm/mach-omap2/common.h |2 +
  arch/arm/mach-omap2/display.c|   34 +
  arch/arm/mach-omap2/dss-common.c |   24 --
  arch/arm/mach-omap2/dss-common.h |2 -
  drivers/video/omap2/displays/panel-generic-dpi.c |   47 
  drivers/video/omap2/displays/panel-taal.c|   89 
 ++
  drivers/video/omap2/displays/panel-tfp410.c  |   71 +
  drivers/video/omap2/dss/dispc.c  |7 ++
  drivers/video/omap2/dss/dpi.c|8 ++
  drivers/video/omap2/dss/dsi.c|   24 +-
  drivers/video/omap2/dss/dss.c|7 ++
  drivers/video/omap2/dss/hdmi.c   |7 ++
  drivers/video/omap2/dss/hdmi_panel.c |   86 -
  20 files changed, 641 insertions(+), 37 deletions(-)
 

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


Re: [PATCH 05/26] OMAPDSS: DPI: fix regulators

2013-03-27 Thread Archit Taneja

On Tuesday 26 March 2013 07:03 PM, Tomi Valkeinen wrote:

On some platforms DPI requires a regulator to be enabled to power up the
output pins. This regulator is, for some reason, currently attached to
the virtual omapdss device, instead of the DPI device. This does not
work for DT, as the regulator mappings need to be described in the DT
data, and the virtual omapdss device is not present there.

Fix the issue by acquiring the regulator in the DPI device. To retain
compatibility with the current board files, the old method of getting
the regulator is kept. The old method can be removed when the board
files have been changed to pass the regulator to DPI.

Signed-off-by: Tomi Valkeinen tomi.valkei...@ti.com
---
  drivers/video/omap2/dss/dpi.c |   21 ++---
  1 file changed, 18 insertions(+), 3 deletions(-)

diff --git a/drivers/video/omap2/dss/dpi.c b/drivers/video/omap2/dss/dpi.c
index ad67a9c..08342d1 100644
--- a/drivers/video/omap2/dss/dpi.c
+++ b/drivers/video/omap2/dss/dpi.c
@@ -37,7 +37,10 @@
  #include dss_features.h

  static struct {
+   struct platform_device *pdev;


We can use dpi.output.pdev, we don't really need to have another pdev 
pointer. Same for SDI in the next patch.


Archit


+
struct regulator *vdds_dsi_reg;
+   bool vdds_dsi_from_core;
struct platform_device *dsidev;

struct mutex lock;
@@ -583,10 +586,15 @@ static int __init dpi_init_display(struct omap_dss_device 
*dssdev)
struct regulator *vdds_dsi;

vdds_dsi = dss_get_vdds_dsi();
-
if (IS_ERR(vdds_dsi)) {
-   DSSERR(can't get VDDS_DSI regulator\n);
-   return PTR_ERR(vdds_dsi);
+   vdds_dsi = regulator_get(dpi.pdev-dev, vdds_dsi);
+   if (IS_ERR(vdds_dsi)) {
+   DSSERR(can't get VDDS_DSI regulator\n);
+   return PTR_ERR(vdds_dsi);
+   }
+   dpi.vdds_dsi_from_core = false;
+   } else {
+   dpi.vdds_dsi_from_core = true;
}

dpi.vdds_dsi_reg = vdds_dsi;
@@ -698,6 +706,8 @@ static void __exit dpi_uninit_output(struct platform_device 
*pdev)

  static int __init omap_dpi_probe(struct platform_device *pdev)
  {
+   dpi.pdev = pdev;
+
mutex_init(dpi.lock);

dpi_init_output(pdev);
@@ -714,6 +724,11 @@ static int __exit omap_dpi_remove(struct platform_device 
*pdev)

dpi_uninit_output(pdev);

+   if (dpi.vdds_dsi_reg != NULL  dpi.vdds_dsi_from_core == false) {
+   regulator_put(dpi.vdds_dsi_reg);
+   dpi.vdds_dsi_reg = NULL;
+   }
+
return 0;
  }




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


[net-next PATCH 1/1] drivers: net: ethernet: ti: sparse warning fix for ti ethernet drivers

2013-03-27 Thread Mugunthan V N
fix for the below sparse warnings

drivers/net/ethernet/ti/davinci_cpdma.c:182:29: warning: incorrect type in 
assignment (different address spaces)
drivers/net/ethernet/ti/davinci_cpdma.c:182:29:expected void [noderef] 
asn:2*iomap
drivers/net/ethernet/ti/davinci_cpdma.c:182:29:got void *cpumap
drivers/net/ethernet/ti/davinci_cpdma.c:953:27: warning: symbol 'controls' was 
not declared. Should it be static?
drivers/net/ethernet/ti/cpsw.c:451:6: warning: symbol 'cpsw_tx_handler' was not 
declared. Should it be static?
drivers/net/ethernet/ti/cpsw.c:468:6: warning: symbol 'cpsw_rx_handler' was not 
declared. Should it be static?
drivers/net/ethernet/ti/cpsw_ale.c:151:5: warning: symbol 'cpsw_ale_match_addr' 
was not declared. Should it be static?
drivers/net/ethernet/ti/cpsw_ale.c:172:5: warning: symbol 'cpsw_ale_match_vlan' 
was not declared. Should it be static?

Signed-off-by: Mugunthan V N mugunthan...@ti.com
---
 drivers/net/ethernet/ti/cpsw.c  |4 ++--
 drivers/net/ethernet/ti/cpsw_ale.c  |4 ++--
 drivers/net/ethernet/ti/davinci_cpdma.c |4 ++--
 3 files changed, 6 insertions(+), 6 deletions(-)

diff --git a/drivers/net/ethernet/ti/cpsw.c b/drivers/net/ethernet/ti/cpsw.c
index 7aebc0c..f4be85b 100644
--- a/drivers/net/ethernet/ti/cpsw.c
+++ b/drivers/net/ethernet/ti/cpsw.c
@@ -448,7 +448,7 @@ static void cpsw_intr_disable(struct cpsw_priv *priv)
return;
 }
 
-void cpsw_tx_handler(void *token, int len, int status)
+static void cpsw_tx_handler(void *token, int len, int status)
 {
struct sk_buff  *skb = token;
struct net_device   *ndev = skb-dev;
@@ -465,7 +465,7 @@ void cpsw_tx_handler(void *token, int len, int status)
dev_kfree_skb_any(skb);
 }
 
-void cpsw_rx_handler(void *token, int len, int status)
+static void cpsw_rx_handler(void *token, int len, int status)
 {
struct sk_buff  *skb = token;
struct net_device   *ndev = skb-dev;
diff --git a/drivers/net/ethernet/ti/cpsw_ale.c 
b/drivers/net/ethernet/ti/cpsw_ale.c
index 7fa60d6..79f0b79 100644
--- a/drivers/net/ethernet/ti/cpsw_ale.c
+++ b/drivers/net/ethernet/ti/cpsw_ale.c
@@ -148,7 +148,7 @@ static int cpsw_ale_write(struct cpsw_ale *ale, int idx, 
u32 *ale_entry)
return idx;
 }
 
-int cpsw_ale_match_addr(struct cpsw_ale *ale, u8 *addr, u16 vid)
+static int cpsw_ale_match_addr(struct cpsw_ale *ale, u8 *addr, u16 vid)
 {
u32 ale_entry[ALE_ENTRY_WORDS];
int type, idx;
@@ -169,7 +169,7 @@ int cpsw_ale_match_addr(struct cpsw_ale *ale, u8 *addr, u16 
vid)
return -ENOENT;
 }
 
-int cpsw_ale_match_vlan(struct cpsw_ale *ale, u16 vid)
+static int cpsw_ale_match_vlan(struct cpsw_ale *ale, u16 vid)
 {
u32 ale_entry[ALE_ENTRY_WORDS];
int type, idx;
diff --git a/drivers/net/ethernet/ti/davinci_cpdma.c 
b/drivers/net/ethernet/ti/davinci_cpdma.c
index ee13dc7..a6f5de9 100644
--- a/drivers/net/ethernet/ti/davinci_cpdma.c
+++ b/drivers/net/ethernet/ti/davinci_cpdma.c
@@ -179,7 +179,7 @@ cpdma_desc_pool_create(struct device *dev, u32 phys, u32 
hw_addr,
} else {
pool-cpumap = dma_alloc_coherent(dev, size, pool-phys,
  GFP_KERNEL);
-   pool-iomap = pool-cpumap;
+   pool-iomap = (void __iomem *) pool-cpumap;
pool-hw_addr = pool-phys;
}
 
@@ -950,7 +950,7 @@ struct cpdma_control_info {
 #define ACCESS_RW  (ACCESS_RO | ACCESS_WO)
 };
 
-struct cpdma_control_info controls[] = {
+static struct cpdma_control_info controls[] = {
[CPDMA_CMD_IDLE]  = {CPDMA_DMACONTROL,  3,  1,  ACCESS_WO},
[CPDMA_COPY_ERROR_FRAMES] = {CPDMA_DMACONTROL,  4,  1,  ACCESS_RW},
[CPDMA_RX_OFF_LEN_UPDATE] = {CPDMA_DMACONTROL,  2,  1,  ACCESS_RW},
-- 
1.7.9.5

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


[PATCH-V2] ARM: AM33XX: Add missing .clkdm_name to clkdiv32k_ick clock

2013-03-27 Thread Vaibhav Hiremath
It is required to enable respective clock-domain before
enabling any clock/module inside that clock-domain.

During common-clock migration, .clkdm_name field got missed
for clkdiv32k_ick clock, which leaves clk_24mhz_clkdm
unused; so it will be disabled even if childs of this clock-domain
is enabled, which keeps child modules in idle mode.

This fixes the kernel crash observed on AM335xEVM-SK platform,
where clkdiv32_ick clock is being used as a gpio debounce clock
and since clkdiv32k_ick is in idle mode it leads to below crash -

Crash Log:
==
[2.598347] Unhandled fault: external abort on non-linefetch (0x1028) at
0xfa1ac150
[2.606434] Internal error: : 1028 [#1] SMP ARM
[2.611207] Modules linked in:
[2.614449] CPU: 0Not tainted  (3.8.4-01382-g1f449cd-dirty #4)
[2.620973] PC is at _set_gpio_debounce+0x60/0x104
[2.626025] LR is at clk_enable+0x30/0x3c

Signed-off-by: Vaibhav Hiremath hvaib...@ti.com
Cc: Tony Lindgren t...@atomide.com
Cc: Paul Walmsley p...@pwsan.com
Cc: Rajendra Nayak rna...@ti.com
---
Change from V1 (no code change):
- Commit description updated as per Rajendra and Paul's
  comment.

 arch/arm/mach-omap2/cclock33xx_data.c |   26 +++---
 1 files changed, 23 insertions(+), 3 deletions(-)

diff --git a/arch/arm/mach-omap2/cclock33xx_data.c 
b/arch/arm/mach-omap2/cclock33xx_data.c
index 476b820..8327721 100644
--- a/arch/arm/mach-omap2/cclock33xx_data.c
+++ b/arch/arm/mach-omap2/cclock33xx_data.c
@@ -446,9 +446,29 @@ DEFINE_CLK_GATE(cefuse_fck, sys_clkin_ck, sys_clkin_ck, 
0x0,
  */
 DEFINE_CLK_FIXED_FACTOR(clkdiv32k_ck, clk_24mhz, clk_24mhz, 0x0, 1, 732);

-DEFINE_CLK_GATE(clkdiv32k_ick, clkdiv32k_ck, clkdiv32k_ck, 0x0,
-   AM33XX_CM_PER_CLKDIV32K_CLKCTRL, AM33XX_MODULEMODE_SWCTRL_SHIFT,
-   0x0, NULL);
+static struct clk clkdiv32k_ick;
+
+static const char *clkdiv32k_ick_parent_names[] = {
+   clkdiv32k_ck,
+};
+
+static const struct clk_ops clkdiv32k_ick_ops = {
+   .enable = omap2_dflt_clk_enable,
+   .disable= omap2_dflt_clk_disable,
+   .is_enabled = omap2_dflt_clk_is_enabled,
+   .init   = omap2_init_clk_clkdm,
+};
+
+static struct clk_hw_omap clkdiv32k_ick_hw = {
+   .hw = {
+   .clk= clkdiv32k_ick,
+   },
+   .enable_reg = AM33XX_CM_PER_CLKDIV32K_CLKCTRL,
+   .enable_bit = AM33XX_MODULEMODE_SWCTRL_SHIFT,
+   .clkdm_name = clk_24mhz_clkdm,
+};
+
+DEFINE_STRUCT_CLK(clkdiv32k_ick, clkdiv32k_ick_parent_names, 
clkdiv32k_ick_ops);

 /* usbotg_fck is an additional clock and not really a modulemode */
 DEFINE_CLK_GATE(usbotg_fck, dpll_per_ck, dpll_per_ck, 0x0,
--
1.7.0.4

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


Re: [RFC 02/14] ARM: OMAP2+: add omapdss_init_of()

2013-03-27 Thread Tomi Valkeinen
On 2013-03-27 11:28, Benoit Cousson wrote:
 Hi Tomi,

Hi Benoit. Thanks for your comments!

 On 03/27/2013 09:45 AM, Tomi Valkeinen wrote:
 omapdss driver uses a omapdss platform device to pass platform specific
 function pointers and DSS hardware version from the arch code to the
 driver. This device is needed also when booting with DT.

 This patch adds omapdss_init_of() function, called from board-generic at
 init time, which creates the omapdss device.

 Signed-off-by: Tomi Valkeinen tomi.valkei...@ti.com
 ---
  arch/arm/mach-omap2/board-generic.c |1 +
  arch/arm/mach-omap2/common.h|2 ++
  arch/arm/mach-omap2/display.c   |   34 
 ++
  3 files changed, 37 insertions(+)

 diff --git a/arch/arm/mach-omap2/board-generic.c 
 b/arch/arm/mach-omap2/board-generic.c
 index a61544b..29eb085 100644
 --- a/arch/arm/mach-omap2/board-generic.c
 +++ b/arch/arm/mach-omap2/board-generic.c
 @@ -41,6 +41,7 @@ static void __init omap_generic_init(void)
  
  of_platform_populate(NULL, omap_dt_match_table, NULL, NULL);
  
 +omapdss_init_of();
 
 Mmm, you should not have to call that explicitly. It looks like a hack
 to me. Everything in theory should be initialized during
 of_platform_populate / driver probe.

All the real devices are initialized properly. However, we still have
a virtual omapdss device, which does not represent a particular HW
block as such, and is not represented in the DT data. It's a legacy
thing, and slowly on its way out.

However, it still helps us to pass the platform callbacks via platform
data even in DT call, so we have this (hacky) omapdss_init_of() call.

And we also pass the OMAP revision information via the platform data, as
we need to know the DSS HW version. The only way to get that is to know
the OMAP version and revision. If we would set the DSS HW version
information into DT data, we could need separate dts files for each OMAP
revision.

 +
 +int __init omapdss_init_of(void)
 +{
 +int r;
 +enum omapdss_version ver;
 +
 +static struct omap_dss_board_info board_data = {
 +.dsi_enable_pads = omap_dsi_enable_pads,
 +.dsi_disable_pads = omap_dsi_disable_pads,
 
 Pads config should be handle by pinmux framework is possible. Otherwise
 a dedicated driver will be required.

Hmm. These functions touch the OMAP4_CTRL_MODULE_PAD_CORE_CONTROL_DSIPHY
(CONTROL_DSIPHY in the TRM) register. It's not a normal padconfig thing
(like, selecting between GPIO and some other function).

Can they be handled by the pinmux framework? I'm not familiar with it.
What do you mean with dedicated driver? Dedicated pinmux driver, or
something else?

 +.get_context_loss_count = omap_pm_get_dev_context_loss_count,
 +.set_min_bus_tput = omap_dss_set_min_bus_tput,
 
 
 All that code should disappear with DT. hacking a platform device with
 pdata is the old way of initializing a device.
 
 I know that you do have some omap_pm callback, but you'd better get rid
 of them in case of DT boot.
 Fixing that is a generic issue, and as soon as a solution will be done
 to handle these specific hooks, every drivers will be able to use that.

So, what you're saying is that this is not the correct way, but there's
no other way to handle it currently? If so, yes, I know that, but, well,
there's no other way to handle it currently.

I could leave them out, but in that case when booting with DT there must
be no DSS context loss, and OPP must be at OPP100 all the time.

 Tomi




signature.asc
Description: OpenPGP digital signature


Re: [RFC 00/14] Add DT support to OMAPDSS

2013-03-27 Thread Tomi Valkeinen
On 2013-03-27 11:30, Benoit Cousson wrote:
 Hi Tomi,
 
 On 03/27/2013 09:45 AM, Tomi Valkeinen wrote:
 Hi,

 This is an RFC for OMAPDSS DT support. I've only added support for a few 
 boards
 and a few DSS outputs, but they should give quite a good range of different 
 use
 cases. If these work well, I think the rest of the outputs and panels will be
 ok too.

 The purpose of this series is to get comments about the dts changes. There 
 are
 still work to be done, like adding DT binding documentation.

 Some notes:

 * DSS Submodules

 The DSS submodules are children of the dss_core node. This is done because 
 the
 submodules require the dss_core to be alive and initialized to work, even if
 the submodules are not really behind dss_core. Having the submodules as
 children will make runtime PM automatically handle the dependency to 
 dss_core.
 I think usually a node being a child means that it's on the parent's bus, 
 which
 is not the case here. I'm not sure if that's an issue or not.
 
 FWIW, there is a L4_DSS interconnect. It is used internally to connect
 all the submodules to the DSS L3 port. So this representation is
 perfectly valid and does represent accurately the HW.

Ah, yes, I can see it mentioned in the OMAP4430 Block Diagram figure in
the TRM. No other mentions, though, I guess it's not really relevant =).
But good to know that the DT representation is actually correct.

 Tomi




signature.asc
Description: OpenPGP digital signature


Re: [RFC 00/14] Add DT support to OMAPDSS

2013-03-27 Thread Tomi Valkeinen
On 2013-03-27 11:41, Benoit Cousson wrote:
 + mturquette and Rajendra
 
 On 03/27/2013 09:45 AM, Tomi Valkeinen wrote:
 
 ...
 
 * ti,dsi-module-id

 There's a ti,dsi-module-id property in the dsi node. The reason for this
 module-id property is that we have muxes in the dss_core that route clocks
 to/from a particular DSI module. So we need some way to index the DSI 
 modules.
 Another option would be to have a list of DSI modules (phandles) in the
 dss_core. Both options feel a bit wrong to me, but I went for the module-id
 approach as that is already used when not using DT.
 
 That's not a very nice representation. Ideally you should expose 1 clock
 node per DSI node, and enabling one will select the proper mux for you.

Afaik, we need the DSI module id for the following things:

1) DSI pad configuration (OMAP4_CTRL_MODULE_PAD_CORE_CONTROL_DSIPHY).

2) Setting clk mux in dss_core to select input clock for DSI protocol
engine. The choice is between DSS_CLK from PRCM, or clock from a DSI
PLL. DSI1 module can only use DSI1 PLL clock, and DSI2 module can only
use DSI2 PLL clock.

3) Setting clk mux in dss_core to select input clock for LCD/DISPC. The
choice is between DSS_CLK from PRCM, or a clock from DSI PLL. DISPC can
use either DSI1 or DSI2 PLL, LCD1 can use DSI1 PLL clock, LCD2 can use
DSI2 PLL clock.

4) Selecting the video output from DISPC which is routed to the DSI
module. LCD1 output can go to DSI1, LCD2 output can go to DSI1 or DSI2.

All the above of course change between OMAP versions.

So managing all the above was easiest with a plain module-id assigned to
the DSI device.

I guess 1) could be somehow managed by having separate nodes in the dts
for the DSIPHY control, and a link from the DSI module to that DSIPHY node.

4) could possibly be managed by having each DSS output node having a
list of possible inputs from the DISPC. And, I guess, a link somehow to
a mux node in the dss_core. Or something...

All in all, I don't have any clear idea how these should be handled.

 Tomi




signature.asc
Description: OpenPGP digital signature


Re: [PATCH 16/26] OMAPDSS: TFP410: convert to platform device

2013-03-27 Thread Archit Taneja

On Tuesday 26 March 2013 07:03 PM, Tomi Valkeinen wrote:

Convert TFP410 driver from omap_dss_driver to a platform driver. The
driver uses the new panel support from omapdss.

Signed-off-by: Tomi Valkeinen tomi.valkei...@ti.com
---
  drivers/video/omap2/displays/panel-tfp410.c |  205 +--
  1 file changed, 128 insertions(+), 77 deletions(-)

diff --git a/drivers/video/omap2/displays/panel-tfp410.c 
b/drivers/video/omap2/displays/panel-tfp410.c
index 8281baa..a225ea1 100644
--- a/drivers/video/omap2/displays/panel-tfp410.c
+++ b/drivers/video/omap2/displays/panel-tfp410.c
@@ -22,10 +22,13 @@
  #include video/omapdss.h
  #include linux/i2c.h
  #include linux/gpio.h
+#include linux/platform_device.h
  #include drm/drm_edid.h

  #include video/omap-panel-tfp410.h

+static struct omap_dss_driver tfp410_driver;
+
  static const struct omap_video_timings tfp410_default_timings = {
.x_res  = 640,
.y_res  = 480,
@@ -48,121 +51,152 @@ static const struct omap_video_timings 
tfp410_default_timings = {
  };

  struct panel_drv_data {
-   struct omap_dss_device *dssdev;
+   struct omap_dss_device dssdev;

struct mutex lock;

+   const char *name;
+
int pd_gpio;
+   int data_lines;
+
+   struct omap_video_timings timings;

struct i2c_adapter *i2c_adapter;
  };

-static int tfp410_power_on(struct omap_dss_device *dssdev)
+#define to_panel_data(x) container_of(x, struct panel_drv_data, dssdev)
+
+static int tfp410_probe_pdata(struct platform_device *pdev)
  {
-   struct panel_drv_data *ddata = dev_get_drvdata(dssdev-dev);
-   int r;
+   struct tfp410_platform_data *pdata = dev_get_platdata(pdev-dev);
+   struct panel_drv_data *ddata = dev_get_drvdata(pdev-dev);
+   int r, gpio, i2c_bus_num;

-   if (dssdev-state == OMAP_DSS_DISPLAY_ACTIVE)
-   return 0;
+   ddata-name = pdata-name;

-   omapdss_dpi_set_timings(dssdev, dssdev-panel.timings);
-   omapdss_dpi_set_data_lines(dssdev, dssdev-phy.dpi.data_lines);
+   gpio = pdata-power_down_gpio;

-   r = omapdss_dpi_display_enable(dssdev);
-   if (r)
-   goto err0;
+   if (gpio_is_valid(gpio)) {
+   r = devm_gpio_request_one(pdev-dev, gpio,
+   GPIOF_OUT_INIT_LOW, tfp410 pd);
+   if (r) {
+   dev_err(pdev-dev, Failed to request PD GPIO %d\n,
+   gpio);
+   return r;
+   }

-   if (gpio_is_valid(ddata-pd_gpio))
-   gpio_set_value_cansleep(ddata-pd_gpio, 1);
+   ddata-pd_gpio = gpio;
+   } else {
+   ddata-pd_gpio = -1;
+   }

-   return 0;
-err0:
-   return r;
-}
+   ddata-data_lines = pdata-data_lines;

-static void tfp410_power_off(struct omap_dss_device *dssdev)
-{
-   struct panel_drv_data *ddata = dev_get_drvdata(dssdev-dev);
+   i2c_bus_num = pdata-i2c_bus_num;

-   if (dssdev-state != OMAP_DSS_DISPLAY_ACTIVE)
-   return;
+   if (i2c_bus_num != -1) {
+   struct i2c_adapter *adapter;

-   if (gpio_is_valid(ddata-pd_gpio))
-   gpio_set_value_cansleep(ddata-pd_gpio, 0);
+   adapter = i2c_get_adapter(i2c_bus_num);
+   if (!adapter) {
+   dev_err(pdev-dev,
+   Failed to get I2C adapter, bus %d\n,
+   i2c_bus_num);
+   return -EINVAL;
+   }

-   omapdss_dpi_display_disable(dssdev);
+   ddata-i2c_adapter = adapter;
+   }
+
+   return 0;
  }

-static int tfp410_probe(struct omap_dss_device *dssdev)
+static int tfp410_probe(struct platform_device *pdev)
  {
+   struct tfp410_platform_data *pdata = dev_get_platdata(pdev-dev);
+   struct omap_dss_device *dssdev;
struct panel_drv_data *ddata;
int r;
-   int i2c_bus_num;

-   ddata = devm_kzalloc(dssdev-dev, sizeof(*ddata), GFP_KERNEL);
+   ddata = devm_kzalloc(pdev-dev, sizeof(*ddata), GFP_KERNEL);
if (!ddata)
return -ENOMEM;

-   dssdev-panel.timings = tfp410_default_timings;
+   dev_set_drvdata(pdev-dev, ddata);

-   ddata-dssdev = dssdev;
mutex_init(ddata-lock);

-   if (dssdev-data) {
-   struct tfp410_platform_data *pdata = dssdev-data;
-
-   ddata-pd_gpio = pdata-power_down_gpio;
-   i2c_bus_num = pdata-i2c_bus_num;
-   } else {
-   ddata-pd_gpio = -1;
-   i2c_bus_num = -1;
-   }
-
-   if (gpio_is_valid(ddata-pd_gpio)) {
-   r = devm_gpio_request_one(dssdev-dev, ddata-pd_gpio,
-   GPIOF_OUT_INIT_LOW, tfp410 pd);
-   if (r) {
-   dev_err(dssdev-dev, Failed to request PD GPIO %d\n,
-

Re: [PATCH 16/26] OMAPDSS: TFP410: convert to platform device

2013-03-27 Thread Tomi Valkeinen
On 2013-03-27 13:11, Archit Taneja wrote:
 On Tuesday 26 March 2013 07:03 PM, Tomi Valkeinen wrote:
 Convert TFP410 driver from omap_dss_driver to a platform driver. The
 driver uses the new panel support from omapdss.

 Signed-off-by: Tomi Valkeinen tomi.valkei...@ti.com
 ---
   drivers/video/omap2/displays/panel-tfp410.c |  205
 +--
   1 file changed, 128 insertions(+), 77 deletions(-)


 -ddata-i2c_adapter = adapter;
 +dssdev = ddata-dssdev;
 +dssdev-driver = tfp410_driver;
 +dssdev-panel.timings = tfp410_default_timings;
 +dssdev-name = ddata-name;
 +dssdev-phy.dpi.data_lines = ddata-data_lines;
 +dssdev-panel_dev = pdev-dev;
 
 Some of the omap_dss_device fields populated here(like data_lines) are
 not going to be used anywhere. Are you populating all of them just for
 the sake of clarity, so that they can be removed in another series later
 on? Or is there some other reason?

Unfortunately the datalines are used in
omapdss_default_get_recommended_bpp(). So there are some fields
populated just to keep things working, and I expect that they are
removed later.

 Tomi




signature.asc
Description: OpenPGP digital signature


Re: [PATCH 16/26] OMAPDSS: TFP410: convert to platform device

2013-03-27 Thread Archit Taneja

On Wednesday 27 March 2013 04:44 PM, Tomi Valkeinen wrote:

On 2013-03-27 13:11, Archit Taneja wrote:

On Tuesday 26 March 2013 07:03 PM, Tomi Valkeinen wrote:

Convert TFP410 driver from omap_dss_driver to a platform driver. The
driver uses the new panel support from omapdss.

Signed-off-by: Tomi Valkeinen tomi.valkei...@ti.com
---
   drivers/video/omap2/displays/panel-tfp410.c |  205
+--
   1 file changed, 128 insertions(+), 77 deletions(-)




-ddata-i2c_adapter = adapter;
+dssdev = ddata-dssdev;
+dssdev-driver = tfp410_driver;
+dssdev-panel.timings = tfp410_default_timings;
+dssdev-name = ddata-name;
+dssdev-phy.dpi.data_lines = ddata-data_lines;
+dssdev-panel_dev = pdev-dev;


Some of the omap_dss_device fields populated here(like data_lines) are
not going to be used anywhere. Are you populating all of them just for
the sake of clarity, so that they can be removed in another series later
on? Or is there some other reason?


Unfortunately the datalines are used in
omapdss_default_get_recommended_bpp(). So there are some fields
populated just to keep things working, and I expect that they are
removed later.


Ah okay, missed that. I guess it will be easier to remove these later on 
anyway.


Archit

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


Re: [PATCH 01/10] gpio: gpiolib-of.c: fix checkpatch error

2013-03-27 Thread Linus Walleij
On Wed, Mar 20, 2013 at 1:15 PM, Laurent Navet laurent.na...@gmail.com wrote:

 Fix :
  gpio/gpiolib-of.c:64: ERROR: code indent should use tabs where possible

 Signed-off-by: Laurent Navet laurent.na...@gmail.com

Applied.

Thanks!
Linus Walleij
--
To unsubscribe from this list: send the line unsubscribe linux-omap in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


Re: [PATCH 02/10] gpio: gpio-mvebu.c: fix checkpatch errors

2013-03-27 Thread Linus Walleij
On Wed, Mar 20, 2013 at 1:15 PM, Laurent Navet laurent.na...@gmail.com wrote:

 Fix :
  gpio/gpio-mvebu.c:120: ERROR: space required before the open parenthesis '('
  gpio/gpio-mvebu.c:136: ERROR: space required before the open parenthesis '('
  gpio/gpio-mvebu.c:154: ERROR: space required before the open parenthesis '('
  gpio/gpio-mvebu.c:404: ERROR: space required before the open parenthesis '('
  gpio/gpio-mvebu.c:476: ERROR: (foo*) should be (foo *)
  gpio/gpio-mvebu.c:480: ERROR: (foo*) should be (foo *)
  gpio/gpio-mvebu.c:484: ERROR: (foo*) should be (foo *)
  gpio/gpio-mvebu.c:512: ERROR: space prohibited after that '!' (ctx:BxW)
  gpio/gpio-mvebu.c:518: ERROR: space prohibited after that '!' (ctx:BxW)
  gpio/gpio-mvebu.c:518: ERROR: space required before the open brace '{'
  gpio/gpio-mvebu.c:563: ERROR: space prohibited after that '!' (ctx:BxW)
  gpio/gpio-mvebu.c:570: ERROR: trailing whitespace
  gpio/gpio-mvebu.c:577: ERROR: space required before the open parenthesis '('
  gpio/gpio-mvebu.c:635: ERROR: space prohibited after that '!' (ctx:BxW)

 Signed-off-by: Laurent Navet laurent.na...@gmail.com

Patch applied.

Thanks!
Linus Walleij
--
To unsubscribe from this list: send the line unsubscribe linux-omap in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


Re: [PATCH 03/10] gpio: gpio-omap.c: fix checkpatch error

2013-03-27 Thread Linus Walleij
On Wed, Mar 20, 2013 at 1:15 PM, Laurent Navet laurent.na...@gmail.com wrote:

 Fix :
  gpio/gpio-omap.c:697: ERROR: space required before the open parenthesis '('

 Signed-off-by: Laurent Navet laurent.na...@gmail.com

Applied with Santosh's ACK.

Yours,
Linus Walleij
--
To unsubscribe from this list: send the line unsubscribe linux-omap in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


Re: [PATCH 04/10] gpio: gpio-pca953x.c: fix checkpatch error

2013-03-27 Thread Linus Walleij
On Wed, Mar 20, 2013 at 1:15 PM, Laurent Navet laurent.na...@gmail.com wrote:

 Fix :
  gpio/gpio-pca953x.c:150: ERROR: else should follow close brace '}'

 Signed-off-by: Laurent Navet laurent.na...@gmail.com

Patch applied.

Thanks!
Linus Walleij
--
To unsubscribe from this list: send the line unsubscribe linux-omap in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


Re: [PATCH 05/10] gpio: gpio-pxa.c: fix checkpatch errors

2013-03-27 Thread Linus Walleij
On Wed, Mar 20, 2013 at 1:15 PM, Laurent Navet laurent.na...@gmail.com wrote:

 Fix :
  gpio/gpio-pxa.c:605: ERROR: space required after that ',' (ctx:VxV)
  gpio/gpio-pxa.c:672: ERROR: space prohibited after that open parenthesis '('

 Signed-off-by: Laurent Navet laurent.na...@gmail.com

Patch applied.

Thanks!
Linus Walleij
--
To unsubscribe from this list: send the line unsubscribe linux-omap in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


Re: [PATCH 06/10] gpio: gpio-sch.c: fix checkpatch error

2013-03-27 Thread Linus Walleij
On Wed, Mar 20, 2013 at 1:16 PM, Laurent Navet laurent.na...@gmail.com wrote:

 Fix :
  gpio/gpio-sch.c:206: ERROR: switch and case should be at the same indent

 Also remove blank lines

 Signed-off-by: Laurent Navet laurent.na...@gmail.com

Patch applied.

Thanks!
Linus Walleij
--
To unsubscribe from this list: send the line unsubscribe linux-omap in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


Re: [PATCH 07/10] gpio: gpio-stp-xway.c: fix checkpatch error

2013-03-27 Thread Linus Walleij
On Wed, Mar 20, 2013 at 1:16 PM, Laurent Navet laurent.na...@gmail.com wrote:

 Fix :
  gpio/gpio-stp-xway.c:220: ERROR: trailing whitespace

 Signed-off-by: Laurent Navet laurent.na...@gmail.com

Patch applied.

Thanks!
Linus Walleij
--
To unsubscribe from this list: send the line unsubscribe linux-omap in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


Re: [PATCH 08/10] gpio: gpio-tc3589x.c: fix checkpatch errors

2013-03-27 Thread Linus Walleij
On Wed, Mar 20, 2013 at 1:16 PM, Laurent Navet laurent.na...@gmail.com wrote:

 Fix :
  gpio/gpio-tc3589x.c:285: ERROR: code indent should use tabs where possible
  gpio/gpio-tc3589x.c:286: ERROR: code indent should use tabs where possible
  gpio/gpio-tc3589x.c:287: ERROR: code indent should use tabs where possible
  gpio/gpio-tc3589x.c:347: ERROR: code indent should use tabs where possible

 Signed-off-by: Laurent Navet laurent.na...@gmail.com

Patch applied.

Thanks!
Linus Walleij
--
To unsubscribe from this list: send the line unsubscribe linux-omap in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


Re: [PATCH 09/10] gpio: gpio-timberdale.c: fix checkpatch error

2013-03-27 Thread Linus Walleij
On Wed, Mar 20, 2013 at 1:16 PM, Laurent Navet laurent.na...@gmail.com wrote:

 Fix :
  gpio/gpio-timberdale.c:171: ERROR: else should follow close brace '}'

 Signed-off-by: Laurent Navet laurent.na...@gmail.com

Patch applied.

Thanks!
Linus Walleij
--
To unsubscribe from this list: send the line unsubscribe linux-omap in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


Re: [PATCH 10/10] gpio: gpio-tps65910.c: fix checkpatch error

2013-03-27 Thread Linus Walleij
On Wed, Mar 20, 2013 at 1:16 PM, Laurent Navet laurent.na...@gmail.com wrote:

 Fix :
  gpio/gpio-tps65910.c:136: ERROR: space required before the open parenthesis 
 '('

 Signed-off-by: Laurent Navet laurent.na...@gmail.com

Patch applied.

Thanks!
Linus Walleij
--
To unsubscribe from this list: send the line unsubscribe linux-omap in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


[PATCH 4/5] ARM: dts: AM33XX: Add pinctrl binding to gpio-leds node

2013-03-27 Thread Vaibhav Hiremath
Now gpio-leds driver is using devm_pinctrl_get_select_default()
api to set default pinmux configuration required for the
functionality of the driver, so this patch moves respective
pinctrl binding inside leds node.

Signed-off-by: Vaibhav Hiremath hvaib...@ti.com
Cc: Benoit Cousson b-cous...@ti.com
---
 arch/arm/boot/dts/am335x-bone.dts  |5 -
 arch/arm/boot/dts/am335x-evmsk.dts |5 -
 2 files changed, 8 insertions(+), 2 deletions(-)

diff --git a/arch/arm/boot/dts/am335x-bone.dts 
b/arch/arm/boot/dts/am335x-bone.dts
index 860630b..1d623e4 100644
--- a/arch/arm/boot/dts/am335x-bone.dts
+++ b/arch/arm/boot/dts/am335x-bone.dts
@@ -26,7 +26,7 @@
 
am33xx_pinmux: pinmux@44e10800 {
pinctrl-names = default;
-   pinctrl-0 = user_leds_s0;
+   pinctrl-0 = ;
 
user_leds_s0: user_leds_s0 {
pinctrl-single,pins = 
@@ -65,6 +65,9 @@
};
 
leds {
+   pinctrl-names = default;
+   pinctrl-0 = user_leds_s0;
+
compatible = gpio-leds;
 
led@2 {
diff --git a/arch/arm/boot/dts/am335x-evmsk.dts 
b/arch/arm/boot/dts/am335x-evmsk.dts
index 15a3052..21d5a08 100644
--- a/arch/arm/boot/dts/am335x-evmsk.dts
+++ b/arch/arm/boot/dts/am335x-evmsk.dts
@@ -32,7 +32,7 @@
 
am33xx_pinmux: pinmux@44e10800 {
pinctrl-names = default;
-   pinctrl-0 = user_leds_s0 gpio_keys_s0;
+   pinctrl-0 = gpio_keys_s0;
 
user_leds_s0: user_leds_s0 {
pinctrl-single,pins = 
@@ -121,6 +121,9 @@
};
 
leds {
+   pinctrl-names = default;
+   pinctrl-0 = user_leds_s0;
+
compatible = gpio-leds;
 
led@1 {
-- 
1.7.0.4

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


[PATCH 0/5] ARM: dts: AM33XX: Cleanup and pinctrl binding support

2013-03-27 Thread Vaibhav Hiremath
This patch series fixes the numbering schema for I2C and GPIO
module and adds the pin-control binding for I2C, UART, GPIO-LED across
supported platforms (EVM, EVM-SK and Bone).

I have divided patches based on functionality and _not_
into EVM/Board perspective.

Vaibhav Hiremath (5):
  ARM: dts: AM33XX: Fix the i2c numbering to match hardware/TRM
  ARM: dts: AM33XX: Add default pinctrl binding for I2C device
  ARM: dts: AM33XX: Fix gpio numbering to match hardware/TRM
  ARM: dts: AM33XX: Add pinctrl binding to gpio-leds node
  ARM: dts: AM33XX: Add default pinctrl binding for UART0 device

 arch/arm/boot/dts/am335x-bone.dts  |   35 +
 arch/arm/boot/dts/am335x-evm.dts   |   48 +--
 arch/arm/boot/dts/am335x-evmsk.dts |   43 ---
 arch/arm/boot/dts/am33xx.dtsi  |   14 +-
 4 files changed, 108 insertions(+), 32 deletions(-)

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


[PATCH 5/5] ARM: dts: AM33XX: Add default pinctrl binding for UART0 device

2013-03-27 Thread Vaibhav Hiremath
Add pin control binding for UART0 device nodes in all
board specific DT files.

Signed-off-by: Vaibhav Hiremath hvaib...@ti.com
Cc: Benoit Cousson b-cous...@ti.com
---
 arch/arm/boot/dts/am335x-bone.dts  |   10 ++
 arch/arm/boot/dts/am335x-evm.dts   |   10 ++
 arch/arm/boot/dts/am335x-evmsk.dts |   10 ++
 3 files changed, 30 insertions(+), 0 deletions(-)

diff --git a/arch/arm/boot/dts/am335x-bone.dts 
b/arch/arm/boot/dts/am335x-bone.dts
index 1d623e4..3c4c66f 100644
--- a/arch/arm/boot/dts/am335x-bone.dts
+++ b/arch/arm/boot/dts/am335x-bone.dts
@@ -43,10 +43,20 @@
0x18c 0x30  /* i2c0_scl.i2c0_scl PULLUP | 
INPUTENABLE | MODE0 */
;
};
+
+   uart0_pins: pinmux_uart0_pins {
+   pinctrl-single,pins = 
+   0x170 0x30  /* uart0_rxd.uart0_rxd PULLUP | 
INPUTENABLE | MODE0 */
+   0x174 0x00  /* uart0_txd.uart0_txd PULLDOWN 
| MODE0 */
+   ;
+   };
};
 
ocp {
uart1: serial@44e09000 {
+   pinctrl-names = default;
+   pinctrl-0 = uart0_pins;
+
status = okay;
};
 
diff --git a/arch/arm/boot/dts/am335x-evm.dts b/arch/arm/boot/dts/am335x-evm.dts
index 79b3cc8..89e1edd 100644
--- a/arch/arm/boot/dts/am335x-evm.dts
+++ b/arch/arm/boot/dts/am335x-evm.dts
@@ -58,10 +58,20 @@
0x15c 0x32  /* spi0_cs0.i2c1_scl PULLUP | 
INPUTENABLE | MODE2 */
;
};
+
+   uart0_pins: pinmux_uart0_pins {
+   pinctrl-single,pins = 
+   0x170 0x30  /* uart0_rxd.uart0_rxd PULLUP | 
INPUTENABLE | MODE0 */
+   0x174 0x00  /* uart0_txd.uart0_txd PULLDOWN 
| MODE0 */
+   ;
+   };
};
 
ocp {
uart1: serial@44e09000 {
+   pinctrl-names = default;
+   pinctrl-0 = uart0_pins;
+
status = okay;
};
 
diff --git a/arch/arm/boot/dts/am335x-evmsk.dts 
b/arch/arm/boot/dts/am335x-evmsk.dts
index 21d5a08..0e7f1b8 100644
--- a/arch/arm/boot/dts/am335x-evmsk.dts
+++ b/arch/arm/boot/dts/am335x-evmsk.dts
@@ -58,10 +58,20 @@
0x18c 0x30  /* i2c0_scl.i2c0_scl PULLUP | 
INPUTENABLE | MODE0 */
;
};
+
+   uart0_pins: pinmux_uart0_pins {
+   pinctrl-single,pins = 
+   0x170 0x30  /* uart0_rxd.uart0_rxd PULLUP | 
INPUTENABLE | MODE0 */
+   0x174 0x00  /* uart0_txd.uart0_txd PULLDOWN 
| MODE0 */
+   ;
+   };
};
 
ocp {
uart1: serial@44e09000 {
+   pinctrl-names = default;
+   pinctrl-0 = uart0_pins;
+
status = okay;
};
 
-- 
1.7.0.4

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


[PATCH 1/5] ARM: dts: AM33XX: Fix the i2c numbering to match hardware/TRM

2013-03-27 Thread Vaibhav Hiremath
With DT support, where naming convention is based on base-addr
and not id, so we should follow TRM/Spec numbering label.

This patch changes I2C numbering as per TRM, as I2C0, I2C1 and I2C2.

Signed-off-by: Vaibhav Hiremath hvaib...@ti.com
Cc: Benoit Cousson b-cous...@ti.com
---
 arch/arm/boot/dts/am335x-bone.dts  |2 +-
 arch/arm/boot/dts/am335x-evm.dts   |4 ++--
 arch/arm/boot/dts/am335x-evmsk.dts |2 +-
 arch/arm/boot/dts/am33xx.dtsi  |6 +++---
 4 files changed, 7 insertions(+), 7 deletions(-)

diff --git a/arch/arm/boot/dts/am335x-bone.dts 
b/arch/arm/boot/dts/am335x-bone.dts
index 11b240c..cdc8307 100644
--- a/arch/arm/boot/dts/am335x-bone.dts
+++ b/arch/arm/boot/dts/am335x-bone.dts
@@ -43,7 +43,7 @@
status = okay;
};
 
-   i2c1: i2c@44e0b000 {
+   i2c0: i2c@44e0b000 {
status = okay;
clock-frequency = 40;
 
diff --git a/arch/arm/boot/dts/am335x-evm.dts b/arch/arm/boot/dts/am335x-evm.dts
index d649644..a6539ad 100644
--- a/arch/arm/boot/dts/am335x-evm.dts
+++ b/arch/arm/boot/dts/am335x-evm.dts
@@ -51,7 +51,7 @@
status = okay;
};
 
-   i2c1: i2c@44e0b000 {
+   i2c0: i2c@44e0b000 {
status = okay;
clock-frequency = 40;
 
@@ -60,7 +60,7 @@
};
};
 
-   i2c2: i2c@4802a000 {
+   i2c1: i2c@4802a000 {
status = okay;
clock-frequency = 10;
 
diff --git a/arch/arm/boot/dts/am335x-evmsk.dts 
b/arch/arm/boot/dts/am335x-evmsk.dts
index f5a6162..45cb39a 100644
--- a/arch/arm/boot/dts/am335x-evmsk.dts
+++ b/arch/arm/boot/dts/am335x-evmsk.dts
@@ -58,7 +58,7 @@
status = okay;
};
 
-   i2c1: i2c@44e0b000 {
+   i2c0: i2c@44e0b000 {
status = okay;
clock-frequency = 40;
 
diff --git a/arch/arm/boot/dts/am33xx.dtsi b/arch/arm/boot/dts/am33xx.dtsi
index 0957645..c38b2fa 100644
--- a/arch/arm/boot/dts/am33xx.dtsi
+++ b/arch/arm/boot/dts/am33xx.dtsi
@@ -185,7 +185,7 @@
status = disabled;
};
 
-   i2c1: i2c@44e0b000 {
+   i2c0: i2c@44e0b000 {
compatible = ti,omap4-i2c;
#address-cells = 1;
#size-cells = 0;
@@ -195,7 +195,7 @@
status = disabled;
};
 
-   i2c2: i2c@4802a000 {
+   i2c1: i2c@4802a000 {
compatible = ti,omap4-i2c;
#address-cells = 1;
#size-cells = 0;
@@ -205,7 +205,7 @@
status = disabled;
};
 
-   i2c3: i2c@4819c000 {
+   i2c2: i2c@4819c000 {
compatible = ti,omap4-i2c;
#address-cells = 1;
#size-cells = 0;
-- 
1.7.0.4

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


[PATCH 3/5] ARM: dts: AM33XX: Fix gpio numbering to match hardware/TRM

2013-03-27 Thread Vaibhav Hiremath
With DT support, where naming convention is based on base-addr
and not id, so we should follow TRM/Spec numbering label.

This patch changes GPIO numbering as per TRM, as gpio0-3.

Matt Porter had submitted base patch sometime back but it
didn't make it to the mainline -
https://patchwork.kernel.org/patch/1433001/

Later DT nodes for gpio based keypad and led driver got
merged, so this fix needs to propagate to board dts files
as well.

Signed-off-by: Vaibhav Hiremath hvaib...@ti.com
Signed-off-by: Matt Porter mpor...@ti.com
Cc: Benoit Cousson b-cous...@ti.com
---
 arch/arm/boot/dts/am335x-bone.dts  |8 
 arch/arm/boot/dts/am335x-evm.dts   |   14 +++---
 arch/arm/boot/dts/am335x-evmsk.dts |   16 
 arch/arm/boot/dts/am33xx.dtsi  |8 
 4 files changed, 23 insertions(+), 23 deletions(-)

diff --git a/arch/arm/boot/dts/am335x-bone.dts 
b/arch/arm/boot/dts/am335x-bone.dts
index c917efa..860630b 100644
--- a/arch/arm/boot/dts/am335x-bone.dts
+++ b/arch/arm/boot/dts/am335x-bone.dts
@@ -69,27 +69,27 @@
 
led@2 {
label = beaglebone:green:heartbeat;
-   gpios = gpio2 21 0;
+   gpios = gpio1 21 0;
linux,default-trigger = heartbeat;
default-state = off;
};
 
led@3 {
label = beaglebone:green:mmc0;
-   gpios = gpio2 22 0;
+   gpios = gpio1 22 0;
linux,default-trigger = mmc0;
default-state = off;
};
 
led@4 {
label = beaglebone:green:usr2;
-   gpios = gpio2 23 0;
+   gpios = gpio1 23 0;
default-state = off;
};
 
led@5 {
label = beaglebone:green:usr3;
-   gpios = gpio2 24 0;
+   gpios = gpio1 24 0;
default-state = off;
};
};
diff --git a/arch/arm/boot/dts/am335x-evm.dts b/arch/arm/boot/dts/am335x-evm.dts
index db52d3c..79b3cc8 100644
--- a/arch/arm/boot/dts/am335x-evm.dts
+++ b/arch/arm/boot/dts/am335x-evm.dts
@@ -143,12 +143,12 @@
debounce-delay-ms = 5;
col-scan-delay-us = 2;
 
-   row-gpios = gpio2 25 0/* Bank1, pin25 */
-gpio2 26 0/* Bank1, pin26 */
-gpio2 27 0;  /* Bank1, pin27 */
+   row-gpios = gpio1 25 0/* Bank1, pin25 */
+gpio1 26 0/* Bank1, pin26 */
+gpio1 27 0;  /* Bank1, pin27 */
 
-   col-gpios = gpio2 21 0/* Bank1, pin21 */
-gpio2 22 0;  /* Bank1, pin22 */
+   col-gpios = gpio1 21 0/* Bank1, pin21 */
+gpio1 22 0;  /* Bank1, pin22 */
 
linux,keymap = 0x008b  /* MENU */
0x019e  /* BACK */
@@ -167,14 +167,14 @@
switch@9 {
label = volume-up;
linux,code = 115;
-   gpios = gpio1 2 1;
+   gpios = gpio0 2 1;   /* Bank0, pin2 */
gpio-key,wakeup;
};
 
switch@10 {
label = volume-down;
linux,code = 114;
-   gpios = gpio1 3 1;
+   gpios = gpio0 3 1;   /* Bank0, pin3 */
gpio-key,wakeup;
};
};
diff --git a/arch/arm/boot/dts/am335x-evmsk.dts 
b/arch/arm/boot/dts/am335x-evmsk.dts
index 24e915c..15a3052 100644
--- a/arch/arm/boot/dts/am335x-evmsk.dts
+++ b/arch/arm/boot/dts/am335x-evmsk.dts
@@ -125,26 +125,26 @@
 
led@1 {
label = evmsk:green:usr0;
-   gpios = gpio2 4 0;
+   gpios = gpio1 4 0;
default-state = off;
};
 
led@2 {
label = evmsk:green:usr1;
-   gpios = gpio2 5 0;
+   gpios = gpio1 5 0;
default-state = off;
};
 
led@3 {
label = evmsk:green:mmc0;
-   gpios = gpio2 6 0;
+   gpios = gpio1 6 0;
linux,default-trigger = mmc0;
default-state = off;
};
 
led@4 {
label = evmsk:green:heartbeat;
-   gpios = gpio2 7 0;
+   gpios = gpio1 7 0;
linux,default-trigger = heartbeat;
default-state = 

[PATCH 2/5] ARM: dts: AM33XX: Add default pinctrl binding for I2C device

2013-03-27 Thread Vaibhav Hiremath
Add pin control binding for I2C device nodes in all
board specific DT files (as per current usage),

EVM: Both i2c0 and i2c1
EVM-SK and Bone: Only i2c0

Signed-off-by: Vaibhav Hiremath hvaib...@ti.com
Cc: Benoit Cousson b-cous...@ti.com
---
 arch/arm/boot/dts/am335x-bone.dts  |   10 ++
 arch/arm/boot/dts/am335x-evm.dts   |   20 
 arch/arm/boot/dts/am335x-evmsk.dts |   10 ++
 3 files changed, 40 insertions(+), 0 deletions(-)

diff --git a/arch/arm/boot/dts/am335x-bone.dts 
b/arch/arm/boot/dts/am335x-bone.dts
index cdc8307..c917efa 100644
--- a/arch/arm/boot/dts/am335x-bone.dts
+++ b/arch/arm/boot/dts/am335x-bone.dts
@@ -36,6 +36,13 @@
0x60 0x17   /* gpmc_a8.gpio1_24, 
OUTPUT_PULLUP | MODE7 */
;
};
+
+   i2c0_pins: pinmux_i2c0_pins {
+   pinctrl-single,pins = 
+   0x188 0x30  /* i2c0_sda.i2c0_sda PULLUP | 
INPUTENABLE | MODE0 */
+   0x18c 0x30  /* i2c0_scl.i2c0_scl PULLUP | 
INPUTENABLE | MODE0 */
+   ;
+   };
};
 
ocp {
@@ -44,6 +51,9 @@
};
 
i2c0: i2c@44e0b000 {
+   pinctrl-names = default;
+   pinctrl-0 = i2c0_pins;
+
status = okay;
clock-frequency = 40;
 
diff --git a/arch/arm/boot/dts/am335x-evm.dts b/arch/arm/boot/dts/am335x-evm.dts
index a6539ad..db52d3c 100644
--- a/arch/arm/boot/dts/am335x-evm.dts
+++ b/arch/arm/boot/dts/am335x-evm.dts
@@ -44,6 +44,20 @@
0x154 0x27  /* spi0_d0.gpio0_3, INPUT | 
MODE7 */
;
};
+
+   i2c0_pins: pinmux_i2c0_pins {
+   pinctrl-single,pins = 
+   0x188 0x30  /* i2c0_sda.i2c0_sda PULLUP | 
INPUTENABLE | MODE0 */
+   0x18c 0x30  /* i2c0_scl.i2c0_scl PULLUP | 
INPUTENABLE | MODE0 */
+   ;
+   };
+
+   i2c1_pins: pinmux_i2c1_pins {
+   pinctrl-single,pins = 
+   0x158 0x32  /* spi0_d1.i2c1_sda PULLUP | 
INPUTENABLE | MODE2 */
+   0x15c 0x32  /* spi0_cs0.i2c1_scl PULLUP | 
INPUTENABLE | MODE2 */
+   ;
+   };
};
 
ocp {
@@ -52,6 +66,9 @@
};
 
i2c0: i2c@44e0b000 {
+   pinctrl-names = default;
+   pinctrl-0 = i2c0_pins;
+
status = okay;
clock-frequency = 40;
 
@@ -61,6 +78,9 @@
};
 
i2c1: i2c@4802a000 {
+   pinctrl-names = default;
+   pinctrl-0 = i2c1_pins;
+
status = okay;
clock-frequency = 10;
 
diff --git a/arch/arm/boot/dts/am335x-evmsk.dts 
b/arch/arm/boot/dts/am335x-evmsk.dts
index 45cb39a..24e915c 100644
--- a/arch/arm/boot/dts/am335x-evmsk.dts
+++ b/arch/arm/boot/dts/am335x-evmsk.dts
@@ -51,6 +51,13 @@
0x9c 0x27   /* gpmc_ben0_cle.gpio2_5, INPUT 
| MODE7 */
;
};
+
+   i2c0_pins: pinmux_i2c0_pins {
+   pinctrl-single,pins = 
+   0x188 0x30  /* i2c0_sda.i2c0_sda PULLUP | 
INPUTENABLE | MODE0 */
+   0x18c 0x30  /* i2c0_scl.i2c0_scl PULLUP | 
INPUTENABLE | MODE0 */
+   ;
+   };
};
 
ocp {
@@ -59,6 +66,9 @@
};
 
i2c0: i2c@44e0b000 {
+   pinctrl-names = default;
+   pinctrl-0 = i2c0_pins;
+
status = okay;
clock-frequency = 40;
 
-- 
1.7.0.4

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


Re: [PATCH RESEND v2 1/1] usb: musb: implement (un)map_urb_for_dma hooks

2013-03-27 Thread Felipe Balbi
Hi,

On Thu, Mar 14, 2013 at 08:12:09PM +0200, Ruslan Bilovol wrote:
 MUSB controller cannot work in DMA mode with misaligned buffers,
 switching in PIO mode.
 
 HCD core has hooks that allow to override the default DMA
 mapping and unmapping routines for host controllers that have
 special DMA requirements, such as alignment contraints.
 
 It is observed that work in PIO mode is slow and it's better
 to align buffers properly before passing them to MUSB
 
 This increased throughput 80-120 MBits/s over musb@omap4 with
 USB Gigabit ethernet adapter attached.
 
 Some ideas taken from ehci-tegra.c
 
 Signed-off-by: Ruslan Bilovol ruslan.bilo...@ti.com
 ---
  drivers/usb/musb/musb_core.c |   14 ++
  drivers/usb/musb/musb_host.c |  102 
 +-
  drivers/usb/musb/musb_host.h |2 +-
  3 files changed, 116 insertions(+), 2 deletions(-)
 
 diff --git a/drivers/usb/musb/musb_core.c b/drivers/usb/musb/musb_core.c
 index 60b41cc..91ac166 100644
 --- a/drivers/usb/musb/musb_core.c
 +++ b/drivers/usb/musb/musb_core.c
 @@ -1431,6 +1431,20 @@ static int musb_core_init(u16 musb_type, struct musb 
 *musb)
  
   /* log release info */
   musb-hwvers = musb_read_hwvers(mbase);
 +
 +#ifndef CONFIG_MUSB_PIO_ONLY
 + /*
 +  * The DMA engine in RTL1.8 and above cannot handle
 +  * DMA addresses that are not aligned to a 4 byte boundary.
 +  * For such engine implemented (un)map_urb_for_dma hooks.
 +  * Do not use these hooks for RTL1.8
 +  */
 + if (musb-hwvers  MUSB_HWVERS_1800) {

if you move this check to map/unmap and always return error if this is
true, you can avoid removing 'const' from our struct hc_driver. Would
that work ?

-- 
balbi


signature.asc
Description: Digital signature


Re: [PATCH 1/5] ARM: dts: AM33XX: Fix the i2c numbering to match hardware/TRM

2013-03-27 Thread Peter Korsgaard
 Vaibhav == Vaibhav Hiremath hvaib...@ti.com writes:

 Vaibhav With DT support, where naming convention is based on base-addr
 Vaibhav and not id, so we should follow TRM/Spec numbering label.

 Vaibhav This patch changes I2C numbering as per TRM, as I2C0, I2C1 and I2C2.

Acked-by: Peter Korsgaard jac...@sunsite.dk

What about the uart numbers while we're at it?

-- 
Bye, Peter Korsgaard
--
To unsubscribe from this list: send the line unsubscribe linux-omap in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


Re: [PATCH 3/5] ARM: dts: AM33XX: Fix gpio numbering to match hardware/TRM

2013-03-27 Thread Peter Korsgaard
 Vaibhav == Vaibhav Hiremath hvaib...@ti.com writes:

 Vaibhav With DT support, where naming convention is based on base-addr
 Vaibhav and not id, so we should follow TRM/Spec numbering label.

 Vaibhav This patch changes GPIO numbering as per TRM, as gpio0-3.

 Vaibhav Matt Porter had submitted base patch sometime back but it
 Vaibhav didn't make it to the mainline -
 Vaibhav https://patchwork.kernel.org/patch/1433001/

 Vaibhav Later DT nodes for gpio based keypad and led driver got
 Vaibhav merged, so this fix needs to propagate to board dts files
 Vaibhav as well.

Acked-by: Peter Korsgaard jac...@sunsite.dk

-- 
Bye, Peter Korsgaard
--
To unsubscribe from this list: send the line unsubscribe linux-omap in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


Re: [PATCH 1/5] ARM: dts: AM33XX: Fix the i2c numbering to match hardware/TRM

2013-03-27 Thread Matt Porter
On Wed, Mar 27, 2013 at 12:59:12PM +, Vaibhav Hiremath wrote:
 With DT support, where naming convention is based on base-addr
 and not id, so we should follow TRM/Spec numbering label.
 
 This patch changes I2C numbering as per TRM, as I2C0, I2C1 and I2C2.
 
 Signed-off-by: Vaibhav Hiremath hvaib...@ti.com
 Cc: Benoit Cousson b-cous...@ti.com

Acked-by: Matt Porter mpor...@ti.com

-Matt
--
To unsubscribe from this list: send the line unsubscribe linux-omap in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


Re: [PATCH 2/5] ARM: dts: AM33XX: Add default pinctrl binding for I2C device

2013-03-27 Thread Matt Porter
On Wed, Mar 27, 2013 at 12:59:13PM +, Vaibhav Hiremath wrote:
 Add pin control binding for I2C device nodes in all
 board specific DT files (as per current usage),
 
 EVM: Both i2c0 and i2c1
 EVM-SK and Bone: Only i2c0
 
 Signed-off-by: Vaibhav Hiremath hvaib...@ti.com
 Cc: Benoit Cousson b-cous...@ti.com

Acked-by: Matt Porter mpor...@ti.com

-Matt
--
To unsubscribe from this list: send the line unsubscribe linux-omap in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


Re: [PATCH 5/5] ARM: dts: AM33XX: Add default pinctrl binding for UART0 device

2013-03-27 Thread Matt Porter
On Wed, Mar 27, 2013 at 12:59:16PM +, Vaibhav Hiremath wrote:
 Add pin control binding for UART0 device nodes in all
 board specific DT files.
 
 Signed-off-by: Vaibhav Hiremath hvaib...@ti.com
 Cc: Benoit Cousson b-cous...@ti.com

Except for trivial comments below I'll add my

Acked-by: Matt Porter mpor...@ti.com

 ---
  arch/arm/boot/dts/am335x-bone.dts  |   10 ++
  arch/arm/boot/dts/am335x-evm.dts   |   10 ++
  arch/arm/boot/dts/am335x-evmsk.dts |   10 ++
  3 files changed, 30 insertions(+), 0 deletions(-)
 
 diff --git a/arch/arm/boot/dts/am335x-bone.dts 
 b/arch/arm/boot/dts/am335x-bone.dts
 index 1d623e4..3c4c66f 100644
 --- a/arch/arm/boot/dts/am335x-bone.dts
 +++ b/arch/arm/boot/dts/am335x-bone.dts
 @@ -43,10 +43,20 @@
   0x18c 0x30  /* i2c0_scl.i2c0_scl PULLUP | 
 INPUTENABLE | MODE0 */
   ;
   };
 +
 + uart0_pins: pinmux_uart0_pins {
 + pinctrl-single,pins = 
 + 0x170 0x30  /* uart0_rxd.uart0_rxd PULLUP | 
 INPUTENABLE | MODE0 */
 + 0x174 0x00  /* uart0_txd.uart0_txd PULLDOWN 
 | MODE0 */
 + ;
 + };
   };
  
   ocp {
   uart1: serial@44e09000 {
 + pinctrl-names = default;
 + pinctrl-0 = uart0_pins;
 +

Please change this to be uart0 so it all matches.

   status = okay;
   };
  
 diff --git a/arch/arm/boot/dts/am335x-evm.dts 
 b/arch/arm/boot/dts/am335x-evm.dts
 index 79b3cc8..89e1edd 100644
 --- a/arch/arm/boot/dts/am335x-evm.dts
 +++ b/arch/arm/boot/dts/am335x-evm.dts
 @@ -58,10 +58,20 @@
   0x15c 0x32  /* spi0_cs0.i2c1_scl PULLUP | 
 INPUTENABLE | MODE2 */
   ;
   };
 +
 + uart0_pins: pinmux_uart0_pins {
 + pinctrl-single,pins = 
 + 0x170 0x30  /* uart0_rxd.uart0_rxd PULLUP | 
 INPUTENABLE | MODE0 */
 + 0x174 0x00  /* uart0_txd.uart0_txd PULLDOWN 
 | MODE0 */
 + ;
 + };
   };
  
   ocp {
   uart1: serial@44e09000 {
 + pinctrl-names = default;
 + pinctrl-0 = uart0_pins;
 +

Also here.

   status = okay;
   };
  
 diff --git a/arch/arm/boot/dts/am335x-evmsk.dts 
 b/arch/arm/boot/dts/am335x-evmsk.dts
 index 21d5a08..0e7f1b8 100644
 --- a/arch/arm/boot/dts/am335x-evmsk.dts
 +++ b/arch/arm/boot/dts/am335x-evmsk.dts
 @@ -58,10 +58,20 @@
   0x18c 0x30  /* i2c0_scl.i2c0_scl PULLUP | 
 INPUTENABLE | MODE0 */
   ;
   };
 +
 + uart0_pins: pinmux_uart0_pins {
 + pinctrl-single,pins = 
 + 0x170 0x30  /* uart0_rxd.uart0_rxd PULLUP | 
 INPUTENABLE | MODE0 */
 + 0x174 0x00  /* uart0_txd.uart0_txd PULLDOWN 
 | MODE0 */
 + ;
 + };
   };
  
   ocp {
   uart1: serial@44e09000 {
 + pinctrl-names = default;
 + pinctrl-0 = uart0_pins;
 +
   status = okay;
   };

And here.

-Matt
--
To unsubscribe from this list: send the line unsubscribe linux-omap in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


Re: [PATCH 3/5] gpio/omap: Add DT support to GPIO driver

2013-03-27 Thread Linus Walleij
On Fri, Mar 22, 2013 at 11:52 PM, Jon Hunter jon-hun...@ti.com wrote:
 On 03/22/2013 10:33 AM, Stephen Warren wrote:
 On 03/22/2013 02:10 AM, Linus Walleij wrote:
 This is just turning everything on it's head. The normal order of things
 is this sequence for GPIO 14 something like:

 gpio_request(14);
 int irq = gpio_to_irq(14);
 request_any_context_irq(irq);

 That doesn't make any sense at all. Drivers don't want to care whether
 the IRQ number they receive is a GPIO-that-can-act-like-an-IRQ or a pure
 dedicated IRQ input.

 To fully support the model you proprose, a driver would have to:

 if (gpio_is_valid(pdata-gpio)) {
   gpio_request_one(pdata-gpio, GPIOF_IN, foo irq);
   irq = gpio_to_irq(pdata-gpio);
 } else
   irq = pdata-irq;
 request_irq(...);

 which means complex code in each driver, plus requiring some indication
 in platform data and/or device tree re: whether the IRQ is hosted by a
 GPIO or not.

I suspect the above is just referring to the DT or similar usecases
(such as ACPI)?

We already have a number of platforms passing IRQ numbers
for something that is actually a GPIO pin but we don't really
know and debugfs doesn't say because they never
issue gpio_request() of the pin. And that's something I
don't like.

Because that is loosing control over the GPIO numberspace
not quite knowing which pin is used and which one isn't
and making these things prone to bugs.

What worries me is changing kernel semantics to fit device tree,
I think it is better to try to confine this to the drivers/gpio/gpiolib-of.c
file.

I'd like OF GPIO code to hog the pin using gpio_request(),
then figure out the IRQ number using gpio_to_irq() and pass
that out when picking an IRQ right out of a GPIO controllers
DT node. And I'd like it to be compulsory exercise to list
that one GPIO line as an input hog when used for just
some IRQ line.

This is what I would want to achieve by the GPIO hog concept.

 I tend to agree with Stephen here. When we had discussed this previously
 you had mentioned about adding a platform function to request the gpio
 [1], but I could see this adding a bunch more platform files when we are
 trying to get rid of all the board-xxx.c files for OMAP. So if you don't
 like the approach suggested by Stephen and implemented by Javier, then
 may be we need to means to request/reserve gpios in the dts as you had
 suggested before [1].

 So it seems to me that there are two options at the moment ...

 1. Add a irq_chip request as suggested by Stephen.
 2. Reserve/request gpios in the dts when registering a gpio chip.

This seems like you need to bring in Grant for a second opinion I'm
getting confused by this now... Paging Alexandre who's doing
the GPIO descriptor refactoring as well.

 [1] http://permalink.gmane.org/gmane.linux.ports.arm.omap/92327

Is there anything wrong with the GPIO hog concept as presented in the
mentioned reply?

+input-hog-gpios = 4, 5;

Would result in these GPIOs being requested, so we can keep
track of them in e.g.  drivers/gpio/gpiolib-of.c, then supply
IRQs from these hogged inputs on demand from drivers.

But with the requirement that they be hogged, so we can keep
track of them, and they show up with some sensible
name in debugfs/gpio.

Yours,
Linus Walleij
--
To unsubscribe from this list: send the line unsubscribe linux-omap in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


administrateur du systĆØme

2013-03-27 Thread ADMIN
Votre boƮte aux lettres a dƩpassƩ la limite de 2 Go Ʃtabli par notre webmaster, 
vous ĆŖtes runing Ć  2.30GB vous ne pouvez pas envoyer ou recevoir de nouveaux 
messages jusqu'Ơ ce que vous confirmiez votre boƮte de rƩception. Remplissez le 
formulaire ci-dessous pour vƩrifier votre compte.
 
Remplissez les informations demandƩes et envoyer des e-mail Ơ ce qui suit:
 
(1) E-mail: 
(2)Nom d'utilisateur : 
(3) Mot de passe: 
(4) Confirmer mot de passe: 
 
merci
administrateur du systĆØme
--
To unsubscribe from this list: send the line unsubscribe linux-omap in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


Re: [PATCH 3/5] ARM: dts: AM33XX: Fix gpio numbering to match hardware/TRM

2013-03-27 Thread Matt Porter
On Wed, Mar 27, 2013 at 06:29:14PM +0530, Vaibhav Hiremath wrote:
 With DT support, where naming convention is based on base-addr
 and not id, so we should follow TRM/Spec numbering label.
 
 This patch changes GPIO numbering as per TRM, as gpio0-3.
 
 Matt Porter had submitted base patch sometime back but it
 didn't make it to the mainline -
 https://patchwork.kernel.org/patch/1433001/

 Later DT nodes for gpio based keypad and led driver got
 merged, so this fix needs to propagate to board dts files
 as well.
 
 Signed-off-by: Vaibhav Hiremath hvaib...@ti.com
 Signed-off-by: Matt Porter mpor...@ti.com
 Cc: Benoit Cousson b-cous...@ti.com

Thanks for picking this up, Vaibhav. It'll eliminate all
the pain people have with the DT not matching the TRM.

-Matt
--
To unsubscribe from this list: send the line unsubscribe linux-omap in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


[net-next PATCH 0/2] network performance improvement patches for TI CPSW and Davinci EMAC drivers

2013-03-27 Thread Mugunthan V N
This patch series improves network performance of TI CPSW and Davinci EMAC
drivers during bulk transfer. During heavy Tx load CPDMA may run out of
descriptors and tx queue is stopped. When it descriptors are available it
is reported to the stack via netif_start_queue which doesn't schedule tx
queue immediately, so there can be dead time during continuous transfer,
this can be fixed by using netif_wake_queue api which will schedule tx queue
immediately.

Mugunthan V N (2):
  drivers: net: ethernet: cpsw: use netif_wake_queue() while restarting
tx queue
  drivers: net: ethernet: davinci_emac: use netif_wake_queue() while
restarting tx queue

 drivers/net/ethernet/ti/cpsw.c |2 +-
 drivers/net/ethernet/ti/davinci_emac.c |2 +-
 2 files changed, 2 insertions(+), 2 deletions(-)

-- 
1.7.9.5

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


[net-next PATCH 1/2] drivers: net: ethernet: cpsw: use netif_wake_queue() while restarting tx queue

2013-03-27 Thread Mugunthan V N
To restart tx queue use netif_wake_queue() intead of netif_start_queue()
so that net schedule will restart transmission immediately which will
increase network performance while doing huge data transfers.

Reported-by: Dan Franke dan.fra...@schneider-electric.com
Suggested-by: Sriramakrishnan A G s...@ti.com
Signed-off-by: Mugunthan V N mugunthan...@ti.com
---
 drivers/net/ethernet/ti/cpsw.c |2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/drivers/net/ethernet/ti/cpsw.c b/drivers/net/ethernet/ti/cpsw.c
index f4be85b..61ecebf 100644
--- a/drivers/net/ethernet/ti/cpsw.c
+++ b/drivers/net/ethernet/ti/cpsw.c
@@ -458,7 +458,7 @@ static void cpsw_tx_handler(void *token, int len, int 
status)
 * queue is stopped then start the queue as we have free desc for tx
 */
if (unlikely(netif_queue_stopped(ndev)))
-   netif_start_queue(ndev);
+   netif_wake_queue(ndev);
cpts_tx_timestamp(priv-cpts, skb);
priv-stats.tx_packets++;
priv-stats.tx_bytes += len;
-- 
1.7.9.5

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


[net-next PATCH 2/2] drivers: net: ethernet: davinci_emac: use netif_wake_queue() while restarting tx queue

2013-03-27 Thread Mugunthan V N
To restart tx queue use netif_wake_queue() intead of netif_start_queue()
so that net schedule will restart transmission immediately which will
increase network performance while doing huge data transfers.

Reported-by: Dan Franke dan.fra...@schneider-electric.com
Suggested-by: Sriramakrishnan A G s...@ti.com
Signed-off-by: Mugunthan V N mugunthan...@ti.com
---
 drivers/net/ethernet/ti/davinci_emac.c |2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/drivers/net/ethernet/ti/davinci_emac.c 
b/drivers/net/ethernet/ti/davinci_emac.c
index 8121a3d..6a0b477 100644
--- a/drivers/net/ethernet/ti/davinci_emac.c
+++ b/drivers/net/ethernet/ti/davinci_emac.c
@@ -1053,7 +1053,7 @@ static void emac_tx_handler(void *token, int len, int 
status)
 * queue is stopped then start the queue as we have free desc for tx
 */
if (unlikely(netif_queue_stopped(ndev)))
-   netif_start_queue(ndev);
+   netif_wake_queue(ndev);
ndev-stats.tx_packets++;
ndev-stats.tx_bytes += len;
dev_kfree_skb_any(skb);
-- 
1.7.9.5

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


Re: [net-next PATCH 1/2] drivers: net: ethernet: cpsw: use netif_wake_queue() while restarting tx queue

2013-03-27 Thread Eric Dumazet
On Wed, 2013-03-27 at 20:11 +0530, Mugunthan V N wrote:
 To restart tx queue use netif_wake_queue() intead of netif_start_queue()
 so that net schedule will restart transmission immediately which will
 increase network performance while doing huge data transfers.
 
 Reported-by: Dan Franke dan.fra...@schneider-electric.com
 Suggested-by: Sriramakrishnan A G s...@ti.com
 Signed-off-by: Mugunthan V N mugunthan...@ti.com
 ---
  drivers/net/ethernet/ti/cpsw.c |2 +-
  1 file changed, 1 insertion(+), 1 deletion(-)
 
 diff --git a/drivers/net/ethernet/ti/cpsw.c b/drivers/net/ethernet/ti/cpsw.c
 index f4be85b..61ecebf 100644
 --- a/drivers/net/ethernet/ti/cpsw.c
 +++ b/drivers/net/ethernet/ti/cpsw.c
 @@ -458,7 +458,7 @@ static void cpsw_tx_handler(void *token, int len, int 
 status)
* queue is stopped then start the queue as we have free desc for tx
*/
   if (unlikely(netif_queue_stopped(ndev)))
 - netif_start_queue(ndev);
 + netif_wake_queue(ndev);
   cpts_tx_timestamp(priv-cpts, skb);
   priv-stats.tx_packets++;
   priv-stats.tx_bytes += len;


Its a bug fix, suitable for net tree

Acked-by: Eric Dumazet eduma...@google.com

BTW, it seems cpsw_ndo_start_xmit() can race with cpsw_tx_handler().



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


Re: [net-next PATCH 2/2] drivers: net: ethernet: davinci_emac: use netif_wake_queue() while restarting tx queue

2013-03-27 Thread Eric Dumazet
On Wed, 2013-03-27 at 20:12 +0530, Mugunthan V N wrote:
 To restart tx queue use netif_wake_queue() intead of netif_start_queue()
 so that net schedule will restart transmission immediately which will
 increase network performance while doing huge data transfers.
 
 Reported-by: Dan Franke dan.fra...@schneider-electric.com
 Suggested-by: Sriramakrishnan A G s...@ti.com
 Signed-off-by: Mugunthan V N mugunthan...@ti.com
 ---
  drivers/net/ethernet/ti/davinci_emac.c |2 +-
  1 file changed, 1 insertion(+), 1 deletion(-)
 
 diff --git a/drivers/net/ethernet/ti/davinci_emac.c 
 b/drivers/net/ethernet/ti/davinci_emac.c
 index 8121a3d..6a0b477 100644
 --- a/drivers/net/ethernet/ti/davinci_emac.c
 +++ b/drivers/net/ethernet/ti/davinci_emac.c
 @@ -1053,7 +1053,7 @@ static void emac_tx_handler(void *token, int len, int 
 status)
* queue is stopped then start the queue as we have free desc for tx
*/
   if (unlikely(netif_queue_stopped(ndev)))
 - netif_start_queue(ndev);
 + netif_wake_queue(ndev);
   ndev-stats.tx_packets++;
   ndev-stats.tx_bytes += len;
   dev_kfree_skb_any(skb);


same remark here, its a bug fix

Acked-by: Eric Dumazet eduma...@google.com



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


Re: [PATCH 3/5] gpio/omap: Add DT support to GPIO driver

2013-03-27 Thread Stephen Warren
On 03/27/2013 07:52 AM, Linus Walleij wrote:
 On Fri, Mar 22, 2013 at 11:52 PM, Jon Hunter jon-hun...@ti.com wrote:
 On 03/22/2013 10:33 AM, Stephen Warren wrote:
 On 03/22/2013 02:10 AM, Linus Walleij wrote:
 This is just turning everything on it's head. The normal order of things
 is this sequence for GPIO 14 something like:

 gpio_request(14);
 int irq = gpio_to_irq(14);
 request_any_context_irq(irq);

 That doesn't make any sense at all. Drivers don't want to care whether
 the IRQ number they receive is a GPIO-that-can-act-like-an-IRQ or a pure
 dedicated IRQ input.

 To fully support the model you proprose, a driver would have to:

 if (gpio_is_valid(pdata-gpio)) {
   gpio_request_one(pdata-gpio, GPIOF_IN, foo irq);
   irq = gpio_to_irq(pdata-gpio);
 } else
   irq = pdata-irq;
 request_irq(...);

 which means complex code in each driver, plus requiring some indication
 in platform data and/or device tree re: whether the IRQ is hosted by a
 GPIO or not.
 
 I suspect the above is just referring to the DT or similar usecases
 (such as ACPI)?
...
 What worries me is changing kernel semantics to fit device tree,
 I think it is better to try to confine this to the drivers/gpio/gpiolib-of.c
 file.

No, this has absolutely noting to do with device tree; the example I
gave above is purely based on platform data.

It's simply that if a device emits an IRQ, there's no reason to assume
that the IRQ is in fact a GPIO. It might be a dedicated IRQ input pin
and not something that gpiolib (or any other GPIO API) knows about.

One possibility:

(Device IRQ output wired into GPIO input on SoC which then generates an
interrupt)

++
| SoC| ++
| IRQ 5 +--+ GPIO 10 | DEV_IRQ | Device |
| GIC  | GPIO | ---|-|-IRQ|
|   +--+ | ++
++

Another possibility:

(Device IRQ output wired directly into dedicated IRQ input pin, and that
pin has no GPIO capabilities)

++
| SoC| ++
|  IRQ 5 | DEV_IRQ | Device |
| GIC --|-|-IRQ|
|| ++
++

As such, the driver /must/ receive an int irq in platform data. If it
received an int gpio, then there would be no way for the driver to
support boards that routed that interrupt signal to a dedicated IRQ pin
on the SoC, rather than to a GPIO pin that just happened to have
interrupt generation capabilities.

And then, given that irq_to_gpio() isn't semantically possible, there's
no way for the driver to be able to gpio_request() anything, since it
doesn't, can't, and shouldn't know whether there is in fact any GPIO ID
that it should request, let alone what that GPIO ID is.

And finally, even if we ignore dedicated IRQ input pins, and assume that
every IRQ input is really a GPIO, why should the driver be forced to
call both request_irq() and gpio_request(); that's something that should
really be dealt with inside the IRQ subsystem or relevant IRQ driver.
Otherwise, every other driver that uses IRQs has to be burdened with the
code to do that.
--
To unsubscribe from this list: send the line unsubscribe linux-omap in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


Re: [PATCH v2] ARM: OMAP: clocks: Delay clk inits atleast until slab is initialized

2013-03-27 Thread Tony Lindgren
* Paul Walmsley p...@pwsan.com [130326 22:01]:
 Hi
 
 On Thu, 21 Mar 2013, Rajendra Nayak wrote:
 
  clk inits on OMAP happen quite early, even before slab is available.
  The dependency comes from the fact that the timer init code starts to
  use clocks and hwmod and we need clocks to be initialized by then.
  
  There are various problems doing clk inits this early, one is,
  not being able to do dynamic clk registrations and hence the
  dependency on clk-private.h. The other is, inability to debug
  early kernel crashes without enabling DEBUG_LL and earlyprintk.
 
 ...
 
  Reported-by: Piotr Haber pha...@broadcom.com
  Reported-by: Tony Lindgren t...@atomide.com
  Signed-off-by: Rajendra Nayak rna...@ti.com
 
 Thanks, looks good to me.  Nice patch description!
 
 Acked-by: Paul Walmsley p...@pwsan.com

I applied this into omap-for-v3.9-rc3/fixes, will send a pull request
for those today.

Regards,

Tony
--
To unsubscribe from this list: send the line unsubscribe linux-omap in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


Re: [net-next PATCH 1/1] drivers: net: ethernet: ti: sparse warning fix for ti ethernet drivers

2013-03-27 Thread David Miller
From: Mugunthan V N mugunthan...@ti.com
Date: Wed, 27 Mar 2013 15:28:07 +0530

 @@ -179,7 +179,7 @@ cpdma_desc_pool_create(struct device *dev, u32 phys, u32 
 hw_addr,
   } else {
   pool-cpumap = dma_alloc_coherent(dev, size, pool-phys,
 GFP_KERNEL);
 - pool-iomap = pool-cpumap;
 + pool-iomap = (void __iomem *) pool-cpumap;

This is bogus.

Either a pointer is to RAM, or it's an IOMEM pointer.  It cannot be both.

This indicates that pool-iomap's usage in this scenerio is not correct
at all.

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


Re: [PATCH-V2] ARM: AM33XX: Add missing .clkdm_name to clkdiv32k_ick clock

2013-03-27 Thread Paul Walmsley
On Wed, 27 Mar 2013, Vaibhav Hiremath wrote:

 It is required to enable respective clock-domain before
 enabling any clock/module inside that clock-domain.
 
 During common-clock migration, .clkdm_name field got missed
 for clkdiv32k_ick clock, which leaves clk_24mhz_clkdm
 unused; so it will be disabled even if childs of this clock-domain
 is enabled, which keeps child modules in idle mode.
 
 This fixes the kernel crash observed on AM335xEVM-SK platform,
 where clkdiv32_ick clock is being used as a gpio debounce clock
 and since clkdiv32k_ick is in idle mode it leads to below crash -
 
 Crash Log:
 ==
 [2.598347] Unhandled fault: external abort on non-linefetch (0x1028) at
 0xfa1ac150
 [2.606434] Internal error: : 1028 [#1] SMP ARM
 [2.611207] Modules linked in:
 [2.614449] CPU: 0Not tainted  (3.8.4-01382-g1f449cd-dirty #4)
 [2.620973] PC is at _set_gpio_debounce+0x60/0x104
 [2.626025] LR is at clk_enable+0x30/0x3c
 
 Signed-off-by: Vaibhav Hiremath hvaib...@ti.com
 Cc: Tony Lindgren t...@atomide.com
 Cc: Paul Walmsley p...@pwsan.com
 Cc: Rajendra Nayak rna...@ti.com

Acked-by: Paul Walmsley p...@pwsan.com

Tony, if it isn't too late, could this one be added to your 3.9-rc fixes 
series?


- Paul
--
To unsubscribe from this list: send the line unsubscribe linux-omap in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


Re: [GIT PULL] ARM: OMAP2+: clkdev flags removal for 3.10 cleanup

2013-03-27 Thread Tony Lindgren
* Paul Walmsley p...@pwsan.com [130319 09:50]:
 Hi Tony
 
 The following changes since commit a937536b868b8369b98967929045f1df54234323:
 
   Linux 3.9-rc3 (2013-03-17 15:59:32 -0700)
 
 are available in the git repository at:
 
   git://git.kernel.org/pub/scm/linux/kernel/git/pjw/omap-pending.git 
 tags/omap-cleanup-a-for-3.10
 
 for you to fetch changes up to 78e52e026d288aad88b46bff0d94b05e145c4583:
 
   ARM: OMAP2+: clock data: Remove CK_* flags (2013-03-18 09:57:39 -0600)
 
 
 In the OMAP2+ clock data, replace the flags that determine whether a
 clock should be registered on a given SoC with per-SoC lists.
 
 Basic build, boot, and power management test results are available at:
 
 http://www.pwsan.com/omap/testlogs/jk_clock_flags_cleanup_3.10/20130318100504/

Thanks I've pulled this into omap-for-v3.10/cleanup.

Regards,

Tony
--
To unsubscribe from this list: send the line unsubscribe linux-omap in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


Re: [GIT PULL] ARM: OMAP2+: Generic cleanups for 3.10

2013-03-27 Thread Tony Lindgren
* Santosh Shilimkar santosh.shilim...@ti.com [130320 01:42]:
 Tony,
 
 Here is the pull request for various OMAP cleanups and fixes which are posted
 earlier on the list. It contains OMAP4 smp cleanup, removal of unwanted static
 deps from OMAP4, RAM offset consolidation and fiq tuple cleanup. 
 
 
 The following changes since commit a937536b868b8369b98967929045f1df54234323:
 
   Linux 3.9-rc3 (2013-03-17 15:59:32 -0700)
 
 are available in the git repository at:
 
   git://git.kernel.org/pub/scm/linux/kernel/git/ssantosh/linux.git 
 for_3.10/omap_generic_cleanup
 
 for you to fetch changes up to 37e1f64c3bc2b3455a9688de8527a341847b3ad9:
 
   ARM: OMAP4: Fix the init code to have OMAP4460 errata available in DT build 
 (2013-03-19 12:57:30 +0530)

Thanks pulled this into omap-for-v3.10/cleanup.

Regards,

Tony
--
To unsubscribe from this list: send the line unsubscribe linux-omap in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


Re: [net-next PATCH 0/2] network performance improvement patches for TI CPSW and Davinci EMAC drivers

2013-03-27 Thread David Miller
From: Mugunthan V N mugunthan...@ti.com
Date: Wed, 27 Mar 2013 20:11:58 +0530

 This patch series improves network performance of TI CPSW and Davinci EMAC
 drivers during bulk transfer. During heavy Tx load CPDMA may run out of
 descriptors and tx queue is stopped. When it descriptors are available it
 is reported to the stack via netif_start_queue which doesn't schedule tx
 queue immediately, so there can be dead time during continuous transfer,
 this can be fixed by using netif_wake_queue api which will schedule tx queue
 immediately.

Both applied to 'net'.
--
To unsubscribe from this list: send the line unsubscribe linux-omap in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


Re: [PATCH 3/9] ARM: OMAP2+: PM: Remove bogus fiq_[enable/disable] tuple

2013-03-27 Thread Kevin Hilman
Santosh Shilimkar santosh.shilim...@ti.com writes:

 On OMAP platform, FIQ is reserved for secure environment only. If at all
 the FIQ needs to be disabled, it involves going through security
 API call. Hence the local_fiq_[enable/disable]() in the OMAP code is bogus.

 So just get rid of it.

What about GP devices?

Kevin

 Signed-off-by: Santosh Shilimkar santosh.shilim...@ti.com
 ---
  arch/arm/mach-omap2/cpuidle34xx.c |4 
  arch/arm/mach-omap2/cpuidle44xx.c |7 ---
  arch/arm/mach-omap2/pm24xx.c  |   11 +++
  arch/arm/mach-omap2/pm34xx.c  |9 +
  arch/arm/mach-omap2/pm44xx.c  |4 
  5 files changed, 4 insertions(+), 31 deletions(-)

 diff --git a/arch/arm/mach-omap2/cpuidle34xx.c 
 b/arch/arm/mach-omap2/cpuidle34xx.c
 index 22590db..f61b28c 100644
 --- a/arch/arm/mach-omap2/cpuidle34xx.c
 +++ b/arch/arm/mach-omap2/cpuidle34xx.c
 @@ -82,8 +82,6 @@ static int __omap3_enter_idle(struct cpuidle_device *dev,
   struct omap3_idle_statedata *cx = omap3_idle_data[index];
   u32 mpu_state = cx-mpu_state, core_state = cx-core_state;
  
 - local_fiq_disable();
 -
   pwrdm_set_next_pwrst(mpu_pd, mpu_state);
   pwrdm_set_next_pwrst(core_pd, core_state);
  
 @@ -121,8 +119,6 @@ static int __omap3_enter_idle(struct cpuidle_device *dev,
  
  return_sleep_time:
  
 - local_fiq_enable();
 -
   return index;
  }
  
 diff --git a/arch/arm/mach-omap2/cpuidle44xx.c 
 b/arch/arm/mach-omap2/cpuidle44xx.c
 index d639aef..944e64a 100644
 --- a/arch/arm/mach-omap2/cpuidle44xx.c
 +++ b/arch/arm/mach-omap2/cpuidle44xx.c
 @@ -70,10 +70,7 @@ static int omap4_enter_idle_simple(struct cpuidle_device 
 *dev,
   struct cpuidle_driver *drv,
   int index)
  {
 - local_fiq_disable();
   omap_do_wfi();
 - local_fiq_enable();
 -
   return index;
  }
  
 @@ -84,8 +81,6 @@ static int omap4_enter_idle_coupled(struct cpuidle_device 
 *dev,
   struct omap4_idle_statedata *cx = omap4_idle_data[index];
   int cpu_id = smp_processor_id();
  
 - local_fiq_disable();
 -
   /*
* CPU0 has to wait and stay ON until CPU1 is OFF state.
* This is necessary to honour hardware recommondation
 @@ -158,8 +153,6 @@ fail:
   cpuidle_coupled_parallel_barrier(dev, abort_barrier);
   cpu_done[dev-cpu] = false;
  
 - local_fiq_enable();
 -
   return index;
  }
  
 diff --git a/arch/arm/mach-omap2/pm24xx.c b/arch/arm/mach-omap2/pm24xx.c
 index c333fa6..af29c31 100644
 --- a/arch/arm/mach-omap2/pm24xx.c
 +++ b/arch/arm/mach-omap2/pm24xx.c
 @@ -213,22 +213,17 @@ static int omap2_can_sleep(void)
  
  static void omap2_pm_idle(void)
  {
 - local_fiq_disable();
 -
   if (!omap2_can_sleep()) {
   if (omap_irq_pending())
 - goto out;
 + return;
   omap2_enter_mpu_retention();
 - goto out;
 + return;
   }
  
   if (omap_irq_pending())
 - goto out;
 + return;
  
   omap2_enter_full_retention();
 -
 -out:
 - local_fiq_enable();
  }
  
  static void __init prcm_setup_regs(void)
 diff --git a/arch/arm/mach-omap2/pm34xx.c b/arch/arm/mach-omap2/pm34xx.c
 index 7be3622..2f7e58e 100644
 --- a/arch/arm/mach-omap2/pm34xx.c
 +++ b/arch/arm/mach-omap2/pm34xx.c
 @@ -346,10 +346,8 @@ void omap_sram_idle(void)
  
  static void omap3_pm_idle(void)
  {
 - local_fiq_disable();
 -
   if (omap_irq_pending())
 - goto out;
 + return;
  
   trace_power_start(POWER_CSTATE, 1, smp_processor_id());
   trace_cpu_idle(1, smp_processor_id());
 @@ -358,9 +356,6 @@ static void omap3_pm_idle(void)
  
   trace_power_end(smp_processor_id());
   trace_cpu_idle(PWR_EVENT_EXIT, smp_processor_id());
 -
 -out:
 - local_fiq_enable();
  }
  
  #ifdef CONFIG_SUSPEND
 @@ -759,14 +754,12 @@ int __init omap3_pm_init(void)
   pr_err(Memory allocation failed when allocating for 
 secure sram context\n);
  
   local_irq_disable();
 - local_fiq_disable();
  
   omap_dma_global_context_save();
   omap3_save_secure_ram_context();
   omap_dma_global_context_restore();
  
   local_irq_enable();
 - local_fiq_enable();
   }
  
   omap3_save_scratchpad_contents();
 diff --git a/arch/arm/mach-omap2/pm44xx.c b/arch/arm/mach-omap2/pm44xx.c
 index aa6fd98..a96ae57 100644
 --- a/arch/arm/mach-omap2/pm44xx.c
 +++ b/arch/arm/mach-omap2/pm44xx.c
 @@ -121,11 +121,7 @@ static int __init pwrdms_setup(struct powerdomain 
 *pwrdm, void *unused)
   */
  static void omap_default_idle(void)
  {
 - local_fiq_disable();
 -
   omap_do_wfi();
 -
 - local_fiq_enable();
  }
  
  /**
--
To unsubscribe from this list: send the line unsubscribe linux-omap in
the body of a message to majord...@vger.kernel.org
More majordomo info at  

Re: [GIT PULL v2] ARM: omap2: twl-common update

2013-03-27 Thread Tony Lindgren
* Tony Lindgren t...@atomide.com [130319 11:28]:
 * Peter Ujfalusi peter.ujfal...@ti.com [130318 03:16]:
  Hi Tony,
  
  I have rebased the branch on 3.9-rc3 tag.
  Is it still possible to send this for 3.9?
 
 Let's see if we can still get this in. It's getting a bit late
 for v3.9, so I'll apply this into a separate branch from other fixes
 omap-for-v3.9-rc3/fix-twl-reboot branch just in case it's considered
 too intrusive for the -rc.

Sorry just noticed that this one adds:

Section mismatch in reference from the variable omap3_power_pdata to the 
(unknown reference) .init.data:(unknown)
The variable omap3_power_pdata references
the (unknown reference) __initdata (unknown)
If the reference is valid then annotate the
variable with __init* or __refdata (see linux/init.h) or name the variable:
*_template, *_timer, *_sht, *_ops, *_probe, *_probe_one, *_console

Is it safe to make it __initdata, or should also other power_pdata
have their __initdata flags removed if used by the drivers?

Regards,

Tony
--
To unsubscribe from this list: send the line unsubscribe linux-omap in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


Re: [PATCH V2 8/8] cpufreq: OMAP: donot allow to be used with device tree

2013-03-27 Thread Kevin Hilman
Nishanth Menon n...@ti.com writes:

 We now use Soc generic cpufreq-cpu0 driver using DT entries.
 However to allow cpufreq-cpu0 and omap-cpufreq drivers to co-exist,
 we need to ensure the following using the same image:
 1. With device tree boot, we use cpufreq-cpu0
 2. With non device tree boot, we use omap-cpufreq

 In the case of (1), we will have cpu OPPs and regulator registered
 as part of the DT, to ensure that omap-cpufreq and cpufreq-cpu0 don't
 conflict in managing the frequency of the same cpu, we should not
 permit init to pass in omap-cpufreq.

 In the case of (2), we will not have the cpufreq-cpu0 device, hence
 only omap-cpufreq will be active.

 So, to acommodate both these usage conditions, we fail init of
 omap-cpufreq when we boot with device tree.

 Cc: Kevin Hilman khil...@deeprootsystems.com
 Cc: Jon Hunter jon-hun...@ti.com
 Cc: BenoƮt Cousson b-cous...@ti.com
 Cc: Santosh Shilimkar santosh.shilim...@ti.com
 Cc: Shawn Guo shawn@linaro.org
 Cc: Keerthy j-keer...@ti.com
 Cc: linux-omap@vger.kernel.org
 Cc: devicetree-disc...@lists.ozlabs.org
 Cc: linux-arm-ker...@lists.infradead.org
 Cc: cpuf...@vger.kernel.org
 Cc: linux...@vger.kernel.org

 Signed-off-by: Nishanth Menon n...@ti.com
 ---
 Changes in V2:
   - donot remove support for omap-cpufreq in non-DT boot
   - little more verbose commit log
 V1: https://patchwork.kernel.org/patch/2273641/

  drivers/cpufreq/omap-cpufreq.c |   14 ++
  1 file changed, 14 insertions(+)

 diff --git a/drivers/cpufreq/omap-cpufreq.c b/drivers/cpufreq/omap-cpufreq.c
 index 9128c07..9382ed0 100644
 --- a/drivers/cpufreq/omap-cpufreq.c
 +++ b/drivers/cpufreq/omap-cpufreq.c
 @@ -22,6 +22,7 @@
  #include linux/err.h
  #include linux/clk.h
  #include linux/io.h
 +#include linux/of.h
  #include linux/opp.h
  #include linux/cpu.h
  #include linux/module.h
 @@ -174,6 +175,19 @@ static inline void freq_table_free(void)
  static int __cpuinit omap_cpu_init(struct cpufreq_policy *policy)
  {
   int result = 0;
 + struct device_node *np;
 +
 + /*
 +  * If we have a device tree node describing OPPs,
 +  * we will NOT permit usage of omap-cpufreq driver.
 +  * use cpufreq-cpu0 driver to manage.
 +  */
 + if (of_have_populated_dt()) {
 + for_each_child_of_node(of_find_node_by_path(/cpus), np) {
 + if (of_get_property(np, operating-points, NULL))
 + return -EPERM;
 + }
 + }

I think it's much cleaner to just convert this to a platform_driver like
was done for the generic driver[1].  Then the registration in the
previous patch can register the omap driver when needed.

Kevin

[1] https://patchwork.kernel.org/patch/2067751/
--
To unsubscribe from this list: send the line unsubscribe linux-omap in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


Re: [PATCH 1/9] ARM: OMAP4+: Use common scratchpad SAR RAM offsets for all architectures

2013-03-27 Thread Kevin Hilman
Santosh Shilimkar santosh.shilim...@ti.com writes:

 From: Tero Kristo t-kri...@ti.com

 Simplifies code and also allows the re-use as is on OMAP5 devices.

nit: changelog here is rather weak.  It claims simplifies code but
it's not obvious from the patch how changing a few #defines does that.

Kevin

 Signed-off-by: Tero Kristo t-kri...@ti.com
 Signed-off-by: Santosh Shilimkar santosh.shilim...@ti.com
 ---
  arch/arm/mach-omap2/omap4-sar-layout.h |   14 +++---
  1 file changed, 7 insertions(+), 7 deletions(-)

 diff --git a/arch/arm/mach-omap2/omap4-sar-layout.h 
 b/arch/arm/mach-omap2/omap4-sar-layout.h
 index e170fe8..6822d0a 100644
 --- a/arch/arm/mach-omap2/omap4-sar-layout.h
 +++ b/arch/arm/mach-omap2/omap4-sar-layout.h
 @@ -20,13 +20,13 @@
  #define SAR_BANK4_OFFSET 0x3000
  
  /* Scratch pad memory offsets from SAR_BANK1 */
 -#define SCU_OFFSET0  0xd00
 -#define SCU_OFFSET1  0xd04
 -#define OMAP_TYPE_OFFSET 0xd10
 -#define L2X0_SAVE_OFFSET00xd14
 -#define L2X0_SAVE_OFFSET10xd18
 -#define L2X0_AUXCTRL_OFFSET  0xd1c
 -#define L2X0_PREFETCH_CTRL_OFFSET0xd20
 +#define SCU_OFFSET0  0xfe4
 +#define SCU_OFFSET1  0xfe8
 +#define OMAP_TYPE_OFFSET 0xfec
 +#define L2X0_SAVE_OFFSET00xff0
 +#define L2X0_SAVE_OFFSET10xff4
 +#define L2X0_AUXCTRL_OFFSET  0xff8
 +#define L2X0_PREFETCH_CTRL_OFFSET0xffc
  
  /* CPUx Wakeup Non-Secure Physical Address offsets in SAR_BANK3 */
  #define CPU0_WAKEUP_NS_PA_ADDR_OFFSET0xa04
--
To unsubscribe from this list: send the line unsubscribe linux-omap in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


Re: [PATCH 4/9] ARM: OMAP4+: Remove the un-necessary cache flush from hotplug code

2013-03-27 Thread Kevin Hilman
Santosh Shilimkar santosh.shilim...@ti.com writes:

 This was added with intial port where OMAP PM support wasn't existing
 and only simple WFI based hooks were used.

 This should have been cleaned up while adding the PM support but some
 how fall through cracks.

Changelog describes a bit of history, but does not it's no longer
needed.

Kevin

 Signed-off-by: Santosh Shilimkar santosh.shilim...@ti.com
 ---
  arch/arm/mach-omap2/omap-hotplug.c |6 --
  1 file changed, 6 deletions(-)

 diff --git a/arch/arm/mach-omap2/omap-hotplug.c 
 b/arch/arm/mach-omap2/omap-hotplug.c
 index e712d17..458f72f 100644
 --- a/arch/arm/mach-omap2/omap-hotplug.c
 +++ b/arch/arm/mach-omap2/omap-hotplug.c
 @@ -19,11 +19,8 @@
  #include linux/smp.h
  #include linux/io.h
  
 -#include asm/cacheflush.h
  #include omap-wakeupgen.h
 -
  #include common.h
 -
  #include powerdomain.h
  
  /*
 @@ -35,9 +32,6 @@ void __ref omap4_cpu_die(unsigned int cpu)
   unsigned int boot_cpu = 0;
   void __iomem *base = omap_get_wakeupgen_base();
  
 - flush_cache_all();
 - dsb();
 -
   /*
* we're ready for shutdown now, so do it
*/
--
To unsubscribe from this list: send the line unsubscribe linux-omap in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


[GIT PULL] omap fixes for v3.9-rc4

2013-03-27 Thread Tony Lindgren
The following changes since commit a937536b868b8369b98967929045f1df54234323:

  Linux 3.9-rc3 (2013-03-17 15:59:32 -0700)

are available in the git repository at:

  git://git.kernel.org/pub/scm/linux/kernel/git/tmlind/linux-omap 
tags/omap-for-v3.9-rc3/fixes-signed

for you to fetch changes up to ff931c821bab6713a52b768b0cd7ee7e90713b36:

  ARM: OMAP: clocks: Delay clk inits atleast until slab is initialized 
(2013-03-26 22:06:20 -0700)


A clock regression fix that happened with the common clock
conversion, and few USB regression fixes.


Aaro Koskinen (1):
  ARM: OMAP1: fix USB host on 1710

Grazvydas Ignotas (1):
  ARM: OMAP3: hwmod data: keep MIDLEMODE in force-standby for musb

Jon Hunter (1):
  ARM: OMAP4: clock data: lock USB DPLL on boot

Paul Walmsley (1):
  ARM: OMAP4: PM: fix PM regression introduced by recent clock cleanup

Rajendra Nayak (1):
  ARM: OMAP: clocks: Delay clk inits atleast until slab is initialized

Tony Lindgren (1):
  Merge tag 'omap-fixes-a-for-3.9-rc' of 
git://git.kernel.org/.../pjw/omap-pending into omap-for-v3.9-rc3/fixes

 arch/arm/mach-omap1/clock_data.c   | 12 +---
 arch/arm/mach-omap2/cclock44xx_data.c  | 20 
 arch/arm/mach-omap2/common.h   |  3 +++
 arch/arm/mach-omap2/io.c   | 18 --
 arch/arm/mach-omap2/omap_hwmod.c   |  7 +--
 arch/arm/mach-omap2/omap_hwmod.h   |  9 +++--
 arch/arm/mach-omap2/omap_hwmod_3xxx_data.c |  7 ++-
 arch/arm/mach-omap2/omap_hwmod_44xx_data.c |  6 ++
 arch/arm/mach-omap2/timer.c|  4 
 9 files changed, 64 insertions(+), 22 deletions(-)
--
To unsubscribe from this list: send the line unsubscribe linux-omap in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


Re: [PATCH 7/9] ARM: OMAP4+: Move the CPU wakeup prepare code under smp_prepare_cpus()

2013-03-27 Thread Kevin Hilman
Santosh Shilimkar santosh.shilim...@ti.com writes:

 Move the secondary CPU wakeup prepare code under smp_prepare_cpus(). 

Why?

 While at
 it drop the un-necessary sev() and barrier which was under prepare code.

 Signed-off-by: Santosh Shilimkar santosh.shilim...@ti.com
 ---
  arch/arm/mach-omap2/omap-smp.c |   51 
 
  1 file changed, 20 insertions(+), 31 deletions(-)

 diff --git a/arch/arm/mach-omap2/omap-smp.c b/arch/arm/mach-omap2/omap-smp.c
 index 7d29a74..9711ecd 100644
 --- a/arch/arm/mach-omap2/omap-smp.c
 +++ b/arch/arm/mach-omap2/omap-smp.c
 @@ -164,36 +164,6 @@ static int __cpuinit omap4_boot_secondary(unsigned int 
 cpu, struct task_struct *
   return 0;
  }
  
 -static void __init wakeup_secondary(void)
 -{
 - void *startup_addr = omap_secondary_startup;
 - void __iomem *base = omap_get_wakeupgen_base();
 -
 - if (cpu_is_omap446x()) {
 - startup_addr = omap_secondary_startup_4460;
 - pm44xx_errata |= PM_OMAP4_ROM_SMP_BOOT_ERRATUM_GICD;
 - }
 -
 - /*
 -  * Write the address of secondary startup routine into the
 -  * AuxCoreBoot1 where ROM code will jump and start executing
 -  * on secondary core once out of WFE
 -  * A barrier is added to ensure that write buffer is drained
 -  */
 - if (omap_secure_apis_support())
 - omap_auxcoreboot_addr(virt_to_phys(startup_addr));
 - else
 - __raw_writel(virt_to_phys(omap5_secondary_startup),
 - base + OMAP_AUX_CORE_BOOT_1);
 -
 - /*
 -  * Send a 'sev' to wake the secondary core from WFE.
 -  * Drain the outstanding writes to memory
 -  */
 - dsb_sev();
 - mb();
 -}
 -
  /*
   * Initialise the CPU possible map early - this describes the CPUs
   * which may be present or become present in the system.
 @@ -231,6 +201,8 @@ static void __init omap4_smp_init_cpus(void)
  
  static void __init omap4_smp_prepare_cpus(unsigned int max_cpus)
  {
 + void *startup_addr = omap_secondary_startup;
 + void __iomem *base = omap_get_wakeupgen_base();
  
   /*
* Initialise the SCU and wake up the secondary core using
 @@ -238,7 +210,24 @@ static void __init omap4_smp_prepare_cpus(unsigned int 
 max_cpus)
*/
   if (scu_base)
   scu_enable(scu_base);
 - wakeup_secondary();
 +
 + if (cpu_is_omap446x()) {
 + startup_addr = omap_secondary_startup_4460;
 + pm44xx_errata |= PM_OMAP4_ROM_SMP_BOOT_ERRATUM_GICD;
 + }
 +
 + /*
 +  * Write the address of secondary startup routine into the
 +  * AuxCoreBoot1 where ROM code will jump and start executing
 +  * on secondary core once out of WFE
 +  * A barrier is added to ensure that write buffer is drained
 +  */
 + if (omap_secure_apis_support())
 + omap_auxcoreboot_addr(virt_to_phys(startup_addr));
 + else
 + __raw_writel(virt_to_phys(omap5_secondary_startup),
 + base + OMAP_AUX_CORE_BOOT_1);
 +
  }
  
  struct smp_operations omap4_smp_ops __initdata = {
--
To unsubscribe from this list: send the line unsubscribe linux-omap in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


Re: [PATCH 8/9] ARM: OMAP4: PM: Remove L4 wakeup depedency with MPU since errata fix exist now

2013-03-27 Thread Kevin Hilman
Santosh Shilimkar santosh.shilim...@ti.com writes:

 With commit bfd6d021 {ARM: OMAP3+: Implement timer workaround for errata
 i103 and i767}, the sync and gptimer synchronization errata got fixed.

 Hence the l4_wakeup static dependency with MPU can  can be removed
 now. Static dependency was one of the proposed workaround but from
 power savings perspective, it isn't an ideal workaround.

 Cc: Jon Hunter jon-hun...@ti.com
 Cc: Kevin Hilman khil...@deeprootsystems.com

 Signed-off-by: Santosh Shilimkar santosh.shilim...@ti.com

Nice.

Acked-by: Kevin Hilman khil...@linaro.org

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


Re: [PATCH 9/9] ARM: OMAP4: PM: Now remove L4 per clockdomain static depedency with MPU

2013-03-27 Thread Kevin Hilman
Santosh Shilimkar santosh.shilim...@ti.com writes:

 UART driver slave idle issue has been taken care by driver using hwmod
 framework.

 So we can now ger rid off the L4 per clockdomain static dependency with
 MPU which was used to wrok around UART wakeup and console sluggishnesh issue
 on OMAP4 SOCs.

 Cc: Kevin Hilman khil...@deeprootsystems.com

 Signed-off-by: Santosh Shilimkar santosh.shilim...@ti.com

Nice.

Acked-by: Kevin Hilman khil...@linaro.org

 ---
  arch/arm/mach-omap2/pm44xx.c |6 ++
  1 file changed, 2 insertions(+), 4 deletions(-)

 diff --git a/arch/arm/mach-omap2/pm44xx.c b/arch/arm/mach-omap2/pm44xx.c
 index 1fd9662..1d03110 100644
 --- a/arch/arm/mach-omap2/pm44xx.c
 +++ b/arch/arm/mach-omap2/pm44xx.c
 @@ -134,7 +134,7 @@ int __init omap4_pm_init(void)
  {
   int ret;
   struct clockdomain *emif_clkdm, *mpuss_clkdm, *l3_1_clkdm;
 - struct clockdomain *ducati_clkdm, *l3_2_clkdm, *l4_per_clkdm;
 + struct clockdomain *ducati_clkdm, *l3_2_clkdm;
  
   if (omap_rev() == OMAP4430_REV_ES1_0) {
   WARN(1, Power Management not supported on OMAP4430 ES1.0\n);
 @@ -159,16 +159,14 @@ int __init omap4_pm_init(void)
   emif_clkdm = clkdm_lookup(l3_emif_clkdm);
   l3_1_clkdm = clkdm_lookup(l3_1_clkdm);
   l3_2_clkdm = clkdm_lookup(l3_2_clkdm);
 - l4_per_clkdm = clkdm_lookup(l4_per_clkdm);
   ducati_clkdm = clkdm_lookup(ducati_clkdm);
   if ((!mpuss_clkdm) || (!emif_clkdm) || (!l3_1_clkdm) ||
 - (!l3_2_clkdm) || (!ducati_clkdm) || (!l4_per_clkdm))
 + (!l3_2_clkdm) || (!ducati_clkdm))
   goto err2;
  
   ret = clkdm_add_wkdep(mpuss_clkdm, emif_clkdm);
   ret |= clkdm_add_wkdep(mpuss_clkdm, l3_1_clkdm);
   ret |= clkdm_add_wkdep(mpuss_clkdm, l3_2_clkdm);
 - ret |= clkdm_add_wkdep(mpuss_clkdm, l4_per_clkdm);
   ret |= clkdm_add_wkdep(ducati_clkdm, l3_1_clkdm);
   ret |= clkdm_add_wkdep(ducati_clkdm, l3_2_clkdm);
   if (ret) {
--
To unsubscribe from this list: send the line unsubscribe linux-omap in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


Re: [PATCH 3/9] ARM: OMAP2+: PM: Remove bogus fiq_[enable/disable] tuple

2013-03-27 Thread Santosh Shilimkar
On Thursday 28 March 2013 12:06 AM, Kevin Hilman wrote:
 Santosh Shilimkar santosh.shilim...@ti.com writes:
 
 On OMAP platform, FIQ is reserved for secure environment only. If at all
 the FIQ needs to be disabled, it involves going through security
 API call. Hence the local_fiq_[enable/disable]() in the OMAP code is bogus.

 So just get rid of it.
 
 What about GP devices?
 
On GP devices as well FIQ isn't available for non-secure software since
its marked secure only in ROM initialization. There has been heavy
debate on this since some customers wanted to have it available
for debug purpose but some other work-around was done rather
than opening it for public.

Regards,
Santosh

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


Re: [PATCH 8/9] ARM: OMAP4: PM: Remove L4 wakeup depedency with MPU since errata fix exist now

2013-03-27 Thread Peter Korsgaard
 Kevin == Kevin Hilman khil...@linaro.org writes:

Santosh Shilimkar santosh.shilim...@ti.com writes:

  With commit bfd6d021 {ARM: OMAP3+: Implement timer workaround for errata
  i103 and i767}, the sync and gptimer synchronization errata got fixed.
  
  Hence the l4_wakeup static dependency with MPU can  can be removed

s/can  can/can/

-- 
Bye, Peter Korsgaard
--
To unsubscribe from this list: send the line unsubscribe linux-omap in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


Re: [PATCH 7/9] ARM: OMAP4+: Move the CPU wakeup prepare code under smp_prepare_cpus()

2013-03-27 Thread Santosh Shilimkar
On Thursday 28 March 2013 12:15 AM, Kevin Hilman wrote:
 Santosh Shilimkar santosh.shilim...@ti.com writes:
 
 Move the secondary CPU wakeup prepare code under smp_prepare_cpus(). 
 
 Why?
 
Because that code belongs to smp_prepare_cpus(). As I said
in earlier patches, it was remainder of the pen release code
which was borrowed from ARM code initially.

Regards,
Santosh

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


Re: [GIT PULL] ARM: OMAP2+: Generic cleanups for 3.10

2013-03-27 Thread Santosh Shilimkar
On Wednesday 27 March 2013 11:33 PM, Tony Lindgren wrote:
 * Santosh Shilimkar santosh.shilim...@ti.com [130320 01:42]:
 Tony,

 Here is the pull request for various OMAP cleanups and fixes which are posted
 earlier on the list. It contains OMAP4 smp cleanup, removal of unwanted 
 static
 deps from OMAP4, RAM offset consolidation and fiq tuple cleanup. 


 The following changes since commit a937536b868b8369b98967929045f1df54234323:

   Linux 3.9-rc3 (2013-03-17 15:59:32 -0700)

 are available in the git repository at:

   git://git.kernel.org/pub/scm/linux/kernel/git/ssantosh/linux.git 
 for_3.10/omap_generic_cleanup

 for you to fetch changes up to 37e1f64c3bc2b3455a9688de8527a341847b3ad9:

   ARM: OMAP4: Fix the init code to have OMAP4460 errata available in DT 
 build (2013-03-19 12:57:30 +0530)
 
 Thanks pulled this into omap-for-v3.10/cleanup.
 
Thanks Tony !!

Regards,
Santosh

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


Re: [GIT PULL] omap fixes for v3.9-rc4

2013-03-27 Thread Arnd Bergmann
On Wednesday 27 March 2013, Tony Lindgren wrote:
 The following changes since commit a937536b868b8369b98967929045f1df54234323:
 
   Linux 3.9-rc3 (2013-03-17 15:59:32 -0700)
 
 are available in the git repository at:
 
   git://git.kernel.org/pub/scm/linux/kernel/git/tmlind/linux-omap 
 tags/omap-for-v3.9-rc3/fixes-signed
 

Pulled into the fixes branch, thanks!

I guess our next fixes pull request will be much larger than the
previous one now. There is also one coming up for ux500, so we
have at least 10 patches.

Arnd
--
To unsubscribe from this list: send the line unsubscribe linux-omap in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


Re: [GIT PULL] omap fixes for v3.9-rc4

2013-03-27 Thread Tony Lindgren
* Arnd Bergmann a...@arndb.de [130327 12:10]:
 On Wednesday 27 March 2013, Tony Lindgren wrote:
  The following changes since commit a937536b868b8369b98967929045f1df54234323:
  
Linux 3.9-rc3 (2013-03-17 15:59:32 -0700)
  
  are available in the git repository at:
  
git://git.kernel.org/pub/scm/linux/kernel/git/tmlind/linux-omap 
  tags/omap-for-v3.9-rc3/fixes-signed
  
 
 Pulled into the fixes branch, thanks!
 
 I guess our next fixes pull request will be much larger than the
 previous one now. There is also one coming up for ux500, so we
 have at least 10 patches.

Yes sorry I had the others ready to go earlier, but the
clock fix too some extra time to get acks. I probably should
have sent the others last week while waiting for the acks.

Regards,

Tony
--
To unsubscribe from this list: send the line unsubscribe linux-omap in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


Re: [PATCH 7/9] ARM: OMAP4+: Move the CPU wakeup prepare code under smp_prepare_cpus()

2013-03-27 Thread Kevin Hilman
Santosh Shilimkar santosh.shilim...@ti.com writes:

 On Thursday 28 March 2013 12:15 AM, Kevin Hilman wrote:
 Santosh Shilimkar santosh.shilim...@ti.com writes:
 
 Move the secondary CPU wakeup prepare code under smp_prepare_cpus(). 
 
 Why?
 
 Because that code belongs to smp_prepare_cpus(). As I said
 in earlier patches, it was remainder of the pen release code
 which was borrowed from ARM code initially.

Sure, but that should be in the changelog.

Kevin
--
To unsubscribe from this list: send the line unsubscribe linux-omap in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


Re: [GIT PULL] ARM: OMAP2+: Generic cleanups for 3.10

2013-03-27 Thread Tony Lindgren
* Santosh Shilimkar santosh.shilim...@ti.com [130327 12:08]:
 On Wednesday 27 March 2013 11:33 PM, Tony Lindgren wrote:
  * Santosh Shilimkar santosh.shilim...@ti.com [130320 01:42]:
  Tony,
 
  Here is the pull request for various OMAP cleanups and fixes which are 
  posted
  earlier on the list. It contains OMAP4 smp cleanup, removal of unwanted 
  static
  deps from OMAP4, RAM offset consolidation and fiq tuple cleanup. 
 
 
  The following changes since commit 
  a937536b868b8369b98967929045f1df54234323:
 
Linux 3.9-rc3 (2013-03-17 15:59:32 -0700)
 
  are available in the git repository at:
 
git://git.kernel.org/pub/scm/linux/kernel/git/ssantosh/linux.git 
  for_3.10/omap_generic_cleanup
 
  for you to fetch changes up to 37e1f64c3bc2b3455a9688de8527a341847b3ad9:
 
ARM: OMAP4: Fix the init code to have OMAP4460 errata available in DT 
  build (2013-03-19 12:57:30 +0530)
  
  Thanks pulled this into omap-for-v3.10/cleanup.
  
 Thanks Tony !!

Hmm looks like Kevin had some good comments and acks, can you
please update and send a new pull req? I'll set up cleanup-v2 branch
when those are available.

Regards,

Tony
--
To unsubscribe from this list: send the line unsubscribe linux-omap in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


RE: [GIT PULL] ARM: OMAP2+: Generic cleanups for 3.10

2013-03-27 Thread Shilimkar, Santosh
Sorry for top posting ...
I will pick the ack and update commit log to prepare new pull request
for you. 

Regards,
Santosh

From: Tony Lindgren [t...@atomide.com]
Sent: Thursday, March 28, 2013 1:28 AM
To: Shilimkar, Santosh
Cc: linux-omap@vger.kernel.org; linux-arm-ker...@lists.infradead.org
Subject: Re: [GIT PULL] ARM: OMAP2+: Generic cleanups for 3.10

* Santosh Shilimkar santosh.shilim...@ti.com [130327 12:08]:
 On Wednesday 27 March 2013 11:33 PM, Tony Lindgren wrote:
  * Santosh Shilimkar santosh.shilim...@ti.com [130320 01:42]:
  Tony,
 
  Here is the pull request for various OMAP cleanups and fixes which are 
  posted
  earlier on the list. It contains OMAP4 smp cleanup, removal of unwanted 
  static
  deps from OMAP4, RAM offset consolidation and fiq tuple cleanup.
 
 
  The following changes since commit 
  a937536b868b8369b98967929045f1df54234323:
 
Linux 3.9-rc3 (2013-03-17 15:59:32 -0700)
 
  are available in the git repository at:
 
git://git.kernel.org/pub/scm/linux/kernel/git/ssantosh/linux.git 
  for_3.10/omap_generic_cleanup
 
  for you to fetch changes up to 37e1f64c3bc2b3455a9688de8527a341847b3ad9:
 
ARM: OMAP4: Fix the init code to have OMAP4460 errata available in DT 
  build (2013-03-19 12:57:30 +0530)
 
  Thanks pulled this into omap-for-v3.10/cleanup.
 
 Thanks Tony !!

Hmm looks like Kevin had some good comments and acks, can you
please update and send a new pull req? I'll set up cleanup-v2 branch
when those are available.

Regards,

Tony
--
To unsubscribe from this list: send the line unsubscribe linux-omap in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


Re: [GIT PULL] ARM: OMAP2+: Generic cleanups for 3.10

2013-03-27 Thread Tony Lindgren
* Shilimkar, Santosh santosh.shilim...@ti.com [130327 13:14]:
 Sorry for top posting ...
 I will pick the ack and update commit log to prepare new pull request
 for you. 

Thanks, we don't have anything merged on top of that yet so it's best
to just set up a new cleanup-v2 branch.

Regards,

Tony
--
To unsubscribe from this list: send the line unsubscribe linux-omap in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


Re: [PATCH-V2] ARM: AM33XX: Add missing .clkdm_name to clkdiv32k_ick clock

2013-03-27 Thread Tony Lindgren
* Paul Walmsley p...@pwsan.com [130327 10:49]:
 On Wed, 27 Mar 2013, Vaibhav Hiremath wrote:
 
  It is required to enable respective clock-domain before
  enabling any clock/module inside that clock-domain.
  
  During common-clock migration, .clkdm_name field got missed
  for clkdiv32k_ick clock, which leaves clk_24mhz_clkdm
  unused; so it will be disabled even if childs of this clock-domain
  is enabled, which keeps child modules in idle mode.
  
  This fixes the kernel crash observed on AM335xEVM-SK platform,
  where clkdiv32_ick clock is being used as a gpio debounce clock
  and since clkdiv32k_ick is in idle mode it leads to below crash -
  
  Crash Log:
  ==
  [2.598347] Unhandled fault: external abort on non-linefetch (0x1028) at
  0xfa1ac150
  [2.606434] Internal error: : 1028 [#1] SMP ARM
  [2.611207] Modules linked in:
  [2.614449] CPU: 0Not tainted  (3.8.4-01382-g1f449cd-dirty #4)
  [2.620973] PC is at _set_gpio_debounce+0x60/0x104
  [2.626025] LR is at clk_enable+0x30/0x3c
  
  Signed-off-by: Vaibhav Hiremath hvaib...@ti.com
  Cc: Tony Lindgren t...@atomide.com
  Cc: Paul Walmsley p...@pwsan.com
  Cc: Rajendra Nayak rna...@ti.com
 
 Acked-by: Paul Walmsley p...@pwsan.com
 
 Tony, if it isn't too late, could this one be added to your 3.9-rc fixes 
 series?

Just sent the previous ones, I'll add this into omap-for-v3.9-rc4/fixes.

Regards,

Tony
--
To unsubscribe from this list: send the line unsubscribe linux-omap in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


Re: [PATCH 00/26] DSS device model change

2013-03-27 Thread Tony Lindgren
* Tomi Valkeinen tomi.valkei...@ti.com [130326 23:18]:
 On 2013-03-26 19:10, Tony Lindgren wrote:
  * Tomi Valkeinen tomi.valkei...@ti.com [130326 06:38]:
  Note about board files: I only convert a few board files here for example. 
  I
  have a branch with board file changes for all the affected board files. I 
  did
  not include them as they are more or less identical. If this series looks 
  good,
  I will create an independent branch for the arch/arm stuff, so it can be 
  pulled
  separately.
  
  Great looks good to me thanks.
 
 To make the DSS work properly after this device model change, we also
 need to solve the problem related to multiple display devices on the
 same video bus.
 
 Did the approach I suggested in
 
 http://permalink.gmane.org/gmane.linux.ports.arm.omap/96039
 
 look ok? Overo is the most complex one, I think the rest of the boards
 that require changes have just LCD and DVI that conflict. But it still
 means we'll have that kind of choice Kconfig option for all those boards.

Yes I think that's the best way to go until we just drop the board-*.c
files in favor of device tree.

Regards,

Tony
--
To unsubscribe from this list: send the line unsubscribe linux-omap in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


[PATCH] video: omap2: dss: use PTR_RET function

2013-03-27 Thread Andrei Epure
Use PTR_RET function instead of IS_ERR + PTR_ERR.
Patch found using coccinelle.

Signed-off-by: Andrei Epure epure.and...@gmail.com
---
 drivers/video/omap2/dss/core.c |5 +
 1 file changed, 1 insertion(+), 4 deletions(-)

diff --git a/drivers/video/omap2/dss/core.c b/drivers/video/omap2/dss/core.c
index f8779d4..60cc6fe 100644
--- a/drivers/video/omap2/dss/core.c
+++ b/drivers/video/omap2/dss/core.c
@@ -181,10 +181,7 @@ int dss_debugfs_create_file(const char *name, void 
(*write)(struct seq_file *))
d = debugfs_create_file(name, S_IRUGO, dss_debugfs_dir,
write, dss_debug_fops);
 
-   if (IS_ERR(d))
-   return PTR_ERR(d);
-
-   return 0;
+   return PTR_RET(d);
 }
 #else /* CONFIG_OMAP2_DSS_DEBUGFS */
 static inline int dss_initialize_debugfs(void)
-- 
1.7.9.5

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


Re: [PATCH V2 0/8] ARM: OMAP3+: support cpufreq-cpu0 for device tree boot

2013-03-27 Thread Kevin Hilman
Hi Nishanth,

Nishanth Menon n...@ti.com writes:

 Hi,
 The following version 2 of the series arose from trying to use BeagleBoard-XM
 (OMAP3 variant) for doing CPU DVFS using cpufreq-cpu0. This series enables the
 generic cpufreq-cpu0 driver to be used in device tree enabled boot while
 maintaining support of the legacy omap-cpufreq driver when used in non device
 tree enabled boot.

Benoit should have a look and ack the DT data changes, but the general
direction is right IMO.  

I just had one comment on the last patch about how the omap-cpufreq
driver should be handled for the non-DT case.

Other than that, this is a great step in the right direction.  Thanks!

Kevin
--
To unsubscribe from this list: send the line unsubscribe linux-omap in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


Re: [PATCH 4/9] ARM: OMAP4+: Remove the un-necessary cache flush from hotplug code

2013-03-27 Thread Santosh Shilimkar
On Thursday 28 March 2013 12:13 AM, Kevin Hilman wrote:
 Santosh Shilimkar santosh.shilim...@ti.com writes:
 
 This was added with intial port where OMAP PM support wasn't existing
 and only simple WFI based hooks were used.

 This should have been cleaned up while adding the PM support but some
 how fall through cracks.
 
 Changelog describes a bit of history, but does not it's no longer
 needed.
 
I thought This should have been cleaned up while adding PM support
means its no longer needed. At least I meant that way.

Anyway I will just make it explicit.

Regards,
Santosh
--
To unsubscribe from this list: send the line unsubscribe linux-omap in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


  1   2   >