From: Sylwester Nawrocki <sylvester.nawrocki@gmail.com>
To: Lonsn <lonsn2005@gmail.com>
Cc: linux-samsung-soc@vger.kernel.org, linux-media@vger.kernel.org,
Inderpal Singh <inderpal.singh@linaro.org>,
Boojin Kim <boojin.kim@samsung.com>,
linux-arm-kernel <linux-arm-kernel@lists.infradead.org>
Subject: Re: SMDKV210 support issue in kernel 3.8 (dma-pl330 and HDMI failed)
Date: Tue, 26 Feb 2013 22:22:08 +0100 [thread overview]
Message-ID: <512D2780.3020103@gmail.com> (raw)
In-Reply-To: <51275DF7.4010600@gmail.com>
On 02/22/2013 01:00 PM, Lonsn wrote:
> 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 <inderpal.singh@linaro.org>
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 <inderpal.singh@linaro.org>
Tested-by: Chander Kashyap <chander.kashyap@linaro.org>
Signed-off-by: Vinod Koul <vinod.koul@linux.intel.com>
commit faf6fbc6f2ca3b34bf464a8bb079a998e571957c
Author: Inderpal Singh <inderpal.singh@linaro.org>
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 <inderpal.singh@linaro.org>
Tested-by: Chander Kashyap <chander.kashyap@linaro.org>
Signed-off-by: Vinod Koul <vinod.koul@linux.intel.com>
I have added people who made related changes at Cc, hopefully they
can provide some help in debugging this.
Please try the following change:
8<--------------------
diff --git a/arch/arm/mach-s5pv210/clock.c b/arch/arm/mach-s5pv210/clock.c
index fcdf52d..87c7d3f 100644
--- a/arch/arm/mach-s5pv210/clock.c
+++ b/arch/arm/mach-s5pv210/clock.c
@@ -214,11 +214,6 @@ static struct clk clk_pcmcdclk2 = {
.name = "pcmcdclk",
};
-static struct clk dummy_apb_pclk = {
- .name = "apb_pclk",
- .id = -1,
-};
-
static struct clk *clkset_vpllsrc_list[] = {
[0] = &clk_fin_vpll,
[1] = &clk_sclk_hdmi27m,
@@ -1333,6 +1328,8 @@ static struct clk_lookup s5pv210_clk_lookup[] = {
CLKDEV_INIT(NULL, "spi_busclk0", &clk_p),
CLKDEV_INIT("s5pv210-spi.0", "spi_busclk1", &clk_sclk_spi0.clk),
CLKDEV_INIT("s5pv210-spi.1", "spi_busclk1", &clk_sclk_spi1.clk),
+ CLKDEV_INIT("dma-pl330.0", "apb_pclk", &init_clocks_off[0]),
+ CLKDEV_INIT("dma-pl330.1", "apb_pclk", &init_clocks_off[1]),
};
void __init s5pv210_register_clocks(void)
@@ -1361,6 +1358,5 @@ void __init s5pv210_register_clocks(void)
for (ptr = 0; ptr < ARRAY_SIZE(clk_cdev); ptr++)
s3c_disable_clocks(clk_cdev[ptr], 1);
- s3c24xx_register_clock(&dummy_apb_pclk);
s3c_pwmclk_init();
}
8<--------------------
If it works then we could make some cleaner patch.
> For HDMI driver,
> I have added the following HDMI related code to
> arch/arm/mach-s5pv210/mach-smdkv210.c:
> /* I2C module and id for HDMIPHY */
> static struct i2c_board_info hdmiphy_info = {
> I2C_BOARD_INFO("hdmiphy-s5pv210", 0x38),
> };
>
> i2c_register_board_info(2, smdkv210_i2c_devs2,
> ARRAY_SIZE(smdkv210_i2c_devs2));
>
> s5p_i2c_hdmiphy_set_platdata(NULL);
> s5p_hdmi_set_platdata(&hdmiphy_info, NULL, 0);
>
> s3c_ide_set_platdata(&smdkv210_ide_pdata);
>
> then kernel print:
> s5p-hdmi s5pv210-hdmi: hdmiphy adapter request failed
> s5p-hdmi s5pv210-hdmi: probe failed
> Samsung TV Mixer driver, (c) 2010-2011 Samsung Electronics Co., Ltd.
>
> s5p-mixer s5p-mixer: probe start
> s5p-mixer s5p-mixer: resources acquired
> s5p-mixer s5p-mixer: module s5p-hdmi provides no subdev!
> s5p-mixer s5p-mixer: module s5p-sdo provides no subdev!
> s5p-mixer s5p-mixer: failed to register any output
> s5p-mixer s5p-mixer: probe failed
>
> Can anybody help me on how to config the HDMI output function in linux
> kernel 3.8? I mainly want to do video hardware decode using s5pv210 MFC
> and then display with HDMI.
For video playback (video post-processing) you might also need at least one
FIMC device. Please refer to arch/arm/mach-goni.c for an example on how to
add related devices to your board. You don't need the camera stuff, just
add:
&s5p_device_mfc,
&s5p_device_mfc_l,
&s5p_device_mfc_r,
&s5p_device_fimc0,
&s5p_device_fimc1,
&s5p_device_fimc2,
&s5p_device_fimc_md,
to smdkv210_devices[] and related Kconfig entries to make it compile.
You'll need a function similar to goni_reserve() in your board file
to reserve memory for the video codec.
Hope that helps.
WARNING: multiple messages have this Message-ID (diff)
From: sylvester.nawrocki@gmail.com (Sylwester Nawrocki)
To: linux-arm-kernel@lists.infradead.org
Subject: SMDKV210 support issue in kernel 3.8 (dma-pl330 and HDMI failed)
Date: Tue, 26 Feb 2013 22:22:08 +0100 [thread overview]
Message-ID: <512D2780.3020103@gmail.com> (raw)
In-Reply-To: <51275DF7.4010600@gmail.com>
On 02/22/2013 01:00 PM, Lonsn wrote:
> 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 <inderpal.singh@linaro.org>
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 <inderpal.singh@linaro.org>
Tested-by: Chander Kashyap <chander.kashyap@linaro.org>
Signed-off-by: Vinod Koul <vinod.koul@linux.intel.com>
commit faf6fbc6f2ca3b34bf464a8bb079a998e571957c
Author: Inderpal Singh <inderpal.singh@linaro.org>
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 <inderpal.singh@linaro.org>
Tested-by: Chander Kashyap <chander.kashyap@linaro.org>
Signed-off-by: Vinod Koul <vinod.koul@linux.intel.com>
I have added people who made related changes at Cc, hopefully they
can provide some help in debugging this.
Please try the following change:
8<--------------------
diff --git a/arch/arm/mach-s5pv210/clock.c b/arch/arm/mach-s5pv210/clock.c
index fcdf52d..87c7d3f 100644
--- a/arch/arm/mach-s5pv210/clock.c
+++ b/arch/arm/mach-s5pv210/clock.c
@@ -214,11 +214,6 @@ static struct clk clk_pcmcdclk2 = {
.name = "pcmcdclk",
};
-static struct clk dummy_apb_pclk = {
- .name = "apb_pclk",
- .id = -1,
-};
-
static struct clk *clkset_vpllsrc_list[] = {
[0] = &clk_fin_vpll,
[1] = &clk_sclk_hdmi27m,
@@ -1333,6 +1328,8 @@ static struct clk_lookup s5pv210_clk_lookup[] = {
CLKDEV_INIT(NULL, "spi_busclk0", &clk_p),
CLKDEV_INIT("s5pv210-spi.0", "spi_busclk1", &clk_sclk_spi0.clk),
CLKDEV_INIT("s5pv210-spi.1", "spi_busclk1", &clk_sclk_spi1.clk),
+ CLKDEV_INIT("dma-pl330.0", "apb_pclk", &init_clocks_off[0]),
+ CLKDEV_INIT("dma-pl330.1", "apb_pclk", &init_clocks_off[1]),
};
void __init s5pv210_register_clocks(void)
@@ -1361,6 +1358,5 @@ void __init s5pv210_register_clocks(void)
for (ptr = 0; ptr < ARRAY_SIZE(clk_cdev); ptr++)
s3c_disable_clocks(clk_cdev[ptr], 1);
- s3c24xx_register_clock(&dummy_apb_pclk);
s3c_pwmclk_init();
}
8<--------------------
If it works then we could make some cleaner patch.
> For HDMI driver,
> I have added the following HDMI related code to
> arch/arm/mach-s5pv210/mach-smdkv210.c:
> /* I2C module and id for HDMIPHY */
> static struct i2c_board_info hdmiphy_info = {
> I2C_BOARD_INFO("hdmiphy-s5pv210", 0x38),
> };
>
> i2c_register_board_info(2, smdkv210_i2c_devs2,
> ARRAY_SIZE(smdkv210_i2c_devs2));
>
> s5p_i2c_hdmiphy_set_platdata(NULL);
> s5p_hdmi_set_platdata(&hdmiphy_info, NULL, 0);
>
> s3c_ide_set_platdata(&smdkv210_ide_pdata);
>
> then kernel print:
> s5p-hdmi s5pv210-hdmi: hdmiphy adapter request failed
> s5p-hdmi s5pv210-hdmi: probe failed
> Samsung TV Mixer driver, (c) 2010-2011 Samsung Electronics Co., Ltd.
>
> s5p-mixer s5p-mixer: probe start
> s5p-mixer s5p-mixer: resources acquired
> s5p-mixer s5p-mixer: module s5p-hdmi provides no subdev!
> s5p-mixer s5p-mixer: module s5p-sdo provides no subdev!
> s5p-mixer s5p-mixer: failed to register any output
> s5p-mixer s5p-mixer: probe failed
>
> Can anybody help me on how to config the HDMI output function in linux
> kernel 3.8? I mainly want to do video hardware decode using s5pv210 MFC
> and then display with HDMI.
For video playback (video post-processing) you might also need at least one
FIMC device. Please refer to arch/arm/mach-goni.c for an example on how to
add related devices to your board. You don't need the camera stuff, just
add:
&s5p_device_mfc,
&s5p_device_mfc_l,
&s5p_device_mfc_r,
&s5p_device_fimc0,
&s5p_device_fimc1,
&s5p_device_fimc2,
&s5p_device_fimc_md,
to smdkv210_devices[] and related Kconfig entries to make it compile.
You'll need a function similar to goni_reserve() in your board file
to reserve memory for the video codec.
Hope that helps.
next prev parent reply other threads:[~2013-02-26 21:22 UTC|newest]
Thread overview: 23+ messages / expand[flat|nested] mbox.gz Atom feed top
2013-02-22 12:00 SMDKV210 support issue in kernel 3.8 (dma-pl330 and HDMI failed) Lonsn
2013-02-26 12:59 ` Lonsn
2013-02-26 12:59 ` Lonsn
2013-02-26 20:07 ` Sylwester Nawrocki
2013-02-26 20:32 ` Sylwester Nawrocki
2013-02-27 15:13 ` Lonsn
2013-02-27 15:48 ` Lonsn
2013-02-27 15:48 ` Lonsn
2013-02-27 21:41 ` Sylwester Nawrocki
2013-02-28 12:28 ` Lonsn
2013-02-28 15:09 ` Lonsn
2013-02-28 15:09 ` Lonsn
2013-02-28 15:54 ` Sylwester Nawrocki
2013-02-26 21:22 ` Sylwester Nawrocki [this message]
2013-02-26 21:22 ` Sylwester Nawrocki
2013-02-27 10:51 ` Inderpal Singh
2013-02-27 10:51 ` Inderpal Singh
2013-02-27 11:22 ` Sylwester Nawrocki
2013-02-27 11:22 ` Sylwester Nawrocki
2013-02-27 15:32 ` Inderpal Singh
2013-02-27 15:32 ` Inderpal Singh
2013-02-27 15:22 ` Lonsn
2013-02-27 15:22 ` Lonsn
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=512D2780.3020103@gmail.com \
--to=sylvester.nawrocki@gmail.com \
--cc=boojin.kim@samsung.com \
--cc=inderpal.singh@linaro.org \
--cc=linux-arm-kernel@lists.infradead.org \
--cc=linux-media@vger.kernel.org \
--cc=linux-samsung-soc@vger.kernel.org \
--cc=lonsn2005@gmail.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.