Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1752739AbdJABqt (ORCPT ); Sat, 30 Sep 2017 21:46:49 -0400 Received: from mail-pg0-f67.google.com ([74.125.83.67]:35674 "EHLO mail-pg0-f67.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1751313AbdJABqq (ORCPT ); Sat, 30 Sep 2017 21:46:46 -0400 X-Google-Smtp-Source: AOwi7QDQgzWq105VvGL+wl++hEissYSLVO54hVtinM2jAq8GIZK21c11mdwETMBhj7Vka2+3opwv+Q== Subject: Re: [RESEND RFC PATCH 0/7] sun8i H3 HDMI glue driver for DW HDMI To: =?UTF-8?Q?Jernej_=c5=a0krabec?= Cc: maxime.ripard@free-electrons.com, wens@csie.org, Laurent.pinchart@ideasonboard.com, hans.verkuil@cisco.com, narmstrong@baylibre.com, dri-devel@lists.freedesktop.org, devicetree@vger.kernel.org, linux-arm-kernel@lists.infradead.org, linux-kernel@vger.kernel.org, linux-clk@vger.kernel.org, icenowy@aosc.io, linux-sunxi@googlegroups.com, linux-media@vger.kernel.org References: <20170920200124.20457-1-jernej.skrabec@siol.net> <51c50157-6794-852b-f89d-647b9cf06ef2@ozlabs.ru> <34246001.lKHNgTVc0h@jernej-laptop> From: Alexey Kardashevskiy Message-ID: Date: Sun, 1 Oct 2017 12:46:38 +1100 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:52.0) Gecko/20100101 Thunderbird/52.2.1 MIME-Version: 1.0 In-Reply-To: <34246001.lKHNgTVc0h@jernej-laptop> Content-Type: text/plain; charset=utf-8 Content-Language: en-AU Content-Transfer-Encoding: 8bit Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Length: 5086 Lines: 124 On 01/10/17 04:56, Jernej Škrabec wrote: > Hi, > > Dne sobota, 30. september 2017 ob 13:58:03 CEST je Alexey Kardashevskiy > napisal(a): >> On 21/09/17 06:01, Jernej Skrabec wrote: >>> [added media mailing list due to CEC question] >>> >>> This patch series adds a HDMI glue driver for Allwinner H3 SoC. For now, >>> only video and CEC functionality is supported. Audio needs more tweaks. >>> >>> Series is based on the H3 DE2 patch series available on mailing list: >>> http://lists.infradead.org/pipermail/linux-arm-kernel/2017-August/522697.h >>> tml (ignore patches marked with [NOT FOR REVIEW NOW] tag) >>> >>> Patch 1 adds support for polling plug detection since custom PHY used here >>> doesn't support HPD interrupt. >>> >>> Patch 2 enables overflow workaround for v1.32a. This HDMI controller >>> exhibits same issues as HDMI controller used in iMX6 SoCs. >>> >>> Patch 3 adds CLK_SET_RATE_PARENT to hdmi clock. >>> >>> Patch 4 adds dt bindings documentation. >>> >>> Patch 5 adds actual H3 HDMI glue driver. >>> >>> Patch 6 and 7 add HDMI node to DT and enable it where needed. >>> >>> Allwinner used DW HDMI controller in a non standard way: >>> - register offsets obfuscation layer, which can fortunately be turned off >>> - register read lock, which has to be disabled by magic number >>> - custom PHY, which have to be initialized before DW HDMI controller >>> - non standard clocks >>> - no HPD interrupt >>> >>> Because of that, I have two questions: >>> - Since HPD have to be polled, is it enough just to enable poll mode? I'm >>> >>> mainly concerned about invalidating CEC address here. >>> >>> - PHY has to be initialized before DW HDMI controller to disable offset >>> >>> obfuscation and read lock among other things. This means that all clocks >>> have to be enabled in glue driver. This poses a problem, since when >>> using component model, dw-hdmi bridge uses drvdata for it's own private >>> data and prevents glue layer to pass a pointer to unbind function, >>> where clocks should be disabled. I noticed same issue in meson DW HDMI >>> glue driver, where clocks are also not disabled when unbind callback is >>> called. I noticed that when H3 SoC is shutdown, HDMI output is still >>> enabled and lastest image is shown on monitor until it is unplugged >>> from power supply. Is there any simple solution to this? >>> >>> Chen-Yu, >>> TL Lim was unable to obtain any answer from Allwinner about HDMI clocks. I >>> think it is safe to assume that divider in HDMI clock doesn't have any >>> effect. >>> >>> Branch based on linux-next from 1. September with integrated patches is >>> available here: >>> https://github.com/jernejsk/linux-1/tree/h3_hdmi_rfc >> >> Out of curiosity I tried this one and got: >> >> >> >> [ 0.071711] sun4i-usb-phy 1c19400.phy: Couldn't request ID GPIO >> [ 0.074809] sun8i-h3-pinctrl 1c20800.pinctrl: initialized sunXi PIO >> driver [ 0.076167] sun8i-h3-r-pinctrl 1f02c00.pinctrl: initialized sunXi >> PIO driver [ 0.148009] ------------[ cut here ]------------ >> [ 0.148035] WARNING: CPU: 0 PID: 1 at >> drivers/clk/sunxi-ng/ccu_common.c:41 ccu_nm_set_rate+0x1d0/0x274 >> [ 0.148046] CPU: 0 PID: 1 Comm: swapper/0 Not tainted >> 4.13.0-rc6-next-20170825-aik-aik #24 >> [ 0.148051] Hardware name: Allwinner sun8i Family >> [ 0.148082] [] (unwind_backtrace) from [] >> (show_stack+0x10/0x14) >> [ 0.148101] [] (show_stack) from [] >> (dump_stack+0x84/0x98) >> [ 0.148117] [] (dump_stack) from [] >> (__warn+0xe0/0xfc) [ 0.148132] [] (__warn) from [] >> (warn_slowpath_null+0x20/0x28) >> [ 0.148145] [] (warn_slowpath_null) from [] >> (ccu_nm_set_rate+0x1d0/0x274) >> [ 0.148161] [] (ccu_nm_set_rate) from [] >> (clk_change_rate+0x19c/0x250) >> [ 0.148175] [] (clk_change_rate) from [] >> (clk_core_set_rate_nolock+0x68/0xb0) >> [ 0.148187] [] (clk_core_set_rate_nolock) from [] >> (clk_set_rate+0x20/0x30) >> [ 0.148202] [] (clk_set_rate) from [] >> (of_clk_set_defaults+0x200/0x364) >> [ 0.148219] [] (of_clk_set_defaults) from [] >> (platform_drv_probe+0x18/0xb0) >> [ 0.148233] [] (platform_drv_probe) from [] >> (driver_probe_device+0x234/0x2e8) >> [ 0.148246] [] (driver_probe_device) from [] >> (__driver_attach+0xb8/0xbc) >> [ 0.148258] [] (__driver_attach) from [> Unable to handle kernel NULL pointer dereference at virtual address 00000008 >> > > Patch for that is already merged upstream and can be found here: > https://git.kernel.org/pub/scm/linux/kernel/git/next/linux-next.git/commit/ > drivers/clk/sunxi-ng?id=62d212bdb022deeb875f92f6e376c799e3f35eca Lovely, it works, thanks! >> and a bit later: >> >> [ 1.995572] Rebooting in 10 seconds.. > > I'm not sure about that one. Kernel config issue? Yup, I did not have CMA enabled. -- Alexey