From patchwork Tue Feb 26 21:22:08 2013 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Sylwester Nawrocki X-Patchwork-Id: 2187531 Return-Path: X-Original-To: patchwork-linux-arm@patchwork.kernel.org Delivered-To: patchwork-process-083081@patchwork2.kernel.org Received: from merlin.infradead.org (merlin.infradead.org [205.233.59.134]) by patchwork2.kernel.org (Postfix) with ESMTP id 35315DF215 for ; Tue, 26 Feb 2013 21:26:37 +0000 (UTC) Received: from localhost ([::1] helo=merlin.infradead.org) by merlin.infradead.org with esmtp (Exim 4.76 #1 (Red Hat Linux)) id 1UARyb-0005OJ-04; Tue, 26 Feb 2013 21:22:17 +0000 Received: from mail-ee0-f43.google.com ([74.125.83.43]) by merlin.infradead.org with esmtps (Exim 4.76 #1 (Red Hat Linux)) id 1UARyY-0005Ns-2Z for linux-arm-kernel@lists.infradead.org; Tue, 26 Feb 2013 21:22:15 +0000 Received: by mail-ee0-f43.google.com with SMTP id c50so2818047eek.16 for ; 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 User-Agent: Mozilla/5.0 (X11; Linux i686; rv:11.0) Gecko/20120412 Thunderbird/11.0.1 MIME-Version: 1.0 To: Lonsn 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> X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20130226_162214_366776_4569D68E X-CRM114-Status: GOOD ( 21.53 ) X-Spam-Score: -2.7 (--) X-Spam-Report: SpamAssassin version 3.3.2 on merlin.infradead.org summary: Content analysis details: (-2.7 points) pts rule name description ---- ---------------------- -------------------------------------------------- 0.0 FREEMAIL_FROM Sender email is commonly abused enduser mail provider (sylvester.nawrocki[at]gmail.com) -0.7 RCVD_IN_DNSWL_LOW RBL: Sender listed at http://www.dnswl.org/, low trust [74.125.83.43 listed in list.dnswl.org] -0.0 SPF_PASS SPF: sender matches SPF record -1.9 BAYES_00 BODY: Bayes spam probability is 0 to 1% [score: 0.0000] -0.1 DKIM_VALID_AU Message has a valid DKIM or DK signature from author's domain 0.1 DKIM_SIGNED Message has a DKIM or DK signature, not necessarily valid -0.1 DKIM_VALID Message has at least one valid DKIM or DK signature Cc: Boojin Kim , linux-samsung-soc@vger.kernel.org, linux-arm-kernel , Inderpal Singh , linux-media@vger.kernel.org X-BeenThere: linux-arm-kernel@lists.infradead.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: linux-arm-kernel-bounces@lists.infradead.org Errors-To: linux-arm-kernel-bounces+patchwork-linux-arm=patchwork.kernel.org@lists.infradead.org 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 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 Tested-by: Chander Kashyap Signed-off-by: Vinod Koul commit faf6fbc6f2ca3b34bf464a8bb079a998e571957c Author: Inderpal Singh 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 Tested-by: Chander Kashyap Signed-off-by: Vinod Koul 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. 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(); }