Hi Mauro. Thanks for the detailed feedabck. Two comments in the following. Sam > > > > + ctx->dss_pri_clk = devm_clk_get(dev, "clk_edc0"); > > > + if (!ctx->dss_pri_clk) { > > > + DRM_ERROR("failed to parse dss_pri_clk\n"); > > > + return -ENODEV; > > > + } > ... > > > I had expected some of these could fail with a PROBE_DEFER. > > Consider to use the newly introduced dev_probe_err() > > Yeah, getting clock lines can fail. I was unable to find dev_probe_err(), > at least on Kernel 5.9-rc1. I saw this comment: > > https://lkml.org/lkml/2020/3/6/356 > > It sounds it didn't reach upstream. Anyway, I add error handling for the > the clk_get calls: > > ctx->dss_pri_clk = devm_clk_get(dev, "clk_edc0"); > ret = PTR_ERR_OR_ZERO(ctx->dss_pri_clk); > if (ret == -EPROBE_DEFER) { > return ret; > } else if (ret) { > DRM_ERROR("failed to parse dss_pri_clk: %d\n", ret); > return ret; > } > > This should be able to detect deferred probe, plus to warn > about other errors. I got the name wrong. It is named dev_err_probe(), and was introduced in -rc1. > > Can the panel stuff be moved out and utilise drm_panel? > > I saw the code at drm_panel. The real issue here is that I can't > test anything related to panel support, as I lack any hardware > for testing. So, there's a high chance I may end breaking > something while trying to do that. I will try to take a look again when you post next revision. Maybe we should update it and risk that is not works, so whenever someone try to fix it they do so on top of an up-to-date implmentation. Lets se and decide later. Sam