Re: [PATCH 4/6] v4l: vsp1: Add DT support

2014-04-10 Thread Simon Horman
On Tue, Mar 25, 2014 at 01:18:22PM +0100, Laurent Pinchart wrote:
 Hello,
 
 Gentle ping. I'll send a pull request in a week if I don't receive any 
 comment 
 on the DT bindings in the meantime.

Hi Laurent,

one way or another can you let me know if/when the bindings are
accepted and I'll queue-up the shmobile patches.
--
To unsubscribe from this list: send the line unsubscribe linux-media 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/6] v4l: vsp1: Add DT support

2014-04-10 Thread Laurent Pinchart
Hi Simon,

On Friday 11 April 2014 08:04:18 Simon Horman wrote:
 On Tue, Mar 25, 2014 at 01:18:22PM +0100, Laurent Pinchart wrote:
  Hello,
  
  Gentle ping. I'll send a pull request in a week if I don't receive any
  comment on the DT bindings in the meantime.
 
 Hi Laurent,
 
 one way or another can you let me know if/when the bindings are accepted and
 I'll queue-up the shmobile patches.

Sure. The DT bindings have been acked and I've sent a pull request. I'll let 
you know when the patches get pulled, until then there's no guarantee that the 
bindings won't change.

-- 
Regards,

Laurent Pinchart

--
To unsubscribe from this list: send the line unsubscribe linux-media 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/6] v4l: vsp1: Add DT support

2014-04-10 Thread Simon Horman
On Fri, Apr 11, 2014 at 01:37:11AM +0200, Laurent Pinchart wrote:
 Hi Simon,
 
 On Friday 11 April 2014 08:04:18 Simon Horman wrote:
  On Tue, Mar 25, 2014 at 01:18:22PM +0100, Laurent Pinchart wrote:
   Hello,
   
   Gentle ping. I'll send a pull request in a week if I don't receive any
   comment on the DT bindings in the meantime.
  
  Hi Laurent,
  
  one way or another can you let me know if/when the bindings are accepted and
  I'll queue-up the shmobile patches.
 
 Sure. The DT bindings have been acked and I've sent a pull request. I'll
 let you know when the patches get pulled, until then there's no guarantee
 that the bindings won't change.

Thanks, got it.
--
To unsubscribe from this list: send the line unsubscribe linux-media 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/6] v4l: vsp1: Add DT support

2014-03-25 Thread Laurent Pinchart
Hello,

Gentle ping. I'll send a pull request in a week if I don't receive any comment 
on the DT bindings in the meantime.

