mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
synced 2026-05-05 13:29:17 -04:00
drm/amd/display: Refactor use_lut() from dce110 to dce
use_lut() checks if the input surface's pixel format is compatible with a 256 entry LUT. This function can be used across different versions and not just dce11. Signed-off-by: Leo (Sunpeng) Li <sunpeng.li@amd.com> Reviewed-by: Tony Cheng <Tony.Cheng@amd.com> Acked-by: Harry Wentland <Harry.Wentland@amd.com> Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
This commit is contained in:
committed by
Alex Deucher
parent
afc8935ef0
commit
98489c026e
@@ -191,3 +191,15 @@ void dce_crtc_switch_to_clk_src(struct dce_hwseq *hws,
|
||||
clk_src->id, tg_inst);
|
||||
}
|
||||
}
|
||||
|
||||
/* Only use LUT for 8 bit formats */
|
||||
bool dce_use_lut(const struct core_surface *surface)
|
||||
{
|
||||
switch (surface->public.format) {
|
||||
case SURFACE_PIXEL_FORMAT_GRPH_ARGB8888:
|
||||
case SURFACE_PIXEL_FORMAT_GRPH_ABGR8888:
|
||||
return true;
|
||||
default:
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -256,4 +256,6 @@ void dce_clock_gating_power_up(struct dce_hwseq *hws,
|
||||
void dce_crtc_switch_to_clk_src(struct dce_hwseq *hws,
|
||||
struct clock_source *clk_src,
|
||||
unsigned int tg_inst);
|
||||
|
||||
bool dce_use_lut(const struct core_surface *surface);
|
||||
#endif /*__DCE_HWSEQ_H__*/
|
||||
|
||||
@@ -28,10 +28,10 @@
|
||||
#include "core_types.h"
|
||||
#include "core_status.h"
|
||||
#include "resource.h"
|
||||
#include "hw_sequencer.h"
|
||||
#include "dm_helpers.h"
|
||||
#include "dce110_hw_sequencer.h"
|
||||
#include "dce110_timing_generator.h"
|
||||
#include "dce/dce_hwseq.h"
|
||||
|
||||
#include "bios/bios_parser_helper.h"
|
||||
#include "timing_generator.h"
|
||||
@@ -233,19 +233,6 @@ static void build_prescale_params(struct ipp_prescale_params *prescale_params,
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
/* Only use LUT for 8 bit formats */
|
||||
static bool use_lut(const struct core_surface *surface)
|
||||
{
|
||||
switch (surface->public.format) {
|
||||
case SURFACE_PIXEL_FORMAT_GRPH_ARGB8888:
|
||||
case SURFACE_PIXEL_FORMAT_GRPH_ABGR8888:
|
||||
return true;
|
||||
default:
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
static bool dce110_set_input_transfer_func(
|
||||
struct pipe_ctx *pipe_ctx,
|
||||
const struct core_surface *surface)
|
||||
@@ -264,7 +251,7 @@ static bool dce110_set_input_transfer_func(
|
||||
build_prescale_params(&prescale_params, surface);
|
||||
ipp->funcs->ipp_program_prescale(ipp, &prescale_params);
|
||||
|
||||
if (surface->public.gamma_correction && use_lut(surface))
|
||||
if (surface->public.gamma_correction && dce_use_lut(surface))
|
||||
ipp->funcs->ipp_program_input_lut(ipp, surface->public.gamma_correction);
|
||||
|
||||
if (tf == NULL) {
|
||||
|
||||
Reference in New Issue
Block a user