]> git.ipfire.org Git - thirdparty/kernel/linux.git/commitdiff
drm/i915/hdcp: further conversion to struct intel_display
authorJani Nikula <jani.nikula@intel.com>
Mon, 28 Oct 2024 20:07:23 +0000 (22:07 +0200)
committerJani Nikula <jani.nikula@intel.com>
Wed, 30 Oct 2024 11:51:51 +0000 (13:51 +0200)
There are some unconverted stragglers left in the HDCP API still using
struct drm_i915_private. Convert to struct intel_display.

Reviewed-by: Rodrigo Vivi <rodrigo.vivi@intel.com>
Signed-off-by: Jani Nikula <jani.nikula@intel.com>
Link: https://patchwork.freedesktop.org/patch/msgid/9680cc9e5ed7798a736fa73ad9ea0eb9c88e64bb.1730146000.git.jani.nikula@intel.com
drivers/gpu/drm/i915/display/intel_display_driver.c
drivers/gpu/drm/i915/display/intel_dp.c
drivers/gpu/drm/i915/display/intel_dp_hdcp.c
drivers/gpu/drm/i915/display/intel_hdcp.c
drivers/gpu/drm/i915/display/intel_hdcp.h
drivers/gpu/drm/i915/display/intel_hdmi.c
drivers/gpu/drm/xe/display/xe_display.c

index f83adaba1e34baeafd346136a6b7eb5677f383ba..55262296621e9230cd3133fa41b79c71d4e6b5e1 100644 (file)
@@ -485,7 +485,7 @@ int intel_display_driver_probe_nogem(struct drm_i915_private *i915)
        return 0;
 
 err_hdcp:
-       intel_hdcp_component_fini(i915);
+       intel_hdcp_component_fini(display);
 err_mode_config:
        intel_mode_config_cleanup(i915);
 
