Re: [PATCH 2/3] ARM: dts: imx6ull: add pxp support

2018-08-27 Thread Shawn Guo
On Fri, Aug 10, 2018 at 05:18:21PM +0200, Philipp Zabel wrote:
> Add the device node for the i.MX6ULL Pixel Pipeline (PXP).
> 
> Signed-off-by: Philipp Zabel 
> ---
>  arch/arm/boot/dts/imx6ul.dtsi  | 8 
>  arch/arm/boot/dts/imx6ull.dtsi | 6 ++
>  2 files changed, 14 insertions(+)
> 
> diff --git a/arch/arm/boot/dts/imx6ul.dtsi b/arch/arm/boot/dts/imx6ul.dtsi
> index 47a3453a4211..e80a660c14f2 100644
> --- a/arch/arm/boot/dts/imx6ul.dtsi
> +++ b/arch/arm/boot/dts/imx6ul.dtsi
> @@ -928,6 +928,14 @@
>   };
>   };
>  
> + pxp: pxp@21cc000 {
> + compatible = "fsl,imx6ul-pxp";
> + reg = <0x021cc000 0x4000>;
> + interrupts = ;
> + clock-names = "axi";
> + clocks = < IMX6UL_CLK_PXP>;
> + };
> +
>   lcdif: lcdif@21c8000 {

In order of unit-address, pxp@21cc000 should go after lcdif@21c8000.

Shawn

>   compatible = "fsl,imx6ul-lcdif", 
> "fsl,imx28-lcdif";
>   reg = <0x021c8000 0x4000>;
> diff --git a/arch/arm/boot/dts/imx6ull.dtsi b/arch/arm/boot/dts/imx6ull.dtsi
> index ebc25c98e5e1..91d2b6dd9b1b 100644
> --- a/arch/arm/boot/dts/imx6ull.dtsi
> +++ b/arch/arm/boot/dts/imx6ull.dtsi
> @@ -75,3 +75,9 @@
>   };
>   };
>  };
> +
> + {
> + compatible = "fsl,imx6ull-pxp";
> + interrupts = ,
> +  ;
> +};
> -- 
> 2.18.0
> 


Re: [PATCH v2 10/15] ARM: dts: imx7s: add multiplexer controls

2018-05-02 Thread Shawn Guo
On Mon, Apr 23, 2018 at 02:47:45PM +0100, Rui Miguel Silva wrote:
> The IOMUXC General Purpose Register has bitfield to control video bus
> multiplexer to control the CSI input between the MIPI-CSI2 and parallel
> interface. Add that register and mask.
> 
> Signed-off-by: Rui Miguel Silva 
> ---
>  arch/arm/boot/dts/imx7s.dtsi | 9 -
>  1 file changed, 8 insertions(+), 1 deletion(-)
> 
> diff --git a/arch/arm/boot/dts/imx7s.dtsi b/arch/arm/boot/dts/imx7s.dtsi
> index d913c3f9c284..3027d6a62021 100644
> --- a/arch/arm/boot/dts/imx7s.dtsi
> +++ b/arch/arm/boot/dts/imx7s.dtsi
> @@ -534,8 +534,15 @@
>  
>   gpr: iomuxc-gpr@3034 {
>   compatible = "fsl,imx7d-iomuxc-gpr",
> - "fsl,imx6q-iomuxc-gpr", "syscon";
> + "fsl,imx6q-iomuxc-gpr", "syscon", 
> "simple-mfd";
>   reg = <0x3034 0x1>;
> +
> + mux: mux-controller {
> + compatible = "mmio-mux";
> + #mux-control-cells = <1>;
> +

The newline in between property list is not really necessary.

Shawn

> + mux-reg-masks = <0x14 0x0010>;
> + };
>   };
>  
>   ocotp: ocotp-ctrl@3035 {
> -- 
> 2.17.0
> 


Re: [PATCH v2 07/15] ARM: dts: increase default cma size to 40MB

2018-05-02 Thread Shawn Guo
On Mon, Apr 23, 2018 at 02:47:42PM +0100, Rui Miguel Silva wrote:
> To support camera in i.MX7 the cma heap is used to allocate frame buffers. The
> default size of CMA is 16MB which is not enough for higher resolutions (ex:
> 1600x1200).
> 
> So, increase the default CMA size to 40MB.
> 
> Signed-off-by: Rui Miguel Silva 

CMA size can be adjusted by kernel cmdline.  I'm not sure it's necessary
to make it fixed in DT.

Shawn

> ---
>  arch/arm/boot/dts/imx7s.dtsi | 14 ++
>  1 file changed, 14 insertions(+)
> 
> diff --git a/arch/arm/boot/dts/imx7s.dtsi b/arch/arm/boot/dts/imx7s.dtsi
> index 4d42335c0dee..142ea709d296 100644
> --- a/arch/arm/boot/dts/imx7s.dtsi
> +++ b/arch/arm/boot/dts/imx7s.dtsi
> @@ -182,6 +182,20 @@
> IRQ_TYPE_LEVEL_LOW)>;
>   };
>  
> + reserved-memory {
> + #address-cells = <1>;
> + #size-cells = <1>;
> + ranges;
> +
> + /* global autoconfigured region for contiguous allocations */
> + linux,cma {
> + compatible = "shared-dma-pool";
> + reusable;
> + size = <0x280>;
> + linux,cma-default;
> + };
> + };
> +
>   soc {
>   #address-cells = <1>;
>   #size-cells = <1>;
> -- 
> 2.17.0
> 


Re: [PATCH v2 04/15] clk: imx7d: reset parent for mipi csi root

2018-05-02 Thread Shawn Guo
On Mon, Apr 23, 2018 at 02:47:39PM +0100, Rui Miguel Silva wrote:
> To guarantee that we do not get Overflow in image FIFO the outer bandwidth has
> to be faster than inputer bandwidth. For that it must be possible to set a
> faster frequency clock. So set new parent to sys_pfd3 clock for the mipi csi
> block.
> 
> Cc: linux-...@vger.kernel.org
> Signed-off-by: Rui Miguel Silva <rui.si...@linaro.org>
> ---
>  drivers/clk/imx/clk-imx7d.c | 3 +++
>  1 file changed, 3 insertions(+)
> 
> diff --git a/drivers/clk/imx/clk-imx7d.c b/drivers/clk/imx/clk-imx7d.c
> index f7f4db2e6fa6..9a1a18ceb132 100644
> --- a/drivers/clk/imx/clk-imx7d.c
> +++ b/drivers/clk/imx/clk-imx7d.c
> @@ -891,6 +891,9 @@ static void __init imx7d_clocks_init(struct device_node 
> *ccm_node)
>   clk_set_parent(clks[IMX7D_PLL_AUDIO_MAIN_BYPASS], 
> clks[IMX7D_PLL_AUDIO_MAIN]);
>   clk_set_parent(clks[IMX7D_PLL_VIDEO_MAIN_BYPASS], 
> clks[IMX7D_PLL_VIDEO_MAIN]);
>  
> + clk_set_parent(clks[IMX7D_MIPI_CSI_ROOT_SRC],
> +clks[IMX7D_PLL_SYS_PFD3_CLK]);
> +

For i.MX clock driver, we intentionally ignore line over 80 columns
warning to make the file easier for read.  So I would suggest you keep
it on a single line to stay consistent with other clk_set_parent() calls.

Other than that,

Acked-by: Shawn Guo <shawn...@kernel.org>

>   /* use old gpt clk setting, gpt1 root clk must be twice as gpt counter 
> freq */
>   clk_set_parent(clks[IMX7D_GPT1_ROOT_SRC], clks[IMX7D_OSC_24M_CLK]);
>  
> -- 
> 2.17.0
> 


Re: [PATCH v2 03/15] clk: imx7d: fix mipi dphy div parent

2018-05-02 Thread Shawn Guo
Anson,

Please have a look at this change.

Shawn

On Mon, Apr 23, 2018 at 02:47:38PM +0100, Rui Miguel Silva wrote:
> Fix the mipi dphy root divider to mipi_dphy_pre_div, this would remove a 
> orphan
> clock and set the correct parent.
> 
> before:
> cat clk_orphan_summary
>  enable  prepare  protect
>clock  countcountcountrate   
> accuracy   phase
> 
>  mipi_dphy_post_div   110   0 
>  0 0
> mipi_dphy_root_clk110   0 
>  0 0
> 
> cat clk_dump | grep mipi_dphy
> mipi_dphy_post_div110   0 
>  0 0
> mipi_dphy_root_clk110   0 
>  0 0
> 
> after:
> cat clk_dump | grep mipi_dphy
>mipi_dphy_src 1102400  
> 0 0
>mipi_dphy_cg  1102400  
> 0 0
>   mipi_dphy_pre_div  1102400  
> 0 0
>  mipi_dphy_post_div  1102400  
> 0 0
> mipi_dphy_root_clk   1102400  
> 0 0
> 
> Cc: linux-...@vger.kernel.org
> Signed-off-by: Rui Miguel Silva 
> 
> Signed-off-by: Rui Miguel Silva 
> ---
>  drivers/clk/imx/clk-imx7d.c | 2 +-
>  1 file changed, 1 insertion(+), 1 deletion(-)
> 
> diff --git a/drivers/clk/imx/clk-imx7d.c b/drivers/clk/imx/clk-imx7d.c
> index 975a20d3cc94..f7f4db2e6fa6 100644
> --- a/drivers/clk/imx/clk-imx7d.c
> +++ b/drivers/clk/imx/clk-imx7d.c
> @@ -729,7 +729,7 @@ static void __init imx7d_clocks_init(struct device_node 
> *ccm_node)
>   clks[IMX7D_LCDIF_PIXEL_ROOT_DIV] = 
> imx_clk_divider2("lcdif_pixel_post_div", "lcdif_pixel_pre_div", base + 
> 0xa300, 0, 6);
>   clks[IMX7D_MIPI_DSI_ROOT_DIV] = imx_clk_divider2("mipi_dsi_post_div", 
> "mipi_dsi_pre_div", base + 0xa380, 0, 6);
>   clks[IMX7D_MIPI_CSI_ROOT_DIV] = imx_clk_divider2("mipi_csi_post_div", 
> "mipi_csi_pre_div", base + 0xa400, 0, 6);
> - clks[IMX7D_MIPI_DPHY_ROOT_DIV] = imx_clk_divider2("mipi_dphy_post_div", 
> "mipi_csi_dphy_div", base + 0xa480, 0, 6);
> + clks[IMX7D_MIPI_DPHY_ROOT_DIV] = imx_clk_divider2("mipi_dphy_post_div", 
> "mipi_dphy_pre_div", base + 0xa480, 0, 6);
>   clks[IMX7D_SAI1_ROOT_DIV] = imx_clk_divider2("sai1_post_div", 
> "sai1_pre_div", base + 0xa500, 0, 6);
>   clks[IMX7D_SAI2_ROOT_DIV] = imx_clk_divider2("sai2_post_div", 
> "sai2_pre_div", base + 0xa580, 0, 6);
>   clks[IMX7D_SAI3_ROOT_DIV] = imx_clk_divider2("sai3_post_div", 
> "sai3_pre_div", base + 0xa600, 0, 6);
> -- 
> 2.17.0
> 


Re: [PATCH v13 7/8] ARM: dts: imx: Add TDA19971 HDMI Receiver to GW54xx

2018-02-21 Thread Shawn Guo
On Thu, Feb 15, 2018 at 01:19:17PM -0800, Tim Harvey wrote:
> On Thu, Feb 15, 2018 at 10:36 AM, Hans Verkuil  wrote:
> > On 15/02/18 18:55, Tim Harvey wrote:
> >> The GW54xx has a front-panel microHDMI connector routed to a TDA19971
> >> which is connected the the IPU CSI when using IMX6Q.
> >
> > I assume that this and the next patch go through another subsystem for arm
> > and/or imx?
> >
> > Regards,
> >
> > Hans
> >
> 
> Hans,
> 
> Yes - Shawn should pick up the two dts patches:
> 0007-ARM-dts-imx-Add-TDA19971-HDMI-Receiver-to-GW54xx.patch
> 0008-ARM-dts-imx-Add-TDA19971-HDMI-Receiver-to-GW551x.patch
> 
> Shawn you've seen these before but haven't ack'd them - are they good
> to merge to your imx tree?

Yes.  I will pick up the dts patches after Hans merges driver part.

Shawn


[PATCH] dma-buf/sw_sync: fix document of sw_sync_create_fence_data

2018-01-14 Thread Shawn Guo
The structure should really be sw_sync_create_fence_data rather than
sw_sync_ioctl_create_fence which is the function name.

Signed-off-by: Shawn Guo <shawn@linaro.org>
---
 drivers/dma-buf/sw_sync.c | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/drivers/dma-buf/sw_sync.c b/drivers/dma-buf/sw_sync.c
index 24f83f9eeaed..7779bdbd18d1 100644
--- a/drivers/dma-buf/sw_sync.c
+++ b/drivers/dma-buf/sw_sync.c
@@ -43,14 +43,14 @@
  * timelines.
  *
  * Fences can be created with SW_SYNC_IOC_CREATE_FENCE ioctl with struct
- * sw_sync_ioctl_create_fence as parameter.
+ * sw_sync_create_fence_data as parameter.
  *
  * To increment the timeline counter, SW_SYNC_IOC_INC ioctl should be used
  * with the increment as u32. This will update the last signaled value
  * from the timeline and signal any fence that has a seqno smaller or equal
  * to it.
  *
- * struct sw_sync_ioctl_create_fence
+ * struct sw_sync_create_fence_data
  * @value: the seqno to initialise the fence with
  * @name:  the name of the new sync point
  * @fence: return the fd of the new sync_file with the created fence
-- 
1.9.1



Re: [PATCH v4 4/5] ARM: dts: imx: Add TDA19971 HDMI Receiver to GW54xx

2017-11-29 Thread Shawn Guo
On Wed, Nov 29, 2017 at 01:19:56PM -0800, Tim Harvey wrote:
> The GW54xx has a front-panel microHDMI connector routed to a TDA19971
> which is connected the the IPU CSI when using IMX6Q.
> 
> Signed-off-by: Tim Harvey 
> ---
> v2:
>  - add HDMI audio input support
> ---
>  arch/arm/boot/dts/imx6q-gw54xx.dts| 102 
> ++
>  arch/arm/boot/dts/imx6qdl-gw54xx.dtsi |  29 +-
>  2 files changed, 128 insertions(+), 3 deletions(-)
> 
> diff --git a/arch/arm/boot/dts/imx6q-gw54xx.dts 
> b/arch/arm/boot/dts/imx6q-gw54xx.dts
> index 56e5b50..99dac63 100644
> --- a/arch/arm/boot/dts/imx6q-gw54xx.dts
> +++ b/arch/arm/boot/dts/imx6q-gw54xx.dts
> @@ -12,10 +12,27 @@
>  /dts-v1/;
>  #include "imx6q.dtsi"
>  #include "imx6qdl-gw54xx.dtsi"
> +#include 
>  
>  / {
>   model = "Gateworks Ventana i.MX6 Dual/Quad GW54XX";
>   compatible = "gw,imx6q-gw54xx", "gw,ventana", "fsl,imx6q";
> +
> + sound-digital {
> + compatible = "simple-audio-card";
> + simple-audio-card,name = "tda1997x-audio";

Have a newline between property list and child node.

> + simple-audio-card,dai-link@0 {

Unit-address is only needed for node that has a 'reg' property.

> + format = "i2s";

Newline

> + cpu {
> + sound-dai = <>;
> + };

Ditto

> + codec {
> + bitclock-master;
> + frame-master;
> + sound-dai = <>;
> + };
> + };
> + };
>  };
>  
>   {
> @@ -35,6 +52,61 @@
>   };
>   };
>   };
> +
> + tda1997x: codec@48 {
> + compatible = "nxp,tda19971";
> + pinctrl-names = "default";
> + pinctrl-0 = <_tda1997x>;
> + reg = <0x48>;
> + interrupt-parent = <>;
> + interrupts = <7 IRQ_TYPE_LEVEL_LOW>;
> + DOVDD-supply = <_3p3v>;
> + AVDD-supply = <_reg>;
> + DVDD-supply = <_reg>;
> + #sound-dai-cells = <0>;
> + nxp,audout-format = "i2s";
> + nxp,audout-layout = <0>;
> + nxp,audout-width = <16>;
> + nxp,audout-mclk-fs = <128>;
> + /*
> +  * The 8bpp YUV422 semi-planar mode outputs CbCr[11:4]
> +  * and Y[11:4] across 16bits in the same cycle
> +  * which we map to VP[15:08]<->CSI_DATA[19:12]
> +  */
> + nxp,vidout-portcfg =
> + /*G_Y_11_8<->VP[15:12]<->CSI_DATA[19:16]*/
> + < TDA1997X_VP24_V15_12 TDA1997X_G_Y_11_8 >,
> + /*G_Y_7_4<->VP[11:08]<->CSI_DATA[15:12]*/
> + < TDA1997X_VP24_V11_08 TDA1997X_G_Y_7_4 >,
> + /*R_CR_CBCR_11_8<->VP[07:04]<->CSI_DATA[11:08]*/
> + < TDA1997X_VP24_V07_04 TDA1997X_R_CR_CBCR_11_8 >,
> + /*R_CR_CBCR_7_4<->VP[03:00]<->CSI_DATA[07:04]*/
> + < TDA1997X_VP24_V03_00 TDA1997X_R_CR_CBCR_7_4 >;
> +
> + port {
> + tda1997x_to_ipu1_csi0_mux: endpoint {
> + remote-endpoint = 
> <_csi0_mux_from_parallel_sensor>;
> + bus-width = <16>;
> + hsync-active = <1>;
> + vsync-active = <1>;
> + data-active = <1>;
> + };
> + };
> + };
> +};
> +
> +_csi0_from_ipu1_csi0_mux {
> + bus-width = <16>;
> +};
> +
> +_csi0_mux_from_parallel_sensor {
> + remote-endpoint = <_to_ipu1_csi0_mux>;
> + bus-width = <16>;
> +};
> +
> +_csi0 {
> + pinctrl-names = "default";
> + pinctrl-0 = <_ipu1_csi0>;
>  };
>  
>  _csi1_from_ipu2_csi1_mux {
> @@ -63,6 +135,30 @@
>   >;
>   };
>  
> + pinctrl_ipu1_csi0: ipu1_csi0grp {
> + fsl,pins = <
> + MX6QDL_PAD_CSI0_DAT4__IPU1_CSI0_DATA04  0x1b0b0
> + MX6QDL_PAD_CSI0_DAT5__IPU1_CSI0_DATA05  0x1b0b0
> + MX6QDL_PAD_CSI0_DAT6__IPU1_CSI0_DATA06  0x1b0b0
> + MX6QDL_PAD_CSI0_DAT7__IPU1_CSI0_DATA07  0x1b0b0
> + MX6QDL_PAD_CSI0_DAT8__IPU1_CSI0_DATA08  0x1b0b0
> + MX6QDL_PAD_CSI0_DAT9__IPU1_CSI0_DATA09  0x1b0b0
> + MX6QDL_PAD_CSI0_DAT10__IPU1_CSI0_DATA10 0x1b0b0
> + MX6QDL_PAD_CSI0_DAT11__IPU1_CSI0_DATA11 0x1b0b0
> + MX6QDL_PAD_CSI0_DAT12__IPU1_CSI0_DATA12 0x1b0b0
> + MX6QDL_PAD_CSI0_DAT13__IPU1_CSI0_DATA13 0x1b0b0
> + MX6QDL_PAD_CSI0_DAT14__IPU1_CSI0_DATA14 0x1b0b0
> + 

Re: [PATCH v2 0/3] Add ZTE zx-irdec remote control driver

2017-08-18 Thread Shawn Guo
On Sun, Jul 30, 2017 at 09:23:10PM +0800, Shawn Guo wrote:
> From: Shawn Guo <shawn@linaro.org>
> 
> The series adds dt-bindings and remote control driver for IRDEC block
> found on ZTE ZX family SoCs.
> 
> Changes for v2:
>  - Add one patch to move generic NEC scancode composing and protocol
>type detection code from ir_nec_decode() into an inline shared
>function, which can be reused by zx-irdec driver.
> 
> Shawn Guo (3):
>   rc: ir-nec-decoder: move scancode composing code into a shared
> function
>   dt-bindings: add bindings document for zx-irdec
>   rc: add zx-irdec remote control driver

Hi Sean,

We are getting close to 4.14 merge window.  Can we get this into -next
for a bit exposure, if you are fine with the patches?

Shawn


Re: [PATCH v2 3/3] rc: add zx-irdec remote control driver

2017-08-09 Thread Shawn Guo
Hi Sean,

On Wed, Aug 09, 2017 at 02:00:29PM +0100, Sean Young wrote:
> On Sun, Jul 30, 2017 at 09:23:13PM +0800, Shawn Guo wrote:
> > From: Shawn Guo <shawn@linaro.org>
> > 
> > It adds the remote control driver and corresponding keymap file for
> > IRDEC block found on ZTE ZX family SoCs.
> > 
> > Signed-off-by: Shawn Guo <shawn@linaro.org>
> > ---
> >  drivers/media/rc/Kconfig   |  11 ++
> >  drivers/media/rc/Makefile  |   1 +
> >  drivers/media/rc/keymaps/Makefile  |   3 +-
> >  drivers/media/rc/keymaps/rc-zx-irdec.c |  79 ++
> >  drivers/media/rc/zx-irdec.c| 183 
> > +
> >  include/media/rc-map.h |   1 +
> >  6 files changed, 277 insertions(+), 1 deletion(-)
> >  create mode 100644 drivers/media/rc/keymaps/rc-zx-irdec.c
> >  create mode 100644 drivers/media/rc/zx-irdec.c
> 
> We're missing an MAINTAINERS entry for this driver. Could this be added
> please as a separate patch?

We are using 'ARM/ZTE ARCHITECTURE' entry in MAINTAINERS for ZTE ZX
drivers.  I plan to send a separate patch going through arm-soc tree,
updating MAINTAINERS for those new ZTE ZX drivers landed on mainline
during 4.14 merge window.  IRDEC will be covered by that patch.  Is that
okay?

Shawn


[PATCH v2 2/3] dt-bindings: add bindings document for zx-irdec

2017-07-30 Thread Shawn Guo
From: Shawn Guo <shawn@linaro.org>

It adds the dt-bindings document for ZTE ZX IRDEC remote control
block.

Signed-off-by: Shawn Guo <shawn@linaro.org>
---
 Documentation/devicetree/bindings/media/zx-irdec.txt | 14 ++
 1 file changed, 14 insertions(+)
 create mode 100644 Documentation/devicetree/bindings/media/zx-irdec.txt

diff --git a/Documentation/devicetree/bindings/media/zx-irdec.txt 
b/Documentation/devicetree/bindings/media/zx-irdec.txt
new file mode 100644
index ..295b9fab593e
--- /dev/null
+++ b/Documentation/devicetree/bindings/media/zx-irdec.txt
@@ -0,0 +1,14 @@
+IR Decoder (IRDEC) on ZTE ZX family SoCs
+
+Required properties:
+ - compatible: Should be "zte,zx296718-irdec".
+ - reg: Physical base address and length of IRDEC registers.
+ - interrupts: Interrupt number of IRDEC.
+
+Exmaples:
+
+   irdec: ir-decoder@111000 {
+   compatible = "zte,zx296718-irdec";
+   reg = <0x111000 0x1000>;
+   interrupts = ;
+   };
-- 
1.9.1



[PATCH v2 3/3] rc: add zx-irdec remote control driver

2017-07-30 Thread Shawn Guo
From: Shawn Guo <shawn@linaro.org>

It adds the remote control driver and corresponding keymap file for
IRDEC block found on ZTE ZX family SoCs.

Signed-off-by: Shawn Guo <shawn@linaro.org>
---
 drivers/media/rc/Kconfig   |  11 ++
 drivers/media/rc/Makefile  |   1 +
 drivers/media/rc/keymaps/Makefile  |   3 +-
 drivers/media/rc/keymaps/rc-zx-irdec.c |  79 ++
 drivers/media/rc/zx-irdec.c| 183 +
 include/media/rc-map.h |   1 +
 6 files changed, 277 insertions(+), 1 deletion(-)
 create mode 100644 drivers/media/rc/keymaps/rc-zx-irdec.c
 create mode 100644 drivers/media/rc/zx-irdec.c

diff --git a/drivers/media/rc/Kconfig b/drivers/media/rc/Kconfig
index 5e83b76495f7..c572d5da4b5f 100644
--- a/drivers/media/rc/Kconfig
+++ b/drivers/media/rc/Kconfig
@@ -435,4 +435,15 @@ config IR_SIR
   To compile this driver as a module, choose M here: the module will
   be called sir-ir.
 
+config IR_ZX
+   tristate "ZTE ZX IR remote control"
+   depends on RC_CORE
+   depends on ARCH_ZX || COMPILE_TEST
+   ---help---
+  Say Y if you want to use the IR remote control available
+  on ZTE ZX family SoCs.
+
+  To compile this driver as a module, choose M here: the
+  module will be called zx-irdec.
+
 endif #RC_DEVICES
diff --git a/drivers/media/rc/Makefile b/drivers/media/rc/Makefile
index 245e2c2d0b22..922c1a5620e9 100644
--- a/drivers/media/rc/Makefile
+++ b/drivers/media/rc/Makefile
@@ -41,3 +41,4 @@ obj-$(CONFIG_IR_IMG) += img-ir/
 obj-$(CONFIG_IR_SERIAL) += serial_ir.o
 obj-$(CONFIG_IR_SIR) += sir_ir.o
 obj-$(CONFIG_IR_MTK) += mtk-cir.o
+obj-$(CONFIG_IR_ZX) += zx-irdec.o
diff --git a/drivers/media/rc/keymaps/Makefile 
b/drivers/media/rc/keymaps/Makefile
index 2945f99907b5..af6496d709fb 100644
--- a/drivers/media/rc/keymaps/Makefile
+++ b/drivers/media/rc/keymaps/Makefile
@@ -109,4 +109,5 @@ obj-$(CONFIG_RC_MAP) += rc-adstech-dvb-t-pci.o \
rc-videomate-tv-pvr.o \
rc-winfast.o \
rc-winfast-usbii-deluxe.o \
-   rc-su3000.o
+   rc-su3000.o \
+   rc-zx-irdec.o
diff --git a/drivers/media/rc/keymaps/rc-zx-irdec.c 
b/drivers/media/rc/keymaps/rc-zx-irdec.c
new file mode 100644
index ..cc889df47eb8
--- /dev/null
+++ b/drivers/media/rc/keymaps/rc-zx-irdec.c
@@ -0,0 +1,79 @@
+/*
+ * Copyright (C) 2017 Sanechips Technology Co., Ltd.
+ * Copyright 2017 Linaro Ltd.
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License version 2 as
+ * published by the Free Software Foundation.
+ */
+
+#include 
+#include 
+
+static struct rc_map_table zx_irdec_table[] = {
+   { 0x01, KEY_1 },
+   { 0x02, KEY_2 },
+   { 0x03, KEY_3 },
+   { 0x04, KEY_4 },
+   { 0x05, KEY_5 },
+   { 0x06, KEY_6 },
+   { 0x07, KEY_7 },
+   { 0x08, KEY_8 },
+   { 0x09, KEY_9 },
+   { 0x31, KEY_0 },
+   { 0x16, KEY_DELETE },
+   { 0x0a, KEY_MODE }, /* Input method */
+   { 0x0c, KEY_VOLUMEUP },
+   { 0x18, KEY_VOLUMEDOWN },
+   { 0x0b, KEY_CHANNELUP },
+   { 0x15, KEY_CHANNELDOWN },
+   { 0x0d, KEY_PAGEUP },
+   { 0x13, KEY_PAGEDOWN },
+   { 0x46, KEY_FASTFORWARD },
+   { 0x43, KEY_REWIND },
+   { 0x44, KEY_PLAYPAUSE },
+   { 0x45, KEY_STOP },
+   { 0x49, KEY_OK },
+   { 0x47, KEY_UP },
+   { 0x4b, KEY_DOWN },
+   { 0x48, KEY_LEFT },
+   { 0x4a, KEY_RIGHT },
+   { 0x4d, KEY_MENU },
+   { 0x56, KEY_APPSELECT },/* Application */
+   { 0x4c, KEY_BACK },
+   { 0x1e, KEY_INFO },
+   { 0x4e, KEY_F1 },
+   { 0x4f, KEY_F2 },
+   { 0x50, KEY_F3 },
+   { 0x51, KEY_F4 },
+   { 0x1c, KEY_AUDIO },
+   { 0x12, KEY_MUTE },
+   { 0x11, KEY_DOT },  /* Location */
+   { 0x1d, KEY_SETUP },
+   { 0x40, KEY_POWER },
+};
+
+static struct rc_map_list zx_irdec_map = {
+   .map = {
+   .scan = zx_irdec_table,
+   .size = ARRAY_SIZE(zx_irdec_table),
+   .rc_type = RC_TYPE_NEC,
+   .name = RC_MAP_ZX_IRDEC,
+   }
+};
+
+static int __init init_rc_map_zx_irdec(void)
+{
+   return rc_map_register(_irdec_map);
+}
+
+static void __exit exit_rc_map_zx_irdec(void)
+{
+   rc_map_unregister(_irdec_map);
+}
+
+module_init(init_rc_map_zx_irdec)
+module_exit(exit_rc_map_zx_irdec)
+
+MODULE_AUTHOR("Shawn Guo <shawn@linaro.org>");
+MODULE_LICENSE("GPL v2");
diff --git a/drivers/media/rc/zx-irdec.c b/drivers/media/rc/zx-irdec.c
new file mode 100644
index ..3993aa0aeaa9
--- /dev/null
+++ b/drivers/media/rc/zx-irdec.c
@@ -0,0 +1,183 @@
+/*
+ * Copyright (C) 2017 Sanechips Technology Co., Ltd.
+ * Copyright 2017 L

[PATCH v2 1/3] rc: ir-nec-decoder: move scancode composing code into a shared function

2017-07-30 Thread Shawn Guo
From: Shawn Guo <shawn@linaro.org>

The NEC scancode composing and protocol type detection in
ir_nec_decode() is generic enough to be a shared function.  Let's create
an inline function in rc-core.h, so that other remote control drivers
can reuse this function to save some code.

Signed-off-by: Shawn Guo <shawn@linaro.org>
---
 drivers/media/rc/ir-nec-decoder.c | 32 +++-
 include/media/rc-core.h   | 31 +++
 2 files changed, 34 insertions(+), 29 deletions(-)

diff --git a/drivers/media/rc/ir-nec-decoder.c 
b/drivers/media/rc/ir-nec-decoder.c
index 3ce850314dca..b578c1e27c04 100644
--- a/drivers/media/rc/ir-nec-decoder.c
+++ b/drivers/media/rc/ir-nec-decoder.c
@@ -51,7 +51,6 @@ static int ir_nec_decode(struct rc_dev *dev, struct 
ir_raw_event ev)
u32 scancode;
enum rc_type rc_type;
u8 address, not_address, command, not_command;
-   bool send_32bits = false;
 
if (!is_timing_event(ev)) {
if (ev.reset)
@@ -161,34 +160,9 @@ static int ir_nec_decode(struct rc_dev *dev, struct 
ir_raw_event ev)
command = bitrev8((data->bits >>  8) & 0xff);
not_command = bitrev8((data->bits >>  0) & 0xff);
 
-   if ((command ^ not_command) != 0xff) {
-   IR_dprintk(1, "NEC checksum error: received 0x%08x\n",
-  data->bits);
-   send_32bits = true;
-   }
-
-   if (send_32bits) {
-   /* NEC transport, but modified protocol, used by at
-* least Apple and TiVo remotes */
-   scancode = not_address << 24 |
-   address << 16 |
-   not_command <<  8 |
-   command;
-   IR_dprintk(1, "NEC (modified) scancode 0x%08x\n", 
scancode);
-   rc_type = RC_TYPE_NEC32;
-   } else if ((address ^ not_address) != 0xff) {
-   /* Extended NEC */
-   scancode = address << 16 |
-  not_address <<  8 |
-  command;
-   IR_dprintk(1, "NEC (Ext) scancode 0x%06x\n", scancode);
-   rc_type = RC_TYPE_NECX;
-   } else {
-   /* Normal NEC */
-   scancode = address << 8 | command;
-   IR_dprintk(1, "NEC scancode 0x%04x\n", scancode);
-   rc_type = RC_TYPE_NEC;
-   }
+   scancode = ir_nec_bytes_to_scancode(address, not_address,
+   command, not_command,
+   _type);
 
