Re: [PATCH] v4l: omap4iss: Replace outdated OMAP4 control pad API with syscon

2015-04-12 Thread Sakari Ailus
Hi Laurent,

On Sun, Apr 12, 2015 at 03:28:13PM +0300, Laurent Pinchart wrote:
 diff --git a/drivers/staging/media/omap4iss/iss_csiphy.c 
 b/drivers/staging/media/omap4iss/iss_csiphy.c
 index 7c3d55d..748607f 100644
 --- a/drivers/staging/media/omap4iss/iss_csiphy.c
 +++ b/drivers/staging/media/omap4iss/iss_csiphy.c
 @@ -13,6 +13,7 @@
  
  #include linux/delay.h
  #include linux/device.h
 +#include linux/regmap.h
  
  #include ../../../../arch/arm/mach-omap2/control.h
  
 @@ -140,9 +141,11 @@ int omap4iss_csiphy_config(struct iss_device *iss,
* - bit [18] : CSIPHY1 CTRLCLK enable
* - bit [17:16] : CSIPHY1 config: 00 d-phy, 01/10 ccp2
*/
 - cam_rx_ctrl = omap4_ctrl_pad_readl(
 - OMAP4_CTRL_MODULE_PAD_CORE_CONTROL_CAMERA_RX);
 -
 + /*
 +  * TODO: When implementing DT support specify the CONTROL_CAMERA_RX
 +  * register offset in the syscon property instead of hardcoding it.
 +  */
 + regmap_read(iss-syscon, 0x68, cam_rx_ctrl);

Do you use platform data now? I guess the address is the same on all SoCs
that use the OMAP 4 ISS?

Acked-by: Sakari Alius sakari.ai...@iki.fi

-- 
Kind regards,

Sakari Ailus
e-mail: sakari.ai...@iki.fi XMPP: sai...@retiisi.org.uk
--
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] v4l: omap4iss: Replace outdated OMAP4 control pad API with syscon

2015-04-12 Thread Laurent Pinchart
The omap4_ctrl_pad_readl and omap4_ctrl_pad_writel functions have been
removed by commit efde234674d9 (ARM: OMAP4+: control: remove support
for legacy pad read/write) but are still used by the OMAP4 ISS driver,
resulting in a compilation breakage:

