From: Douglas Anderson <dianders@chromium.org> Date: 2021-01-15 22:45:31
This series is to get the N116BCA-EA1 panel working. Most of the
patches are simple, but on hardware I have in front of me the panel
sometimes doesn't come up. I'm still working with the hardware
manufacturer to get to the bottom of it, but I've got it working with
retries. Adding the retries doesn't seem like an insane thing to do
and makes some of the error handling more robust, so I've gone ahead
and included those patches here. Hopefully they look OK.
Changes in v2:
- Set the "unprepared_time" so if we retry we give the proper delay.
- ("drm/panel-simple: Don't wait longer for HPD...") new for v2.
- ("drm/panel-simple: Retry if we timeout waiting for HPD") new for v2.
- ("dt-bindings: dt-bindings: display: simple: Add N116BCA-EA1") new for v2.
- ("drm/panel-simple: Add N116BCA-EA1") new for v2.
Douglas Anderson (5):
drm/panel-simple: Undo enable if HPD never asserts
drm/panel-simple: Don't wait longer for HPD than hpd_absent_delay
drm/panel-simple: Retry if we timeout waiting for HPD
dt-bindings: dt-bindings: display: simple: Add N116BCA-EA1
drm/panel-simple: Add N116BCA-EA1
.../bindings/display/panel/panel-simple.yaml | 2 +
drivers/gpu/drm/panel/panel-simple.c | 84 +++++++++++++++++--
2 files changed, 80 insertions(+), 6 deletions(-)
--
2.30.0.284.gd98b1dd5eaa7-goog
From: Doug Anderson <dianders@chromium.org> Date: 2021-01-15 23:00:28
Hi,
On Fri, Jan 15, 2021 at 2:44 PM Douglas Anderson [off-list ref] wrote:
Another simple eDP panel.
Signed-off-by: Douglas Anderson <dianders@chromium.org>
---
Changes in v2:
- ("dt-bindings: dt-bindings: display: simple: Add N116BCA-EA1") new for v2.
.../devicetree/bindings/display/panel/panel-simple.yaml | 2 ++
1 file changed, 2 insertions(+)
As per always I find my typos right after I hit send. ${SUBJECT} has
one too many copies of the "dt-bindings:" tag. I will assume this can
be fixed when it's applied. Please yell if you'd rather I spam a
repost. ;-)
-Doug
From: Doug Anderson <dianders@chromium.org> Date: 2021-03-05 15:43:43
Hi folks,
On Fri, Jan 15, 2021 at 2:44 PM Douglas Anderson [off-list ref] wrote:
This series is to get the N116BCA-EA1 panel working. Most of the
patches are simple, but on hardware I have in front of me the panel
sometimes doesn't come up. I'm still working with the hardware
manufacturer to get to the bottom of it, but I've got it working with
retries. Adding the retries doesn't seem like an insane thing to do
and makes some of the error handling more robust, so I've gone ahead
and included those patches here. Hopefully they look OK.
Changes in v2:
- Set the "unprepared_time" so if we retry we give the proper delay.
- ("drm/panel-simple: Don't wait longer for HPD...") new for v2.
- ("drm/panel-simple: Retry if we timeout waiting for HPD") new for v2.
- ("dt-bindings: dt-bindings: display: simple: Add N116BCA-EA1") new for v2.
- ("drm/panel-simple: Add N116BCA-EA1") new for v2.
Douglas Anderson (5):
drm/panel-simple: Undo enable if HPD never asserts
drm/panel-simple: Don't wait longer for HPD than hpd_absent_delay
drm/panel-simple: Retry if we timeout waiting for HPD
dt-bindings: dt-bindings: display: simple: Add N116BCA-EA1
drm/panel-simple: Add N116BCA-EA1
.../bindings/display/panel/panel-simple.yaml | 2 +
drivers/gpu/drm/panel/panel-simple.c | 84 +++++++++++++++++--
2 files changed, 80 insertions(+), 6 deletions(-)
While this isn't massively urgent, I'm hoping to get some confirmation
that it's still in someone's queue to look at. A quick "it's still in
my queue" would be much appreciated! :-) If I don't hear anything
then I guess next week I'll see if I can find other ways to poke folks
or find a different route to land this series. Thanks!
-Doug
On Fri, Jan 15, 2021 at 11:44 PM Douglas Anderson [off-list ref] wrote:
- ("drm/panel-simple: Don't wait longer for HPD...") new for v2.
- ("drm/panel-simple: Retry if we timeout waiting for HPD") new for v2.
I couldn't find these patches in my inbox but my concern would
be that at some point panel-simple will turn from simple into
panel-rube-goldberg-machine.
Given that the talk with the manufacturer may result
in even more quirks... maybe this should just be a separate
panel driver?
(I expect pushback because I see how handy it is, but
I am the guy writing new panel drivers all the time rather than
using simple.)
Yours,
Linus Walleij
From: Doug Anderson <dianders@chromium.org> Date: 2021-03-10 23:48:18
Hi,
On Wed, Mar 10, 2021 at 3:25 PM Linus Walleij [off-list ref] wrote:
On Fri, Jan 15, 2021 at 11:44 PM Douglas Anderson [off-list ref] wrote:
quoted
- ("drm/panel-simple: Don't wait longer for HPD...") new for v2.
- ("drm/panel-simple: Retry if we timeout waiting for HPD") new for v2.
I couldn't find these patches in my inbox
Doh! Sorry about that. I think get_maintainer tagged you only on the
patches that had the explicit "fixes" in them on something you were
involved in. I tend to rely on get_maintainer heavily unless I think
someone is particularly interested in the whole series. I will make
sure to CC you on the whole series if I post it again. In the meantime
the whole series is on lore:
https://lore.kernel.org/lkml/20210115224420.1635017-1-dianders@chromium.org/
but my concern would
be that at some point panel-simple will turn from simple into
panel-rube-goldberg-machine.
Yes, it's definitely something to watch out for. I guess you're
commenting on the general number of changes I've made to simple-panel
in the last year or two? I guess my comment on those:
* Many of the changes I made were around HPD handling and supporting a
GPIO (and also supporting the "hpd absent delay"). The fact that we
use a GPIO for HPD is actually an attribute of our board design,
though, so if I had forked panel drivers for each of the panels that
needed it then it would have required copying the code lots of places
(or implementing some code sharing). I was specifically asked to do
the HPD handling code at the panel layer.
* The other big change I made recently was around allowing for
relative rather than absolute timings (instead of a fixed delay at a
given stage adding a constraint that enough time had passed since a
previous event). When I proposed that the feedback I got back was that
it was a good improvement for all panels and something that had been
on a TODO list for a while.
...so while it feels like I keep piling crap onto simple-panel, I
_think_ they've been good general improvements that many people will
be able to benefit from and I don't think they've uglified things
lots.
Given that the talk with the manufacturer may result
in even more quirks... maybe this should just be a separate
panel driver?
I don't _think_ this will end up with more quirks. At least I sure
hope not. So far it seems like pure luck that I even noticed it
because only one other device in the whole batch produced had similar
problems. That leads me to believe that there could be other panels
with a similar need.
(I expect pushback because I see how handy it is, but
I am the guy writing new panel drivers all the time rather than
using simple.)
I guess what I'd say in summary is:
* If you object to the retries in simple panel, I still hope the rest
of the series can land.
* If somehow this panel gets out into real users hands and we find
that the retries are necessary and people still don't want the retries
in simple panel, I can fork a special panel driver just for it then.
-Doug
On Thu, Mar 11, 2021 at 12:47 AM Doug Anderson [off-list ref] wrote:
I guess what I'd say in summary is:
* If you object to the retries in simple panel, I still hope the rest
of the series can land.
* If somehow this panel gets out into real users hands and we find
that the retries are necessary and people still don't want the retries
in simple panel, I can fork a special panel driver just for it then.
I'm fine with the retries, if it is needed outside of the "simple" (hm)
panel driver then we can certainly factor it out as a helper or
library.
I looked at the patches at lore.
Reviewed-by: Linus Walleij <redacted>
I see also Stephen has reviewed some patches.
Tell me if you need me to also apply them to drm-misc.
(I guess yes?)
Yours,
Linus Walleij
From: Doug Anderson <dianders@chromium.org> Date: 2021-03-11 01:02:38
Hi,
On Wed, Mar 10, 2021 at 4:57 PM Linus Walleij [off-list ref] wrote:
On Thu, Mar 11, 2021 at 12:47 AM Doug Anderson [off-list ref] wrote:
quoted
I guess what I'd say in summary is:
* If you object to the retries in simple panel, I still hope the rest
of the series can land.
* If somehow this panel gets out into real users hands and we find
that the retries are necessary and people still don't want the retries
in simple panel, I can fork a special panel driver just for it then.
I'm fine with the retries, if it is needed outside of the "simple" (hm)
panel driver then we can certainly factor it out as a helper or
library.
I looked at the patches at lore.
Reviewed-by: Linus Walleij <redacted>
I see also Stephen has reviewed some patches.
Tell me if you need me to also apply them to drm-misc.
(I guess yes?)
Yes please. I was giving Sam time to do it but I haven't heard from
him for a while. Right before you responded I poked Thierry to see if
he was available but if you're willing/able to do it then I'm sure it
would save him the trouble.
If you'd like me to re-post the patches (CCing you) I can. Please let me know.
If you happen to feel in an applying mood one other patch to
simple-panel I think is OK to land is at:
https://lore.kernel.org/r/20210222081716.1.I1a45aece5d2ac6a2e73bbec50da2086e43e0862b@changeid
-Doug
On Fri, Jan 15, 2021 at 11:44 PM Douglas Anderson [off-list ref] wrote:
This series is to get the N116BCA-EA1 panel working. Most of the
patches are simple, but on hardware I have in front of me the panel
sometimes doesn't come up. I'm still working with the hardware
manufacturer to get to the bottom of it, but I've got it working with
retries. Adding the retries doesn't seem like an insane thing to do
and makes some of the error handling more robust, so I've gone ahead
and included those patches here. Hopefully they look OK.
Changes in v2:
This v2 version applied to drm-misc-next.
Yours,
Linus Walleij