if (data->is_nec_x)
data->necx_repeat = true;
diff --git a/include/media/rc-core.h b/include/media/rc-core.h
index 78dea39a9b39..204f7785b8e7 100644
--- a/include/media/rc-core.h
+++ b/include/media/rc-core.h
@@ -340,4 +340,35 @@ static inline u32 ir_extract_bits(u32 data, u32 mask)
return value;
 }
 
+/* Get NEC scancode and protocol type from address and command bytes */
+static inline u32 ir_nec_bytes_to_scancode(u8 address, u8 not_address,
+  u8 command, u8 not_command,
+  enum rc_type *protocol)
+{
+   u32 scancode;
+
+   if ((command ^ not_command) != 0xff) {
+   /* NEC transport, but modified protocol, used by at
+* least Apple and TiVo remotes
+*/
+   scancode = not_address << 24 |
+   address << 16 |
+   not_command <<  8 |
+   command;
+   *protocol = RC_TYPE_NEC32;
+   } else if ((address ^ not_address) != 0xff) {
+   /* Extended NEC */
+   scancode = address << 16 |
+  not_address <<  8 |
+  command;
+   *protocol = RC_TYPE_NECX;
+   } else {
+   /* Normal NEC */
+   scancode = address << 8 | command;
+   *protocol = RC_TYPE_NEC;
+   }
+
+   return scancode;
+}
+
 #endif /* _RC_CORE */
-- 
1.9.1



[PATCH v2 0/3] Add ZTE zx-irdec remote control driver

2017-07-30 Thread Shawn Guo
From: Shawn Guo <shawn@linaro.org>

The series adds dt-bindings and remote control driver for IRDEC block
found on ZTE ZX family SoCs.

Changes for v2:
 - Add one patch to move generic NEC scancode composing and protocol
   type detection code from ir_nec_decode() into an inline shared
   function, which can be reused by zx-irdec driver.

Shawn Guo (3):
  rc: ir-nec-decoder: move scancode composing code into a shared
function
  dt-bindings: add bindings document for zx-irdec
  rc: add zx-irdec remote control driver

 .../devicetree/bindings/media/zx-irdec.txt |  14 ++
 drivers/media/rc/Kconfig   |  11 ++
 drivers/media/rc/Makefile  |   1 +
 drivers/media/rc/ir-nec-decoder.c  |  32 +---
 drivers/media/rc/keymaps/Makefile  |   3 +-
 drivers/media/rc/keymaps/rc-zx-irdec.c |  79 +
 drivers/media/rc/zx-irdec.c| 183 +
 include/media/rc-core.h|  31 
 include/media/rc-map.h |   1 +
 9 files changed, 325 insertions(+), 30 deletions(-)
 create mode 100644 Documentation/devicetree/bindings/media/zx-irdec.txt
 create mode 100644 drivers/media/rc/keymaps/rc-zx-irdec.c
 create mode 100644 drivers/media/rc/zx-irdec.c

-- 
1.9.1



Re: [PATCH 2/2] rc: add zx-irdec remote control driver

2017-07-30 Thread Shawn Guo
Hi Sean,

On Sat, Jul 29, 2017 at 10:51:13AM +0100, Sean Young wrote:
> Hi Shawn,
> 
> The driver looks great! Just a minor point, see below.

Thanks for taking time to look at the patch.  I appreciate your review
comments, and will post v2 that addressed them shortly.  Thanks.

Shawn


[PATCH 0/2] Add ZTE zx-irdec remote control driver

2017-07-29 Thread Shawn Guo
From: Shawn Guo <shawn@linaro.org>

The series adds dt-bindings and remote control driver for IRDEC block
found on ZTE ZX family SoCs.

Shawn Guo (2):
  dt-bindings: add bindings document for zx-irdec
  rc: add zx-irdec remote control driver

 .../devicetree/bindings/media/zx-irdec.txt |  14 ++
 drivers/media/rc/Kconfig   |  11 ++
 drivers/media/rc/Makefile  |   1 +
 drivers/media/rc/keymaps/Makefile  |   3 +-
 drivers/media/rc/keymaps/rc-zx-irdec.c |  79 
 drivers/media/rc/zx-irdec.c| 198 +
 include/media/rc-map.h |   1 +
 7 files changed, 306 insertions(+), 1 deletion(-)
 create mode 100644 Documentation/devicetree/bindings/media/zx-irdec.txt
 create mode 100644 drivers/media/rc/keymaps/rc-zx-irdec.c
 create mode 100644 drivers/media/rc/zx-irdec.c

-- 
1.9.1



[PATCH 2/2] rc: add zx-irdec remote control driver

2017-07-29 Thread Shawn Guo
From: Shawn Guo <shawn@linaro.org>

It adds the remote control driver and corresponding keymap file for
IRDEC block found on ZTE ZX family SoCs.

Signed-off-by: Shawn Guo <shawn@linaro.org>
---
 drivers/media/rc/Kconfig   |  11 ++
 drivers/media/rc/Makefile  |   1 +
 drivers/media/rc/keymaps/Makefile  |   3 +-
 drivers/media/rc/keymaps/rc-zx-irdec.c |  79 +
 drivers/media/rc/zx-irdec.c| 198 +
 include/media/rc-map.h |   1 +
 6 files changed, 292 insertions(+), 1 deletion(-)
 create mode 100644 drivers/media/rc/keymaps/rc-zx-irdec.c
 create mode 100644 drivers/media/rc/zx-irdec.c

diff --git a/drivers/media/rc/Kconfig b/drivers/media/rc/Kconfig
index 5e83b76495f7..c572d5da4b5f 100644
--- a/drivers/media/rc/Kconfig
+++ b/drivers/media/rc/Kconfig
@@ -435,4 +435,15 @@ config IR_SIR
   To compile this driver as a module, choose M here: the module will
   be called sir-ir.
 
+config IR_ZX
+   tristate "ZTE ZX IR remote control"
+   depends on RC_CORE
+   depends on ARCH_ZX || COMPILE_TEST
+   ---help---
+  Say Y if you want to use the IR remote control available
+  on ZTE ZX family SoCs.
+
+  To compile this driver as a module, choose M here: the
+  module will be called zx-irdec.
+
 endif #RC_DEVICES
diff --git a/drivers/media/rc/Makefile b/drivers/media/rc/Makefile
index 245e2c2d0b22..922c1a5620e9 100644
--- a/drivers/media/rc/Makefile
+++ b/drivers/media/rc/Makefile
@@ -41,3 +41,4 @@ obj-$(CONFIG_IR_IMG) += img-ir/
 obj-$(CONFIG_IR_SERIAL) += serial_ir.o
 obj-$(CONFIG_IR_SIR) += sir_ir.o
 obj-$(CONFIG_IR_MTK) += mtk-cir.o
