Commit 8305494e authored by Ville Syrjälä's avatar Ville Syrjälä

drm/i915: Eliminate the ugly 'fb?:' constructs from the ilk/skl wm code

Don't access plane_state->fb until we know the plane to be visible.
It it's visible, it will have an fb, and thus we don't have to
consider the NULL fb case. Makes the code look nicer.

Cc: intel-gfx@lists.freedesktop.org
Signed-off-by: default avatarVille Syrjälä <ville.syrjala@linux.intel.com>
Link: http://patchwork.freedesktop.org/patch/msgid/1479498793-31021-25-git-send-email-ville.syrjala@linux.intel.comReviewed-by: default avatarDaniel Vetter <daniel.vetter@ffwll.ch>
parent bcb0b461
...@@ -1781,13 +1781,14 @@ static uint32_t ilk_compute_pri_wm(const struct intel_crtc_state *cstate, ...@@ -1781,13 +1781,14 @@ static uint32_t ilk_compute_pri_wm(const struct intel_crtc_state *cstate,
uint32_t mem_value, uint32_t mem_value,
bool is_lp) bool is_lp)
{ {
int cpp = pstate->base.fb ?
drm_format_plane_cpp(pstate->base.fb->pixel_format, 0) : 0;
uint32_t method1, method2; uint32_t method1, method2;
int cpp;
if (!cstate->base.active || !pstate->base.visible) if (!cstate->base.active || !pstate->base.visible)
return 0; return 0;
cpp = drm_format_plane_cpp(pstate->base.fb->pixel_format, 0);
method1 = ilk_wm_method1(ilk_pipe_pixel_rate(cstate), cpp, mem_value); method1 = ilk_wm_method1(ilk_pipe_pixel_rate(cstate), cpp, mem_value);
if (!is_lp) if (!is_lp)
...@@ -1809,13 +1810,14 @@ static uint32_t ilk_compute_spr_wm(const struct intel_crtc_state *cstate, ...@@ -1809,13 +1810,14 @@ static uint32_t ilk_compute_spr_wm(const struct intel_crtc_state *cstate,
const struct intel_plane_state *pstate, const struct intel_plane_state *pstate,
uint32_t mem_value) uint32_t mem_value)
{ {
int cpp = pstate->base.fb ?
drm_format_plane_cpp(pstate->base.fb->pixel_format, 0) : 0;
uint32_t method1, method2; uint32_t method1, method2;
int cpp;
if (!cstate->base.active || !pstate->base.visible) if (!cstate->base.active || !pstate->base.visible)
return 0; return 0;
cpp = drm_format_plane_cpp(pstate->base.fb->pixel_format, 0);
method1 = ilk_wm_method1(ilk_pipe_pixel_rate(cstate), cpp, mem_value); method1 = ilk_wm_method1(ilk_pipe_pixel_rate(cstate), cpp, mem_value);
method2 = ilk_wm_method2(ilk_pipe_pixel_rate(cstate), method2 = ilk_wm_method2(ilk_pipe_pixel_rate(cstate),
cstate->base.adjusted_mode.crtc_htotal, cstate->base.adjusted_mode.crtc_htotal,
...@@ -1853,12 +1855,13 @@ static uint32_t ilk_compute_fbc_wm(const struct intel_crtc_state *cstate, ...@@ -1853,12 +1855,13 @@ static uint32_t ilk_compute_fbc_wm(const struct intel_crtc_state *cstate,
const struct intel_plane_state *pstate, const struct intel_plane_state *pstate,
uint32_t pri_val) uint32_t pri_val)
{ {
int cpp = pstate->base.fb ? int cpp;
drm_format_plane_cpp(pstate->base.fb->pixel_format, 0) : 0;
if (!cstate->base.active || !pstate->base.visible) if (!cstate->base.active || !pstate->base.visible)
return 0; return 0;
cpp = drm_format_plane_cpp(pstate->base.fb->pixel_format, 0);
return ilk_wm_fbc(pri_val, drm_rect_width(&pstate->base.dst), cpp); return ilk_wm_fbc(pri_val, drm_rect_width(&pstate->base.dst), cpp);
} }
...@@ -3229,13 +3232,17 @@ skl_plane_relative_data_rate(const struct intel_crtc_state *cstate, ...@@ -3229,13 +3232,17 @@ skl_plane_relative_data_rate(const struct intel_crtc_state *cstate,
int y) int y)
{ {
struct intel_plane_state *intel_pstate = to_intel_plane_state(pstate); struct intel_plane_state *intel_pstate = to_intel_plane_state(pstate);
struct drm_framebuffer *fb = pstate->fb;
uint32_t down_scale_amount, data_rate; uint32_t down_scale_amount, data_rate;
uint32_t width = 0, height = 0; uint32_t width = 0, height = 0;
unsigned format = fb ? fb->pixel_format : DRM_FORMAT_XRGB8888; struct drm_framebuffer *fb;
u32 format;
if (!intel_pstate->base.visible) if (!intel_pstate->base.visible)
return 0; return 0;
fb = pstate->fb;
format = fb->pixel_format;
if (pstate->plane->type == DRM_PLANE_TYPE_CURSOR) if (pstate->plane->type == DRM_PLANE_TYPE_CURSOR)
return 0; return 0;
if (y && format != DRM_FORMAT_NV12) if (y && format != DRM_FORMAT_NV12)
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment