drm/msm: make HDCP support optional
authorRob Clark <robdclark@gmail.com>
Sun, 20 Mar 2016 14:16:29 +0000 (10:16 -0400)
committerRob Clark <robdclark@gmail.com>
Sun, 8 May 2016 14:16:02 +0000 (10:16 -0400)
It is already optional at runtime.  But this at least simplifies
backports to kernels without QCOM_SCM.

Signed-off-by: Rob Clark <robdclark@gmail.com>
drivers/gpu/drm/msm/Kconfig
drivers/gpu/drm/msm/Makefile
drivers/gpu/drm/msm/hdmi/hdmi.h

index 215495c2780c07e7d0657997b1fcd57bc6e9d86b..167a4971f47c59d20a29b86b9a98a651426055ab 100644 (file)
@@ -23,6 +23,13 @@ config DRM_MSM_REGISTER_LOGGING
          that can be parsed by envytools demsm tool.  If enabled, register
          logging can be switched on via msm.reglog=y module param.
 
+config DRM_MSM_HDMI_HDCP
+       bool "Enable HDMI HDCP support in MSM DRM driver"
+       depends on DRM_MSM && QCOM_SCM
+       default y
+       help
+         Choose this option to enable HDCP state machine
+
 config DRM_MSM_DSI
        bool "Enable DSI support in MSM DRM driver"
        depends on DRM_MSM
index ddb4c9d097e456e7904a937b639ea07dac1b4e64..d7cf79635e73ec644db7ed547736074de730cf3b 100644 (file)
@@ -10,7 +10,6 @@ msm-y := \
        hdmi/hdmi_audio.o \
        hdmi/hdmi_bridge.o \
        hdmi/hdmi_connector.o \
-       hdmi/hdmi_hdcp.o \
        hdmi/hdmi_i2c.o \
        hdmi/hdmi_phy.o \
        hdmi/hdmi_phy_8960.o \
@@ -56,6 +55,8 @@ msm-$(CONFIG_COMMON_CLK) += mdp/mdp4/mdp4_lvds_pll.o
 msm-$(CONFIG_COMMON_CLK) += hdmi/hdmi_pll_8960.o
 msm-$(CONFIG_COMMON_CLK) += hdmi/hdmi_phy_8996.o
 
+msm-$(CONFIG_DRM_MSM_HDMI_HDCP) += hdmi/hdmi_hdcp.o
+
 msm-$(CONFIG_DRM_MSM_DSI) += dsi/dsi.o \
                        mdp/mdp4/mdp4_dsi_encoder.o \
                        dsi/dsi_cfg.o \
index 65428cf233ce3cd69063a2b815655c42dddbf349..bc7ba0bdee072056526f3f1da8cc88c981ec1150 100644 (file)
@@ -243,10 +243,21 @@ struct i2c_adapter *msm_hdmi_i2c_init(struct hdmi *hdmi);
 /*
  * hdcp
  */
+#ifdef CONFIG_DRM_MSM_HDMI_HDCP
 struct hdmi_hdcp_ctrl *msm_hdmi_hdcp_init(struct hdmi *hdmi);
 void msm_hdmi_hdcp_destroy(struct hdmi *hdmi);
 void msm_hdmi_hdcp_on(struct hdmi_hdcp_ctrl *hdcp_ctrl);
 void msm_hdmi_hdcp_off(struct hdmi_hdcp_ctrl *hdcp_ctrl);
 void msm_hdmi_hdcp_irq(struct hdmi_hdcp_ctrl *hdcp_ctrl);
+#else
+static inline struct hdmi_hdcp_ctrl *msm_hdmi_hdcp_init(struct hdmi *hdmi)
+{
+       return ERR_PTR(-ENXIO);
+}
+static inline void msm_hdmi_hdcp_destroy(struct hdmi *hdmi) {}
+static inline void msm_hdmi_hdcp_on(struct hdmi_hdcp_ctrl *hdcp_ctrl) {}
+static inline void msm_hdmi_hdcp_off(struct hdmi_hdcp_ctrl *hdcp_ctrl) {}
+static inline void msm_hdmi_hdcp_irq(struct hdmi_hdcp_ctrl *hdcp_ctrl) {}
+#endif
 
 #endif /* __HDMI_CONNECTOR_H__ */