+obj-$(CONFIG_IR_ZX) += zx-irdec.o
diff --git a/drivers/media/rc/keymaps/Makefile 
b/drivers/media/rc/keymaps/Makefile
index 2945f99907b5..af6496d709fb 100644
--- a/drivers/media/rc/keymaps/Makefile
+++ b/drivers/media/rc/keymaps/Makefile
@@ -109,4 +109,5 @@ obj-$(CONFIG_RC_MAP) += rc-adstech-dvb-t-pci.o \
rc-videomate-tv-pvr.o \
rc-winfast.o \
rc-winfast-usbii-deluxe.o \
-   rc-su3000.o
+   rc-su3000.o \
+   rc-zx-irdec.o
diff --git a/drivers/media/rc/keymaps/rc-zx-irdec.c 
b/drivers/media/rc/keymaps/rc-zx-irdec.c
new file mode 100644
index ..cc889df47eb8
--- /dev/null
+++ b/drivers/media/rc/keymaps/rc-zx-irdec.c
@@ -0,0 +1,79 @@
+/*
+ * Copyright (C) 2017 Sanechips Technology Co., Ltd.
+ * Copyright 2017 Linaro Ltd.
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License version 2 as
+ * published by the Free Software Foundation.
+ */
+
+#include 
+#include 
+
+static struct rc_map_table zx_irdec_table[] = {
+   { 0x01, KEY_1 },
+   { 0x02, KEY_2 },
+   { 0x03, KEY_3 },
+   { 0x04, KEY_4 },
+   { 0x05, KEY_5 },
+   { 0x06, KEY_6 },
+   { 0x07, KEY_7 },
+   { 0x08, KEY_8 },
+   { 0x09, KEY_9 },
+   { 0x31, KEY_0 },
+   { 0x16, KEY_DELETE },
+   { 0x0a, KEY_MODE }, /* Input method */
+   { 0x0c, KEY_VOLUMEUP },
+   { 0x18, KEY_VOLUMEDOWN },
+   { 0x0b, KEY_CHANNELUP },
+   { 0x15, KEY_CHANNELDOWN },
+   { 0x0d, KEY_PAGEUP },
+   { 0x13, KEY_PAGEDOWN },
+   { 0x46, KEY_FASTFORWARD },
+   { 0x43, KEY_REWIND },
+   { 0x44, KEY_PLAYPAUSE },
+   { 0x45, KEY_STOP },
+   { 0x49, KEY_OK },
+   { 0x47, KEY_UP },
+   { 0x4b, KEY_DOWN },
+   { 0x48, KEY_LEFT },
+   { 0x4a, KEY_RIGHT },
+   { 0x4d, KEY_MENU },
+   { 0x56, KEY_APPSELECT },/* Application */
+   { 0x4c, KEY_BACK },
+   { 0x1e, KEY_INFO },
+   { 0x4e, KEY_F1 },
+   { 0x4f, KEY_F2 },
+   { 0x50, KEY_F3 },
+   { 0x51, KEY_F4 },
+   { 0x1c, KEY_AUDIO },
+   { 0x12, KEY_MUTE },
+   { 0x11, KEY_DOT },  /* Location */
+   { 0x1d, KEY_SETUP },
+   { 0x40, KEY_POWER },
+};
+
+static struct rc_map_list zx_irdec_map = {
+   .map = {
+   .scan = zx_irdec_table,
+   .size = ARRAY_SIZE(zx_irdec_table),
+   .rc_type = RC_TYPE_NEC,
+   .name = RC_MAP_ZX_IRDEC,
+   }
+};
+
+static int __init init_rc_map_zx_irdec(void)
+{
+   return rc_map_register(_irdec_map);
+}
+
+static void __exit exit_rc_map_zx_irdec(void)
+{
+   rc_map_unregister(_irdec_map);
+}
+
+module_init(init_rc_map_zx_irdec)
+module_exit(exit_rc_map_zx_irdec)
+
+MODULE_AUTHOR("Shawn Guo <shawn@linaro.org>");
+MODULE_LICENSE("GPL v2");
diff --git a/drivers/media/rc/zx-irdec.c b/drivers/media/rc/zx-irdec.c
new file mode 100644
index ..bc68c54a910e
--- /dev/null
+++ b/drivers/media/rc/zx-irdec.c
@@ -0,0 +1,198 @@
+/*
+ * Copyright (C) 2017 Sanechips Technology Co., Ltd.
+ * Copyright 2017 Linaro

[PATCH 1/2] dt-bindings: add bindings document for zx-irdec

2017-07-29 Thread Shawn Guo
From: Shawn Guo <shawn@linaro.org>

It adds the dt-bindings document for ZTE ZX IRDEC remote control
block.

Signed-off-by: Shawn Guo <shawn@linaro.org>
---
 Documentation/devicetree/bindings/media/zx-irdec.txt | 14 ++
 1 file changed, 14 insertions(+)
 create mode 100644 Documentation/devicetree/bindings/media/zx-irdec.txt

diff --git a/Documentation/devicetree/bindings/media/zx-irdec.txt 
b/Documentation/devicetree/bindings/media/zx-irdec.txt
new file mode 100644
index ..295b9fab593e
--- /dev/null
+++ b/Documentation/devicetree/bindings/media/zx-irdec.txt
@@ -0,0 +1,14 @@
+IR Decoder (IRDEC) on ZTE ZX family SoCs
+
+Required properties:
+ - compatible: Should be "zte,zx296718-irdec".
+ - reg: Physical base address and length of IRDEC registers.
+ - interrupts: Interrupt number of IRDEC.
+
+Exmaples:
+
+   irdec: ir-decoder@111000 {
+   compatible = "zte,zx296718-irdec";
+   reg = <0x111000 0x1000>;
+   interrupts = ;
+   };
-- 
1.9.1



Re: [PATCH v2] [media] move media platform data to linux/platform_data/media

2015-11-23 Thread Shawn Guo
On Tue, Nov 17, 2015 at 09:21:13AM -0200, Mauro Carvalho Chehab wrote:
> Now that media has its own subdirectory inside platform_data,
> let's move the headers that are already there to such subdir.
> 
> After moving those files, the references were adjusted using this
> script:
> 
> MAIN_DIR="linux/platform_data/"
> PREV_DIR="linux/platform_data/"
> DIRS="media/"
> 
> echo "Checking affected files" >&2
> for i in $DIRS; do
>   for j in $(find include/$MAIN_DIR/$i -type f -name '*.h'); do
>n=`basename $j`
>   git grep -l $n
>   done
> done|sort|uniq >files && (
>   echo "Handling files..." >&2;
>   echo "for i in \$(cat files|grep -v Documentation); do cat \$i | \\";
>   (
>   cd include/$MAIN_DIR;
>   for j in $DIRS; do
>   for i in $(ls $j); do
>   echo "perl -ne 's,(include 
> [\\\"\\<])$PREV_DIR($i)([\\\"\\>]),\1$MAIN_DIR$j\2\3,; print \$_' |\\";
>   done;
>   done;
>   echo "cat > a && mv a \$i; done";
>   );
>   echo "Handling documentation..." >&2;
>   echo "for i in MAINTAINERS \$(cat files); do cat \$i | \\";
>   (
>   cd include/$MAIN_DIR;
>   for j in $DIRS; do
>   for i in $(ls $j); do
>   echo "  perl -ne 
> 's,include/$PREV_DIR($i)\b,include/$MAIN_DIR$j\1,; print \$_' |\\";
>   done;
>   done;
>   echo "cat > a && mv a \$i; done"
>   );
> ) >script && . ./script
> 
> Suggested-by: Arnd Bergmann <a...@arndb.de>
> Signed-off-by: Mauro Carvalho Chehab <mche...@osg.samsung.com>

Acked-by: Shawn Guo <shawn...@kernel.org>
--
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 01/28] ARM: dts: imx6qdl: Add ipu aliases

2014-08-01 Thread Shawn Guo
On Thu, Jul 31, 2014 at 05:28:06PM +0200, Philipp Zabel wrote:
 
 Am Mittwoch, den 25.06.2014, 18:05 -0700 schrieb Steve Longerbeam:
  Add ipu0 (and ipu1 for quad) aliases to ipu1/ipu2 nodes respectively.
  
  Signed-off-by: Steve Longerbeam steve_longerb...@mentor.com
 
 Acked-by: Philipp Zabel p.za...@pengutronix.de

Please send the patch to LAKML and copy me if it's intended to be
applied on IMX tree.

Shawn
--
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 v3 06/32] [media] coda: Add encoder/decoder support for CODA960

2014-07-30 Thread Shawn Guo
On Tue, Jul 29, 2014 at 07:06:25PM +0200, Philipp Zabel wrote:
  I followed the step to generate the firmware v4l-coda960-imx6q, and
  tested it on next-20140725 with patch 'ARM: dts: imx6qdl: Enable CODA960
  VPU' applied on top of it.  But I got the error of 'Wrong firmwarel' as
  below.
 
  [2.582837] coda 204.vpu: requesting firmware 
  'v4l-coda960-imx6q.bin' for CODA960
  [2.593344] coda 204.vpu: Firmware code revision: 0
  [2.598649] coda 204.vpu: Wrong firmware. Hw: CODA960, Fw: (0x), 
  Version: 0.0.0
 
 I just tried with the same kernel, and the above download, converted
 with the program in the referenced mail, and I get this:
 
 coda 204.vpu: Firmware code revision: 36350
 coda 204.vpu: Initialized CODA960.
 coda 204.vpu: Unsupported firmware version: 2.1.9
 coda 204.vpu: codec registered as /dev/video0

Okay, the reason I'm running into the issue is that I'm using the FSL
U-Boot which turns off VDDPU at initialization.

Shawn
--
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 v3 06/32] [media] coda: Add encoder/decoder support for CODA960

2014-07-29 Thread Shawn Guo
Hi Philipp,

On Tue, Jul 22, 2014 at 02:50:33PM +0200, Philipp Zabel wrote:
 The firmware-imx packages referenced in the Freescale meta-fsl-arm
 repository on github.com contain VPU firmware files. Their use is
 restricted by an EULA. For example:
 http://www.freescale.com/lgfiles/NMG/MAD/YOCTO/firmware-imx-3.0.35-4.0.0.bin
 
 This contains the files vpu_fw_imx6q.bin and vpu_fw_imx6d.bin, which can
 be converted into v4l-coda960-imx6q.bin and v4l-coda960-imx6dl.bin,
 respectively, by dropping the headers and reordering the rest.
 I described this for i.MX53 earlier here:
 http://lists.infradead.org/pipermail/linux-arm-kernel/2013-July/181101.html

I followed the step to generate the firmware v4l-coda960-imx6q, and
tested it on next-20140725 with patch 'ARM: dts: imx6qdl: Enable CODA960
VPU' applied on top of it.  But I got the error of 'Wrong firmwarel' as
below.

[2.582837] coda 204.vpu: requesting firmware 'v4l-coda960-imx6q.bin' 
for CODA960
[2.593344] coda 204.vpu: Firmware code revision: 0
[2.598649] coda 204.vpu: Wrong firmware. Hw: CODA960, Fw: (0x), 
Version: 0.0.0

What am I missing here?

Shawn
--
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 v14 05/10] ARM: dts: imx5*, imx6*: correct display-timings nodes.

2014-06-24 Thread Shawn Guo
On Tue, Jun 24, 2014 at 04:01:58PM +0100, Russell King - ARM Linux wrote:
 On Mon, Jun 16, 2014 at 12:11:19PM +0200, Denis Carikli wrote:
  The imx-drm driver can't use the de-active and
  pixelclk-active display-timings properties yet.
  
  Instead the data-enable and the pixel data clock
  polarity are hardcoded in the imx-drm driver.
  
  So theses properties are now set to keep
  the same behaviour when imx-drm will start
  using them.
  
  Signed-off-by: Denis Carikli de...@eukrea.com
 
 This patch needs either an ack from the arm-soc/iMX maintainers, or
 they need to merge it.  As there's little positive agreement on the
 series, I can understand why there's reluctance to merge it.
 
 So, can we start having some acks from people please, or at least
 commitments to merge this patch when the others are deemed to be
 acceptable.  If not, can we have explanations why this should not
 be merged.

I will be happy to merge dts change through IMX tree once the
binding/diver part gets accepted/applied.

Shawn
--
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 2/2] media: mx2_camera: Change Kconfig dependency

2014-05-25 Thread Shawn Guo
On Sat, May 24, 2014 at 08:56:23AM +0400, Alexander Shiyan wrote:
 This patch change MACH_MX27 dependency to SOC_IMX27 for MX2 camera
 driver, since MACH_MX27 symbol is scheduled for removal.
 
 Signed-off-by: Alexander Shiyan shc_w...@mail.ru

Acked-by: Shawn Guo shawn@freescale.com

 ---
  drivers/media/platform/soc_camera/Kconfig | 2 +-
  1 file changed, 1 insertion(+), 1 deletion(-)
 
 diff --git a/drivers/media/platform/soc_camera/Kconfig 
 b/drivers/media/platform/soc_camera/Kconfig
 index 122e03a..fc62897 100644
 --- a/drivers/media/platform/soc_camera/Kconfig
 +++ b/drivers/media/platform/soc_camera/Kconfig
 @@ -63,7 +63,7 @@ config VIDEO_OMAP1
  
  config VIDEO_MX2
   tristate i.MX27 Camera Sensor Interface driver
 - depends on VIDEO_DEV  SOC_CAMERA  MACH_MX27
 + depends on VIDEO_DEV  SOC_CAMERA  SOC_IMX27
   select VIDEOBUF2_DMA_CONTIG
   ---help---
 This is a v4l2 driver for the i.MX27 Camera Sensor Interface
 -- 
 1.8.5.5
 
--
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 3/3] media: mx2-emmaprp: Add devicetree support

2014-05-14 Thread Shawn Guo
On Wed, May 14, 2014 at 08:59:54PM +0400, Alexander Shiyan wrote:
 Wed, 14 May 2014 12:49:03 +0200 от Sylwester Nawrocki 
 s.nawro...@samsung.com:
  On 13/05/14 19:23, Alexander Shiyan wrote:
   Tue, 13 May 2014 19:09:30 +0200 от Sylwester Nawrocki 
   s.nawro...@samsung.com:
Hi,

On 02/05/14 09:18, Alexander Shiyan wrote:
 This patch adds devicetree support for the Freescale enhanced 
 Multimedia
 Accelerator (eMMA) video Pre-processor (PrP).
 
 Signed-off-by: Alexander Shiyan shc_w...@mail.ru
 ---
  .../devicetree/bindings/media/fsl-imx-emmaprp.txt | 19 
 +++
  drivers/media/platform/mx2_emmaprp.c  |  8 
  2 files changed, 27 insertions(+)
  create mode 100644 
 Documentation/devicetree/bindings/media/fsl-imx-emmaprp.txt
 
 diff --git 
 a/Documentation/devicetree/bindings/media/fsl-imx-emmaprp.txt 
 b/Documentation/devicetree/bindings/media/fsl-imx-emmaprp.txt
 new file mode 100644
 index 000..9e8238f
 --- /dev/null
 +++ b/Documentation/devicetree/bindings/media/fsl-imx-emmaprp.txt
 @@ -0,0 +1,19 @@
 +* Freescale enhanced Multimedia Accelerator (eMMA) video 
 Pre-processor (PrP)
 +  for i.MX.
 +
 +Required properties:
 +- compatible : Shall contain fsl,imx21-emmaprp.
 +- reg: Offset and length of the register set for the 
 device.
 +- interrupts : Should contain eMMA PrP interrupt number.
 +- clocks : Should contain the ahb and ipg clocks, in the order
 +   determined by the clock-names property.
 +- clock-names: Should be ahb, ipg.
 +
 +Example:
 +   emmaprp: emmaprp@10026400 {
 +   compatible = fsl,imx27-emmaprp, fsl,imx21-emmaprp;

Is fsl,imx27-emmaprp compatible documented somewhere ?
  
   The overall structure of the eMMA module is slightly different.
   As for the part of the PrP, according to the datasheet they are 
   compatible.
  
  Then can we please have all the valid compatible strings listed at the
  'compatible' property's description above ? I think it is useful to have
  an indication to which SoC each of them apply in documentation of the
  binding.
 
 Traditionally, i.MX drivers uses youngest chip for compatibility string.
 The best example of this: drivers/bus/imx-weim.c

I guess Sylwester's point is either fsl,imx27-emmaprp is documented in
the bindings or it shouldn't be used anywhere.

Shawn
--
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] ARM: i.MX: Remove excess symbols ARCH_MX1, ARCH_MX25 and MACH_MX27

2014-05-12 Thread Shawn Guo
On Sun, May 11, 2014 at 12:50:06PM +0400, Alexander Shiyan wrote:
 This patch removes excess symbols ARCH_MX1, ARCH_MX25 and MACH_MX27.
 Instead we use SOC_IMX*.
 
 Signed-off-by: Alexander Shiyan shc_w...@mail.ru
 ---
  arch/arm/mach-imx/Kconfig | 12 
  arch/arm/mach-imx/devices/Kconfig |  2 +-
  drivers/media/platform/soc_camera/Kconfig |  2 +-

We need to either split this file change into another patch or get an
ACK from Mauro or Guennadi.

Shawn

  3 files changed, 2 insertions(+), 14 deletions(-)
 
 diff --git a/arch/arm/mach-imx/Kconfig b/arch/arm/mach-imx/Kconfig
 index d56eb1a..c28fa7c 100644
 --- a/arch/arm/mach-imx/Kconfig
 +++ b/arch/arm/mach-imx/Kconfig
 @@ -67,18 +67,8 @@ config IMX_HAVE_IOMUX_V1
  config ARCH_MXC_IOMUX_V3
   bool
  
 -config ARCH_MX1
 - bool
 -
 -config ARCH_MX25
 - bool
 -
 -config MACH_MX27
 - bool
 -
  config SOC_IMX1
   bool
 - select ARCH_MX1
   select CPU_ARM920T
   select IMX_HAVE_IOMUX_V1
   select MXC_AVIC
 @@ -91,7 +81,6 @@ config SOC_IMX21
  
  config SOC_IMX25
   bool
 - select ARCH_MX25
   select ARCH_MXC_IOMUX_V3
   select CPU_ARM926T
   select MXC_AVIC
 @@ -103,7 +92,6 @@ config SOC_IMX27
   select ARCH_HAS_OPP
   select CPU_ARM926T
   select IMX_HAVE_IOMUX_V1
 - select MACH_MX27
   select MXC_AVIC
   select PINCTRL_IMX27
  
 diff --git a/arch/arm/mach-imx/devices/Kconfig 
 b/arch/arm/mach-imx/devices/Kconfig
 index 846c019..1f9d4a6 100644
 --- a/arch/arm/mach-imx/devices/Kconfig
 +++ b/arch/arm/mach-imx/devices/Kconfig
 @@ -1,6 +1,6 @@
  config IMX_HAVE_PLATFORM_FEC
   bool
 - default y if ARCH_MX25 || SOC_IMX27 || SOC_IMX35 || SOC_IMX51 || 
 SOC_IMX53
 + default y if SOC_IMX25 || SOC_IMX27 || SOC_IMX35 || SOC_IMX51 || 
 SOC_IMX53
  
  config IMX_HAVE_PLATFORM_FLEXCAN
   bool
 diff --git a/drivers/media/platform/soc_camera/Kconfig 
 b/drivers/media/platform/soc_camera/Kconfig
 index 122e03a..f0ccedd 100644
 --- a/drivers/media/platform/soc_camera/Kconfig
 +++ b/drivers/media/platform/soc_camera/Kconfig
 @@ -63,7 +63,7 @@ config VIDEO_OMAP1
  
  config VIDEO_MX2
   tristate i.MX27 Camera Sensor Interface driver
 - depends on VIDEO_DEV  SOC_CAMERA  MACH_MX27
 + depends on VIDEO_DEV  SOC_CAMERA  SOC_IMX27
   select VIDEOBUF2_DMA_CONTIG
   ---help---
 This is a v4l2 driver for the i.MX27 Camera Sensor Interface
 -- 
 1.8.3.2
 
--
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] media: mx1_camera: Remove driver

2014-05-12 Thread Shawn Guo
On Sun, May 11, 2014 at 10:09:11AM +0400, Alexander Shiyan wrote:
 That driver hasn't been really maintained for a long time. It doesn't
 compile in any way, it includes non-existent headers, has no users,
 and marked as broken more than year. Due to these factors, mx1_camera
 is now removed from the tree.
 
 Signed-off-by: Alexander Shiyan shc_w...@mail.ru
 ---
  arch/arm/mach-imx/Makefile  |   3 -
  arch/arm/mach-imx/devices/Kconfig   |   3 -
  arch/arm/mach-imx/devices/Makefile  |   1 -
  arch/arm/mach-imx/devices/devices-common.h  |  10 -
  arch/arm/mach-imx/devices/platform-mx1-camera.c |  42 --
  arch/arm/mach-imx/mx1-camera-fiq-ksym.c |  18 -
  arch/arm/mach-imx/mx1-camera-fiq.S  |  35 -
  drivers/media/platform/soc_camera/Kconfig   |  13 -
  drivers/media/platform/soc_camera/Makefile  |   1 -
  drivers/media/platform/soc_camera/mx1_camera.c  | 866 
 
  include/linux/platform_data/camera-mx1.h|  35 -
  11 files changed, 1027 deletions(-)
  delete mode 100644 arch/arm/mach-imx/devices/platform-mx1-camera.c
  delete mode 100644 arch/arm/mach-imx/mx1-camera-fiq-ksym.c
  delete mode 100644 arch/arm/mach-imx/mx1-camera-fiq.S
  delete mode 100644 drivers/media/platform/soc_camera/mx1_camera.c
  delete mode 100644 include/linux/platform_data/camera-mx1.h

Can this patch be split into arch and driver part?  Recently, arm-soc
folks do not want to have arch changes go via driver tree, unless that's
absolutely necessary.

Shawn
--
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 v12][ 06/12] ARM: dts: imx5*, imx6*: correct display-timings nodes.

2014-04-08 Thread Shawn Guo
On Mon, Apr 07, 2014 at 02:44:45PM +0200, Denis Carikli wrote:
 The imx-drm driver can't use the de-active and
 pixelclk-active display-timings properties yet.
 
 Instead the data-enable and the pixel data clock
 polarity are hardcoded in the imx-drm driver.
 
 So theses properties are now set to keep
 the same behaviour when imx-drm will start
 using them.
 
 Signed-off-by: Denis Carikli de...@eukrea.com
 ---
 ChangeLog v9-v10:
 - New patch that was splitted out of:
   staging imx-drm: Use de-active and pixelclk-active
   display-timings.
 ---
  arch/arm/boot/dts/imx51-babbage.dts   |2 ++
  arch/arm/boot/dts/imx53-m53evk.dts|2 ++
  arch/arm/boot/dts/imx53-tx53-x03x.dts |2 +-
  arch/arm/boot/dts/imx6qdl-gw53xx.dtsi |2 ++
  arch/arm/boot/dts/imx6qdl-gw54xx.dtsi |2 ++
  arch/arm/boot/dts/imx6qdl-nitrogen6x.dtsi |2 ++
  arch/arm/boot/dts/imx6qdl-sabreauto.dtsi  |2 ++
  arch/arm/boot/dts/imx6qdl-sabrelite.dtsi  |2 ++
  arch/arm/boot/dts/imx6qdl-sabresd.dtsi|2 ++
  9 files changed, 17 insertions(+), 1 deletion(-)

...

 diff --git a/arch/arm/boot/dts/imx53-tx53-x03x.dts 
 b/arch/arm/boot/dts/imx53-tx53-x03x.dts
 index 0217dde3..4092a81 100644
 --- a/arch/arm/boot/dts/imx53-tx53-x03x.dts
 +++ b/arch/arm/boot/dts/imx53-tx53-x03x.dts
 @@ -93,7 +93,7 @@
   hsync-active = 0;
   vsync-active = 0;
   de-active = 1;
 - pixelclk-active = 1;
 + pixelclk-active = 0;

@Lothar, is this change correct?

Shawn

   };
  
   ET0500 {

--
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 v12][ 12/12] ARM: imx_v6_v7_defconfig: Add more drm drivers.

2014-04-08 Thread Shawn Guo
On Mon, Apr 07, 2014 at 02:44:51PM +0200, Denis Carikli wrote:
 The DRM_PANEL_SIMPLE is needed by the eukrea
 mbimxsd51's displays.
 
 Signed-off-by: Denis Carikli de...@eukrea.com

Applied, thanks.

--
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: [PATCHv7][ 1/7] [media] v4l2: add new V4L2_PIX_FMT_RGB666 pixel format.

2014-02-23 Thread Shawn Guo
On Fri, Feb 21, 2014 at 02:59:58PM +0100, Denis Carikli wrote:
 That new macro is needed by the imx_drm staging driver
   for supporting the QVGA display of the eukrea-cpuimx51 board.
 
 Cc: Eric Bénard e...@eukrea.com
 CC: Troy Kisky troy.ki...@boundarydevices.com
 Cc: linux-media@vger.kernel.org
 Signed-off-by: Denis Carikli de...@eukrea.com
 Acked-by: Mauro Carvalho Chehab m.che...@samsung.com
 Acked-by: Laurent Pinchart laurent.pinch...@ideasonboard.com

Denis,

I'm only responsible for taking arch/arm/boot/dts/imx* changes, and
other changes should be sent to subsystem maintainers.

Shawn

 ---
 ChangeLog v6-v7:
 - Shrinked even more the Cc list.
 ChangeLog v5-v6:
 - Remove people not concerned by this patch from the Cc list.
 
 ChangeLog v3-v4:
 - Added Laurent Pinchart's Ack.
 
 ChangeLog v2-v3:
 - Added some interested people in the Cc list.
 - Added Mauro Carvalho Chehab's Ack.
 - Added documentation.
 ---
  .../DocBook/media/v4l/pixfmt-packed-rgb.xml|   78 
 
  include/uapi/linux/videodev2.h |1 +
  2 files changed, 79 insertions(+)
 
 diff --git a/Documentation/DocBook/media/v4l/pixfmt-packed-rgb.xml 
 b/Documentation/DocBook/media/v4l/pixfmt-packed-rgb.xml
 index 166c8d6..f6a3e84 100644
 --- a/Documentation/DocBook/media/v4l/pixfmt-packed-rgb.xml
 +++ b/Documentation/DocBook/media/v4l/pixfmt-packed-rgb.xml
 @@ -279,6 +279,45 @@ colorspace 
 constantV4L2_COLORSPACE_SRGB/constant./para
   entry/entry
   entry/entry
 /row
 +   row id=V4L2-PIX-FMT-RGB666
 + entryconstantV4L2_PIX_FMT_RGB666/constant/entry
 + entry'RGBH'/entry
 + entry/entry
 + entryrsubscript5/subscript/entry
 + entryrsubscript4/subscript/entry
 + entryrsubscript3/subscript/entry
 + entryrsubscript2/subscript/entry
 + entryrsubscript1/subscript/entry
 + entryrsubscript0/subscript/entry
 + entrygsubscript5/subscript/entry
 + entrygsubscript4/subscript/entry
 + entry/entry
 + entrygsubscript3/subscript/entry
 + entrygsubscript2/subscript/entry
 + entrygsubscript1/subscript/entry
 + entrygsubscript0/subscript/entry
 + entrybsubscript5/subscript/entry
 + entrybsubscript4/subscript/entry
 + entrybsubscript3/subscript/entry
 + entrybsubscript2/subscript/entry
 + entry/entry
 + entrybsubscript1/subscript/entry
 + entrybsubscript0/subscript/entry
 + entry/entry
 + entry/entry
 + entry/entry
 + entry/entry
 + entry/entry
 + entry/entry
 + entry/entry
 + entry/entry
 + entry/entry
 + entry/entry
 + entry/entry
 + entry/entry
 + entry/entry
 + entry/entry
 +   /row
 row id=V4L2-PIX-FMT-BGR24
   entryconstantV4L2_PIX_FMT_BGR24/constant/entry
   entry'BGR3'/entry
 @@ -781,6 +820,45 @@ defined in error. Drivers may interpret them as in xref
   entry/entry
   entry/entry
 /row
 +   row!-- id=V4L2-PIX-FMT-RGB666 --
 + entryconstantV4L2_PIX_FMT_RGB666/constant/entry
 + entry'RGBH'/entry
 + entry/entry
 + entryrsubscript5/subscript/entry
 + entryrsubscript4/subscript/entry
 + entryrsubscript3/subscript/entry
 + entryrsubscript2/subscript/entry
 + entryrsubscript1/subscript/entry
 + entryrsubscript0/subscript/entry
 + entrygsubscript5/subscript/entry
 + entrygsubscript4/subscript/entry
 + entry/entry
 + entrygsubscript3/subscript/entry
 + entrygsubscript2/subscript/entry
 + entrygsubscript1/subscript/entry
 + entrygsubscript0/subscript/entry
 + entrybsubscript5/subscript/entry
 + entrybsubscript4/subscript/entry
 + entrybsubscript3/subscript/entry
 + entrybsubscript2/subscript/entry
 + entry/entry
 + entrybsubscript1/subscript/entry
 + entrybsubscript0/subscript/entry
 + entry/entry
 + entry/entry
 + entry/entry
 + entry/entry
 + entry/entry
 + entry/entry
 + entry/entry
 + entry/entry
 + entry/entry
 + entry/entry
 + entry/entry
 + entry/entry
 + entry/entry
 + entry/entry
 +   /row
 row!-- id=V4L2-PIX-FMT-BGR24 --
   entryconstantV4L2_PIX_FMT_BGR24/constant/entry
   entry'BGR3'/entry
 diff --git a/include/uapi/linux/videodev2.h b/include/uapi/linux/videodev2.h
 index 6ae7bbe..3051d67 100644
 --- a/include/uapi/linux/videodev2.h
 +++ b/include/uapi/linux/videodev2.h
 @@ -294,6 +294,7 @@ struct v4l2_pix_format {
  #define V4L2_PIX_FMT_RGB555X v4l2_fourcc('R', 'G', 'B', 'Q') /* 16  
 RGB-5-5-5 BE  */
  #define V4L2_PIX_FMT_RGB565X v4l2_fourcc('R', 'G', 'B', 'R') /* 16  
 RGB-5-6-5 BE  */
  #define 