@@ -495,6 +495,7 @@ err_mode_config:
 /* part #3: call after gem init */
 int intel_display_driver_probe(struct drm_i915_private *i915)
 {
+       struct intel_display *display = &i915->display;
        int ret;
 
        if (!HAS_DISPLAY(i915))
@@ -505,7 +506,7 @@ int intel_display_driver_probe(struct drm_i915_private *i915)
         * the BIOS fb takeover and whatever else magic ggtt reservations
         * happen during gem/ggtt init.
         */
-       intel_hdcp_component_init(i915);
+       intel_hdcp_component_init(display);
 
        /*
         * Force all active planes to recompute their states. So that on
@@ -600,7 +601,7 @@ void intel_display_driver_remove_noirq(struct drm_i915_private *i915)
        /* flush any delayed tasks or pending work */
        flush_workqueue(i915->unordered_wq);
 
-       intel_hdcp_component_fini(i915);
+       intel_hdcp_component_fini(display);
 
        intel_mode_config_cleanup(i915);
 
index 28fa5e2d0c337b93dcc667290268c9a1c9362e72..c0d481527acc141fc4d197612305abe64ca1e018 100644 (file)
@@ -6419,6 +6419,7 @@ bool
 intel_dp_init_connector(struct intel_digital_port *dig_port,
                        struct intel_connector *intel_connector)
 {
+       struct intel_display *display = to_intel_display(dig_port);
        struct drm_connector *connector = &intel_connector->base;
        struct intel_dp *intel_dp = &dig_port->dp;
        struct intel_encoder *intel_encoder = &dig_port->base;
@@ -6509,7 +6510,7 @@ intel_dp_init_connector(struct intel_digital_port *dig_port,
 
        intel_dp_add_properties(intel_dp, connector);
 
-       if (is_hdcp_supported(dev_priv, port) && !intel_dp_is_edp(intel_dp)) {
+       if (is_hdcp_supported(display, port) && !intel_dp_is_edp(intel_dp)) {
                int ret = intel_dp_hdcp_init(dig_port, intel_connector);
                if (ret)
                        drm_dbg_kms(&dev_priv->drm,
index 6a09b93742ffa08ec909f123e4475c635a1f7658..ed22781c486bb94dffa224271fa202621acdbf30 100644 (file)
@@ -873,13 +873,12 @@ static const struct intel_hdcp_shim intel_dp_mst_hdcp_shim = {
 int intel_dp_hdcp_init(struct intel_digital_port *dig_port,
                       struct intel_connector *intel_connector)
 {
-       struct drm_device *dev = intel_connector->base.dev;
-       struct drm_i915_private *dev_priv = to_i915(dev);
+       struct intel_display *display = to_intel_display(dig_port);
        struct intel_encoder *intel_encoder = &dig_port->base;
        enum port port = intel_encoder->port;
        struct intel_dp *intel_dp = &dig_port->dp;
 
-       if (!is_hdcp_supported(dev_priv, port))
+       if (!is_hdcp_supported(display, port))
                return 0;
 
        if (intel_connector->mst_port)
index ed6aa87403e23728fdae7551c1e56b04ecb3f055..870084af92d04c0ddd2b4395f2a22acefd6cf6cd 100644 (file)
@@ -1192,10 +1192,10 @@ static void intel_hdcp_prop_work(struct work_struct *work)
        drm_connector_put(&connector->base);
 }
 
-bool is_hdcp_supported(struct drm_i915_private *i915, enum port port)
+bool is_hdcp_supported(struct intel_display *display, enum port port)
 {
-       return DISPLAY_RUNTIME_INFO(i915)->has_hdcp &&
-               (DISPLAY_VER(i915) >= 12 || port < PORT_E);
+       return DISPLAY_RUNTIME_INFO(display)->has_hdcp &&
+               (DISPLAY_VER(display) >= 12 || port < PORT_E);
 }
 
 static int
@@ -2301,9 +2301,9 @@ static int initialize_hdcp_port_data(struct intel_connector *connector,
        return 0;
 }
 
-static bool is_hdcp2_supported(struct drm_i915_private *i915)
+static bool is_hdcp2_supported(struct intel_display *display)
 {
-       struct intel_display *display = to_intel_display(&i915->drm);
+       struct drm_i915_private *i915 = to_i915(display->drm);
 
        if (intel_hdcp_gsc_cs_required(display))
                return true;
@@ -2317,12 +2317,11 @@ static bool is_hdcp2_supported(struct drm_i915_private *i915)
                IS_COMETLAKE(i915));
 }
 
-void intel_hdcp_component_init(struct drm_i915_private *i915)
+void intel_hdcp_component_init(struct intel_display *display)
 {
-       struct intel_display *display = to_intel_display(&i915->drm);
        int ret;
 
-       if (!is_hdcp2_supported(i915))
+       if (!is_hdcp2_supported(display))
                return;
 
        mutex_lock(&display->hdcp.hdcp_mutex);
@@ -2367,19 +2366,18 @@ int intel_hdcp_init(struct intel_connector *connector,
                    struct intel_digital_port *dig_port,
                    const struct intel_hdcp_shim *shim)
 {
-       struct drm_i915_private *i915 = to_i915(connector->base.dev);
+       struct intel_display *display = to_intel_display(connector);
        struct intel_hdcp *hdcp = &connector->hdcp;
        int ret;
 
        if (!shim)
                return -EINVAL;
 
-       if (is_hdcp2_supported(i915))
+       if (is_hdcp2_supported(display))
                intel_hdcp2_init(connector, dig_port, shim);
 
-       ret =
-       drm_connector_attach_content_protection_property(&connector->base,
-                                                        hdcp->hdcp2_supported);
+       ret = drm_connector_attach_content_protection_property(&connector->base,
+                                                              hdcp->hdcp2_supported);
        if (ret) {
                hdcp->hdcp2_supported = false;
                kfree(dig_port->hdcp_port_data.streams);
@@ -2432,7 +2430,7 @@ static int _intel_hdcp_enable(struct intel_atomic_state *state,
                hdcp->stream_transcoder = INVALID_TRANSCODER;
        }
 
-       if (DISPLAY_VER(i915) >= 12)
+       if (DISPLAY_VER(display) >= 12)
                dig_port->hdcp_port_data.hdcp_transcoder =
                        intel_get_hdcp_transcoder(hdcp->cpu_transcoder);
 
@@ -2583,10 +2581,8 @@ void intel_hdcp_update_pipe(struct intel_atomic_state *state,
                _intel_hdcp_enable(state, encoder, crtc_state, conn_state);
 }
 
-void intel_hdcp_component_fini(struct drm_i915_private *i915)
+void intel_hdcp_component_fini(struct intel_display *display)
 {
-       struct intel_display *display = to_intel_display(&i915->drm);
-
        mutex_lock(&display->hdcp.hdcp_mutex);
        if (!display->hdcp.comp_added) {
                mutex_unlock(&display->hdcp.hdcp_mutex);
index 477f2d2bb120d86edf47d6357afbd04beff00356..d99830cfb798427d4ada6857d13300aaf1a0b8ba 100644 (file)
 
 struct drm_connector;
 struct drm_connector_state;
-struct drm_i915_private;
 struct intel_atomic_state;
 struct intel_connector;
 struct intel_crtc_state;
+struct intel_digital_port;
+struct intel_display;
 struct intel_encoder;
 struct intel_hdcp_shim;
-struct intel_digital_port;
 enum port;
 enum transcoder;
 
@@ -37,14 +37,14 @@ void intel_hdcp_update_pipe(struct intel_atomic_state *state,
                            struct intel_encoder *encoder,
                            const struct intel_crtc_state *crtc_state,
                            const struct drm_connector_state *conn_state);
-bool is_hdcp_supported(struct drm_i915_private *i915, enum port port);
+bool is_hdcp_supported(struct intel_display *display, enum port port);
 bool intel_hdcp_get_capability(struct intel_connector *connector);
 bool intel_hdcp2_get_capability(struct intel_connector *connector);
 void intel_hdcp_get_remote_capability(struct intel_connector *connector,
                                      bool *hdcp_capable,
                                      bool *hdcp2_capable);
-void intel_hdcp_component_init(struct drm_i915_private *i915);
-void intel_hdcp_component_fini(struct drm_i915_private *i915);
+void intel_hdcp_component_init(struct intel_display *display);
+void intel_hdcp_component_fini(struct intel_display *display);
 void intel_hdcp_cleanup(struct intel_connector *connector);
 void intel_hdcp_handle_cp_irq(struct intel_connector *connector);
 
index 37b61f05bd734eb5219f51fe8de8b2659d9277b0..e1a1351bc94f4857eb751be11b80a742af3e9ead 100644 (file)
@@ -3026,7 +3026,6 @@ void intel_hdmi_init_connector(struct intel_digital_port *dig_port,
        struct intel_hdmi *intel_hdmi = &dig_port->hdmi;
        struct intel_encoder *intel_encoder = &dig_port->base;
        struct drm_device *dev = intel_encoder->base.dev;
-       struct drm_i915_private *dev_priv = to_i915(dev);
        enum port port = intel_encoder->port;
        struct cec_connector_info conn_info;
        u8 ddc_pin;
@@ -3076,7 +3075,7 @@ void intel_hdmi_init_connector(struct intel_digital_port *dig_port,
        intel_connector_attach_encoder(intel_connector, intel_encoder);
        intel_hdmi->attached_connector = intel_connector;
 
-       if (is_hdcp_supported(dev_priv, port)) {
+       if (is_hdcp_supported(display, port)) {
                int ret = intel_hdcp_init(intel_connector, dig_port,
                                          &intel_hdmi_hdcp_shim);
                if (ret)
index ca00a365080fb239661541e8439373ab8aa4df62..46a3e716904283176162602c046525610d6db9f1 100644 (file)
@@ -202,12 +202,14 @@ int xe_display_init(struct xe_device *xe)
 
 void xe_display_fini(struct xe_device *xe)
 {
+       struct intel_display *display = &xe->display;
+
        if (!xe->info.probe_display)
                return;
 
        intel_hpd_poll_fini(xe);
 
-       intel_hdcp_component_fini(xe);
+       intel_hdcp_component_fini(display);
        intel_audio_deinit(xe);
 }