b01062c1b264208c2a2d31adbdd2fb00cbd0e188
[oweals/openwrt.git] /
1 From c86b5da9e8c4ca0fedd6cdbfc70cdc5f61b5d711 Mon Sep 17 00:00:00 2001
2 From: Eric Anholt <eric@anholt.net>
3 Date: Tue, 31 Oct 2017 11:33:10 -0700
4 Subject: [PATCH 203/454] drm/vc4: Skip ULPS latching when we're in that ULPS
5  state already.
6
7 It seems that trying to go from unlatched to unlatched will time out
8 waiting for STOP, and we can just skip that.
9
10 Signed-off-by: Eric Anholt <eric@anholt.net>
11 ---
12  drivers/gpu/drm/vc4/vc4_dsi.c | 5 +++++
13  1 file changed, 5 insertions(+)
14
15 --- a/drivers/gpu/drm/vc4/vc4_dsi.c
16 +++ b/drivers/gpu/drm/vc4/vc4_dsi.c
17 @@ -753,6 +753,11 @@ static void vc4_dsi_ulps(struct vc4_dsi
18                          (dsi->lanes > 2 ? DSI1_STAT_PHY_D2_STOP : 0) |
19                          (dsi->lanes > 3 ? DSI1_STAT_PHY_D3_STOP : 0));
20         int ret;
21 +       bool ulps_currently_enabled = (DSI_PORT_READ(PHY_AFEC0) &
22 +                                      DSI_PORT_BIT(PHY_AFEC0_LATCH_ULPS));
23 +
24 +       if (ulps == ulps_currently_enabled)
25 +               return;
26  
27         DSI_PORT_WRITE(STAT, stat_ulps);
28         DSI_PORT_WRITE(PHYC, DSI_PORT_READ(PHYC) | phyc_ulps);