mirror of https://lore.kernel.org/lkml/
 help / color / mirror / Atom feed
From: "Jernej Škrabec" <jernej.skrabec@siol.net>
To: Alexey Kardashevskiy <aik@ozlabs.ru>
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
Subject: Re: [RESEND RFC PATCH 0/7] sun8i H3 HDMI glue driver for DW HDMI
Date: Sat, 30 Sep 2017 19:56:19 +0200	[thread overview]
Message-ID: <34246001.lKHNgTVc0h@jernej-laptop> (raw)
In-Reply-To: <51c50157-6794-852b-f89d-647b9cf06ef2@ozlabs.ru>

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] [<c010de6c>] (unwind_backtrace) from [<c010b260>]
> (show_stack+0x10/0x14)
> [    0.148101] [<c010b260>] (show_stack) from [<c077a464>]
> (dump_stack+0x84/0x98)
> [    0.148117] [<c077a464>] (dump_stack) from [<c011abe0>]
> (__warn+0xe0/0xfc) [    0.148132] [<c011abe0>] (__warn) from [<c011acac>]
> (warn_slowpath_null+0x20/0x28)
> [    0.148145] [<c011acac>] (warn_slowpath_null) from [<c03d1888>]
> (ccu_nm_set_rate+0x1d0/0x274)
> [    0.148161] [<c03d1888>] (ccu_nm_set_rate) from [<c03c78b4>]
> (clk_change_rate+0x19c/0x250)
> [    0.148175] [<c03c78b4>] (clk_change_rate) from [<c03c7b7c>]
> (clk_core_set_rate_nolock+0x68/0xb0)
> [    0.148187] [<c03c7b7c>] (clk_core_set_rate_nolock) from [<c03c8134>]
> (clk_set_rate+0x20/0x30)
> [    0.148202] [<c03c8134>] (clk_set_rate) from [<c03cc560>]
> (of_clk_set_defaults+0x200/0x364)
> [    0.148219] [<c03cc560>] (of_clk_set_defaults) from [<c045427c>]
> (platform_drv_probe+0x18/0xb0)
> [    0.148233] [<c045427c>] (platform_drv_probe) from [<c0452efc>]
> (driver_probe_device+0x234/0x2e8)
> [    0.148246] [<c0452efc>] (driver_probe_device) from [<c0453068>]
> (__driver_attach+0xb8/0xbc)
> [    0.148258] [<c0453068>] (__driver_attach) from [<c0451414[    1.336154]
> 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

> and a bit later:
> 
> [    1.995572] Rebooting in 10 seconds..

I'm not sure about that one. Kernel config issue?

Regards,
Jernej

> 
> Orange PI PC, script.bin.OPI-PC_1080p60_hdmi.
> 
> What do I miss? Thanks.
> 
> 
> 
> --
> Alexey

  reply	other threads:[~2017-09-30 17:56 UTC|newest]

Thread overview: 15+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2017-09-20 20:01 Jernej Skrabec
2017-09-20 20:01 ` [RESEND RFC PATCH 1/7] drm: bridge: Enable polling hpd event in dw_hdmi Jernej Skrabec
2017-09-20 20:01 ` [RESEND RFC PATCH 2/7] drm: bridge: Enable workaround in dw_hdmi for v1.32a Jernej Skrabec
2017-09-20 20:01 ` [RESEND RFC PATCH 3/7] clk: sunxi: Add CLK_SET_RATE_PARENT flag for H3 HDMI clock Jernej Skrabec
2017-11-02  7:19   ` Stephen Boyd
2017-09-20 20:01 ` [RESEND RFC PATCH 4/7] dt-bindings: Document Allwinner DWC HDMI TX node Jernej Skrabec
2017-09-27 21:56   ` Rob Herring
2017-09-20 20:01 ` [RESEND RFC PATCH 5/7] drm: sun4i: Add a glue for the DesignWare HDMI controller in H3 Jernej Skrabec
2017-09-20 20:01 ` [RESEND RFC PATCH 6/7] ARM: sun8i: h3: Add DesignWare HDMI controller node Jernej Skrabec
2017-09-20 20:01 ` [RESEND RFC PATCH 7/7] ARM: sun8i: h3: Enable HDMI output on H3 boards Jernej Skrabec
2017-09-21  9:39 ` [RESEND RFC PATCH 0/7] sun8i H3 HDMI glue driver for DW HDMI Jose Abreu
2017-09-21  9:59   ` Hans Verkuil
2017-09-30 11:58 ` Alexey Kardashevskiy
2017-09-30 17:56   ` Jernej Škrabec [this message]
2017-10-01  1:46     ` Alexey Kardashevskiy

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=34246001.lKHNgTVc0h@jernej-laptop \
    --to=jernej.skrabec@siol.net \
    --cc=Laurent.pinchart@ideasonboard.com \
    --cc=aik@ozlabs.ru \
    --cc=devicetree@vger.kernel.org \
    --cc=dri-devel@lists.freedesktop.org \
    --cc=hans.verkuil@cisco.com \
    --cc=icenowy@aosc.io \
    --cc=linux-arm-kernel@lists.infradead.org \
    --cc=linux-clk@vger.kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-media@vger.kernel.org \
    --cc=linux-sunxi@googlegroups.com \
    --cc=maxime.ripard@free-electrons.com \
    --cc=narmstrong@baylibre.com \
    --cc=wens@csie.org \
    /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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox

all inboxes | Powered by JetHome®