Message ID | 512D2780.3020103@gmail.com (mailing list archive) |
---|---|
State | Not Applicable, archived |
Headers |
Received: from mail.tu-berlin.de ([130.149.7.33]) by www.linuxtv.org with esmtp (Exim 4.72) (envelope-from <linux-media-owner@vger.kernel.org>) id 1UARyb-0001rk-IL; Tue, 26 Feb 2013 22:22:17 +0100 X-tubIT-Incoming-IP: 209.132.180.67 Received: from vger.kernel.org ([209.132.180.67]) by mail.tu-berlin.de (exim-4.75/mailfrontend-3) with esmtp id 1UARya-0003GO-EL; Tue, 26 Feb 2013 22:22:17 +0100 Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1759959Ab3BZVWO (ORCPT <rfc822;mkrufky@linuxtv.org> + 1 other); Tue, 26 Feb 2013 16:22:14 -0500 Received: from mail-ee0-f48.google.com ([74.125.83.48]:48504 "EHLO mail-ee0-f48.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1759924Ab3BZVWN (ORCPT <rfc822;linux-media@vger.kernel.org>); Tue, 26 Feb 2013 16:22:13 -0500 Received: by mail-ee0-f48.google.com with SMTP id t10so2701547eei.7 for <multiple recipients>; Tue, 26 Feb 2013 13:22:11 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=x-received:message-id:date:from:user-agent:mime-version:to:cc :subject:references:in-reply-to:content-type :content-transfer-encoding; bh=7gmXvLXfwJVxSIGyz0orRehxIh7+KPRNEhl3eom9XGg=; b=QRb+TvCQcgF5GbPU8WWNWwe4rq11kfE7+3AyNl2W48gJINTlUFLi3MXcdt4Bi4ifDT ndaUxgE1AQ8U1CYZ3MjRl5OC59VwV0mN7ATk1WNcE4OVNiF+EtRC4wjSRFqbUx2tL0x5 XXcknrQ2105F413tvdQ+dbNX1K6XIp7aJbI0Y4OAIeWpyC1UGMLq7zzrf+6K3Ipl8iu0 Rx6Xs36bSTxlp7pCQCElKaakRvatPMm4Klczp27Vop/RBMs7eRGTbnMGHBD0TaUJUdxt eEgO/wMdVDTkmHlyX2/tElb4YvYt9RhElZRpEvs5cYWfj/9rBhrkG4JHG0/0ZzJN+dgY vwwA== X-Received: by 10.14.218.71 with SMTP id j47mr53311894eep.28.1361913731737; Tue, 26 Feb 2013 13:22:11 -0800 (PST) Received: from [192.168.1.110] (093105185086.warszawa.vectranet.pl. [93.105.185.86]) by mx.google.com with ESMTPS id a1sm3347209eep.2.2013.02.26.13.22.09 (version=TLSv1 cipher=ECDHE-RSA-RC4-SHA bits=128/128); Tue, 26 Feb 2013 13:22:10 -0800 (PST) Message-ID: <512D2780.3020103@gmail.com> Date: Tue, 26 Feb 2013 22:22:08 +0100 From: Sylwester Nawrocki <sylvester.nawrocki@gmail.com> User-Agent: Mozilla/5.0 (X11; Linux i686; rv:11.0) Gecko/20120412 Thunderbird/11.0.1 MIME-Version: 1.0 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) References: <51275DF7.4010600@gmail.com> In-Reply-To: <51275DF7.4010600@gmail.com> Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 7bit Sender: linux-media-owner@vger.kernel.org Precedence: bulk List-ID: <linux-media.vger.kernel.org> X-Mailing-List: linux-media@vger.kernel.org X-PMX-Version: 5.6.1.2065439, Antispam-Engine: 2.7.2.376379, Antispam-Data: 2013.2.26.211214 X-PMX-Spam: Gauge=IIIIIIIII, Probability=9%, Report=' FORGED_FROM_GMAIL 0.1, MULTIPLE_RCPTS 0.1, HTML_00_01 0.05, HTML_00_10 0.05, BODY_SIZE_5000_5999 0, BODY_SIZE_7000_LESS 0, DKIM_SIGNATURE 0, URI_ENDS_IN_HTML 0, __ANY_URI 0, __BOUNCE_CHALLENGE_SUBJ 0, __BOUNCE_NDR_SUBJ_EXEMPT 0, __CP_MEDIA_BODY 0, __CP_URI_IN_BODY 0, __CT 0, __CTE 0, __CT_TEXT_PLAIN 0, __FORWARDED_MSG 0, __FRAUD_WEBMAIL 0, __FRAUD_WEBMAIL_FROM 0, __FROM_GMAIL 0, __HAS_FROM 0, __HAS_MSGID 0, __HAS_X_MAILING_LIST 0, __INT_PROD_TV 0, __IN_REP_TO 0, __MIME_TEXT_ONLY 0, __MIME_VERSION 0, __MOZILLA_MSGID 0, __MOZILLA_USER_AGENT 0, __MULTIPLE_RCPTS_CC_X2 0, __PHISH_SPEAR_STRUCTURE_1 0, __SANE_MSGID 0, __TO_MALFORMED_2 0, __URI_NO_WWW 0, __URI_NS , __USER_AGENT 0, __YOUTUBE_RCVD 0' |
Commit Message
Sylwester Nawrocki
Feb. 26, 2013, 9:22 p.m. UTC
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<-------------------- 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. -- To unsubscribe from this list: send the line "unsubscribe linux-media" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
Comments
On 27 February 2013 02:52, Sylwester Nawrocki <sylvester.nawrocki@gmail.com> wrote: > 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. > 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. @Lonsn: Can you please test without these patches? Thanks, Inder > 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. -- To unsubscribe from this list: send the line "unsubscribe linux-media" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
On 02/27/2013 11:51 AM, Inderpal Singh wrote: > On 27 February 2013 02:52, Sylwester Nawrocki > <sylvester.nawrocki@gmail.com> wrote: >> 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. >> > > 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 -- To unsubscribe from this list: send the line "unsubscribe linux-media" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
? 2013/2/27 18:51, Inderpal Singh ??: > On 27 February 2013 02:52, Sylwester Nawrocki > <sylvester.nawrocki@gmail.com> wrote: >> 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. >> > > 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. > > @Lonsn: Can you please test without these patches? Inder, I have made the DMA clock change according to Sylwester's suggetstions and it works! Now kernel prints: ------------------------------------> io scheduler noop registered io scheduler deadline registered io scheduler cfq registered (default) s3c-fb s5pv210-fb: window 0: fb dma-pl330 dma-pl330.0: Loaded driver for PL330 DMAC-267056 dma-pl330 dma-pl330.0: DBUFF-8x4bytes Num_Chans-8 Num_Peri-32 Num_Events-32 dma-pl330 dma-pl330.1: Loaded driver for PL330 DMAC-267056 dma-pl330 dma-pl330.1: DBUFF-8x4bytes Num_Chans-8 Num_Peri-32 Num_Events-32 Serial: 8250/16550 driver, 4 ports, IRQ sharing disabled s5pv210-uart.0: ttySAC0 at MMIO 0xe2900000 (irq = 74) is a S3C6400/10 ------------------------------------------> > > Thanks, > Inder > >> 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. Yes, I have added fimc0,fimc1,fimc2,fimc_md and reserve MFC memory. But currently HDMI output doesn't work correctly yet, I would try to see the HDMI output first and then video decoder. Regards, -- To unsubscribe from this list: send the line "unsubscribe linux-media" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
On 27 February 2013 16:52, Sylwester Nawrocki <s.nawrocki@samsung.com> wrote: > On 02/27/2013 11:51 AM, Inderpal Singh wrote: >> On 27 February 2013 02:52, Sylwester Nawrocki >> <sylvester.nawrocki@gmail.com> wrote: >>> 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. >>> >> >> 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. > Ahh Yes, I had missed this point. So the changes you suggested needs to be done as confirmed by Lonsn. Thanks Lonsn for bringing this up :-) Regards, Inder >> @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 -- To unsubscribe from this list: send the line "unsubscribe linux-media" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
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(); }