Re: [PATCH 28/34] media: mx2_camera: remove mach/hardware.h inclusion

2012-10-06 Thread Shawn Guo
On Thu, Sep 27, 2012 at 04:36:56AM -0300, Mauro Carvalho Chehab wrote:
 I'm understanding that this patch will flow through arm tree[1]. So:

Yes, it will go through arm-soc tree for 3.8.

 Acked-by: Mauro Carvalho Chehab mche...@redhat.com
 
Thanks, Mauro.

Shawn
--
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 v2 27/34] media: mx2_camera: remove cpu_is_xxx by using platform_device_id

2012-10-06 Thread Shawn Guo
On Thu, Sep 27, 2012 at 04:03:21PM -0300, Mauro Carvalho Chehab wrote:
 It seems that it depends on some stuff that got merged via the arm tree.
 
 Not sure what would the better way to handle that, as applying it via -arm
 will likely generate conflicts when merging from both trees upstream.
 
 If this change is not urgent, maybe it would be better to apply it after
 the end of the merge window, via either one of the trees.
 
That's the original plan, having it merged via arm-soc tree at the end
of 3.7 merge window.  But I was told by arm-soc folks that we already
have enough conflicts to sort out for this window, and we do not want
any more.  And we have to postpone it to 3.8.

I will publish a topic branch for this series after 3.7-rc1 comes out.

Shawn
--
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: [alsa-devel] [PATCH v2 00/34] i.MX multi-platform support

2012-09-22 Thread Shawn Guo
On Sat, Sep 22, 2012 at 01:09:27AM -0700, Olof Johansson wrote:
  I've pulled this in now as staging/imx-multiplatform.
 
  As you mention, it might or might not make sense to send this up. It
  also accrued a few more merge conflicts with other branches in
  arm-soc, so we'll see how things play out.
 
  Either way, we'll for sure queue it for 3.8.
 
 Hmm. Pulling it in gives me a few new build errors, in particular on
 the configs that Russell use to build test omap3, as well as one of
 his vexpress configs. So I dropped it again for now.
 
 Let's have the current contents sit in linux-next for at least one
 release before we bring in anything more, especially since it brings
 in dependencies on external trees, and it also has a handful of new
 merge conflicts. We're already exposing Stephen Rothwell to more merge
 conflicts than I'm entirely comfortable with.
 
Ok.  I will rebase the series against 3.7-rc1 and then send you then.

Shawn
--
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: [alsa-devel] [PATCH v2 00/34] i.MX multi-platform support

2012-09-21 Thread Shawn Guo
On Thu, Sep 20, 2012 at 03:56:56PM +, Arnd Bergmann wrote:
 Ok, fair enough. I think we can put it in arm-soc/for-next as a staging
 branch anyway to give it some exposure to linux-next, and then we can
 decide whether a rebase is necessary before sending it to Linus.
 
I just saw the announcement from Olof - no more major merge for 3.7
will be accepted from now on.  Can this be an exception or should I
plan this for 3.8?

Shawn
--
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: [alsa-devel] [PATCH v2 00/34] i.MX multi-platform support

2012-09-21 Thread Shawn Guo
Hi Olof,

On Fri, Sep 21, 2012 at 01:26:43AM -0700, Olof Johansson wrote:
 I'll take a look at merging it tomorrow after I've dealt with smp_ops;
 if it looks reasonably conflict-free I'll pull it in. We need the
 sound dependency sorted out (or agreed upon) first though.
 
I just published the branch below with this series rebased on top of
the necessary dependant branches.

  git://git.linaro.org/people/shawnguo/linux-2.6.git staging/imx-multiplatform

The dependant branches include:

* arm-soc/multiplatform/platform-data

* arm-soc/multiplatform/smp_ops

* git://git.kernel.org/pub/scm/linux/kernel/git/broonie/sound.git for-3.7

  It contains dependant patch ASoC: mx27vis: retrieve gpio numbers
  from platform_data

* git://git.infradead.org/mtd-2.6.git master

  The series is based on this tree to solve some non-trivial conflicts
  on mxc_nand driver.  Because mtd tree completely missed 3.6 merge
  window, having the series base on 3.6-rc actually means 3.5 code base
  in term of mtd support.  There are currently two cycles changes
  accumulated on mtd, and we need to base the series on it to sort out
  the conflicts.

* git://linuxtv.org/mchehab/media-next.git master

  The media tree renames mx2/mx3 camera drivers twice.  I'm not sure
  if git merge can detect them, so I just rebased the series on media
  tree to solve that.  The bonus point is that a number of trivial
  conflicts with imx27-coda support on media tree gets solved as well.

I'm not requesting you to pull the branch into arm-soc as a stable
branch but staging one, because the external dependencies which might
not be stable.  I attempt to use it for exposing the series on
linux-next, so that we can send it to Linus for 3.7 if there is chance
for us to (e.g. all the dependant branches hit mainline early during
3.7 merge window).

Shawn
--
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: [alsa-devel] [PATCH v2 00/34] i.MX multi-platform support

2012-09-21 Thread Shawn Guo
On Sat, Sep 22, 2012 at 12:46:26AM +0800, Shawn Guo wrote:
 I just published the branch below with this series rebased on top of
 the necessary dependant branches.
 
   git://git.linaro.org/people/shawnguo/linux-2.6.git staging/imx-multiplatform
 
 The dependant branches include:
 

Forgot the base:

  * arm-soc/next/multiplatform

Shawn

 * arm-soc/multiplatform/platform-data
 
 * arm-soc/multiplatform/smp_ops
 
 * git://git.kernel.org/pub/scm/linux/kernel/git/broonie/sound.git for-3.7
 
   It contains dependant patch ASoC: mx27vis: retrieve gpio numbers
   from platform_data
 
 * git://git.infradead.org/mtd-2.6.git master
 
   The series is based on this tree to solve some non-trivial conflicts
   on mxc_nand driver.  Because mtd tree completely missed 3.6 merge
   window, having the series base on 3.6-rc actually means 3.5 code base
   in term of mtd support.  There are currently two cycles changes
   accumulated on mtd, and we need to base the series on it to sort out
   the conflicts.
 
 * git://linuxtv.org/mchehab/media-next.git master
 
   The media tree renames mx2/mx3 camera drivers twice.  I'm not sure
   if git merge can detect them, so I just rebased the series on media
   tree to solve that.  The bonus point is that a number of trivial
   conflicts with imx27-coda support on media tree gets solved as well.
 
 I'm not requesting you to pull the branch into arm-soc as a stable
 branch but staging one, because the external dependencies which might
 not be stable.  I attempt to use it for exposing the series on
 linux-next, so that we can send it to Linus for 3.7 if there is chance
 for us to (e.g. all the dependant branches hit mainline early during
 3.7 merge window).
--
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


[PATCH v2 00/34] i.MX multi-platform support

2012-09-20 Thread Shawn Guo
Here is the second post, which should have addressed the comments that
reviewers put on v1.

It's available on branch below.

  git://git.linaro.org/people/shawnguo/linux-2.6.git imx/multi-platform-v2

And it's based on the following branches.

  calxeda/multi-plat
  arm-soc/multiplatform/platform-data
  arm-soc/multiplatform/smp_ops
  arm-soc/imx/cleanup
  arm-soc/imx/dt
  sound/for-3.7

Subsystem maintainers,

I plan to send the whole series for 3.7 via arm-soc tree.  Please let
me know if you have problem with that.  Thanks.

Shawn

---

