drm: bridge: dw-hdmi: Add hook for resume
authorDouglas Anderson <dianders@chromium.org>
Tue, 4 Jun 2019 20:42:06 +0000 (13:42 -0700)
committerSean Paul <seanpaul@chromium.org>
Tue, 11 Jun 2019 17:52:28 +0000 (13:52 -0400)
commit99d02ed523dcaf5be0c6a778708df2779cfb3ed6
treef27957b552bdc64be3a637a0d4f0922fbaa1eb72
parentecf79e7ca1565e4d36482aa4d2950bc397313425
drm: bridge: dw-hdmi: Add hook for resume

On Rockchip rk3288-based Chromebooks when you do a suspend/resume
cycle:

1. You lose the ability to detect an HDMI device being plugged in.

2. If you're using the i2c bus built in to dw_hdmi then it stops
working.

Let's add a hook to the core dw-hdmi driver so that we can call it in
dw_hdmi-rockchip in the next commit.

NOTE: the exact set of steps I've done here in resume come from
looking at the normal dw_hdmi init sequence in upstream Linux plus the
sequence that we did in downstream Chrome OS 3.14.  Testing show that
it seems to work, but if an extra step is needed or something here is
not needed we could improve it.

As part of this change we'll refactor the hardware init bits of
dw-hdmi to happen all in one function and all at the same time.  Since
we need to init the interrupt mutes before we request the IRQ, this
means moving the hardware init earlier in the function, but there
should be no problems with that.  Also as part of this we now
unconditionally init the "i2c" parts of dw-hdmi, but again that ought
to be fine.

Signed-off-by: Douglas Anderson <dianders@chromium.org>
Reviewed-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
Signed-off-by: Sean Paul <seanpaul@chromium.org>
Link: https://patchwork.freedesktop.org/patch/msgid/20190604204207.168085-1-dianders@chromium.org
drivers/gpu/drm/bridge/synopsys/dw-hdmi.c
include/drm/bridge/dw_hdmi.h