On Mon, Sep 24, 2018 at 03:36:29PM +0200, Thierry Reding wrote: > On Mon, Sep 24, 2018 at 03:40:35PM +0300, Dmitry Osipenko wrote: > > On 9/24/18 3:32 PM, Jon Hunter wrote: > > > > > > On 24/09/18 12:59, Thierry Reding wrote: > > > > On Fri, Sep 21, 2018 at 02:42:41PM +0300, Dmitry Osipenko wrote: > > > > > Some of definitions in the code changed the meaning, unfortunately one > > > > > place missed the change. > > > > > > > > > > Fixes: 0751bb5c44fe ("drm/tegra: dpaux: Add pinctrl support") > > > > > Cc: <stable@xxxxxxxxxxxxxxx> # v4.8+ > > > > > Signed-off-by: Dmitry Osipenko <digetx@xxxxxxxxx> > > > > > --- > > > > > > > > > > I don't have HW to test DPAUX driver, apparently it has been broken for > > > > > 2+ years now. There is also a known issue on with the DPAUX driver that > > > > > prevents it from probing, that was discussed on the #tegra IRC. Thierry, > > > > > please take a closer look at this driver and test it thoroughly, it has > > > > > some obvious problems. > > > > > > > > > > drivers/gpu/drm/tegra/dpaux.c | 2 +- > > > > > 1 file changed, 1 insertion(+), 1 deletion(-) > > > > > > > > It's odd that you claim that the driver is always failing probe and at > > > > the same time you say that you don't have hardware to test the driver. > > > > =) > > > > > > > > I know for a fact that this driver does not usually fail because it is > > > > required on all recent chips (Tegra210 and later) to drive HDMI, which > > > > we support on all boards, so it is indeed thoroughly tested. > > > > > > > > > > > > > > diff --git a/drivers/gpu/drm/tegra/dpaux.c b/drivers/gpu/drm/tegra/dpaux.c > > > > > index d84e81ff36ad..ba5681fab73b 100644 > > > > > --- a/drivers/gpu/drm/tegra/dpaux.c > > > > > +++ b/drivers/gpu/drm/tegra/dpaux.c > > > > > @@ -521,7 +521,7 @@ static int tegra_dpaux_probe(struct platform_device *pdev) > > > > > * is no possibility to perform the I2C mode configuration in the > > > > > * HDMI path. > > > > > */ > > > > > - err = tegra_dpaux_pad_config(dpaux, DPAUX_HYBRID_PADCTL_MODE_I2C); > > > > > + err = tegra_dpaux_pad_config(dpaux, DPAUX_PADCTL_FUNC_I2C); > > > > > if (err < 0) > > > > > return err; > > > > > > > > If you look at the definitions of both DPAUX_HYBRID_PADCTL_MODE_I2C and > > > > DPAUX_PADCTL_FUNC_I2C, you'll see that both are actually the same, which > > > > is a good explanation for why the driver performs flawlessly. > > > > > > > > That said, your change is obviously correct. I've applied it, but since > > > > it doesn't actually fix anything, and doesn't change anything from a > > > > binary point of view, I've removed the Fixes: and Cc: stable tags. > > > > > > Did you change the subject for the patch because as you mentioned it > > > does not seem related to the change? > > > > > > Otherwise for the fix you can have my ... > > > > > > Acked-by: Jon Hunter <jonathanh@xxxxxxxxxx> > > > > > > The dpaux driver has been working fine for me on Tegra210 Smaug when > > > using the pins for I2C and I have not seen any probing problems. > > > > Guy with nickname "vlado" said on the IRC that the panel stopped to work on > > T124 chromebook since 4.16 kernel, reverting commit [0] helps. > > > > [0] https://git.kernel.org/pub/scm/linux/kernel/git/next/linux-next.git/commit/drivers/gpu/drm/drm_dp_helper.c?id=17ab7806de0c10d27cdbda8ef57ca680bdd24315 > > I'm pretty sure that's something that we fixed, but I'll have to check. Looks like we didn't fix that after all. Going through the patchwork log linked to from that commit message I thought there wasn't actually an issue with the code, but it turns out that I was wrong. The problem is that for HDMI we don't use DPAUX in I2C mode, so we don't need to look up the corresponding I2C controller and we just need the DPAUX driver to program the pins into I2C mode, then use a real I2C controller for communication. What's special about Nyan is that it uses eDP and for eDP we use the DPAUX for access to the DPCD *and* for DDC. eDP panels will look up the phandle to the I2C controller used for EDID (DDC) via the ddc-i2c-bus property. In order for that to work, we need to register the DPAUX I2C controller with its OF node set to that of the DPAUX device. Technically I don't think we need to query the EDID because we always have at least one hard-coded mode in panel-simple. However, if the panel has a slightly different mode from that, it'd still be good if the driver used that instead of the built-in mode. So I think we need to either bring back that patch or find some alternative way to make the panel aware of the DDC bus that it needs to talk to. Thierry
Attachment:
signature.asc
Description: PGP signature
_______________________________________________ dri-devel mailing list dri-devel@xxxxxxxxxxxxxxxxxxxxx https://lists.freedesktop.org/mailman/listinfo/dri-devel