drm/amd/display: make FBC configurable option
authorShirish S <shirish.s@amd.com>
Tue, 26 Sep 2017 10:05:42 +0000 (15:35 +0530)
committerAlex Deucher <alexander.deucher@amd.com>
Sat, 21 Oct 2017 20:46:05 +0000 (16:46 -0400)
Currently FBC is guarded with ENABLE_FBC macro,
which needs to be manually enabled in Makefile.

This patch moves it to Kconfig so that there
wont be any need to additional patch to be carried
for enabling or disabling on every SoC.

Signed-off-by: Shirish S <shirish.s@amd.com>
Reviewed-by: Roman Li <Roman.Li@amd.com>
Acked-by: Harry Wentland <Harry.Wentland@amd.com>
Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
drivers/gpu/drm/amd/display/Kconfig
drivers/gpu/drm/amd/display/dc/core/dc.c
drivers/gpu/drm/amd/display/dc/dc.h
drivers/gpu/drm/amd/display/dc/dc_types.h
drivers/gpu/drm/amd/display/dc/dce110/dce110_compressor.c
drivers/gpu/drm/amd/display/dc/dce110/dce110_hw_sequencer.c
drivers/gpu/drm/amd/display/dc/dce110/dce110_resource.c

index 6d1086d0a277faa027950c7508863c56f971fc71..ec3285f655177a299ec7110b5dd4e581997d4226 100644 (file)
@@ -17,6 +17,16 @@ config DRM_AMD_DC_PRE_VEGA
          by default. This includes Polaris, Carrizo, Tonga, Bonaire,
          and Hawaii.
 
+config DRM_AMD_DC_FBC
+       bool "AMD FBC - Enable Frame Buffer Compression"
+       depends on DRM_AMD_DC
+       help
+         Choose this option if you want to use frame buffer compression
+         support.
+         This is a power optimisation feature, check its availability
+         on your hardware before enabling this option.
+
+
 config DRM_AMD_DC_DCN1_0
        bool "DCN 1.0 Raven family"
        depends on DRM_AMD_DC && X86
index 3439bc46a4a24f231bca593fbff3e80cf250033d..a5c72dbc2dccb3f2f6fdebecc2a5bd70b11596f9 100644 (file)
@@ -507,7 +507,7 @@ static bool construct(struct dc *dc,
 
        dc_version = resource_parse_asic_id(init_params->asic_id);
        dc->ctx->dce_version = dc_version;
-#ifdef ENABLE_FBC
+#if defined(CONFIG_DRM_AMD_DC_FBC)
        dc->ctx->fbc_gpu_addr = init_params->fbc_gpu_addr;
 #endif
        /* Resource should construct all asic specific resources.
index bf83459456a80124dda205acf7e2d56878ac8ddc..adadfad2bd51dccaf314c849dd7e3362e7879638 100644 (file)
@@ -258,7 +258,7 @@ struct dc {
        struct dm_pp_display_configuration prev_display_config;
 
        /* FBC compressor */
-#ifdef ENABLE_FBC
+#if defined(CONFIG_DRM_AMD_DC_FBC)
        struct compressor *fbc_compressor;
 #endif
 };
@@ -293,7 +293,7 @@ struct dc_init_data {
 
        struct dc_config flags;
        uint32_t log_mask;
-#ifdef ENABLE_FBC
+#if defined(CONFIG_DRM_AMD_DC_FBC)
        uint64_t fbc_gpu_addr;
 #endif
 };
index 4bd74fc6c782d89e7ba2bbd85c64b9714286cdb7..a8698e399111a984714f1709e86c202371a1511f 100644 (file)
@@ -92,7 +92,7 @@ struct dc_context {
        bool created_bios;
        struct gpio_service *gpio_service;
        struct i2caux *i2caux;
-#ifdef ENABLE_FBC
+#if defined(CONFIG_DRM_AMD_DC_FBC)
        uint64_t fbc_gpu_addr;
 #endif
 };
