Skip to content

Commit dece02f

Browse files
committed
Merge tag 'drm-misc-next-fixes-2018-04-11' of git://anongit.freedesktop.org/drm/drm-misc into drm-next
omap: Fix crash on AM4 EVM, and all OMAP2/3 boards (Tomi) Cc: Tomi Valkeinen <[email protected]> * tag 'drm-misc-next-fixes-2018-04-11' of git://anongit.freedesktop.org/drm/drm-misc: drm/omap: fix crash if there's no video PLL
2 parents 871e899 + 41613a1 commit dece02f

File tree

1 file changed

+8
-7
lines changed
  • drivers/gpu/drm/omapdrm/dss

1 file changed

+8
-7
lines changed

drivers/gpu/drm/omapdrm/dss/dpi.c

Lines changed: 8 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -142,7 +142,7 @@ static enum dss_clk_source dpi_get_clk_src(struct dpi_data *dpi)
142142
}
143143

144144
struct dpi_clk_calc_ctx {
145-
struct dss_pll *pll;
145+
struct dpi_data *dpi;
146146
unsigned int clkout_idx;
147147

148148
/* inputs */
@@ -191,7 +191,7 @@ static bool dpi_calc_hsdiv_cb(int m_dispc, unsigned long dispc,
191191
ctx->pll_cinfo.mX[ctx->clkout_idx] = m_dispc;
192192
ctx->pll_cinfo.clkout[ctx->clkout_idx] = dispc;
193193

194-
return dispc_div_calc(ctx->pll->dss->dispc, dispc,
194+
return dispc_div_calc(ctx->dpi->dss->dispc, dispc,
195195
ctx->pck_min, ctx->pck_max,
196196
dpi_calc_dispc_cb, ctx);
197197
}
@@ -208,8 +208,8 @@ static bool dpi_calc_pll_cb(int n, int m, unsigned long fint,
208208
ctx->pll_cinfo.fint = fint;
209209
ctx->pll_cinfo.clkdco = clkdco;
210210

211-
return dss_pll_hsdiv_calc_a(ctx->pll, clkdco,
212-
ctx->pck_min, dss_get_max_fck_rate(ctx->pll->dss),
211+
return dss_pll_hsdiv_calc_a(ctx->dpi->pll, clkdco,
212+
ctx->pck_min, dss_get_max_fck_rate(ctx->dpi->dss),
213213
dpi_calc_hsdiv_cb, ctx);
214214
}
215215

@@ -219,7 +219,7 @@ static bool dpi_calc_dss_cb(unsigned long fck, void *data)
219219

220220
ctx->fck = fck;
221221

222-
return dispc_div_calc(ctx->pll->dss->dispc, fck,
222+
return dispc_div_calc(ctx->dpi->dss->dispc, fck,
223223
ctx->pck_min, ctx->pck_max,
224224
dpi_calc_dispc_cb, ctx);
225225
}
@@ -230,7 +230,7 @@ static bool dpi_pll_clk_calc(struct dpi_data *dpi, unsigned long pck,
230230
unsigned long clkin;
231231

232232
memset(ctx, 0, sizeof(*ctx));
233-
ctx->pll = dpi->pll;
233+
ctx->dpi = dpi;
234234
ctx->clkout_idx = dss_pll_get_clkout_idx_for_src(dpi->clk_src);
235235

236236
clkin = clk_get_rate(dpi->pll->clkin);
@@ -244,7 +244,7 @@ static bool dpi_pll_clk_calc(struct dpi_data *dpi, unsigned long pck,
244244
pll_min = 0;
245245
pll_max = 0;
246246

247-
return dss_pll_calc_a(ctx->pll, clkin,
247+
return dss_pll_calc_a(ctx->dpi->pll, clkin,
248248
pll_min, pll_max,
249249
dpi_calc_pll_cb, ctx);
250250
} else { /* DSS_PLL_TYPE_B */
@@ -275,6 +275,7 @@ static bool dpi_dss_clk_calc(struct dpi_data *dpi, unsigned long pck,
275275
bool ok;
276276

277277
memset(ctx, 0, sizeof(*ctx));
278+
ctx->dpi = dpi;
278279
if (pck > 1000 * i * i * i)
279280
ctx->pck_min = max(pck - 1000 * i * i * i, 0lu);
280281
else

0 commit comments

Comments
 (0)