Merge branch 'drm-next-4.17' of git://people.freedesktop.org/~agd5f/linux into drm...
authorDave Airlie <airlied@redhat.com>
Thu, 12 Apr 2018 23:25:21 +0000 (09:25 +1000)
committerDave Airlie <airlied@redhat.com>
Thu, 12 Apr 2018 23:25:21 +0000 (09:25 +1000)
- Add a PX quirk for radeon
- Fix flickering and stability issues with DC on some platforms
- Fix HDMI audio regression
- Few other misc DC and base driver fixes

* 'drm-next-4.17' of git://people.freedesktop.org/~agd5f/linux:
  Revert "drm/amd/display: disable CRTCs with NULL FB on their primary plane (V2)"
  Revert "drm/amd/display: fix dereferencing possible ERR_PTR()"
  drm/amd/display: Fix regamma not affecting full-intensity color values
  drm/amd/display: Fix FBC text console corruption
  drm/amd/display: Only register backlight device if embedded panel connected
  drm/amd/display: fix brightness level after resume from suspend
  drm/amd/display: HDMI has no sound after Panel power off/on
  drm/amdgpu: add MP1 and THM hw ip base reg offset
  drm/amdgpu: fix null pointer panic with direct fw loading on gpu reset
  drm/radeon: add PX quirk for Asus K73TK

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

index fb1c27f69e3a41c7fb79f97e202be99e52331ea0..3d662e6805eb0a6fa1b32471f3d542704877735c 100644 (file)
@@ -142,7 +142,7 @@ static enum dss_clk_source dpi_get_clk_src(struct dpi_data *dpi)
 }
 
 struct dpi_clk_calc_ctx {
-       struct dss_pll *pll;
+       struct dpi_data *dpi;
        unsigned int clkout_idx;
 
        /* inputs */
@@ -191,7 +191,7 @@ static bool dpi_calc_hsdiv_cb(int m_dispc, unsigned long dispc,
        ctx->pll_cinfo.mX[ctx->clkout_idx] = m_dispc;
        ctx->pll_cinfo.clkout[ctx->clkout_idx] = dispc;
 
-       return dispc_div_calc(ctx->pll->dss->dispc, dispc,
+       return dispc_div_calc(ctx->dpi->dss->dispc, dispc,
                              ctx->pck_min, ctx->pck_max,
                              dpi_calc_dispc_cb, ctx);
 }
@@ -208,8 +208,8 @@ static bool dpi_calc_pll_cb(int n, int m, unsigned long fint,
        ctx->pll_cinfo.fint = fint;
        ctx->pll_cinfo.clkdco = clkdco;
 
-       return dss_pll_hsdiv_calc_a(ctx->pll, clkdco,
-               ctx->pck_min, dss_get_max_fck_rate(ctx->pll->dss),
+       return dss_pll_hsdiv_calc_a(ctx->dpi->pll, clkdco,
+               ctx->pck_min, dss_get_max_fck_rate(ctx->dpi->dss),
                dpi_calc_hsdiv_cb, ctx);
 }
 
@@ -219,7 +219,7 @@ static bool dpi_calc_dss_cb(unsigned long fck, void *data)
 
        ctx->fck = fck;
 
-       return dispc_div_calc(ctx->pll->dss->dispc, fck,
+       return dispc_div_calc(ctx->dpi->dss->dispc, fck,
                              ctx->pck_min, ctx->pck_max,
                              dpi_calc_dispc_cb, ctx);
 }
@@ -230,7 +230,7 @@ static bool dpi_pll_clk_calc(struct dpi_data *dpi, unsigned long pck,
        unsigned long clkin;
 
        memset(ctx, 0, sizeof(*ctx));
-       ctx->pll = dpi->pll;
+       ctx->dpi = dpi;
        ctx->clkout_idx = dss_pll_get_clkout_idx_for_src(dpi->clk_src);
 
        clkin = clk_get_rate(dpi->pll->clkin);
@@ -244,7 +244,7 @@ static bool dpi_pll_clk_calc(struct dpi_data *dpi, unsigned long pck,
                pll_min = 0;
                pll_max = 0;
 
-               return dss_pll_calc_a(ctx->pll, clkin,
+               return dss_pll_calc_a(ctx->dpi->pll, clkin,
                                pll_min, pll_max,
                                dpi_calc_pll_cb, ctx);
        } else { /* DSS_PLL_TYPE_B */
@@ -275,6 +275,7 @@ static bool dpi_dss_clk_calc(struct dpi_data *dpi, unsigned long pck,
                bool ok;
 
                memset(ctx, 0, sizeof(*ctx));
+               ctx->dpi = dpi;
                if (pck > 1000 * i * i * i)
                        ctx->pck_min = max(pck - 1000 * i * i * i, 0lu);
                else