index 3872febb4f6b45ea750e6d876ed44cce1e90a0f6..6923662413cde99d3e8a880e370b09938acfe89e 100644 (file)
@@ -514,7 +514,7 @@ void dce110_compressor_construct(struct dce110_compressor *compressor,
        compressor->base.lpt_channels_num = 0;
        compressor->base.attached_inst = 0;
        compressor->base.is_enabled = false;
-#ifdef ENABLE_FBC
+#if defined(CONFIG_DRM_AMD_DC_FBC)
        compressor->base.funcs = &dce110_compressor_funcs;
 
 #endif
index a891e387ed7b534b0df5d52a548c37e94ae6c427..247e81806c4a4c7bb86fd0b03ce890906421a7ab 100644 (file)
@@ -34,7 +34,7 @@
 #include "dce/dce_hwseq.h"
 #include "gpio_service_interface.h"
 
-#ifdef ENABLE_FBC
+#if defined(CONFIG_DRM_AMD_DC_FBC)
 #include "dce110_compressor.h"
 #endif
 
@@ -1445,7 +1445,7 @@ static void power_down_all_hw_blocks(struct dc *dc)
 
        power_down_clock_sources(dc);
 
-#ifdef ENABLE_FBC
+#if defined(CONFIG_DRM_AMD_DC_FBC)
        if (dc->fbc_compressor)
                dc->fbc_compressor->funcs->disable_fbc(dc->fbc_compressor);
 #endif
@@ -1618,7 +1618,7 @@ static void set_static_screen_control(struct pipe_ctx **pipe_ctx,
        if (events->cursor_update)
                value |= 0x2;
 
-#ifdef ENABLE_FBC
+#if defined(CONFIG_DRM_AMD_DC_FBC)
        value |= 0x84;
 #endif
 
@@ -1748,7 +1748,7 @@ static void apply_min_clocks(
        }
 }
 
-#ifdef ENABLE_FBC
+#if defined(CONFIG_DRM_AMD_DC_FBC)
 
 /*
  *  Check if FBC can be enabled
@@ -1940,7 +1940,7 @@ enum dc_status dce110_apply_ctx_to_hw(
 
        set_safe_displaymarks(&context->res_ctx, dc->res_pool);
 
-#ifdef ENABLE_FBC
+#if defined(CONFIG_DRM_AMD_DC_FBC)
        if (dc->fbc_compressor)
                dc->fbc_compressor->funcs->disable_fbc(dc->fbc_compressor);
 #endif
@@ -2124,7 +2124,7 @@ enum dc_status dce110_apply_ctx_to_hw(
 
        dcb->funcs->set_scratch_critical_state(dcb, false);
 
-#ifdef ENABLE_FBC
+#if defined(CONFIG_DRM_AMD_DC_FBC)
        if (dc->fbc_compressor)
                enable_fbc(dc, context);
 
@@ -2533,7 +2533,7 @@ static void init_hw(struct dc *dc)
                abm->funcs->init_backlight(abm);
                abm->funcs->abm_init(abm);
        }
-#ifdef ENABLE_FBC
+#if defined(CONFIG_DRM_AMD_DC_FBC)
        if (dc->fbc_compressor)
                dc->fbc_compressor->funcs->power_up_fbc(dc->fbc_compressor);
 #endif
@@ -2781,7 +2781,7 @@ static void dce110_program_front_end_for_pipe(
 
        program_scaler(dc, pipe_ctx);
 
-#ifdef ENABLE_FBC
+#if defined(CONFIG_DRM_AMD_DC_FBC)
        if (dc->fbc_compressor && old_pipe->stream) {
                if (plane_state->tiling_info.gfx8.array_mode == DC_ARRAY_LINEAR_GENERAL)
                        dc->fbc_compressor->funcs->disable_fbc(dc->fbc_compressor);
index 8e4ec61d59a4b46cceb02e94e36059211d469e59..db96d2b47ff1627ab2240c213ff01a69d83ea4fb 100644 (file)
@@ -52,7 +52,7 @@
 #include "dce/dce_abm.h"
 #include "dce/dce_dmcu.h"
 
-#ifdef ENABLE_FBC
+#if defined(CONFIG_DRM_AMD_DC_FBC)
 #include "dce110/dce110_compressor.h"
 #endif
 
@@ -1279,7 +1279,7 @@ static bool construct(
                }
        }
 
-#ifdef ENABLE_FBC
+#if defined(CONFIG_DRM_AMD_DC_FBC)
        dc->fbc_compressor = dce110_compressor_create(ctx);