Shawn Guo (34):
  ARM: imx: include board headers in the same folder
  ARM: imx: move iomux drivers and headers into mach-imx
  ARM: imx: remove unnecessary inclusion from device-imx*.h
  ARM: imx: move platform device code into mach-imx
  ARM: imx: merge plat-mxc into mach-imx
  ARM: imx: include common.h rather than mach/common.h
  ARM: imx: ARM: imx: include cpuidle.h rather than mach/cpuidle.h
  ARM: imx: include iim.h rather than mach/iim.h
  ARM: imx: include iram.h rather than mach/iram.h
  ARM: imx: include ulpi.h rather than mach/ulpi.h
  media: mx1_camera: remove the driver
  ARM: imx: remove mach/dma-mx1-mx2.h
  dma: ipu: rename mach/ipu.h to include/linux/dma/ipu-dma.h
  dma: imx-sdma: remove unneeded mach/hardware.h inclusion
  ASoC: imx-ssi: remove unneeded mach/hardware.h inclusion
  usb: ehci-mxc: remove unneeded mach/hardware.h inclusion
  video: mx3fb: remove unneeded mach/hardware.h inclusion
  watchdog: imx2_wdt: remove unneeded mach/hardware.h inclusion
  i2c: imx: remove cpu_is_xxx by using platform_device_id
  mtd: mxc_nand: remove cpu_is_xxx by using platform_device_id
  rtc: mxc_rtc: remove cpu_is_xxx by using platform_device_id
  dma: imx-dma: use devm_kzalloc and devm_request_irq
  dma: imx-dma: retrieve MEM and IRQ from resources
  dma: imx-dma: remove cpu_is_xxx by using platform_device_id
  media: mx2_camera: remove dead code in mx2_camera_add_device
  media: mx2_camera: use managed functions to clean up code
  media: mx2_camera: remove cpu_is_xxx by using platform_device_id
  mmc: mxcmmc: remove cpu_is_xxx by using platform_device_id
  video: imxfb: remove cpu_is_xxx by using platform_device_id
  ARM: imx: move debug macros to include/debug
  ARM: imx: include hardware.h rather than mach/hardware.h
  ARM: imx: remove header file mach/irqs.h
  ARM: imx: call mxc_device_init() in soc specific function
  ARM: imx: enable multi-platform build

 .../devicetree/bindings/i2c/fsl-imx-i2c.txt|4 +-
 MAINTAINERS|1 -
 arch/arm/Kconfig   |   15 +-
 arch/arm/Kconfig.debug |8 +
 arch/arm/Makefile  |1 -
 arch/arm/boot/dts/imx27.dtsi   |4 +-
 arch/arm/boot/dts/imx51.dtsi   |4 +-
 arch/arm/boot/dts/imx53.dtsi   |6 +-
 arch/arm/boot/dts/imx6q.dtsi   |6 +-
 arch/arm/configs/imx_v4_v5_defconfig   |5 +-
 arch/arm/configs/imx_v6_v7_defconfig   |3 +-
 .../mach/debug-macro.S = include/debug/imx.S} |   33 +-
 arch/arm/{plat-mxc = mach-imx}/3ds_debugboard.c   |2 +-
 .../include/mach = mach-imx}/3ds_debugboard.h |0
 arch/arm/mach-imx/Kconfig  |   89 +-
 arch/arm/mach-imx/Makefile |   23 +-
 arch/arm/{plat-mxc = mach-imx}/avic.c |5 +-
 .../include/mach = mach-imx}/board-mx31lilly.h|0
 .../include/mach = mach-imx}/board-mx31lite.h |0
 .../include/mach = mach-imx}/board-mx31moboard.h  |0
 .../include/mach = mach-imx}/board-pcm038.h   |0
 arch/arm/mach-imx/clk-imx1.c   |   18 +-
 arch/arm/mach-imx/clk-imx21.c  |   18 +-
 arch/arm/mach-imx/clk-imx25.c  |   26 +-
 arch/arm/mach-imx/clk-imx27.c  |   40 +-
 arch/arm/mach-imx/clk-imx31.c  |   21 +-
 arch/arm/mach-imx/clk-imx35.c  |   13 +-
 arch/arm/mach-imx/clk-imx51-imx53.c|   15 +-
 arch/arm/mach-imx/clk-imx6q.c  |3 +-
 arch/arm/mach-imx/clk-pllv1.c  |4 +-
 .../{plat-mxc/include/mach = mach-imx}/common.h   |1 +
 arch/arm/mach-imx/cpu-imx25.c  |5 +-
 arch/arm/mach-imx/cpu-imx27.c  |2 +-
 arch/arm/mach-imx/cpu-imx31.c  |7 +-
 arch/arm/mach-imx/cpu-imx35.c  |5 +-
 arch/arm/mach-imx/cpu-imx5.c   |3 +-
 arch/arm/{plat-mxc = mach-imx}/cpu.c  |3 +-
 arch/arm/mach-imx/cpu_op-mx51.c|3 +-
 arch/arm/{plat-mxc = mach-imx}/cpufreq.c  |3 +-
 arch/arm/{plat-mxc = mach-imx}/cpuidle.c  |0
 .../{plat-mxc/include/mach = mach-imx}/cpuidle.h  |0
 arch/arm/mach-imx/devices-imx1.h

[PATCH v2 11/34] media: mx1_camera: remove the driver

2012-09-20 Thread Shawn Guo
The mx1_camera driver has been broken for a few release cycles since
commit 6bd0812 (dmaengine: imx-dma: merge old dma-v1.c with imx-dma.c).
It seems there is no one even compile tested it since then, as doing
so will end up with the following error.

  CC  drivers/media/video/mx1_camera.o
In file included from drivers/media/video/mx1_camera.c:44:0:
arch/arm/mach-imx/include/mach/dma-mx1-mx2.h:8:25: fatal error: mach/dma-v1.h: 
No such file or directory

It looks that all the related folks have known the breakage [1], but
no one shows the interest to bring it back to work.  Thus it becomes
a piece of unmaintained code, so let's remove it.

[1] https://lkml.org/lkml/2012/2/9/171

Signed-off-by: Shawn Guo shawn@linaro.org
Cc: Paulius Zaleckas paulius.zalec...@teltonika.lt
Cc: Guennadi Liakhovetski g.liakhovet...@gmx.de
Cc: Mauro Carvalho Chehab mche...@redhat.com
Cc: linux-media@vger.kernel.org
---
 arch/arm/mach-imx/Makefile  |3 -
 arch/arm/mach-imx/clk-imx1.c|1 -
 arch/arm/mach-imx/devices/Kconfig   |3 -
 arch/arm/mach-imx/devices/Makefile  |1 -
 arch/arm/mach-imx/devices/devices-common.h  |   10 -
 arch/arm/mach-imx/devices/platform-mx1-camera.c |   42 --
 arch/arm/mach-imx/mx1-camera-fiq-ksym.c |   18 -
 arch/arm/mach-imx/mx1-camera-fiq.S  |   35 -
 drivers/media/video/Kconfig |   12 -
 drivers/media/video/Makefile|1 -
 drivers/media/video/mx1_camera.c|  889 ---
 include/linux/platform_data/camera-mx1.h|   35 -
 12 files changed, 1050 deletions(-)
 delete mode 100644 arch/arm/mach-imx/devices/platform-mx1-camera.c
 delete mode 100644 arch/arm/mach-imx/mx1-camera-fiq-ksym.c
 delete mode 100644 arch/arm/mach-imx/mx1-camera-fiq.S
 delete mode 100644 drivers/media/video/mx1_camera.c
 delete mode 100644 include/linux/platform_data/camera-mx1.h

diff --git a/arch/arm/mach-imx/Makefile b/arch/arm/mach-imx/Makefile
index fe47b71..538d0ee 100644
--- a/arch/arm/mach-imx/Makefile
+++ b/arch/arm/mach-imx/Makefile
@@ -35,9 +35,6 @@ obj-y += ssi-fiq.o
 obj-y += ssi-fiq-ksym.o
 endif
 
-# Support for CMOS sensor interface
-obj-$(CONFIG_MX1_VIDEO) += mx1-camera-fiq.o mx1-camera-fiq-ksym.o
-
 # i.MX1 based machines
 obj-$(CONFIG_ARCH_MX1ADS) += mach-mx1ads.o
 obj-$(CONFIG_MACH_SCB9328) += mach-scb9328.o
diff --git a/arch/arm/mach-imx/clk-imx1.c b/arch/arm/mach-imx/clk-imx1.c
index b5f90cc..ebfffd2 100644
--- a/arch/arm/mach-imx/clk-imx1.c
+++ b/arch/arm/mach-imx/clk-imx1.c
@@ -84,7 +84,6 @@ int __init mx1_clocks_init(unsigned long fref)
i, PTR_ERR(clk[i]));
 
clk_register_clkdev(clk[dma_gate], ahb, imx-dma);
-   clk_register_clkdev(clk[csi_gate], NULL, mx1-camera.0);
clk_register_clkdev(clk[mma_gate], mma, NULL);
clk_register_clkdev(clk[usbd_gate], NULL, imx_udc.0);
clk_register_clkdev(clk[per1], per, imx-gpt.0);
diff --git a/arch/arm/mach-imx/devices/Kconfig 
b/arch/arm/mach-imx/devices/Kconfig
index cb3e3ee..09d796e 100644
--- a/arch/arm/mach-imx/devices/Kconfig
+++ b/arch/arm/mach-imx/devices/Kconfig
@@ -46,9 +46,6 @@ config IMX_HAVE_PLATFORM_IMX_UDC
 config IMX_HAVE_PLATFORM_IPU_CORE
bool
 
-config IMX_HAVE_PLATFORM_MX1_CAMERA
-   bool
-
 config IMX_HAVE_PLATFORM_MX2_CAMERA
bool
 
diff --git a/arch/arm/mach-imx/devices/Makefile 
b/arch/arm/mach-imx/devices/Makefile
index ff22ed1..3cfdc37 100644
--- a/arch/arm/mach-imx/devices/Makefile
+++ b/arch/arm/mach-imx/devices/Makefile
@@ -17,7 +17,6 @@ obj-$(CONFIG_IMX_HAVE_PLATFORM_IMX_SSI) += platform-imx-ssi.o
 obj-$(CONFIG_IMX_HAVE_PLATFORM_IMX_UART) += platform-imx-uart.o
 obj-$(CONFIG_IMX_HAVE_PLATFORM_IMX_UDC) += platform-imx_udc.o
 obj-$(CONFIG_IMX_HAVE_PLATFORM_IPU_CORE) += platform-ipu-core.o
-obj-$(CONFIG_IMX_HAVE_PLATFORM_MX1_CAMERA) += platform-mx1-camera.o
 obj-$(CONFIG_IMX_HAVE_PLATFORM_MX2_CAMERA) += platform-mx2-camera.o
 obj-$(CONFIG_IMX_HAVE_PLATFORM_MXC_EHCI) += platform-mxc-ehci.o
 obj-$(CONFIG_IMX_HAVE_PLATFORM_MXC_MMC) += platform-mxc-mmc.o
diff --git a/arch/arm/mach-imx/devices/devices-common.h 
b/arch/arm/mach-imx/devices/devices-common.h
index 9e3e3d8..34419b2 100644
--- a/arch/arm/mach-imx/devices/devices-common.h
+++ b/arch/arm/mach-imx/devices/devices-common.h
@@ -199,16 +199,6 @@ struct platform_device *__init imx_add_mx3_sdc_fb(
const struct imx_ipu_core_data *data,
struct mx3fb_platform_data *pdata);
 
