Thread (5 messages) 5 messages, 4 authors, 2013-02-27

SMDKV210 support issue in kernel 3.8 (dma-pl330 and HDMI failed)

From: s.nawrocki@samsung.com (Sylwester Nawrocki)
Date: 2013-02-27 11:22:23
Also in: linux-media, linux-samsung-soc

On 02/27/2013 11:51 AM, Inderpal Singh wrote:
On 27 February 2013 02:52, Sylwester Nawrocki
[off-list ref] wrote:
quoted
On 02/22/2013 01:00 PM, Lonsn wrote:
quoted
Hi,
I have tested the kernel 3.8 with a SMDKV210 like board. But I failed
with dma-pl330 and HDMI driver.
For dma-pl330, kernel print:
dma-pl330 dma-pl330.0: PERIPH_ID 0x0, PCELL_ID 0x0 !
dma-pl330: probe of dma-pl330.0 failed with error -22
dma-pl330 dma-pl330.1: PERIPH_ID 0x0, PCELL_ID 0x0 !
dma-pl330: probe of dma-pl330.1 failed with error -22

Maybe there is some issue with the PL330 DMA controller clocks and the
read values are all 0 because the clocks are disabled ?

It seems arch/arm/mach-s5pv210/clock.c might be missing "apb_pclk" clock
supply names, which I suspect may be required after commits:

commit 7c71b8eb268ee38235f7e924d943ea9d90e59469
Author: Inderpal Singh [off-list ref]
Date:   Fri Sep 7 12:14:48 2012 +0530

    DMA: PL330: Remove redundant runtime_suspend/resume functions

    The driver's  runtime_suspend/resume functions just disable/enable
    the clock which is already being managed at AMBA bus level
    runtime_suspend/resume functions.

    Hence, remove the driver's runtime_suspend/resume functions.

    Signed-off-by: Inderpal Singh [off-list ref]
    Tested-by: Chander Kashyap [off-list ref]
    Signed-off-by: Vinod Koul [off-list ref]

commit faf6fbc6f2ca3b34bf464a8bb079a998e571957c
Author: Inderpal Singh [off-list ref]
Date:   Fri Sep 7 12:14:47 2012 +0530

    DMA: PL330: Remove controller clock enable/disable

    The controller clock is being enabled/disabled in AMBA bus
    infrastructre in probe/remove functions. Hence, its not required
    at driver level probe/remove.

    Signed-off-by: Inderpal Singh [off-list ref]
    Tested-by: Chander Kashyap [off-list ref]
    Signed-off-by: Vinod Koul [off-list ref]

I have added people who made related changes at Cc, hopefully they
can provide some help in debugging this.
The mentioned patches just removed the redundant clock enable/disable
from the driver as clock is already being managed at amba bus level in
the same code path. As per my understanding the issue should come even
without these patches.
But were the clocks managed directly by the pl330 driver same as those
managed at amba bus level ? The first patch as above removed chunk
@@ -2887,24 +2884,17 @@ pl330_probe(struct amba_device *adev, const struct
amba_id *id)
                goto probe_err1;
        }

-       pdmac->clk = clk_get(&adev->dev, "dma");
-       if (IS_ERR(pdmac->clk)) {
-               dev_err(&adev->dev, "Cannot get operation clock.\n");
-               ret = -EINVAL;
-               goto probe_err2;
-       }
-

which suggest the driver was enabling directly "dma" clocks, defined at
S5PV210 platform level as:

        {
                .name           = "dma",
                .devname        = "dma-pl330.0",
                .parent         = &clk_hclk_psys.clk,
                .enable         = s5pv210_clk_ip0_ctrl,
                .ctrlbit        = (1 << 3),
        }, {
                .name           = "dma",
                .devname        = "dma-pl330.1",
                .parent         = &clk_hclk_psys.clk,
                .enable         = s5pv210_clk_ip0_ctrl,
                .ctrlbit        = (1 << 4),
        }, {

And amba bus was getting only dummy clocks behind "apb_pclk" clock
conn_id.
@Lonsn: Can you please test without these patches?
I suspect reverting only patch
DMA: PL330: Remove redundant runtime_suspend/resume functions
with PM_RUNTIME enabled might fix the issue.

--

Regards,
Sylwester
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help