Skip to content

Commit 9b7c172

Browse files
jannaumarcan
authored andcommitted
mux: apple dp crossbar: FIFO_RD_UNK_EN seems to use 2 bits per dispext*
Signed-off-by: Janne Grunau <j@jannau.net>
1 parent db23375 commit 9b7c172

1 file changed

Lines changed: 5 additions & 2 deletions

File tree

drivers/mux/apple-display-crossbar.c

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -98,6 +98,7 @@ static int apple_dpxbar_set(struct mux_control *mux, int state)
9898
unsigned long flags;
9999
unsigned int mux_state;
100100
unsigned int dispext_bit;
101+
unsigned int dispext_bit_en;
101102
unsigned int atc_bit;
102103
bool enable;
103104
int ret = 0;
@@ -113,6 +114,7 @@ static int apple_dpxbar_set(struct mux_control *mux, int state)
113114
enable = false;
114115
} else if (state >= 0 && state < 9) {
115116
dispext_bit = 1 << state;
117+
dispext_bit_en = 1 << (2 * state);
116118
mux_state = state;
117119
enable = true;
118120
} else {
@@ -169,11 +171,12 @@ static int apple_dpxbar_set(struct mux_control *mux, int state)
169171

170172
if (dpxbar->selected_dispext[index] >= 0) {
171173
u32 prev_dispext_bit = 1 << dpxbar->selected_dispext[index];
174+
u32 prev_dispext_bit_en = 1 << (2 * dpxbar->selected_dispext[index]);
172175

173176
dpxbar_set32(dpxbar, FIFO_WR_N_CLK_EN, prev_dispext_bit);
174177
dpxbar_set32(dpxbar, FIFO_RD_N_CLK_EN, prev_dispext_bit);
175178
dpxbar_clear32(dpxbar, FIFO_WR_UNK_EN, prev_dispext_bit);
176-
dpxbar_clear32(dpxbar, FIFO_RD_UNK_EN, prev_dispext_bit);
179+
dpxbar_clear32(dpxbar, FIFO_RD_UNK_EN, prev_dispext_bit_en);
177180
dpxbar_clear32(dpxbar, FIFO_WR_DPTX_CLK_EN, prev_dispext_bit);
178181
dpxbar_clear32(dpxbar, FIFO_RD_PCLK1_EN, prev_dispext_bit);
179182
dpxbar_clear32(dpxbar, CROSSBAR_DISPEXT_EN, prev_dispext_bit);
@@ -188,7 +191,7 @@ static int apple_dpxbar_set(struct mux_control *mux, int state)
188191
dpxbar_clear32(dpxbar, FIFO_RD_N_CLK_EN, dispext_bit);
189192
dpxbar_clear32(dpxbar, OUT_N_CLK_EN, atc_bit);
190193
dpxbar_set32(dpxbar, FIFO_WR_UNK_EN, dispext_bit);
191-
dpxbar_set32(dpxbar, FIFO_RD_UNK_EN, dispext_bit);
194+
dpxbar_set32(dpxbar, FIFO_RD_UNK_EN, dispext_bit_en);
192195
dpxbar_set32(dpxbar, OUT_UNK_EN, atc_bit);
193196
dpxbar_set32(dpxbar, FIFO_WR_DPTX_CLK_EN, dispext_bit);
194197
dpxbar_set32(dpxbar, FIFO_RD_PCLK1_EN, dispext_bit);

0 commit comments

Comments
 (0)