Full thread in opensuse mailing list: http://lists.opensuse.org/archive/opensuse-arm/2014-06/msg00004.html Moving this thread out of opensuse to kernel public lists +CC of maintainers relevant to the control module/clk. On 06/05/2014 11:17 AM, Nishanth Menon wrote: > On 06/05/2014 10:56 AM, Laurent Pinchart wrote: >> Hi Nishanth, >> >> On Thursday 05 June 2014 08:37:27 Nishanth Menon wrote: >>> On 06/05/2014 08:29 AM, Takashi Iwai wrote: >>>> Alexander Graf wrote: >>>>> On 04.06.14 09:28, Matwey V. Kornilov wrote: >>>>>> On 19.05.2014 14:02, Alexander Graf wrote: >>>>>>>> note: expected 'uint32_t *' but argument is of type 'dma_addr_t *' >>>>>> >>>>>> I've fixed that one, but can not figure out what is wrong now: >>>>>> >>>>>> https://build.opensuse.org/package/live_build_log/home:matwey:pcm051:13. >>>>>> 2/kernel-default/standard/armv7l>> >>>>> >>>>> If I had to guess I'd say someone forgot to put a few EXPORT_SYMBOLs >>>>> into the code and never tested whether compiling his v4l / video driver >>>>> actually works when it's compiled as a module. >>>> >>>> The problem is CONFIG_VIDEO_OMAP4=y while the whole V4L stuff is built >>>> as modules. You have to build V4L into kernel, too. >>>> That said, it's a Kconfig dependency issue. >>>> >>>> Looking at the code, though, omap4-iss driver itself is written to be >>>> built also as a module. But its Kconfig is bool, so the problem >>>> happens. Maybe a patch like below works? >>>> >>>> Takashi >>>> >>>> --- >>>> diff --git a/drivers/staging/media/omap4iss/Kconfig >>>> b/drivers/staging/media/omap4iss/Kconfig index 78b0fba7047e..0c3e3c1acd4f >>>> 100644 >>>> --- a/drivers/staging/media/omap4iss/Kconfig >>>> +++ b/drivers/staging/media/omap4iss/Kconfig >>>> @@ -1,5 +1,5 @@ >>>> >>>> config VIDEO_OMAP4 >>>> - bool "OMAP 4 Camera support" >>>> + tristate "OMAP 4 Camera support" >>>> depends on VIDEO_V4L2 && VIDEO_V4L2_SUBDEV_API && I2C && ARCH_OMAP4 >>>> select VIDEOBUF2_DMA_CONTIG >>>> ---help--- >>> >>> +Sakari and Laurent. Full thread: >>> http://lists.opensuse.org/archive/opensuse-arm/2014-06/msg00004.html >>> >>> I agree, I see no reason for these to be bool. >> >> There's no good reason for the option to be a boolean, but there's a bad >> reason :-/ The OMAP4 ISS driver calls the omap4_ctrl_pad_readl() and >> omap4_ctrl_pad_writel() functions, which are not exported. The right way to >> fix this would be to implement a control module driver for the OMAP4, but >> that's not a straightforward task, and I don't have time to do so at the >> moment. >> > > a) control module: > from: drivers/staging/media/omap4iss/iss_csiphy.c > /* > * SCM.CONTROL_CAMERA_RX > * - bit [31] : CSIPHY2 lane 2 enable (4460+ only) > * - bit [30:29] : CSIPHY2 per-lane enable (1 to 0) > * - bit [28:24] : CSIPHY1 per-lane enable (4 to 0) > * - bit [21] : CSIPHY2 CTRLCLK enable > * - bit [20:19] : CSIPHY2 config: 00 d-phy, 01/10 ccp2 > * - 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); > > Is'nt that what pinctrl does? And should be rather trivial to do, no? > > c) if there is something else that these bits do that I cant figure > out, example: for specific stuff like control module bit for clock > (which the above code kinda sounds similar to), like how we had for > display recently - model it with dts clock[1] > > b) if you cannot use existing frameworks OR use pinctrl, last ditch > way to do it in pdata-quirks in mach-omap2 with fops being send over. > > We did debate putting entire control module as a syscon_driver, the > current split (prior to syscon) just makes it impractical to switch > over to it at this point in time, maybe once all dt-fication is done, > it might be possible to switch over to that. > > [1] http://marc.info/?l=linux-omap&m=140127434229399&w=2 > -- Regards, Nishanth Menon -- To unsubscribe from this list: send the line "unsubscribe linux-omap" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html