Thread (17 messages) flat view 17 messages, 3 authors, 2012-07-09

Clock problems in i.MX27 Visstrim M10 (linux-3.5-rc5).

From: s.hauer@pengutronix.de (Sascha Hauer)
Date: 2012-07-04 08:35:38

On Wed, Jul 04, 2012 at 10:30:40AM +0200, javier Martin wrote:
On 4 July 2012 09:48, javier Martin [off-list ref] wrote:
quoted
Hi,

On 3 July 2012 15:13, Fabio Estevam [off-list ref] wrote:
quoted
Hi Javier,

On Tue, Jul 3, 2012 at 8:09 AM, javier Martin
[off-list ref] wrote:
quoted
Hi,
I've found the following problems in linux-3.5-rc5
(6887a4131da3adaab011613776d865f4bcfb5678) in our Visstrim M10 board:
Could you please try the two attached patches?

They should fix the dma and mx2-camera issues.

I will try to look at the ssi problem, but my mx27pdk board still does
not have audio supported.

Regards,
thanks for the patches. The first one solves the issue with the audio.
Now I can do an aplay properly too.

However, second patch for the mx2-camera seems that it's not right
yet. I get a timeout here:

static int mx27_camera_emma_prp_reset(struct mx2_camera_dev *pcdev)
{
        u32 cntl;
        int count = 0;

        cntl = readl(pcdev->base_emma + PRP_CNTL);
        writel(PRP_CNTL_SWRST, pcdev->base_emma + PRP_CNTL);
        while (count++ < 100) {
                if (!(readl(pcdev->base_emma + PRP_CNTL) & PRP_CNTL_SWRST))
                        return 0;
                barrier();
                udelay(1);
        }

        return -ETIMEDOUT;
}

Keeping this in mind I infer that probably emma clocks have not been
properly enabled.
The problem is that in 'clk-imx27.c' the clocks for the emma are
defined as follows:

	clk_register_clkdev(clk[emma_ahb_gate], "ahb", "imx-emma");
	clk_register_clkdev(clk[emma_ipg_gate], "ipg", "imx-emma");

However, in the patch you submitted they are requested as shown:

	pcdev->clk_emma_ipg = devm_clk_get(&pdev->dev, "ipg");
	if (IS_ERR(pcdev->clk_emma_ipg)) {
		err = PTR_ERR(pcdev->clk_emma_ipg);
		goto exit_kfree;
	}

	pcdev->clk_emma_ahb = devm_clk_get(&pdev->dev, "ahb");
	if (IS_ERR(pcdev->clk_emma_ahb)) {
		err = PTR_ERR(pcdev->clk_emma_ahb);
		goto exit_kfree;
	}

Which means the dev_id used is "mx2-camera.0" instead of "imx-emma".
We cannot change the name in 'clk-imx27.c' to "mx2-camera.0" since
there is another device "mx2_emmaprp.c" which uses these clocks,
unless two different names can be associated with the same clock.
This can be done just by calling clk_register_clkdev again with the
second name and this is also the preferred way of associating the same
clock to different devices.

Sascha


-- 
Pengutronix e.K.                           |                             |
Industrial Linux Solutions                 | http://www.pengutronix.de/  |
Peiner Str. 6-8, 31137 Hildesheim, Germany | Phone: +49-5121-206917-0    |
Amtsgericht Hildesheim, HRA 2686           | Fax:   +49-5121-206917-5555 |
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help