diff options
Diffstat (limited to 'meta-amd-bsp/recipes-kernel/linux/linux-yocto-4.14.71/2385-drm-amd-display-make-a-bunch-of-stuff-in-amdgpu_dm.c.patch')
-rw-r--r-- | meta-amd-bsp/recipes-kernel/linux/linux-yocto-4.14.71/2385-drm-amd-display-make-a-bunch-of-stuff-in-amdgpu_dm.c.patch | 438 |
1 files changed, 438 insertions, 0 deletions
diff --git a/meta-amd-bsp/recipes-kernel/linux/linux-yocto-4.14.71/2385-drm-amd-display-make-a-bunch-of-stuff-in-amdgpu_dm.c.patch b/meta-amd-bsp/recipes-kernel/linux/linux-yocto-4.14.71/2385-drm-amd-display-make-a-bunch-of-stuff-in-amdgpu_dm.c.patch new file mode 100644 index 00000000..5acc54ea --- /dev/null +++ b/meta-amd-bsp/recipes-kernel/linux/linux-yocto-4.14.71/2385-drm-amd-display-make-a-bunch-of-stuff-in-amdgpu_dm.c.patch @@ -0,0 +1,438 @@ +From 25c8c55c6cb7591b5e91711b67dfb1c3c1aed8fb Mon Sep 17 00:00:00 2001 +From: Alex Deucher <alexander.deucher@amd.com> +Date: Tue, 10 Oct 2017 17:51:02 -0400 +Subject: [PATCH 2385/4131] drm/amd/display: make a bunch of stuff in + amdgpu_dm.c static + +Not used outside of that file. + +Reviewed-by: Harry Wentland <harry.wentland@amd.com> +Signed-off-by: Alex Deucher <alexander.deucher@amd.com> +--- + drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c | 136 +++++++++++++++------- + drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.h | 59 ---------- + 2 files changed, 91 insertions(+), 104 deletions(-) + +diff --git a/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c b/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c +index 9a834e5..5d31ca8 100644 +--- a/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c ++++ b/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c +@@ -70,6 +70,50 @@ + + #include "i2caux_interface.h" + ++/* basic init/fini API */ ++static int amdgpu_dm_init(struct amdgpu_device *adev); ++static void amdgpu_dm_fini(struct amdgpu_device *adev); ++ ++/* initializes drm_device display related structures, based on the information ++ * provided by DAL. The drm strcutures are: drm_crtc, drm_connector, ++ * drm_encoder, drm_mode_config ++ * ++ * Returns 0 on success ++ */ ++static int amdgpu_dm_initialize_drm_device(struct amdgpu_device *adev); ++/* removes and deallocates the drm structures, created by the above function */ ++static void amdgpu_dm_destroy_drm_device(struct amdgpu_display_manager *dm); ++ ++static void ++amdgpu_dm_update_connector_after_detect(struct amdgpu_dm_connector *aconnector); ++ ++static int amdgpu_dm_plane_init(struct amdgpu_display_manager *dm, ++ struct amdgpu_plane *aplane, ++ unsigned long possible_crtcs); ++static int amdgpu_dm_crtc_init(struct amdgpu_display_manager *dm, ++ struct drm_plane *plane, ++ uint32_t link_index); ++static int amdgpu_dm_connector_init(struct amdgpu_display_manager *dm, ++ struct amdgpu_dm_connector *amdgpu_dm_connector, ++ uint32_t link_index, ++ struct amdgpu_encoder *amdgpu_encoder); ++static int amdgpu_dm_encoder_init(struct drm_device *dev, ++ struct amdgpu_encoder *aencoder, ++ uint32_t link_index); ++ ++static int amdgpu_dm_connector_get_modes(struct drm_connector *connector); ++ ++static int amdgpu_dm_atomic_commit(struct drm_device *dev, ++ struct drm_atomic_state *state, ++ bool nonblock); ++ ++static void amdgpu_dm_atomic_commit_tail(struct drm_atomic_state *state); ++ ++static int amdgpu_dm_atomic_check(struct drm_device *dev, ++ struct drm_atomic_state *state); ++ ++ ++ + + static enum drm_plane_type dm_plane_type_default[AMDGPU_MAX_PLANES] = { + DRM_PLANE_TYPE_PRIMARY, +@@ -306,7 +350,7 @@ static void hotplug_notify_work_func(struct work_struct *work) + /* TODO: Dynamic allocation */ + #define AMDGPU_FBC_SIZE (3840 * 2160 * 4) + +-void amdgpu_dm_initialize_fbc(struct amdgpu_device *adev) ++static void amdgpu_dm_initialize_fbc(struct amdgpu_device *adev) + { + int r; + struct dm_comressor_info *compressor = &adev->dm.compressor; +@@ -328,7 +372,7 @@ void amdgpu_dm_initialize_fbc(struct amdgpu_device *adev) + * + * Returns 0 on success + */ +-int amdgpu_dm_init(struct amdgpu_device *adev) ++static int amdgpu_dm_init(struct amdgpu_device *adev) + { + struct dc_init_data init_data; + adev->dm.ddev = adev->ddev; +@@ -425,7 +469,7 @@ int amdgpu_dm_init(struct amdgpu_device *adev) + return -1; + } + +-void amdgpu_dm_fini(struct amdgpu_device *adev) ++static void amdgpu_dm_fini(struct amdgpu_device *adev) + { + amdgpu_dm_destroy_drm_device(&adev->dm); + /* +@@ -449,7 +493,7 @@ void amdgpu_dm_fini(struct amdgpu_device *adev) + } + + /* moved from amdgpu_dm_kms.c */ +-void amdgpu_dm_destroy() ++static void amdgpu_dm_destroy(void) + { + } + +@@ -687,7 +731,7 @@ const struct amdgpu_ip_block_version dm_ip_block = + }; + + +-struct drm_atomic_state * ++static struct drm_atomic_state * + dm_atomic_state_alloc(struct drm_device *dev) + { + struct dm_atomic_state *state = kzalloc(sizeof(*state), GFP_KERNEL); +@@ -755,7 +799,7 @@ static struct drm_mode_config_helper_funcs amdgpu_dm_mode_config_helperfuncs = { + .atomic_commit_tail = amdgpu_dm_atomic_commit_tail + }; + +-void ++static void + amdgpu_dm_update_connector_after_detect(struct amdgpu_dm_connector *aconnector) + { + struct drm_connector *connector = &aconnector->base; +@@ -1266,7 +1310,8 @@ static const struct backlight_ops amdgpu_dm_backlight_ops = { + .update_status = amdgpu_dm_backlight_update_status, + }; + +-void amdgpu_dm_register_backlight_device(struct amdgpu_display_manager *dm) ++static void ++amdgpu_dm_register_backlight_device(struct amdgpu_display_manager *dm) + { + char bl_name[16]; + #if LINUX_VERSION_CODE >= KERNEL_VERSION(2, 6, 34) +@@ -1307,7 +1352,7 @@ void amdgpu_dm_register_backlight_device(struct amdgpu_display_manager *dm) + * + * Returns 0 on success + */ +-int amdgpu_dm_initialize_drm_device(struct amdgpu_device *adev) ++static int amdgpu_dm_initialize_drm_device(struct amdgpu_device *adev) + { + struct amdgpu_display_manager *dm = &adev->dm; + uint32_t i; +@@ -1440,7 +1485,7 @@ int amdgpu_dm_initialize_drm_device(struct amdgpu_device *adev) + return -1; + } + +-void amdgpu_dm_destroy_drm_device(struct amdgpu_display_manager *dm) ++static void amdgpu_dm_destroy_drm_device(struct amdgpu_display_manager *dm) + { + drm_mode_config_cleanup(dm->ddev); + return; +@@ -1648,13 +1693,13 @@ static int dm_early_init(void *handle) + return 0; + } + +-bool amdgpu_dm_acquire_dal_lock(struct amdgpu_display_manager *dm) ++static bool amdgpu_dm_acquire_dal_lock(struct amdgpu_display_manager *dm) + { + /* TODO */ + return true; + } + +-bool amdgpu_dm_release_dal_lock(struct amdgpu_display_manager *dm) ++static bool amdgpu_dm_release_dal_lock(struct amdgpu_display_manager *dm) + { + /* TODO */ + return true; +@@ -1694,7 +1739,7 @@ static bool modereset_required(struct drm_crtc_state *crtc_state) + return !crtc_state->enable || !crtc_state->active; + } + +-void amdgpu_dm_encoder_destroy(struct drm_encoder *encoder) ++static void amdgpu_dm_encoder_destroy(struct drm_encoder *encoder) + { + drm_encoder_cleanup(encoder); + kfree(encoder); +@@ -2010,7 +2055,7 @@ static int fill_plane_attributes(struct amdgpu_device *adev, + + /*****************************************************************************/ + +-struct amdgpu_dm_connector * ++static struct amdgpu_dm_connector * + aconnector_from_drm_crtc_id(const struct drm_crtc *crtc) + { + struct drm_device *dev = crtc->dev; +@@ -2413,7 +2458,7 @@ create_stream_for_sink(struct amdgpu_dm_connector *aconnector, + return stream; + } + +-void amdgpu_dm_crtc_destroy(struct drm_crtc *crtc) ++static void amdgpu_dm_crtc_destroy(struct drm_crtc *crtc) + { + drm_crtc_cleanup(crtc); + kfree(crtc); +@@ -2769,7 +2814,7 @@ int amdgpu_dm_connector_atomic_get_property(struct drm_connector *connector, + return ret; + } + +-void amdgpu_dm_connector_destroy(struct drm_connector *connector) ++static void amdgpu_dm_connector_destroy(struct drm_connector *connector) + { + struct amdgpu_dm_connector *aconnector = to_amdgpu_dm_connector(connector); + const struct dc_link *link = aconnector->dc_link; +@@ -3217,9 +3262,10 @@ static void dm_plane_helper_cleanup_fb(struct drm_plane *plane, + amdgpu_bo_unref(&rbo); + } + +-int dm_create_validation_set_for_connector(struct drm_connector *connector, +- struct drm_display_mode *mode, +- struct dc_validation_set *val_set) ++static int ++dm_create_validation_set_for_connector(struct drm_connector *connector, ++ struct drm_display_mode *mode, ++ struct dc_validation_set *val_set) + { + int result = MODE_ERROR; + struct dc_sink *dc_sink = +@@ -3256,8 +3302,8 @@ int dm_create_validation_set_for_connector(struct drm_connector *connector, + return MODE_OK; + } + +-int dm_plane_atomic_check(struct drm_plane *plane, +- struct drm_plane_state *state) ++static int dm_plane_atomic_check(struct drm_plane *plane, ++ struct drm_plane_state *state) + { + struct amdgpu_device *adev = plane->dev->dev_private; + struct dc *dc = adev->dm.dc; +@@ -3304,9 +3350,9 @@ static const u32 cursor_formats[] = { + DRM_FORMAT_ARGB8888 + }; + +-int amdgpu_dm_plane_init(struct amdgpu_display_manager *dm, +- struct amdgpu_plane *aplane, +- unsigned long possible_crtcs) ++static int amdgpu_dm_plane_init(struct amdgpu_display_manager *dm, ++ struct amdgpu_plane *aplane, ++ unsigned long possible_crtcs) + { + int res = -EPERM; + +@@ -3350,9 +3396,9 @@ int amdgpu_dm_plane_init(struct amdgpu_display_manager *dm, + return res; + } + +-int amdgpu_dm_crtc_init(struct amdgpu_display_manager *dm, +- struct drm_plane *plane, +- uint32_t crtc_index) ++static int amdgpu_dm_crtc_init(struct amdgpu_display_manager *dm, ++ struct drm_plane *plane, ++ uint32_t crtc_index) + { + struct amdgpu_crtc *acrtc = NULL; + struct amdgpu_plane *cursor_plane; +@@ -3557,7 +3603,7 @@ static void amdgpu_dm_connector_ddc_get_modes(struct drm_connector *connector, + amdgpu_dm_connector->num_modes = 0; + } + +-int amdgpu_dm_connector_get_modes(struct drm_connector *connector) ++static int amdgpu_dm_connector_get_modes(struct drm_connector *connector) + { + const struct drm_connector_helper_funcs *helper = + connector->helper_private; +@@ -3632,8 +3678,8 @@ void amdgpu_dm_connector_init_helper(struct amdgpu_display_manager *dm, + } + } + +-int amdgpu_dm_i2c_xfer(struct i2c_adapter *i2c_adap, +- struct i2c_msg *msgs, int num) ++static int amdgpu_dm_i2c_xfer(struct i2c_adapter *i2c_adap, ++ struct i2c_msg *msgs, int num) + { + struct amdgpu_i2c_adapter *i2c = i2c_get_adapdata(i2c_adap); + struct ddc_service *ddc_service = i2c->ddc_service; +@@ -3667,7 +3713,7 @@ int amdgpu_dm_i2c_xfer(struct i2c_adapter *i2c_adap, + return result; + } + +-u32 amdgpu_dm_i2c_func(struct i2c_adapter *adap) ++static u32 amdgpu_dm_i2c_func(struct i2c_adapter *adap) + { + return I2C_FUNC_I2C | I2C_FUNC_SMBUS_EMUL; + } +@@ -3700,10 +3746,10 @@ create_i2c(struct ddc_service *ddc_service, + /* Note: this function assumes that dc_link_detect() was called for the + * dc_link which will be represented by this aconnector. + */ +-int amdgpu_dm_connector_init(struct amdgpu_display_manager *dm, +- struct amdgpu_dm_connector *aconnector, +- uint32_t link_index, +- struct amdgpu_encoder *aencoder) ++static int amdgpu_dm_connector_init(struct amdgpu_display_manager *dm, ++ struct amdgpu_dm_connector *aconnector, ++ uint32_t link_index, ++ struct amdgpu_encoder *aencoder) + { + int res = 0; + int connector_type; +@@ -3806,9 +3852,9 @@ int amdgpu_dm_get_encoder_crtc_mask(struct amdgpu_device *adev) + } + } + +-int amdgpu_dm_encoder_init(struct drm_device *dev, +- struct amdgpu_encoder *aencoder, +- uint32_t link_index) ++static int amdgpu_dm_encoder_init(struct drm_device *dev, ++ struct amdgpu_encoder *aencoder, ++ uint32_t link_index) + { + struct amdgpu_device *adev = dev->dev_private; + +@@ -3889,8 +3935,8 @@ static void remove_stream(struct amdgpu_device *adev, + acrtc->enabled = false; + } + +-int get_cursor_position(struct drm_plane *plane, struct drm_crtc *crtc, +- struct dc_cursor_position *position) ++static int get_cursor_position(struct drm_plane *plane, struct drm_crtc *crtc, ++ struct dc_cursor_position *position) + { + struct amdgpu_crtc *amdgpu_crtc = amdgpu_crtc = to_amdgpu_crtc(crtc); + int x, y; +@@ -4208,9 +4254,9 @@ static void amdgpu_dm_commit_planes(struct drm_atomic_state *state, + } + + +-int amdgpu_dm_atomic_commit(struct drm_device *dev, +- struct drm_atomic_state *state, +- bool nonblock) ++static int amdgpu_dm_atomic_commit(struct drm_device *dev, ++ struct drm_atomic_state *state, ++ bool nonblock) + { + struct drm_crtc *crtc; + struct drm_crtc_state *new_state; +@@ -4237,7 +4283,7 @@ int amdgpu_dm_atomic_commit(struct drm_device *dev, + /*TODO Handle EINTR, reenable IRQ*/ + } + +-void amdgpu_dm_atomic_commit_tail(struct drm_atomic_state *state) ++static void amdgpu_dm_atomic_commit_tail(struct drm_atomic_state *state) + { + struct drm_device *dev = state->dev; + struct amdgpu_device *adev = dev->dev_private; +@@ -4898,8 +4944,8 @@ static int dm_update_planes_state(struct dc *dc, + return ret; + } + +-int amdgpu_dm_atomic_check(struct drm_device *dev, +- struct drm_atomic_state *state) ++static int amdgpu_dm_atomic_check(struct drm_device *dev, ++ struct drm_atomic_state *state) + { + int i; + int ret; +diff --git a/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.h b/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.h +index 7da60fa..5ae795c 100644 +--- a/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.h ++++ b/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.h +@@ -195,37 +195,8 @@ struct amdgpu_dm_connector { + + #define to_amdgpu_dm_connector(x) container_of(x, struct amdgpu_dm_connector, base) + +-/* basic init/fini API */ +-int amdgpu_dm_init(struct amdgpu_device *adev); +- +-void amdgpu_dm_fini(struct amdgpu_device *adev); +- +-void amdgpu_dm_destroy(void); +- +-/* initializes drm_device display related structures, based on the information +- * provided by DAL. The drm strcutures are: drm_crtc, drm_connector, +- * drm_encoder, drm_mode_config +- * +- * Returns 0 on success +- */ +-int amdgpu_dm_initialize_drm_device(struct amdgpu_device *adev); +- +-/* removes and deallocates the drm structures, created by the above function */ +-void amdgpu_dm_destroy_drm_device(struct amdgpu_display_manager *dm); +- +-/* Locking/Mutex */ +-bool amdgpu_dm_acquire_dal_lock(struct amdgpu_display_manager *dm); +- +-bool amdgpu_dm_release_dal_lock(struct amdgpu_display_manager *dm); +- +-/* Register "Backlight device" accessible by user-mode. */ +-void amdgpu_dm_register_backlight_device(struct amdgpu_display_manager *dm); +- + extern const struct amdgpu_ip_block_version dm_ip_block; + +-void +-amdgpu_dm_update_connector_after_detect(struct amdgpu_dm_connector *aconnector); +- + struct amdgpu_framebuffer; + struct amdgpu_display_manager; + struct dc_validation_set; +@@ -254,36 +225,6 @@ struct dm_atomic_state { + #define to_dm_atomic_state(x) container_of(x, struct dm_atomic_state, base) + + +-/*TODO Jodan Hersen use the one in amdgpu_dm*/ +-int amdgpu_dm_plane_init(struct amdgpu_display_manager *dm, +- struct amdgpu_plane *aplane, +- unsigned long possible_crtcs); +-int amdgpu_dm_crtc_init(struct amdgpu_display_manager *dm, +- struct drm_plane *plane, +- uint32_t link_index); +-int amdgpu_dm_connector_init(struct amdgpu_display_manager *dm, +- struct amdgpu_dm_connector *amdgpu_dm_connector, +- uint32_t link_index, +- struct amdgpu_encoder *amdgpu_encoder); +-int amdgpu_dm_encoder_init(struct drm_device *dev, +- struct amdgpu_encoder *aencoder, +- uint32_t link_index); +- +-void amdgpu_dm_crtc_destroy(struct drm_crtc *crtc); +-void amdgpu_dm_connector_destroy(struct drm_connector *connector); +-void amdgpu_dm_encoder_destroy(struct drm_encoder *encoder); +- +-int amdgpu_dm_connector_get_modes(struct drm_connector *connector); +- +-int amdgpu_dm_atomic_commit(struct drm_device *dev, +- struct drm_atomic_state *state, +- bool nonblock); +- +-void amdgpu_dm_atomic_commit_tail(struct drm_atomic_state *state); +- +-int amdgpu_dm_atomic_check(struct drm_device *dev, +- struct drm_atomic_state *state); +- + void amdgpu_dm_connector_funcs_reset(struct drm_connector *connector); + struct drm_connector_state * + amdgpu_dm_connector_atomic_duplicate_state(struct drm_connector *connector); +-- +2.7.4 + |