diff --git a/msm/Makefile b/msm/Makefile index e2f9f64594..626487f5ce 100644 --- a/msm/Makefile +++ b/msm/Makefile @@ -22,10 +22,11 @@ msm_drm-$(CONFIG_DRM_MSM_DP) += dp/dp_usbpd.o \ dp/dp_display.o \ dp/dp_drm.o \ dp/dp_hdcp2p2.o \ - dp/dp_mst_drm.o \ sde_hdcp_1x.o \ sde_hdcp_2x.o \ +msm_drm-$(CONFIG_DRM_MSM_DP_MST) += dp/dp_mst_drm.o \ + msm_drm-$(CONFIG_DRM_MSM_SDE) += sde/sde_crtc.o \ sde/sde_encoder.o \ sde/sde_encoder_dce.o \ diff --git a/msm/dp/dp_drm.c b/msm/dp/dp_drm.c index 74a9201f5d..a5af544ec6 100644 --- a/msm/dp/dp_drm.c +++ b/msm/dp/dp_drm.c @@ -11,6 +11,7 @@ #include "msm_kms.h" #include "sde_connector.h" #include "dp_drm.h" +#include "dp_mst_drm.h" #include "dp_debug.h" #define DP_MST_DEBUG(fmt, ...) DP_DEBUG(fmt, ##__VA_ARGS__) diff --git a/msm/dp/dp_drm.h b/msm/dp/dp_drm.h index 0226a22f24..086557fdd6 100644 --- a/msm/dp/dp_drm.h +++ b/msm/dp/dp_drm.h @@ -1,6 +1,6 @@ /* SPDX-License-Identifier: GPL-2.0-only */ /* - * Copyright (c) 2017-2019, The Linux Foundation. All rights reserved. + * Copyright (c) 2017-2020, The Linux Foundation. All rights reserved. */ #ifndef _DP_DRM_H_ @@ -151,31 +151,6 @@ void convert_to_drm_mode(const struct dp_display_mode *dp_mode, int dp_connector_update_pps(struct drm_connector *connector, char *pps_cmd, void *display); -/** - * dp_mst_drm_bridge_init - initialize mst bridge - * @display: Pointer to private display structure - * @encoder: Pointer to encoder for mst bridge mapping - */ -int dp_mst_drm_bridge_init(void *display, - struct drm_encoder *encoder); - -/** - * dp_mst_drm_bridge_deinit - de-initialize mst bridges - * @display: Pointer to private display structure - */ -void dp_mst_drm_bridge_deinit(void *display); - -/** - * dp_mst_init - initialize mst objects for the given display - * @display: Pointer to private display structure - */ -int dp_mst_init(struct dp_display *dp_display); - -/** - * dp_mst_deinit - de-initialize mst objects for the given display - * @display: Pointer to private display structure - */ -void dp_mst_deinit(struct dp_display *dp_display); #else static inline int dp_connector_config_hdr(struct drm_connector *connector, void *display, struct sde_connector_state *c_state) @@ -256,26 +231,6 @@ static inline void convert_to_drm_mode(const struct dp_display_mode *dp_mode, struct drm_display_mode *drm_mode) { } - -static inline int dp_mst_drm_bridge_init(void *display, - struct drm_encoder *encoder) -{ - return 0; -} - -static inline void dp_mst_drm_bridge_deinit(void *display) -{ -} - -static inline int dp_mst_init(struct dp_display *dp_display) -{ - return 0; -} - -static inline int dp_mst_deinit(struct dp_display *dp_display) -{ - return 0; -} #endif #endif /* _DP_DRM_H_ */ diff --git a/msm/dp/dp_mst_drm.h b/msm/dp/dp_mst_drm.h new file mode 100644 index 0000000000..4be291b589 --- /dev/null +++ b/msm/dp/dp_mst_drm.h @@ -0,0 +1,65 @@ +/* SPDX-License-Identifier: GPL-2.0-only */ +/* + * Copyright (c) 2017-2020, The Linux Foundation. All rights reserved. + */ + +#ifndef _DP_MST_DRM_H_ +#define _DP_MST_DRM_H_ + +#include +#include +#include + +#include "dp_display.h" + +#ifdef CONFIG_DRM_MSM_DP_MST + +/** + * dp_mst_drm_bridge_init - initialize mst bridge + * @display: Pointer to private display structure + * @encoder: Pointer to encoder for mst bridge mapping + */ +int dp_mst_drm_bridge_init(void *display, + struct drm_encoder *encoder); + +/** + * dp_mst_drm_bridge_deinit - de-initialize mst bridges + * @display: Pointer to private display structure + */ +void dp_mst_drm_bridge_deinit(void *display); + +/** + * dp_mst_init - initialize mst objects for the given display + * @display: Pointer to private display structure + */ +int dp_mst_init(struct dp_display *dp_display); + +/** + * dp_mst_deinit - de-initialize mst objects for the given display + * @display: Pointer to private display structure + */ +void dp_mst_deinit(struct dp_display *dp_display); +#else + +static inline int dp_mst_drm_bridge_init(void *display, + struct drm_encoder *encoder) +{ + return 0; +} + +static inline void dp_mst_drm_bridge_deinit(void *display) +{ +} + +static inline int dp_mst_init(struct dp_display *dp_display) +{ + return 0; +} + +static inline int dp_mst_deinit(struct dp_display *dp_display) +{ + return 0; +} +#endif + +#endif /* _DP_MST_DRM_H_ */ diff --git a/msm/sde/sde_kms.c b/msm/sde/sde_kms.c index e0a271354c..078e748a6a 100644 --- a/msm/sde/sde_kms.c +++ b/msm/sde/sde_kms.c @@ -37,6 +37,7 @@ #include "sde_wb.h" #include "dp_display.h" #include "dp_drm.h" +#include "dp_mst_drm.h" #include "sde_kms.h" #include "sde_core_irq.h"