-#include linux/platform_data/camera-mx1.h
-struct imx_mx1_camera_data {
-   resource_size_t iobase;
-   resource_size_t iosize;
-   resource_size_t irq;
-};
-struct platform_device *__init imx_add_mx1_camera(
-   const struct imx_mx1_camera_data *data,
-   const struct mx1_camera_pdata *pdata);
-
 #include linux/platform_data/camera-mx2.h
 struct imx_mx2_camera_data {
resource_size_t

[PATCH v2 13/34] dma: ipu: rename mach/ipu.h to include/linux/dma/ipu-dma.h

2012-09-20 Thread Shawn Guo
The header ipu.h really belongs to dma subsystem rather than imx
platform.  Rename it to ipu-dma.h and put it into include/linux/dma/.

Signed-off-by: Shawn Guo shawn@linaro.org
Acked-by: Guennadi Liakhovetski g.liakhovet...@gmx.de
Acked-by: Sascha Hauer s.ha...@pengutronix.de
Acked-by: Arnd Bergmann a...@arndb.de
Cc: Vinod Koul vinod.k...@intel.com
Cc: Florian Tobias Schandinat florianschandi...@gmx.de
Cc: linux-media@vger.kernel.org
Cc: linux-fb...@vger.kernel.org
---
 drivers/dma/ipu/ipu_idmac.c|3 +--
 drivers/dma/ipu/ipu_irq.c  |3 +--
 drivers/media/video/mx3_camera.c   |2 +-
 drivers/video/mx3fb.c  |2 +-
 .../mach/ipu.h = include/linux/dma/ipu-dma.h  |6 +++---
 5 files changed, 7 insertions(+), 9 deletions(-)
 rename arch/arm/mach-imx/include/mach/ipu.h = include/linux/dma/ipu-dma.h 
(97%)

diff --git a/drivers/dma/ipu/ipu_idmac.c b/drivers/dma/ipu/ipu_idmac.c
index c7573e5..6585537 100644
--- a/drivers/dma/ipu/ipu_idmac.c
+++ b/drivers/dma/ipu/ipu_idmac.c
@@ -22,8 +22,7 @@
 #include linux/interrupt.h
 #include linux/io.h
 #include linux/module.h
-
-#include mach/ipu.h
+#include linux/dma/ipu-dma.h
 
 #include ../dmaengine.h
 #include ipu_intern.h
diff --git a/drivers/dma/ipu/ipu_irq.c b/drivers/dma/ipu/ipu_irq.c
index fa95bcc..a5ee37d 100644
--- a/drivers/dma/ipu/ipu_irq.c
+++ b/drivers/dma/ipu/ipu_irq.c
@@ -15,8 +15,7 @@
 #include linux/irq.h
 #include linux/io.h
 #include linux/module.h
-
-#include mach/ipu.h
+#include linux/dma/ipu-dma.h
 
 #include ipu_intern.h
 
diff --git a/drivers/media/video/mx3_camera.c b/drivers/media/video/mx3_camera.c
index 1481b0d..892cba5 100644
--- a/drivers/media/video/mx3_camera.c
+++ b/drivers/media/video/mx3_camera.c
@@ -17,6 +17,7 @@
 #include linux/vmalloc.h
 #include linux/interrupt.h
 #include linux/sched.h
+#include linux/dma/ipu-dma.h
 
 #include media/v4l2-common.h
 #include media/v4l2-dev.h
@@ -24,7 +25,6 @@
 #include media/soc_camera.h
 #include media/soc_mediabus.h
 
-#include mach/ipu.h
 #include linux/platform_data/camera-mx3.h
 #include linux/platform_data/dma-imx.h
 
diff --git a/drivers/video/mx3fb.c b/drivers/video/mx3fb.c
index d738108..3b63ad8 100644
--- a/drivers/video/mx3fb.c
+++ b/drivers/video/mx3fb.c
@@ -26,10 +26,10 @@
 #include linux/console.h
 #include linux/clk.h
 #include linux/mutex.h
+#include linux/dma/ipu-dma.h
 
 #include linux/platform_data/dma-imx.h
 #include mach/hardware.h
-#include mach/ipu.h
 #include linux/platform_data/video-mx3fb.h
 
 #include asm/io.h
diff --git a/arch/arm/mach-imx/include/mach/ipu.h b/include/linux/dma/ipu-dma.h
similarity index 97%
rename from arch/arm/mach-imx/include/mach/ipu.h
rename to include/linux/dma/ipu-dma.h
index 539e559..1803111 100644
--- a/arch/arm/mach-imx/include/mach/ipu.h
+++ b/include/linux/dma/ipu-dma.h
@@ -9,8 +9,8 @@
  * published by the Free Software Foundation.
  */
 
-#ifndef _IPU_H_
-#define _IPU_H_
+#ifndef __LINUX_DMA_IPU_DMA_H
+#define __LINUX_DMA_IPU_DMA_H
 
 #include linux/types.h
 #include linux/dmaengine.h
@@ -174,4 +174,4 @@ struct idmac_channel {
 #define to_tx_desc(tx) container_of(tx, struct idmac_tx_desc, txd)
 #define to_idmac_chan(c) container_of(c, struct idmac_channel, dma_chan)
 
-#endif
+#endif /* __LINUX_DMA_IPU_DMA_H */
-- 
1.7.9.5

--
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


[PATCH v2 25/34] media: mx2_camera: remove dead code in mx2_camera_add_device

2012-09-20 Thread Shawn Guo
This is a piece of code becoming dead since commit 2c9ba37 ([media]
V4L: mx2_camera: remove unsupported i.MX27 DMA mode, make EMMA
mandatory).  It should have been removed together with the commit.
Remove it now.

Signed-off-by: Shawn Guo shawn@linaro.org
Acked-by: Sascha Hauer s.ha...@pengutronix.de
Acked-by: Arnd Bergmann a...@arndb.de
Acked-by: Guennadi Liakhovetski g.liakhovet...@gmx.de
Acked-by: Javier Martin javier.mar...@vista-silicon.com
Cc: linux-media@vger.kernel.org
---
 drivers/media/video/mx2_camera.c |4 +---
 1 file changed, 1 insertion(+), 3 deletions(-)

diff --git a/drivers/media/video/mx2_camera.c b/drivers/media/video/mx2_camera.c
index 965427f..89c7e28 100644
--- a/drivers/media/video/mx2_camera.c
+++ b/drivers/media/video/mx2_camera.c
@@ -441,11 +441,9 @@ static int mx2_camera_add_device(struct soc_camera_device 
*icd)
 
csicr1 = CSICR1_MCLKEN;
 
-   if (cpu_is_mx27()) {
+   if (cpu_is_mx27())
csicr1 |= CSICR1_PRP_IF_EN | CSICR1_FCC |
CSICR1_RXFF_LEVEL(0);
-   } else if (cpu_is_mx27())
-   csicr1 |= CSICR1_SOF_INTEN | CSICR1_RXFF_LEVEL(2);
 
pcdev-csicr1 = csicr1;
writel(pcdev-csicr1, pcdev-base_csi + CSICR1);
-- 
1.7.9.5

--
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


[PATCH v2 26/34] media: mx2_camera: use managed functions to clean up code

2012-09-20 Thread Shawn Guo
Use managed functions to clean up the error handling code and function
mx2_camera_remove().  Along with the change, a few variables get removed
from struct mx2_camera_dev.

Signed-off-by: Shawn Guo shawn@linaro.org
Acked-by: Sascha Hauer s.ha...@pengutronix.de
Acked-by: Arnd Bergmann a...@arndb.de
Acked-by: Guennadi Liakhovetski g.liakhovet...@gmx.de
Tested-by: Javier Martin javier.mar...@vista-silicon.com
Cc: linux-media@vger.kernel.org
---
 drivers/media/video/mx2_camera.c |  149 --
 1 file changed, 45 insertions(+), 104 deletions(-)

diff --git a/drivers/media/video/mx2_camera.c b/drivers/media/video/mx2_camera.c
index 89c7e28..9bb9e8c 100644
--- a/drivers/media/video/mx2_camera.c
+++ b/drivers/media/video/mx2_camera.c
@@ -274,12 +274,9 @@ struct mx2_camera_dev {
struct soc_camera_device *icd;
struct clk  *clk_csi, *clk_emma_ahb, *clk_emma_ipg;
 
-   unsigned intirq_csi, irq_emma;
void __iomem*base_csi, *base_emma;
-   unsigned long   base_dma;
 
struct mx2_camera_platform_data *pdata;
-   struct resource *res_csi, *res_emma;
unsigned long   platform_flags;
 
struct list_headcapture;
@@ -1607,64 +1604,59 @@ static irqreturn_t mx27_camera_emma_irq(int irq_emma, 
void *data)
return IRQ_HANDLED;
 }
 
-static int __devinit mx27_camera_emma_init(struct mx2_camera_dev *pcdev)
+static int __devinit mx27_camera_emma_init(struct platform_device *pdev)
 {
-   struct resource *res_emma = pcdev-res_emma;
+   struct mx2_camera_dev *pcdev = platform_get_drvdata(pdev);
+   struct resource *res_emma;
+   int irq_emma;
int err = 0;
 
-   if (!request_mem_region(res_emma-start, resource_size(res_emma),
-   MX2_CAM_DRV_NAME)) {
-   err = -EBUSY;
+   res_emma = platform_get_resource(pdev, IORESOURCE_MEM, 1);
+   irq_emma = platform_get_irq(pdev, 1);
+   if (!res_emma || !irq_emma) {
+   dev_err(pcdev-dev, no EMMA resources\n);
goto out;
}
 
-   pcdev-base_emma = ioremap(res_emma-start, resource_size(res_emma));
+   pcdev-base_emma = devm_request_and_ioremap(pcdev-dev, res_emma);
if (!pcdev-base_emma) {
-   err = -ENOMEM;
-   goto exit_release;
+   err = -EADDRNOTAVAIL;
+   goto out;
}
 
-   err = request_irq(pcdev-irq_emma, mx27_camera_emma_irq, 0,
-   MX2_CAM_DRV_NAME, pcdev);
+   err = devm_request_irq(pcdev-dev, irq_emma, mx27_camera_emma_irq, 0,
+  MX2_CAM_DRV_NAME, pcdev);
if (err) {
dev_err(pcdev-dev, Camera EMMA interrupt register failed \n);
-   goto exit_iounmap;
+   goto out;
}
 
-   pcdev-clk_emma_ipg = clk_get(pcdev-dev, emma-ipg);
+   pcdev-clk_emma_ipg = devm_clk_get(pcdev-dev, emma-ipg);
if (IS_ERR(pcdev-clk_emma_ipg)) {
err = PTR_ERR(pcdev-clk_emma_ipg);
-   goto exit_free_irq;
+   goto out;
}
 
clk_prepare_enable(pcdev-clk_emma_ipg);
 
-   pcdev-clk_emma_ahb = clk_get(pcdev-dev, emma-ahb);
+   pcdev-clk_emma_ahb = devm_clk_get(pcdev-dev, emma-ahb);
if (IS_ERR(pcdev-clk_emma_ahb)) {
err = PTR_ERR(pcdev-clk_emma_ahb);
-   goto exit_clk_emma_ipg_put;
+   goto exit_clk_emma_ipg;
}
 
clk_prepare_enable(pcdev-clk_emma_ahb);
 
err = mx27_camera_emma_prp_reset(pcdev);
if (err)
-   goto exit_clk_emma_ahb_put;
+   goto exit_clk_emma_ahb;
 
return err;
 
-exit_clk_emma_ahb_put:
+exit_clk_emma_ahb:
clk_disable_unprepare(pcdev-clk_emma_ahb);
-   clk_put(pcdev-clk_emma_ahb);
-exit_clk_emma_ipg_put:
+exit_clk_emma_ipg:
clk_disable_unprepare(pcdev-clk_emma_ipg);
-   clk_put(pcdev-clk_emma_ipg);
-exit_free_irq:
-   free_irq(pcdev-irq_emma, pcdev);
-exit_iounmap:
-   iounmap(pcdev-base_emma);
-exit_release:
-   release_mem_region(res_emma-start, resource_size(res_emma));
 out:
return err;
 }
@@ -1672,9 +1664,8 @@ out:
 static int __devinit mx2_camera_probe(struct platform_device *pdev)
 {
struct mx2_camera_dev *pcdev;
-   struct resource *res_csi, *res_emma;
-   void __iomem *base_csi;
-   int irq_csi, irq_emma;
+   struct resource *res_csi;
+   int irq_csi;
int err = 0;
 
dev_dbg(pdev-dev, initialising\n);
@@ -1687,21 +1678,20 @@ static int __devinit mx2_camera_probe(struct 
platform_device *pdev)
goto exit;
}
 
-   pcdev = kzalloc(sizeof(*pcdev), GFP_KERNEL);
+   pcdev = devm_kzalloc(pdev-dev, sizeof(*pcdev), GFP_KERNEL);
if (!pcdev) {
dev_err(pdev-dev, Could not allocate pcdev\n);
err = -ENOMEM

[PATCH v2 27/34] media: mx2_camera: remove cpu_is_xxx by using platform_device_id

2012-09-20 Thread Shawn Guo
It changes the driver to use platform_device_id rather than cpu_is_xxx
to determine the controller type, and updates the platform code
accordingly.

As the result, mach/hardware.h inclusion gets removed from the driver.

Signed-off-by: Shawn Guo shawn@linaro.org
Acked-by: Sascha Hauer s.ha...@pengutronix.de
Acked-by: Arnd Bergmann a...@arndb.de
Acked-by: Guennadi Liakhovetski g.liakhovet...@gmx.de
Tested-by: Javier Martin javier.mar...@vista-silicon.com
Cc: linux-media@vger.kernel.org
---
 arch/arm/mach-imx/clk-imx25.c   |6 +-
 arch/arm/mach-imx/clk-imx27.c   |6 +-
 arch/arm/mach-imx/devices/devices-common.h  |1 +
 arch/arm/mach-imx/devices/platform-mx2-camera.c |   12 +--
 drivers/media/video/mx2_camera.c|   95 +--
 5 files changed, 85 insertions(+), 35 deletions(-)

diff --git a/arch/arm/mach-imx/clk-imx25.c b/arch/arm/mach-imx/clk-imx25.c
index 1aea073..71fe521 100644
--- a/arch/arm/mach-imx/clk-imx25.c
+++ b/arch/arm/mach-imx/clk-imx25.c
@@ -231,9 +231,9 @@ int __init mx25_clocks_init(void)
clk_register_clkdev(clk[esdhc2_ipg_per], per, sdhci-esdhc-imx25.1);
clk_register_clkdev(clk[esdhc2_ipg], ipg, sdhci-esdhc-imx25.1);
clk_register_clkdev(clk[esdhc2_ahb], ahb, sdhci-esdhc-imx25.1);
-   clk_register_clkdev(clk[csi_ipg_per], per, mx2-camera.0);
-   clk_register_clkdev(clk[csi_ipg], ipg, mx2-camera.0);
-   clk_register_clkdev(clk[csi_ahb], ahb, mx2-camera.0);
+   clk_register_clkdev(clk[csi_ipg_per], per, imx25-camera.0);
+   clk_register_clkdev(clk[csi_ipg], ipg, imx25-camera.0);
+   clk_register_clkdev(clk[csi_ahb], ahb, imx25-camera.0);
clk_register_clkdev(clk[dummy], audmux, NULL);
clk_register_clkdev(clk[can1_ipg], NULL, flexcan.0);
clk_register_clkdev(clk[can2_ipg], NULL, flexcan.1);
diff --git a/arch/arm/mach-imx/clk-imx27.c b/arch/arm/mach-imx/clk-imx27.c
index 82cb785..f4ec05e 100644
--- a/arch/arm/mach-imx/clk-imx27.c
+++ b/arch/arm/mach-imx/clk-imx27.c
@@ -224,7 +224,7 @@ int __init mx27_clocks_init(unsigned long fref)
clk_register_clkdev(clk[per3_gate], per, imx-fb.0);
clk_register_clkdev(clk[lcdc_ipg_gate], ipg, imx-fb.0);
clk_register_clkdev(clk[lcdc_ahb_gate], ahb, imx-fb.0);
-   clk_register_clkdev(clk[csi_ahb_gate], ahb, mx2-camera.0);
+   clk_register_clkdev(clk[csi_ahb_gate], ahb, imx27-camera.0);
clk_register_clkdev(clk[usb_div], per, fsl-usb2-udc);
clk_register_clkdev(clk[usb_ipg_gate], ipg, fsl-usb2-udc);
clk_register_clkdev(clk[usb_ahb_gate], ahb, fsl-usb2-udc);
@@ -251,8 +251,8 @@ int __init mx27_clocks_init(unsigned long fref)
clk_register_clkdev(clk[i2c2_ipg_gate], NULL, imx21-i2c.1);
clk_register_clkdev(clk[owire_ipg_gate], NULL, mxc_w1.0);
clk_register_clkdev(clk[kpp_ipg_gate], NULL, imx-keypad);
-   clk_register_clkdev(clk[emma_ahb_gate], emma-ahb, mx2-camera.0);
-   clk_register_clkdev(clk[emma_ipg_gate], emma-ipg, mx2-camera.0);
+   clk_register_clkdev(clk[emma_ahb_gate], emma-ahb, imx27-camera.0);
+   clk_register_clkdev(clk[emma_ipg_gate], emma-ipg, imx27-camera.0);
clk_register_clkdev(clk[emma_ahb_gate], ahb, m2m-emmaprp.0);
clk_register_clkdev(clk[emma_ipg_gate], ipg, m2m-emmaprp.0);
clk_register_clkdev(clk[iim_ipg_gate], iim, NULL);
diff --git a/arch/arm/mach-imx/devices/devices-common.h 
b/arch/arm/mach-imx/devices/devices-common.h
index 7f2698c..8112a1a 100644
--- a/arch/arm/mach-imx/devices/devices-common.h
+++ b/arch/arm/mach-imx/devices/devices-common.h
@@ -202,6 +202,7 @@ struct platform_device *__init imx_add_mx3_sdc_fb(
 
 #include linux/platform_data/camera-mx2.h
 struct imx_mx2_camera_data {
+   const char *devid;
resource_size_t iobasecsi;
resource_size_t iosizecsi;
resource_size_t irqcsi;
diff --git a/arch/arm/mach-imx/devices/platform-mx2-camera.c 
b/arch/arm/mach-imx/devices/platform-mx2-camera.c
index 9ad5b2d..b88877d 100644
--- a/arch/arm/mach-imx/devices/platform-mx2-camera.c
+++ b/arch/arm/mach-imx/devices/platform-mx2-camera.c
@@ -9,14 +9,16 @@
 #include mach/hardware.h
 #include devices-common.h
 
-#define imx_mx2_camera_data_entry_single(soc)  \
+#define imx_mx2_camera_data_entry_single(soc, _devid)  \
{   \
+   .devid = _devid,\
.iobasecsi = soc ## _CSI_BASE_ADDR, \
.iosizecsi = SZ_4K, \
.irqcsi = soc ## _INT_CSI,  \
}
-#define imx_mx2_camera_data_entry_single_emma(soc) \
+#define imx_mx2_camera_data_entry_single_emma(soc, _devid

Re: [PATCH v2 00/34] i.MX multi-platform support

2012-09-20 Thread Shawn Guo
On Thu, Sep 20, 2012 at 07:41:50AM -0400, Mark Brown wrote:
 It's usually pretty early but Takashi will be on holiday this time so
 I'm not sure if things might be different (he was going to send the pull
 request from holiday).  I also didn't guarantee that it'll be stable
 yet, can someone please tell me what the depenency is here?

We need the patch to have all imx drivers mach/* inclusion free,
so that we can enable multi-platform support for imx, which is the
whole point of the series.

If your for-3.7 is not stable anyway, I guess the easiest the way
to do it might be you drop the patch ASoC: mx27vis: retrieve gpio
numbers from platform_data from your tree and I have it be part of
the series to go via arm-soc tree as a whole.  (This is the original
plan that I mentioned in v1 cover letter)

Shawn
--
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 v2 00/34] i.MX multi-platform support

2012-09-20 Thread Shawn Guo
On Thu, Sep 20, 2012 at 08:47:10AM -0400, Mark Brown wrote:
 On Thu, Sep 20, 2012 at 07:52:15PM +0800, Shawn Guo wrote:
  On Thu, Sep 20, 2012 at 07:41:50AM -0400, Mark Brown wrote:
 
   It's usually pretty early but Takashi will be on holiday this time so
   I'm not sure if things might be different (he was going to send the pull
   request from holiday).  I also didn't guarantee that it'll be stable
   yet, can someone please tell me what the depenency is here?
 
  We need the patch to have all imx drivers mach/* inclusion free,
  so that we can enable multi-platform support for imx, which is the
  whole point of the series.
 
 That doesn't answer the question.  What is the dependency - what is it
 about this patch that something else depends on?  Your cover letters
 just say you'd like to do this but don't mention dependencies at all and
 when I asked the question last night you said the same thing.  I've not
 seen the rest of the series...
 
Ah, right.  You did get copied on the whole series.  So the whole point
of patch ASoC: mx27vis: retrieve gpio numbers from platform_data is
to get rid of inclusion mach/iomux-mx27.h.  This has to be done before
we enable multi-platform support for imx, since mach/* has to be removed
completely for multi-platform build.

  If your for-3.7 is not stable anyway, I guess the easiest the way
 
 It probably *is* stable but I'm not enthused about people pulling
 unsigned tags.  I might rebase, though - I'm going to finalise the tree
 in the next few days.
 
  to do it might be you drop the patch ASoC: mx27vis: retrieve gpio
  numbers from platform_data from your tree and I have it be part of
  the series to go via arm-soc tree as a whole.  (This is the original
  plan that I mentioned in v1 cover letter)
 
 You just mentioned it as a preference (you said it's something you'd
 like to do), please if you're doing this sort of cross tree thing be
 explicit about what the inter-tree relationships are.  If things need to
 go in via the same tree say so explicitly (and ideally say way this is).
 
Ok, my bad.

 The main reason I applied it straight away was that Javier mentioned
 that it was a bug fix and it's near the merge window and these random
 ARM cleanup serieses never seem to go in quickly.

The series is planned for 3.7 merge window.  Is it still possible for
you to drop the patch from your tree to ease the process?  Or I will
hold my pull-request to arm-soc until you tell me you have your tree
finalized.

Shawn
--
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 v2 11/34] media: mx1_camera: remove the driver

2012-09-20 Thread Shawn Guo
On Thu, Sep 20, 2012 at 09:56:34AM -0300, Mauro Carvalho Chehab wrote:
 It is better to mark it as BROKEN for the next Kernel, and then to
 move it to staging, before dropping a broken driver. That gives people
 some time to fix it, if someone has interests on fixing the issues.
 
Ok.  The driver has already been broken, and the patch marking it BROKEN
does not necessarily need to be in this series.  I will drop the patch
from this series and send a separate patch based on media tree for that.

   drivers/media/video/Kconfig |   12 -
   drivers/media/video/Makefile|1 -
   drivers/media/video/mx1_camera.c|  889 
  ---
 
 Btw, this conflicts with the tree renaming patches already at -staging, as
 this driver location is elsewhere.
 
mx1_camera.c is not a concern any more.  However the series touches
mx2_camera.c and mx3_camera.c as well.  I just tested to merge the
series with linux-next.  Strangely, git does not detect the renaming
for automatically merging changes.

Do you have a stable branch for media patches that I can pull as
dependency?

Shawn
--
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 v2 00/34] i.MX multi-platform support

2012-09-20 Thread Shawn Guo
On Thu, Sep 20, 2012 at 07:39:34AM +, Arnd Bergmann wrote:
 The first five branches are scheduled to go through the arm-soc tree, so
 I'm fine with that. For the sound/for-3.7 branch, I'd like to know when
 to expect that hitting mainline. If it always gets in very early during the
 merge window, it's probably ok to put the imx/multi-platform patches into
 the same branch as the other ones in arm-soc and wait for the sound stuff
 to hit mainline first, otherwise I'd suggest we start a second
 next/multiplatform-2 branch for imx and send the first part early on
 but then wait with the second batch before sound gets in.
 
It seems that we will have to go with next/multiplatform-2.  I just
tried to merge the series with linux-next together, and got some
non-trivial conflicts with media and mtd tree.  I might have to rebase
my series on top of these trees to sort out those conflicts.  That said,
I will have several dependencies outside arm-soc tree, and have to pend
my series until all those trees get merged into mainline.

Shawn
--
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


[PATCH] media: mx1_camera: mark the driver BROKEN

2012-09-20 Thread Shawn Guo
The mx1_camera driver has been broken for a few release cycles since
commit 6bd0812 (dmaengine: imx-dma: merge old dma-v1.c with imx-dma.c).
It seems there is no one even compile tested it since then, as doing
so will end up with the following error.

  CC  drivers/media/platform/soc_camera/mx1_camera.o
In file included from drivers/media/platform/soc_camera/mx1_camera.c:44:0:
arch/arm/mach-imx/include/mach/dma-mx1-mx2.h:8:25: fatal error: mach/dma-v1.h: 
No such file or directory

It seems there is no one being interested in bringing it back to
work [1] so far.  Let's mark it BROKEN.

[1] https://lkml.org/lkml/2012/2/9/171

Signed-off-by: Shawn Guo shawn@linaro.org
---
 drivers/media/platform/soc_camera/Kconfig |1 +
 1 file changed, 1 insertion(+)

diff --git a/drivers/media/platform/soc_camera/Kconfig 
b/drivers/media/platform/soc_camera/Kconfig
index 9afe1e7..cb6791e 100644
--- a/drivers/media/platform/soc_camera/Kconfig
+++ b/drivers/media/platform/soc_camera/Kconfig
@@ -19,6 +19,7 @@ config MX1_VIDEO
 
 config VIDEO_MX1
tristate i.MX1/i.MXL CMOS Sensor Interface driver
+   depends on BROKEN
depends on VIDEO_DEV  ARCH_MX1  SOC_CAMERA
select FIQ
select VIDEOBUF_DMA_CONTIG
-- 
1.7.9.5

--
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 12/34] media: mx1_camera: remove the driver

2012-09-19 Thread Shawn Guo
On Tue, Sep 18, 2012 at 09:13:54AM +, Arnd Bergmann wrote:
 On Tuesday 18 September 2012, Shawn Guo wrote:
  
  On Mon, Sep 17, 2012 at 10:33:25AM +0200, Guennadi Liakhovetski wrote:
   Ok, it used to compile not-so-long-ago, but it doesn't seem to be cared 
   for a lot lately. Let's give Paulius a bit more time to react to this 
   mail, otherwise I'll have no objections. Just as an idea, to make it a 
   bit 
   milder we could first mark it BROKEN and add to remove schedule... But I 
   don't mind either way.
   
  I chose to remove the driver completely rather than marking it BROKEN
  because the removal of the driver cleans up platform code a lot :)
  
  Ok, if we hear anything back from Paulius in the next couple of weeks,
  I keep the driver there with BROKEN marked.
 
 Sounds fine to me. Of course, if someone wants the driver back and is
 willing to fix it, we'll just revert this patch even after the driver
 is gone.
 
 I would like an Ack from Mauro however. You did not Cc him directly
 in the patch, and he probably has an opionion on it as well, or may
 want to take this patch through his git tree.
 
I've seen Guennadi is collecting camera patches and sending them to
Mauro recently.  So I think Guennadi is someone that Mauro trusts.
But yes, we should copy him directly to see if he has an opionion on
this driver removal.

Shawn
--
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 27/34] media: mx2_camera: use managed functions to clean up code

2012-09-18 Thread Shawn Guo
On Mon, Sep 17, 2012 at 03:36:07PM +0200, javier Martin wrote:
 This patch breaks the driver:
 
Javier,

Can you please apply the following change to see if it fixes the
problem?

Shawn

@@ -1783,6 +1783,8 @@ static int __devinit mx2_camera_probe(struct 
platform_device *pdev)
goto exit;
}

+   platform_set_drvdata(pdev, NULL);
+
pcdev-soc_host.drv_name= MX2_CAM_DRV_NAME,
pcdev-soc_host.ops = mx2_soc_camera_host_ops,
pcdev-soc_host.priv= pcdev;

 soc-camera-pdrv soc-camera-pdrv.0: Probing soc-camera-pdrv.0
 Unable to handle kernel paging request at virtual address 656d6162
 pgd = c0004000
 [656d6162] *pgd=
 Internal error: Oops: 8005 [#1] PREEMPT ARM
 Modules linked in:
 CPU: 0Not tainted  (3.6.0-rc5-01222-g3413fb1 #12)
 PC is at 0x656d6162
 LR is at soc_camera_host_register+0x230/0x81c
 pc : [656d6162]lr : [c01ff6a0]psr: 4033
 sp : c3025e48  ip :   fp : 
 r10: c03f236c  r9 :   r8 : 0001
 r7 :   r6 : c317d414  r5 : c30431a0  r4 : c317d600
 r3 : 656d6163  r2 : c3025e18  r1 : 000c  r0 : c317d600
 Flags: nZcv  IRQs on  FIQs on  Mode SVC_32  ISA Thumb  Segment kernel
 Control: 0005317f  Table: a0004000  DAC: 0017
 Process swapper (pid: 1, stack limit = 0xc3024270)
 Stack: (0xc3025e48 to 0xc3026000)
 5e40:   c3006460  c3192960 0043 c317d638 c005d624
 5e60: 0043 c317d410 c317d478 c317d414 c02012f0 c317d410  0043
 5e80: c31a9800 c31a9820  c022ca74 c300ab20  c306e4a8 c306e4a0
 5ea0: c3c0 4013 80d0 c317d410 c317d410 c306e4a8 c306e4a0 0001
 5ec0:  c03f236c  c02c8d50  c03535ee c317d410 c02c8a44
 5ee0: c306e4a8 c306e4a8 c03fc478 c03fc478 0050 c03e0774 c03dc684 c0189d30
 5f00: c306e4a8 c0188c3c c306e4a8 c306e4dc c03fc478  0050 c0188db8
 5f20: c03fc478 c3025f30 c0188d58 c0187610 c300760c c3079ad0 c03fc478 c03fc478
 5f40: c318e680 c03f6458  c0187d24 c03535ee c03535ee c3025f58 c03fc478
 5f60: 0001 c04049c0  c01892c8 c03fc464 0001 c04049c0 
 5f80: 0050 c018a05c c03dc67c c03d4e84 c04049c0 c00087c8 0006 0006
 5fa0: c03eeca0 c03dc67c 0007 c03dc67c 0007 c04049c0 c03c41a4 0050
 5fc0: c03e0774 c03c42f4 0006 0006 c03c41a4   c03c4214
 5fe0: c0014900 0013    c0014900  
 [c01ff6a0] (soc_camera_host_register+0x230/0x81c) from [c02c8d50]
 (mx2_camera_probe+0x30c/0x3ac)
 [c02c8d50] (mx2_camera_probe+0x30c/0x3ac) from [c0189d30]
 (platform_drv_probe+0x14/0x18)
 [c0189d30] (platform_drv_probe+0x14/0x18) from [c0188c3c]
 (driver_probe_device+0xb0/0x1cc)
 [c0188c3c] (driver_probe_device+0xb0/0x1cc) from [c0188db8]
 (__driver_attach+0x60/0x84)
 [c0188db8] (__driver_attach+0x60/0x84) from [c0187610]
 (bus_for_each_dev+0x48/0x84)
 [c0187610] (bus_for_each_dev+0x48/0x84) from [c0187d24]
 (bus_add_driver+0x9c/0x20c)
 [c0187d24] (bus_add_driver+0x9c/0x20c) from [c01892c8]
 (driver_register+0xa0/0x138)
 [c01892c8] (driver_register+0xa0/0x138) from [c018a05c]
 (platform_driver_probe+0x18/0x98)
 [c018a05c] (platform_driver_probe+0x18/0x98) from [c00087c8]
 (do_one_initcall+0x94/0x16c)
 [c00087c8] (do_one_initcall+0x94/0x16c) from [c03c42f4]
 (kernel_init+0xe0/0x1ac)
 [c03c42f4] (kernel_init+0xe0/0x1ac) from [c0014900]
 (kernel_thread_exit+0x0/0x8)
 Code: bad PC value
 ---[ end trace 7f259a1ce2e10b1a ]---
 Kernel panic - not syncing: Attempted to kill init! exitcode=0x000b
 
--
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: [alsa-devel] [PATCH 00/34] i.MX multi-platform support

2012-09-18 Thread Shawn Guo
On Tue, Sep 18, 2012 at 09:52:13AM +0200, Sascha Hauer wrote:
 I just had a look at the remaining initcalls in arch-imx. Most of them
 are protected with a cpu_is_*, but this one should be fixed before i.MX
 is enabled for multi platform:
 
 arch/arm/mach-imx/devices/devices.c:48:core_initcall(mxc_device_init);
 
Ah, I missed that.  Thanks for reminding, Sascha.

Shawn
--
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 00/34] i.MX multi-platform support

2012-09-18 Thread Shawn Guo
On Mon, Sep 17, 2012 at 09:51:38AM +0200, Sascha Hauer wrote:
 I gave it a test on i.MX1, i.MX27, i.MX31 and i.MX35. All run fine, but
 the last patch breaks the imx_v4_v5_defconfig: Somehow it now defaults
 to ARMv7 based machines. I haven't looked into it, just reenabled
 ARMv4/ARMv5 and the boards again - works. The config should be updated
 with the last patch.
 
Yes, I will rework the patch with all these and Arnd's comment on the
last patch taken into account.

 I'm fine with the changes to mx2-camera, but Javier should give his ok
 to it, he has worked on it quite a lot recently.
 
 One other issue related to imx-dma, see comment to that patch.
 
 Otherwise:
 
 Acked-by: Sascha Hauer s.ha...@pengutronix.de
 Tested-by: Sascha Hauer s.ha...@pengutronix.de
 
Thanks a lot.

Shawn
--
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 12/34] media: mx1_camera: remove the driver

2012-09-17 Thread Shawn Guo
On Mon, Sep 17, 2012 at 10:33:25AM +0200, Guennadi Liakhovetski wrote:
 Ok, it used to compile not-so-long-ago, but it doesn't seem to be cared 
 for a lot lately. Let's give Paulius a bit more time to react to this 
 mail, otherwise I'll have no objections. Just as an idea, to make it a bit 
 milder we could first mark it BROKEN and add to remove schedule... But I 
 don't mind either way.
 
I chose to remove the driver completely rather than marking it BROKEN
because the removal of the driver cleans up platform code a lot :)

Ok, if we hear anything back from Paulius in the next couple of weeks,
I keep the driver there with BROKEN marked.

Regards,
Shawn
--
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 26/34] media: mx2_camera: remove dead code in mx2_camera_add_device

2012-09-17 Thread Shawn Guo
On Mon, Sep 17, 2012 at 10:18:42AM +0200, Guennadi Liakhovetski wrote:
 Hi Shawn
 
 Thanks for the clean up. Would you like these patches to go via a single 
 tree, presumably, arm-soc? In this case
 
Yes, to save the cross-tree dependency, I would like to have the series
go via arm-soc tree as a whole.

 On Mon, 17 Sep 2012, Shawn Guo wrote:
 
  This is a piece of code becoming dead since commit 2c9ba37 ([media]
  V4L: mx2_camera: remove unsupported i.MX27 DMA mode, make EMMA
  mandatory).  It should have been removed together with the commit.
  Remove it now.
  
  Signed-off-by: Shawn Guo shawn@linaro.org
  Cc: Guennadi Liakhovetski g.liakhovet...@gmx.de
  Cc: linux-media@vger.kernel.org
 
 Acked-by: Guennadi Liakhovetski g.liakhovet...@gmx.de
 
Thanks, Guennadi.

-- 
Regards,
Shawn
--
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


[PATCH 00/34] i.MX multi-platform support

2012-09-16 Thread Shawn Guo
The series enables multi-platform support for imx.  Since the required
frameworks (clk, pwm) and spare_irq have already been adopted on imx,
the series is all about cleaning up mach/* headers.  Along with the
changes, arch/arm/plat-mxc gets merged into arch/arm/mach-imx.

It's based on a bunch of branches (works from others), Rob's initial
multi-platform series, Arnd's platform-data and smp_ops (Marc's) and
imx 3.7 material (Sascha and myself).

It's available on branch below.

  git://git.linaro.org/people/shawnguo/linux-2.6.git imx/multi-platform

It's been tested on imx5 and imx6, and only compile-tested on imx2 and
imx3, so testing on imx2/3 are appreciated.

Subsystem maintainers,

I plan to send the whole series via arm-soc tree at the end of 3.7
merge window when all dependant bits hit mainline.  Please have a
look at the patches you get copied and provide ACKs if the changes
are good.  Thanks.

Shawn Guo (34):
  ARM: imx: include board headers in the same folder
  ASoC: mx27vis: retrieve gpio numbers from platform_data
  ARM: imx: move iomux drivers and headers into mach-imx
  ARM: imx: remove unnecessary inclusion from device-imx*.h
  ARM: imx: move platform device code into mach-imx
  ARM: imx: merge plat-mxc into mach-imx
  ARM: imx: include common.h rather than mach/common.h
  ARM: imx: ARM: imx: include cpuidle.h rather than mach/cpuidle.h
  ARM: imx: include iim.h rather than mach/iim.h
  ARM: imx: include iram.h rather than mach/iram.h
  ARM: imx: include ulpi.h rather than mach/ulpi.h
  media: mx1_camera: remove the driver
  ARM: imx: remove mach/dma-mx1-mx2.h
  dma: ipu: rename mach/ipu.h to include/linux/dma/ipu-dma.h
  dma: imx-sdma: remove unneeded mach/hardware.h inclusion
  ASoC: imx-ssi: remove unneeded mach/hardware.h inclusion
  usb: ehci-mxc: remove unneeded mach/hardware.h inclusion
  video: mx3fb: remove unneeded mach/hardware.h inclusion
  watchdog: imx2_wdt: remove unneeded mach/hardware.h inclusion
  i2c: imx: remove mach/hardware.h inclusion
  mtd: mxc_nand: remove mach/hardware.h inclusion
  rtc: mxc_rtc: remove mach/hardware.h inclusion
  dma: imx-dma: use devm_kzalloc and devm_request_irq
  dma: imx-dma: retrieve MEM and IRQ from resources
  dma: imx-dma: remove mach/hardware.h inclusion
  media: mx2_camera: remove dead code in mx2_camera_add_device
  media: mx2_camera: use managed functions to clean up code
  media: mx2_camera: remove mach/hardware.h inclusion
  mmc: mxcmmc: remove mach/hardware.h inclusion
  video: imxfb: remove mach/hardware.h inclusion
  ARM: imx: move debug macros to include/debug
  ARM: imx: include hardware.h rather than mach/hardware.h
  ARM: imx: remove header file mach/irqs.h
  ARM: imx: enable multi-platform build

 .../devicetree/bindings/i2c/fsl-imx-i2c.txt|4 +-
 arch/arm/Kconfig   |   15 +-
 arch/arm/Kconfig.debug |8 +
 arch/arm/Makefile  |1 -
 arch/arm/boot/dts/imx27.dtsi   |4 +-
 arch/arm/boot/dts/imx51.dtsi   |4 +-
 arch/arm/boot/dts/imx53.dtsi   |6 +-
 arch/arm/boot/dts/imx6q.dtsi   |6 +-
 .../mach/debug-macro.S = include/debug/imx.S} |   33 +-
 arch/arm/{plat-mxc = mach-imx}/3ds_debugboard.c   |2 +-
 .../include/mach = mach-imx}/3ds_debugboard.h |0
 arch/arm/mach-imx/Kconfig  |   86 ++
 arch/arm/mach-imx/Makefile |   23 +-
 arch/arm/{plat-mxc = mach-imx}/avic.c |5 +-
 .../include/mach = mach-imx}/board-mx31lilly.h|0
 .../include/mach = mach-imx}/board-mx31lite.h |0
 .../include/mach = mach-imx}/board-mx31moboard.h  |0
 .../include/mach = mach-imx}/board-pcm038.h   |0
 arch/arm/mach-imx/clk-imx1.c   |   15 +-
 arch/arm/mach-imx/clk-imx21.c  |   14 +-
 arch/arm/mach-imx/clk-imx25.c  |   26 +-
 arch/arm/mach-imx/clk-imx27.c  |   36 +-
 arch/arm/mach-imx/clk-imx31.c  |   21 +-
 arch/arm/mach-imx/clk-imx35.c  |   13 +-
 arch/arm/mach-imx/clk-imx51-imx53.c|   15 +-
 arch/arm/mach-imx/clk-imx6q.c  |3 +-
 arch/arm/mach-imx/clk-pllv1.c  |4 +-
 .../{plat-mxc/include/mach = mach-imx}/common.h   |0
 arch/arm/mach-imx/cpu-imx25.c  |5 +-
 arch/arm/mach-imx/cpu-imx27.c  |2 +-
 arch/arm/mach-imx/cpu-imx31.c  |7 +-
 arch/arm/mach-imx/cpu-imx35.c  |5 +-
 arch/arm/mach-imx/cpu-imx5.c   |3 +-
 arch/arm/{plat-mxc = mach-imx}/cpu.c  |3 +-
 arch/arm/mach-imx/cpu_op-mx51.c|3 +-
 arch/arm/{plat-mxc = mach-imx}/cpufreq.c  |3 +-
 arch/arm/{plat-mxc = mach-imx}/cpuidle.c  |0
 .../{plat

[PATCH 12/34] media: mx1_camera: remove the driver

2012-09-16 Thread Shawn Guo
The mx1_camera driver has been broken for a few release cycles since
commit 6bd0812 (dmaengine: imx-dma: merge old dma-v1.c with imx-dma.c).
It seems there is no one even compile tested it since then, as doing
so will end up with the following error.

  CC  drivers/media/video/mx1_camera.o
In file included from drivers/media/video/mx1_camera.c:44:0:
arch/arm/mach-imx/include/mach/dma-mx1-mx2.h:8:25: fatal error: mach/dma-v1.h: 
No such file or directory

It looks that all the related folks have known the breakage [1], but
no one shows the interest to bring it back to work.  Thus it becomes
a piece of unmaintained code, so let's remove it.

[1] https://lkml.org/lkml/2012/2/9/171

Signed-off-by: Shawn Guo shawn@linaro.org
Cc: Paulius Zaleckas paulius.zalec...@teltonika.lt
Cc: Guennadi Liakhovetski g.liakhovet...@gmx.de
Cc: linux-media@vger.kernel.org
---
 arch/arm/mach-imx/Makefile  |3 -
 arch/arm/mach-imx/clk-imx1.c|1 -
 arch/arm/mach-imx/devices/Kconfig   |3 -
 arch/arm/mach-imx/devices/Makefile  |1 -
 arch/arm/mach-imx/devices/devices-common.h  |   10 -
 arch/arm/mach-imx/devices/platform-mx1-camera.c |   42 --
 arch/arm/mach-imx/mx1-camera-fiq-ksym.c |   18 -
 arch/arm/mach-imx/mx1-camera-fiq.S  |   35 -
 drivers/media/video/Kconfig |   12 -
 drivers/media/video/Makefile|1 -
 drivers/media/video/mx1_camera.c|  889 ---
 include/linux/platform_data/camera-mx1.h|   35 -
 12 files changed, 1050 deletions(-)
 delete mode 100644 arch/arm/mach-imx/devices/platform-mx1-camera.c
 delete mode 100644 arch/arm/mach-imx/mx1-camera-fiq-ksym.c
 delete mode 100644 arch/arm/mach-imx/mx1-camera-fiq.S
 delete mode 100644 drivers/media/video/mx1_camera.c
 delete mode 100644 include/linux/platform_data/camera-mx1.h

diff --git a/arch/arm/mach-imx/Makefile b/arch/arm/mach-imx/Makefile
index fe47b71..538d0ee 100644
--- a/arch/arm/mach-imx/Makefile
+++ b/arch/arm/mach-imx/Makefile
@@ -35,9 +35,6 @@ obj-y += ssi-fiq.o
 obj-y += ssi-fiq-ksym.o
 endif
 
-# Support for CMOS sensor interface
-obj-$(CONFIG_MX1_VIDEO) += mx1-camera-fiq.o mx1-camera-fiq-ksym.o
-
 # i.MX1 based machines
 obj-$(CONFIG_ARCH_MX1ADS) += mach-mx1ads.o
 obj-$(CONFIG_MACH_SCB9328) += mach-scb9328.o
diff --git a/arch/arm/mach-imx/clk-imx1.c b/arch/arm/mach-imx/clk-imx1.c
index b5f90cc..ebfffd2 100644
--- a/arch/arm/mach-imx/clk-imx1.c
+++ b/arch/arm/mach-imx/clk-imx1.c
@@ -84,7 +84,6 @@ int __init mx1_clocks_init(unsigned long fref)
i, PTR_ERR(clk[i]));
 
clk_register_clkdev(clk[dma_gate], ahb, imx-dma);
-   clk_register_clkdev(clk[csi_gate], NULL, mx1-camera.0);
clk_register_clkdev(clk[mma_gate], mma, NULL);
clk_register_clkdev(clk[usbd_gate], NULL, imx_udc.0);
clk_register_clkdev(clk[per1], per, imx-gpt.0);
diff --git a/arch/arm/mach-imx/devices/Kconfig 
b/arch/arm/mach-imx/devices/Kconfig
index cb3e3ee..09d796e 100644
--- a/arch/arm/mach-imx/devices/Kconfig
+++ b/arch/arm/mach-imx/devices/Kconfig
@@ -46,9 +46,6 @@ config IMX_HAVE_PLATFORM_IMX_UDC
 config IMX_HAVE_PLATFORM_IPU_CORE
bool
 
-config IMX_HAVE_PLATFORM_MX1_CAMERA
-   bool
-
 config IMX_HAVE_PLATFORM_MX2_CAMERA
bool
 
diff --git a/arch/arm/mach-imx/devices/Makefile 
b/arch/arm/mach-imx/devices/Makefile
index ff22ed1..3cfdc37 100644
--- a/arch/arm/mach-imx/devices/Makefile
+++ b/arch/arm/mach-imx/devices/Makefile
@@ -17,7 +17,6 @@ obj-$(CONFIG_IMX_HAVE_PLATFORM_IMX_SSI) += platform-imx-ssi.o
 obj-$(CONFIG_IMX_HAVE_PLATFORM_IMX_UART) += platform-imx-uart.o
 obj-$(CONFIG_IMX_HAVE_PLATFORM_IMX_UDC) += platform-imx_udc.o
 obj-$(CONFIG_IMX_HAVE_PLATFORM_IPU_CORE) += platform-ipu-core.o
-obj-$(CONFIG_IMX_HAVE_PLATFORM_MX1_CAMERA) += platform-mx1-camera.o
 obj-$(CONFIG_IMX_HAVE_PLATFORM_MX2_CAMERA) += platform-mx2-camera.o
 obj-$(CONFIG_IMX_HAVE_PLATFORM_MXC_EHCI) += platform-mxc-ehci.o
 obj-$(CONFIG_IMX_HAVE_PLATFORM_MXC_MMC) += platform-mxc-mmc.o
diff --git a/arch/arm/mach-imx/devices/devices-common.h 
b/arch/arm/mach-imx/devices/devices-common.h
index 9e3e3d8..34419b2 100644
--- a/arch/arm/mach-imx/devices/devices-common.h
+++ b/arch/arm/mach-imx/devices/devices-common.h
@@ -199,16 +199,6 @@ struct platform_device *__init imx_add_mx3_sdc_fb(
const struct imx_ipu_core_data *data,
struct mx3fb_platform_data *pdata);
 
-#include linux/platform_data/camera-mx1.h
-struct imx_mx1_camera_data {
-   resource_size_t iobase;
-   resource_size_t iosize;
-   resource_size_t irq;
-};
-struct platform_device *__init imx_add_mx1_camera(
-   const struct imx_mx1_camera_data *data,
-   const struct mx1_camera_pdata *pdata);
-
 #include linux/platform_data/camera-mx2.h
 struct imx_mx2_camera_data {
resource_size_t iobasecsi;
diff --git a/arch/arm/mach-imx/devices

[PATCH 14/34] dma: ipu: rename mach/ipu.h to include/linux/dma/ipu-dma.h

2012-09-16 Thread Shawn Guo
The header ipu.h really belongs to dma subsystem rather than imx
platform.  Rename it to ipu-dma.h and put it into include/linux/dma/.

Signed-off-by: Shawn Guo shawn@linaro.org
Cc: Vinod Koul vinod.k...@intel.com
Cc: Guennadi Liakhovetski g.liakhovet...@gmx.de
Cc: Florian Tobias Schandinat florianschandi...@gmx.de
Cc: linux-media@vger.kernel.org
Cc: linux-fb...@vger.kernel.org
---
 drivers/dma/ipu/ipu_idmac.c|3 +--
 drivers/dma/ipu/ipu_irq.c  |3 +--
 drivers/media/video/mx3_camera.c   |2 +-
 drivers/video/mx3fb.c  |2 +-
 .../mach/ipu.h = include/linux/dma/ipu-dma.h  |6 +++---
 5 files changed, 7 insertions(+), 9 deletions(-)
 rename arch/arm/mach-imx/include/mach/ipu.h = include/linux/dma/ipu-dma.h 
(97%)

diff --git a/drivers/dma/ipu/ipu_idmac.c b/drivers/dma/ipu/ipu_idmac.c
index c7573e5..6585537 100644
--- a/drivers/dma/ipu/ipu_idmac.c
+++ b/drivers/dma/ipu/ipu_idmac.c
@@ -22,8 +22,7 @@
 #include linux/interrupt.h
 #include linux/io.h
 #include linux/module.h
-
-#include mach/ipu.h
+#include linux/dma/ipu-dma.h
 
 #include ../dmaengine.h
 #include ipu_intern.h
diff --git a/drivers/dma/ipu/ipu_irq.c b/drivers/dma/ipu/ipu_irq.c
index fa95bcc..a5ee37d 100644
--- a/drivers/dma/ipu/ipu_irq.c
+++ b/drivers/dma/ipu/ipu_irq.c
@@ -15,8 +15,7 @@
 #include linux/irq.h
 #include linux/io.h
 #include linux/module.h
-
-#include mach/ipu.h
+#include linux/dma/ipu-dma.h
 
 #include ipu_intern.h
 
diff --git a/drivers/media/video/mx3_camera.c b/drivers/media/video/mx3_camera.c
index 1481b0d..892cba5 100644
--- a/drivers/media/video/mx3_camera.c
+++ b/drivers/media/video/mx3_camera.c
@@ -17,6 +17,7 @@
 #include linux/vmalloc.h
 #include linux/interrupt.h
 #include linux/sched.h
+#include linux/dma/ipu-dma.h
 
 #include media/v4l2-common.h
 #include media/v4l2-dev.h
@@ -24,7 +25,6 @@
 #include media/soc_camera.h
 #include media/soc_mediabus.h
 
-#include mach/ipu.h
 #include linux/platform_data/camera-mx3.h
 #include linux/platform_data/dma-imx.h
 
diff --git a/drivers/video/mx3fb.c b/drivers/video/mx3fb.c
index d738108..3b63ad8 100644
--- a/drivers/video/mx3fb.c
+++ b/drivers/video/mx3fb.c
@@ -26,10 +26,10 @@
 #include linux/console.h
 #include linux/clk.h
 #include linux/mutex.h
+#include linux/dma/ipu-dma.h
 
 #include linux/platform_data/dma-imx.h
 #include mach/hardware.h
-#include mach/ipu.h
 #include linux/platform_data/video-mx3fb.h
 
 #include asm/io.h
diff --git a/arch/arm/mach-imx/include/mach/ipu.h b/include/linux/dma/ipu-dma.h
similarity index 97%
rename from arch/arm/mach-imx/include/mach/ipu.h
rename to include/linux/dma/ipu-dma.h
index 539e559..1803111 100644
--- a/arch/arm/mach-imx/include/mach/ipu.h
+++ b/include/linux/dma/ipu-dma.h
@@ -9,8 +9,8 @@
  * published by the Free Software Foundation.
  */
 
-#ifndef _IPU_H_
-#define _IPU_H_
+#ifndef __LINUX_DMA_IPU_DMA_H
+#define __LINUX_DMA_IPU_DMA_H
 
 #include linux/types.h
 #include linux/dmaengine.h
@@ -174,4 +174,4 @@ struct idmac_channel {
 #define to_tx_desc(tx) container_of(tx, struct idmac_tx_desc, txd)
 #define to_idmac_chan(c) container_of(c, struct idmac_channel, dma_chan)
 
-#endif
+#endif /* __LINUX_DMA_IPU_DMA_H */
-- 
1.7.9.5

--
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


[PATCH 26/34] media: mx2_camera: remove dead code in mx2_camera_add_device

2012-09-16 Thread Shawn Guo
This is a piece of code becoming dead since commit 2c9ba37 ([media]
V4L: mx2_camera: remove unsupported i.MX27 DMA mode, make EMMA
mandatory).  It should have been removed together with the commit.
Remove it now.

Signed-off-by: Shawn Guo shawn@linaro.org
Cc: Guennadi Liakhovetski g.liakhovet...@gmx.de
Cc: linux-media@vger.kernel.org
---
 drivers/media/video/mx2_camera.c |4 +---
 1 file changed, 1 insertion(+), 3 deletions(-)

diff --git a/drivers/media/video/mx2_camera.c b/drivers/media/video/mx2_camera.c
index 965427f..89c7e28 100644
--- a/drivers/media/video/mx2_camera.c
+++ b/drivers/media/video/mx2_camera.c
@@ -441,11 +441,9 @@ static int mx2_camera_add_device(struct soc_camera_device 
*icd)
 
csicr1 = CSICR1_MCLKEN;
 
-   if (cpu_is_mx27()) {
+   if (cpu_is_mx27())
csicr1 |= CSICR1_PRP_IF_EN | CSICR1_FCC |
CSICR1_RXFF_LEVEL(0);
-   } else if (cpu_is_mx27())
-   csicr1 |= CSICR1_SOF_INTEN | CSICR1_RXFF_LEVEL(2);
 
pcdev-csicr1 = csicr1;
writel(pcdev-csicr1, pcdev-base_csi + CSICR1);
-- 
1.7.9.5

--
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


[PATCH 27/34] media: mx2_camera: use managed functions to clean up code

2012-09-16 Thread Shawn Guo
Use managed functions to clean up the error handling code and function
mx2_camera_remove().  Along with the change, a few variables get removed
from struct mx2_camera_dev.

Signed-off-by: Shawn Guo shawn@linaro.org
Cc: Guennadi Liakhovetski g.liakhovet...@gmx.de
Cc: linux-media@vger.kernel.org
---
 drivers/media/video/mx2_camera.c |  143 +++---
 1 file changed, 39 insertions(+), 104 deletions(-)

diff --git a/drivers/media/video/mx2_camera.c b/drivers/media/video/mx2_camera.c
index 89c7e28..fe4c76c 100644
--- a/drivers/media/video/mx2_camera.c
+++ b/drivers/media/video/mx2_camera.c
@@ -274,12 +274,9 @@ struct mx2_camera_dev {
struct soc_camera_device *icd;
struct clk  *clk_csi, *clk_emma_ahb, *clk_emma_ipg;
 
-   unsigned intirq_csi, irq_emma;
void __iomem*base_csi, *base_emma;
-   unsigned long   base_dma;
 
struct mx2_camera_platform_data *pdata;
-   struct resource *res_csi, *res_emma;
unsigned long   platform_flags;
 
struct list_headcapture;
@@ -1607,64 +1604,59 @@ static irqreturn_t mx27_camera_emma_irq(int irq_emma, 
void *data)
return IRQ_HANDLED;
 }
 
-static int __devinit mx27_camera_emma_init(struct mx2_camera_dev *pcdev)
+static int __devinit mx27_camera_emma_init(struct platform_device *pdev)
 {
-   struct resource *res_emma = pcdev-res_emma;
+   struct mx2_camera_dev *pcdev = platform_get_drvdata(pdev);
+   struct resource *res_emma;
+   int irq_emma;
int err = 0;
 
-   if (!request_mem_region(res_emma-start, resource_size(res_emma),
-   MX2_CAM_DRV_NAME)) {
-   err = -EBUSY;
+   res_emma = platform_get_resource(pdev, IORESOURCE_MEM, 1);
+   irq_emma = platform_get_irq(pdev, 1);
+   if (!res_emma || !irq_emma) {
+   dev_err(pcdev-dev, no EMMA resources\n);
goto out;
}
 
-   pcdev-base_emma = ioremap(res_emma-start, resource_size(res_emma));
+   pcdev-base_emma = devm_request_and_ioremap(pcdev-dev, res_emma);
if (!pcdev-base_emma) {
-   err = -ENOMEM;
-   goto exit_release;
+   err = -EADDRNOTAVAIL;
+   goto out;
}
 
-   err = request_irq(pcdev-irq_emma, mx27_camera_emma_irq, 0,
-   MX2_CAM_DRV_NAME, pcdev);
+   err = devm_request_irq(pcdev-dev, irq_emma, mx27_camera_emma_irq, 0,
+  MX2_CAM_DRV_NAME, pcdev);
if (err) {
dev_err(pcdev-dev, Camera EMMA interrupt register failed \n);
-   goto exit_iounmap;
+   goto out;
}
 
-   pcdev-clk_emma_ipg = clk_get(pcdev-dev, emma-ipg);
+   pcdev-clk_emma_ipg = devm_clk_get(pcdev-dev, emma-ipg);
if (IS_ERR(pcdev-clk_emma_ipg)) {
err = PTR_ERR(pcdev-clk_emma_ipg);
-   goto exit_free_irq;
+   goto out;
}
 
clk_prepare_enable(pcdev-clk_emma_ipg);
 
-   pcdev-clk_emma_ahb = clk_get(pcdev-dev, emma-ahb);
+   pcdev-clk_emma_ahb = devm_clk_get(pcdev-dev, emma-ahb);
if (IS_ERR(pcdev-clk_emma_ahb)) {
err = PTR_ERR(pcdev-clk_emma_ahb);
-   goto exit_clk_emma_ipg_put;
+   goto exit_clk_emma_ipg;
}
 
clk_prepare_enable(pcdev-clk_emma_ahb);
 
err = mx27_camera_emma_prp_reset(pcdev);
if (err)
-   goto exit_clk_emma_ahb_put;
+   goto exit_clk_emma_ahb;
 
return err;
 
-exit_clk_emma_ahb_put:
+exit_clk_emma_ahb:
clk_disable_unprepare(pcdev-clk_emma_ahb);
-   clk_put(pcdev-clk_emma_ahb);
-exit_clk_emma_ipg_put:
+exit_clk_emma_ipg:
clk_disable_unprepare(pcdev-clk_emma_ipg);
-   clk_put(pcdev-clk_emma_ipg);
-exit_free_irq:
-   free_irq(pcdev-irq_emma, pcdev);
-exit_iounmap:
-   iounmap(pcdev-base_emma);
-exit_release:
-   release_mem_region(res_emma-start, resource_size(res_emma));
 out:
return err;
 }
@@ -1672,9 +1664,8 @@ out:
 static int __devinit mx2_camera_probe(struct platform_device *pdev)
 {
struct mx2_camera_dev *pcdev;
-   struct resource *res_csi, *res_emma;
-   void __iomem *base_csi;
-   int irq_csi, irq_emma;
+   struct resource *res_csi;
+   int irq_csi;
int err = 0;
 
dev_dbg(pdev-dev, initialising\n);
@@ -1687,21 +1678,20 @@ static int __devinit mx2_camera_probe(struct 
platform_device *pdev)
goto exit;
}
 
-   pcdev = kzalloc(sizeof(*pcdev), GFP_KERNEL);
+   pcdev = devm_kzalloc(pdev-dev, sizeof(*pcdev), GFP_KERNEL);
if (!pcdev) {
dev_err(pdev-dev, Could not allocate pcdev\n);
err = -ENOMEM;
goto exit;
}
 
-   pcdev-clk_csi = clk_get(pdev-dev, ahb);
+   pcdev-clk_csi = devm_clk_get(pdev-dev, ahb);
if (IS_ERR

[PATCH 28/34] media: mx2_camera: remove mach/hardware.h inclusion

2012-09-16 Thread Shawn Guo
It changes the driver to use platform_device_id rather than cpu_is_xxx
to determine the controller type, and updates the platform code
accordingly.

As the result, mach/hardware.h inclusion gets removed from the driver.

Signed-off-by: Shawn Guo shawn@linaro.org
Cc: Guennadi Liakhovetski g.liakhovet...@gmx.de
Cc: linux-media@vger.kernel.org
---
 arch/arm/mach-imx/clk-imx25.c   |6 +-
 arch/arm/mach-imx/clk-imx27.c   |6 +-
 arch/arm/mach-imx/devices/devices-common.h  |1 +
 arch/arm/mach-imx/devices/platform-mx2-camera.c |   12 +--
 drivers/media/video/mx2_camera.c|   95 +--
 5 files changed, 85 insertions(+), 35 deletions(-)

diff --git a/arch/arm/mach-imx/clk-imx25.c b/arch/arm/mach-imx/clk-imx25.c
index 1aea073..71fe521 100644
--- a/arch/arm/mach-imx/clk-imx25.c
+++ b/arch/arm/mach-imx/clk-imx25.c
@@ -231,9 +231,9 @@ int __init mx25_clocks_init(void)
clk_register_clkdev(clk[esdhc2_ipg_per], per, sdhci-esdhc-imx25.1);
clk_register_clkdev(clk[esdhc2_ipg], ipg, sdhci-esdhc-imx25.1);
clk_register_clkdev(clk[esdhc2_ahb], ahb, sdhci-esdhc-imx25.1);
-   clk_register_clkdev(clk[csi_ipg_per], per, mx2-camera.0);
-   clk_register_clkdev(clk[csi_ipg], ipg, mx2-camera.0);
-   clk_register_clkdev(clk[csi_ahb], ahb, mx2-camera.0);
+   clk_register_clkdev(clk[csi_ipg_per], per, imx25-camera.0);
+   clk_register_clkdev(clk[csi_ipg], ipg, imx25-camera.0);
+   clk_register_clkdev(clk[csi_ahb], ahb, imx25-camera.0);
clk_register_clkdev(clk[dummy], audmux, NULL);
clk_register_clkdev(clk[can1_ipg], NULL, flexcan.0);
clk_register_clkdev(clk[can2_ipg], NULL, flexcan.1);
diff --git a/arch/arm/mach-imx/clk-imx27.c b/arch/arm/mach-imx/clk-imx27.c
index 5ff5cf0..e26de52 100644
--- a/arch/arm/mach-imx/clk-imx27.c
+++ b/arch/arm/mach-imx/clk-imx27.c
@@ -224,7 +224,7 @@ int __init mx27_clocks_init(unsigned long fref)
clk_register_clkdev(clk[per3_gate], per, imx-fb.0);
clk_register_clkdev(clk[lcdc_ipg_gate], ipg, imx-fb.0);
clk_register_clkdev(clk[lcdc_ahb_gate], ahb, imx-fb.0);
-   clk_register_clkdev(clk[csi_ahb_gate], ahb, mx2-camera.0);
+   clk_register_clkdev(clk[csi_ahb_gate], ahb, imx27-camera.0);
clk_register_clkdev(clk[usb_div], per, fsl-usb2-udc);
clk_register_clkdev(clk[usb_ipg_gate], ipg, fsl-usb2-udc);
clk_register_clkdev(clk[usb_ahb_gate], ahb, fsl-usb2-udc);
@@ -251,8 +251,8 @@ int __init mx27_clocks_init(unsigned long fref)
clk_register_clkdev(clk[i2c2_ipg_gate], NULL, imx21-i2c.1);
clk_register_clkdev(clk[owire_ipg_gate], NULL, mxc_w1.0);
clk_register_clkdev(clk[kpp_ipg_gate], NULL, imx-keypad);
-   clk_register_clkdev(clk[emma_ahb_gate], emma-ahb, mx2-camera.0);
-   clk_register_clkdev(clk[emma_ipg_gate], emma-ipg, mx2-camera.0);
+   clk_register_clkdev(clk[emma_ahb_gate], emma-ahb, imx27-camera.0);
+   clk_register_clkdev(clk[emma_ipg_gate], emma-ipg, imx27-camera.0);
clk_register_clkdev(clk[emma_ahb_gate], ahb, m2m-emmaprp.0);
clk_register_clkdev(clk[emma_ipg_gate], ipg, m2m-emmaprp.0);
clk_register_clkdev(clk[iim_ipg_gate], iim, NULL);
diff --git a/arch/arm/mach-imx/devices/devices-common.h 
b/arch/arm/mach-imx/devices/devices-common.h
index 7f2698c..8112a1a 100644
--- a/arch/arm/mach-imx/devices/devices-common.h
+++ b/arch/arm/mach-imx/devices/devices-common.h
@@ -202,6 +202,7 @@ struct platform_device *__init imx_add_mx3_sdc_fb(
 
 #include linux/platform_data/camera-mx2.h
 struct imx_mx2_camera_data {
+   const char *devid;
resource_size_t iobasecsi;
resource_size_t iosizecsi;
resource_size_t irqcsi;
diff --git a/arch/arm/mach-imx/devices/platform-mx2-camera.c 
b/arch/arm/mach-imx/devices/platform-mx2-camera.c
index 9ad5b2d..b88877d 100644
--- a/arch/arm/mach-imx/devices/platform-mx2-camera.c
+++ b/arch/arm/mach-imx/devices/platform-mx2-camera.c
@@ -9,14 +9,16 @@
 #include mach/hardware.h
 #include devices-common.h
 
-#define imx_mx2_camera_data_entry_single(soc)  \
+#define imx_mx2_camera_data_entry_single(soc, _devid)  \
{   \
+   .devid = _devid,\
.iobasecsi = soc ## _CSI_BASE_ADDR, \
.iosizecsi = SZ_4K, \
.irqcsi = soc ## _INT_CSI,  \
}
-#define imx_mx2_camera_data_entry_single_emma(soc) \
+#define imx_mx2_camera_data_entry_single_emma(soc, _devid) \
{   \
+   .devid = _devid,\
.iobasecsi = soc ## _CSI_BASE_ADDR

Re: [RFC] Support for 'Coda' video codec IP.

2012-06-20 Thread Shawn Guo
On Wed, Jun 20, 2012 at 11:00:15AM +0100, Mark Brown wrote:
 The approach a lot of platforms have been taking is that it's OK to keep
 on maintaining existing boards using board files (especially for trivial
 things like adding new devices).

I think that's the approach being taken during the transition to device
tree.  But it's definitely a desirable thing to remove those board
files with device tree support at some point, because not having non-DT
users will ease platform maintenance and new feature adoption a lot
easier, for example linear irqdomain.

-- 
Regards,
Shawn

--
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: [RFC] Support for 'Coda' video codec IP.

2012-06-20 Thread Shawn Guo
On Wed, Jun 20, 2012 at 02:31:48PM +0100, Mark Brown wrote:
  I think that's the approach being taken during the transition to device
  tree.  But it's definitely a desirable thing to remove those board
  files with device tree support at some point, because not having non-DT
  users will ease platform maintenance and new feature adoption a lot
  easier, for example linear irqdomain.
 
 Moving to irqdomain without DT is really very easy, you just need to
 select a legacy mapping if a base is provided and otherwise all the code
 is identical - it just comes down to a field in platform data and an if
 statement.

Yeah, but I guess what I'm saying is *linear* irqdomain.

-- 
Regards,
Shawn

--
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: [RFC] Support for 'Coda' video codec IP.

2012-06-20 Thread Shawn Guo
On Wed, Jun 20, 2012 at 11:00:15AM +0100, Mark Brown wrote:
 The approach a lot of platforms have been taking is that it's OK to keep
 on maintaining existing boards using board files (especially for trivial
 things like adding new devices).

If the device is added without introducing any platform_data, we may
take it as trivial things, but otherwise we are just creating something
making the later device tree conversion difficult.

-- 
Regards,
Shawn

--
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: [RFC] Support for 'Coda' video codec IP.

2012-06-20 Thread Shawn Guo
On Wed, Jun 20, 2012 at 04:10:27PM +0200, javier Martin wrote:
 If I drop this platform data it is OK with you if I don't add device
 tree support by now?
 
I'm fine.  Sascha?

-- 
Regards,
Shawn

--
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: [RFC] Support for 'Coda' video codec IP.

2012-06-20 Thread Shawn Guo
On Wed, Jun 20, 2012 at 04:25:54PM +0200, javier Martin wrote:
 Do you plan to add pinctrl support for i.MX27 and i.MX21?
 
We will have to when we are there to convert these platforms over to DT.

-- 
Regards,
Shawn

--
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