drm/i915/intel_fb: Pull FB plane functions from skl_universal_plane.c
Move the FB plane related functions from skl_universal_plane.c to intel_fb.c. Signed-off-by: Imre Deak <imre.deak@intel.com> Reviewed-by: Ville Syrjälä <ville.syrjala@linux.intel.com> Link: https://patchwork.freedesktop.org/patch/msgid/20210325214808.2071517-8-imre.deak@intel.com
This commit is contained in:
parent
f837a61fb3
commit
5e4eb4e6e7
@ -26,3 +26,35 @@ bool is_gen12_ccs_cc_plane(const struct drm_framebuffer *fb, int plane)
|
||||
return fb->modifier == I915_FORMAT_MOD_Y_TILED_GEN12_RC_CCS_CC &&
|
||||
plane == 2;
|
||||
}
|
||||
|
||||
int main_to_ccs_plane(const struct drm_framebuffer *fb, int main_plane)
|
||||
{
|
||||
drm_WARN_ON(fb->dev, !is_ccs_modifier(fb->modifier) ||
|
||||
(main_plane && main_plane >= fb->format->num_planes / 2));
|
||||
|
||||
return fb->format->num_planes / 2 + main_plane;
|
||||
}
|
||||
|
||||
int skl_ccs_to_main_plane(const struct drm_framebuffer *fb, int ccs_plane)
|
||||
{
|
||||
drm_WARN_ON(fb->dev, !is_ccs_modifier(fb->modifier) ||
|
||||
ccs_plane < fb->format->num_planes / 2);
|
||||
|
||||
if (is_gen12_ccs_cc_plane(fb, ccs_plane))
|
||||
return 0;
|
||||
|
||||
return ccs_plane - fb->format->num_planes / 2;
|
||||
}
|
||||
|
||||
int skl_main_to_aux_plane(const struct drm_framebuffer *fb, int main_plane)
|
||||
{
|
||||
struct drm_i915_private *i915 = to_i915(fb->dev);
|
||||
|
||||
if (is_ccs_modifier(fb->modifier))
|
||||
return main_to_ccs_plane(fb, main_plane);
|
||||
else if (DISPLAY_VER(i915) < 11 &&
|
||||
intel_format_info_is_yuv_semiplanar(fb->format, fb->modifier))
|
||||
return 1;
|
||||
else
|
||||
return 0;
|
||||
}
|
||||
|
@ -14,4 +14,8 @@ bool is_ccs_plane(const struct drm_framebuffer *fb, int plane);
|
||||
bool is_gen12_ccs_plane(const struct drm_framebuffer *fb, int plane);
|
||||
bool is_gen12_ccs_cc_plane(const struct drm_framebuffer *fb, int plane);
|
||||
|
||||
int main_to_ccs_plane(const struct drm_framebuffer *fb, int main_plane);
|
||||
int skl_ccs_to_main_plane(const struct drm_framebuffer *fb, int ccs_plane);
|
||||
int skl_main_to_aux_plane(const struct drm_framebuffer *fb, int main_plane);
|
||||
|
||||
#endif /* __INTEL_FB_H__ */
|
||||
|
@ -915,40 +915,6 @@ static u32 glk_plane_color_ctl(const struct intel_crtc_state *crtc_state,
|
||||
return plane_color_ctl;
|
||||
}
|
||||
|
||||
static int
|
||||
main_to_ccs_plane(const struct drm_framebuffer *fb, int main_plane)
|
||||
{
|
||||
drm_WARN_ON(fb->dev, !is_ccs_modifier(fb->modifier) ||
|
||||
(main_plane && main_plane >= fb->format->num_planes / 2));
|
||||
|
||||
return fb->format->num_planes / 2 + main_plane;
|
||||
}
|
||||
|
||||
int skl_ccs_to_main_plane(const struct drm_framebuffer *fb, int ccs_plane)
|
||||
{
|
||||
drm_WARN_ON(fb->dev, !is_ccs_modifier(fb->modifier) ||
|
||||
ccs_plane < fb->format->num_planes / 2);
|
||||
|
||||
if (is_gen12_ccs_cc_plane(fb, ccs_plane))
|
||||
return 0;
|
||||
|
||||
return ccs_plane - fb->format->num_planes / 2;
|
||||
}
|
||||
|
||||
static int
|
||||
skl_main_to_aux_plane(const struct drm_framebuffer *fb, int main_plane)
|
||||
{
|
||||
struct drm_i915_private *i915 = to_i915(fb->dev);
|
||||
|
||||
if (is_ccs_modifier(fb->modifier))
|
||||
return main_to_ccs_plane(fb, main_plane);
|
||||
else if (DISPLAY_VER(i915) < 11 &&
|
||||
intel_format_info_is_yuv_semiplanar(fb->format, fb->modifier))
|
||||
return 1;
|
||||
else
|
||||
return 0;
|
||||
}
|
||||
|
||||
static void
|
||||
skl_program_plane(struct intel_plane *plane,
|
||||
const struct intel_crtc_state *crtc_state,
|
||||
|
@ -8,7 +8,6 @@
|
||||
|
||||
#include <linux/types.h>
|
||||
|
||||
struct drm_framebuffer;
|
||||
struct drm_i915_private;
|
||||
struct intel_crtc;
|
||||
struct intel_initial_plane_config;
|
||||
@ -26,7 +25,6 @@ void skl_get_initial_plane_config(struct intel_crtc *crtc,
|
||||
|
||||
int skl_format_to_fourcc(int format, bool rgb_order, bool alpha);
|
||||
|
||||
int skl_ccs_to_main_plane(const struct drm_framebuffer *fb, int ccs_plane);
|
||||
int skl_calc_main_surface_offset(const struct intel_plane_state *plane_state,
|
||||
int *x, int *y, u32 *offset);
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user