On Wednesday 05 March 2014 20:30:27 Laurent Pinchart wrote:
 Signed-off-by: Laurent Pinchart laurent.pinchart+rene...@ideasonboard.com
 ---
  .../devicetree/bindings/media/renesas,vsp1.txt | 51 +++
  drivers/media/platform/vsp1/vsp1_drv.c | 52 +++
  2 files changed, 95 insertions(+), 8 deletions(-)
  create mode 100644 Documentation/devicetree/bindings/media/renesas,vsp1.txt
 
 (With the DT mailing list CC'ed this time, sorry about that)
 
 diff --git a/Documentation/devicetree/bindings/media/renesas,vsp1.txt
 b/Documentation/devicetree/bindings/media/renesas,vsp1.txt new file mode
 100644
 index 000..3b828d4
 --- /dev/null
 +++ b/Documentation/devicetree/bindings/media/renesas,vsp1.txt
 @@ -0,0 +1,51 @@
 +* Renesas VSP1 Video Processing Engine
 +
 +The VSP1 is a video processing engine that supports up-/down-scaling, alpha
 +blending, color space conversion and various other image processing
 features.
 +It can be found in the Renesas R-Car second generation SoCs.
 +
 +Required properties:
 +
 +  - compatible: Must contain renesas,vsp1
 +
 +  - reg: Base address and length of the registers block for the VSP1.
 +  - interrupt-parent, interrupts: Specifier for the VSP1 interrupt.
 +
 +  - clocks: A list of phandle + clock-specifier pairs for the main VSP1
 clock
 +and the optional auxiliary RT clock if needed. VSP1 instances that need
 an
 +auxiliary RT clock must specify the clock-names property.
 +
 +  - renesas,#rpf: Number of Read Pixel Formatter (RPF) modules in the VSP1.
 +  - renesas,#uds: Number of Up Down Scaler (UDS) modules in the VSP1.
 +  - renesas,#wpf: Number of Write Pixel Formatter (WPF) modules in the
 VSP1.
 +
 +
 +Optional properties:
 +
 +  - clock-names: When the VSP1 requires an auxiliary RT clock this property
 +must be present and must contain , rt.
 +
 +  - renesas,has-lif: Boolean, indicates that the LCD Interface (LIF) module
 is
 +available.
 +  - renesas,has-lut: Boolean, indicates that the Look Up Table (LUT) module
 is
 +available.
 +  - renesas,has-sru: Boolean, indicates that the Super Resolution Unit
 (SRU)
 +module is available.
 +
 +
 +Example: R8A7790 (R-Car H2) VSP1-S node
 +
 + vsp1@fe928000 {
 + compatible = renesas,vsp1;
 + reg = 0 0xfe928000 0 0x8000;
 + interrupts = 0 267 IRQ_TYPE_LEVEL_HIGH;
 + clocks = mstp1_clks R8A7790_CLK_VSP1_SY,
 +  mstp1_clks R8A7790_CLK_VSP1_RT;
 + clock-names = , rt;
 +
 + renesas,has-lut;
 + renesas,has-sru;
 + renesas,#rpf = 5;
 + renesas,#uds = 3;
 + renesas,#wpf = 4;
 + };
 diff --git a/drivers/media/platform/vsp1/vsp1_drv.c
 b/drivers/media/platform/vsp1/vsp1_drv.c index 5f774cc..b75ca84 100644
 --- a/drivers/media/platform/vsp1/vsp1_drv.c
 +++ b/drivers/media/platform/vsp1/vsp1_drv.c
 @@ -16,6 +16,7 @@
  #include linux/device.h
  #include linux/interrupt.h
  #include linux/module.h
 +#include linux/of.h
  #include linux/platform_device.h
  #include linux/videodev2.h
 
 @@ -458,34 +459,59 @@ static const struct dev_pm_ops vsp1_pm_ops = {
   * Platform Driver
   */
 
 -static struct vsp1_platform_data *
 -vsp1_get_platform_data(struct platform_device *pdev)
 +static int vsp1_validate_platform_data(struct platform_device *pdev,
 +struct vsp1_platform_data *pdata)
  {
 - struct vsp1_platform_data *pdata = pdev-dev.platform_data;
 -
   if (pdata == NULL) {
   dev_err(pdev-dev, missing platform data\n);
 - return NULL;
 + return -EINVAL;
   }
 
   if (pdata-rpf_count = 0 || pdata-rpf_count  VPS1_MAX_RPF) {
   dev_err(pdev-dev, invalid number of RPF (%u)\n,
   pdata-rpf_count);
 - return NULL;
 + return -EINVAL;
   }
 
   if (pdata-uds_count = 0 || pdata-uds_count  VPS1_MAX_UDS) {
   dev_err(pdev-dev, invalid number of UDS (%u)\n,
   pdata-uds_count);
 - return NULL;
 + return -EINVAL;
   }
 
   if (pdata-wpf_count = 0 || pdata-wpf_count  VPS1_MAX_WPF) {
   dev_err(pdev-dev, invalid number of WPF (%u)\n,
   pdata-wpf_count);
 - return NULL;
 + return -EINVAL;
   }
 
 + return 0;
 +}
 +
 +static struct vsp1_platform_data *
 +vsp1_get_platform_data(struct platform_device *pdev)
 +{
 + struct device_node *np = pdev-dev.of_node;
 + struct vsp1_platform_data *pdata;
 +
 + if (!IS_ENABLED(CONFIG_OF) || np == NULL)
 + return pdev-dev.platform_data;
 +
 + pdata = devm_kzalloc(pdev-dev, sizeof(*pdata), GFP_KERNEL);
 + if (pdata == NULL)
 + return NULL;
 +
 + if