drivers/staging/media/omap4iss/iss_csiphy.c: In function 
'omap4iss_csiphy_config':
drivers/staging/media/omap4iss/iss_csiphy.c:167:2: error: implicit declaration 
of function 'omap4_ctrl_pad_writel' [-Werror=implicit-function-declaration]
  omap4_ctrl_pad_writel(cam_rx_ctrl,

Fix the problem by using the syscon API to reaplace the control pad API.
Lookup the syscon instance by compatible name for now as the OMAP4 ISS
driver doesn't support DT yet.

Fixes: efde234674d9 (ARM: OMAP4+: control: remove support for legacy pad 
read/write)
Signed-off-by: Laurent Pinchart laurent.pinch...@ideasonboard.com
---
 drivers/staging/media/omap4iss/Kconfig  |  1 +
 drivers/staging/media/omap4iss/iss.c| 11 +++
 drivers/staging/media/omap4iss/iss.h|  4 
 drivers/staging/media/omap4iss/iss_csiphy.c | 12 +++-
 4 files changed, 23 insertions(+), 5 deletions(-)

Hi Arnd,

This patch doesn't depend nor conflict with the OMAP4 ISS patches scheduled to
be merged in v4.1. If Mauro is fine with that, and if it makes your life
easier, it could get merged through the arm-soc tree. Please let me know what
you prefer.

diff --git a/drivers/staging/media/omap4iss/Kconfig 
b/drivers/staging/media/omap4iss/Kconfig
index b78643f..072dac0 100644
--- a/drivers/staging/media/omap4iss/Kconfig
+++ b/drivers/staging/media/omap4iss/Kconfig
@@ -2,6 +2,7 @@ config VIDEO_OMAP4
bool OMAP 4 Camera support
depends on VIDEO_V4L2=y  VIDEO_V4L2_SUBDEV_API  I2C=y  ARCH_OMAP4
depends on HAS_DMA
+   select MFD_SYSCON
select VIDEOBUF2_DMA_CONTIG
---help---
  Driver for an OMAP 4 ISS controller.
diff --git a/drivers/staging/media/omap4iss/iss.c 
b/drivers/staging/media/omap4iss/iss.c
index 44b81a2..cf22dd2 100644
--- a/drivers/staging/media/omap4iss/iss.c
+++ b/drivers/staging/media/omap4iss/iss.c
@@ -17,6 +17,7 @@
 #include linux/dma-mapping.h
 #include linux/i2c.h
 #include linux/interrupt.h
+#include linux/mfd/syscon.h
 #include linux/module.h
 #include linux/platform_device.h
 #include linux/slab.h
@@ -1386,6 +1387,16 @@ static int iss_probe(struct platform_device *pdev)
 
platform_set_drvdata(pdev, iss);
 
+   /*
+* TODO: When implementing DT support switch to syscon regmap lookup by
+* phandle.
+*/
+   iss-syscon = syscon_regmap_lookup_by_compatible(syscon);
+   if (IS_ERR(iss-syscon)) {
+   ret = PTR_ERR(iss-syscon);
+   goto error;
+   }
+
/* Clocks */
ret = iss_map_mem_resource(pdev, iss, OMAP4_ISS_MEM_TOP);
if (ret  0)
diff --git a/drivers/staging/media/omap4iss/iss.h 
b/drivers/staging/media/omap4iss/iss.h
index 734cfee..35df8b4 100644
--- a/drivers/staging/media/omap4iss/iss.h
+++ b/drivers/staging/media/omap4iss/iss.h
@@ -29,6 +29,8 @@
 #include iss_ipipe.h
 #include iss_resizer.h
 
+struct regmap;
+
 #define to_iss_device(ptr_module)  \
container_of(ptr_module, struct iss_device, ptr_module)
 #define to_device(ptr_module)  \
@@ -79,6 +81,7 @@ struct iss_reg {
 
 /*
  * struct iss_device - ISS device structure.
+ * @syscon: Regmap for the syscon register space
  * @crashed: Bitmask of crashed entities (indexed by entity ID)
  */
 struct iss_device {
@@ -93,6 +96,7 @@ struct iss_device {
 
struct resource *res[OMAP4_ISS_MEM_LAST];
void __iomem *regs[OMAP4_ISS_MEM_LAST];
+   struct regmap *syscon;
 
u64 raw_dmamask;
 
diff --git a/drivers/staging/media/omap4iss/iss_csiphy.c 
b/drivers/staging/media/omap4iss/iss_csiphy.c
index 7c3d55d..748607f 100644
--- a/drivers/staging/media/omap4iss/iss_csiphy.c
+++ b/drivers/staging/media/omap4iss/iss_csiphy.c
@@ -13,6 +13,7 @@
 
 #include linux/delay.h
 #include linux/device.h
+#include linux/regmap.h
 
 #include ../../../../arch/arm/mach-omap2/control.h
 
@@ -140,9 +141,11 @@ int omap4iss_csiphy_config(struct iss_device *iss,
 * - bit [18] : CSIPHY1 CTRLCLK enable
 * - bit [17:16] : CSIPHY1 config: 00 d-phy, 01/10 ccp2
 */
-   cam_rx_ctrl = omap4_ctrl_pad_readl(
-   OMAP4_CTRL_MODULE_PAD_CORE_CONTROL_CAMERA_RX);
-
+   /*
+* TODO: When implementing DT support specify the CONTROL_CAMERA_RX
+* register offset in the syscon property instead of hardcoding it.
+*/
+   regmap_read(iss-syscon, 0x68, cam_rx_ctrl);
 
if (subdevs-interface == ISS_INTERFACE_CSI2A_PHY1) {
cam_rx_ctrl = ~(OMAP4_CAMERARX_CSI21_LANEENABLE_MASK |
@@ -166,8 +169,7 @@ int omap4iss_csiphy_config(struct iss_device *iss,
cam_rx_ctrl |= OMAP4_CAMERARX_CSI22_CTRLCLKEN_MASK;
}
 
-   

Re: [PATCH] v4l: omap4iss: Replace outdated OMAP4 control pad API with syscon

2015-04-12 Thread Laurent Pinchart
Hi Sakari,

Thank you for the review.

On Sunday 12 April 2015 17:31:09 Sakari Ailus wrote:
 On Sun, Apr 12, 2015 at 03:28:13PM +0300, Laurent Pinchart wrote:
  diff --git a/drivers/staging/media/omap4iss/iss_csiphy.c
  b/drivers/staging/media/omap4iss/iss_csiphy.c index 7c3d55d..748607f
  100644
  --- a/drivers/staging/media/omap4iss/iss_csiphy.c
  +++ b/drivers/staging/media/omap4iss/iss_csiphy.c
  @@ -13,6 +13,7 @@
  
   #include linux/delay.h
   #include linux/device.h
  +#include linux/regmap.h
  
   #include ../../../../arch/arm/mach-omap2/control.h
  
  @@ -140,9 +141,11 @@ int omap4iss_csiphy_config(struct iss_device *iss,
   * - bit [18] : CSIPHY1 CTRLCLK enable
   * - bit [17:16] : CSIPHY1 config: 00 d-phy, 01/10 ccp2
   */
  -   cam_rx_ctrl = omap4_ctrl_pad_readl(
  -   OMAP4_CTRL_MODULE_PAD_CORE_CONTROL_CAMERA_RX);
  -
  +   /*
  +* TODO: When implementing DT support specify the CONTROL_CAMERA_RX
  +* register offset in the syscon property instead of hardcoding it.
  +*/
  +   regmap_read(iss-syscon, 0x68, cam_rx_ctrl);
 
 Do you use platform data now? I guess the address is the same on all SoCs
 that use the OMAP 4 ISS?

Yes I use platform data for now. The address is the same on all SoCs on which 
I've tested the driver, which is a single SoC :-) I'll research that when 
implementing DT bindings.

 Acked-by: Sakari Alius sakari.ai...@iki.fi

Thank you.

-- 
Regards,

Laurent Pinchart

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