Skip to content

Commit 8906064

Browse files
committed
drm/i915/hdcp: migrate away from kdev_to_i915() in GSC messaging
Use to_intel_display() instead of kdev_to_i915() in the HDCP component API hooks. Avoid further drive-by changes at this point, and just convert the display pointer to i915, and leave the struct intel_display conversion for later. The NULL error checking in the hooks make this a bit cumbersome. I'm not actually sure they're really required, but don't go down that rabbit hole just now. Cc: Gustavo Sousa <gustavo.sousa@intel.com> Reviewed-by: Ankit Nautiyal <ankit.k.nautiyal@intel.com> Reviewed-by: Suraj Kandpal <suraj.kandpal@intel.com> Reviewed-by: Arun R Murthy <arun.r.murthy@intel.com> Link: https://patchwork.freedesktop.org/patch/msgid/efd5c4c164c01b7ee50ad43f202b074b373fb810.1724942754.git.jani.nikula@intel.com Signed-off-by: Jani Nikula <jani.nikula@intel.com>
1 parent 3eac468 commit 8906064

1 file changed

Lines changed: 45 additions & 22 deletions

File tree

drivers/gpu/drm/i915/display/intel_hdcp_gsc_message.c

Lines changed: 45 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@
77
#include <drm/intel/i915_hdcp_interface.h>
88

99
#include "i915_drv.h"
10+
#include "intel_display_types.h"
1011
#include "intel_hdcp_gsc_message.h"
1112

1213
int
@@ -15,17 +16,19 @@ intel_hdcp_gsc_initiate_session(struct device *dev, struct hdcp_port_data *data,
1516
{
1617
struct wired_cmd_initiate_hdcp2_session_in session_init_in = {};
1718
struct wired_cmd_initiate_hdcp2_session_out session_init_out = {};
19+
struct intel_display *display;
1820
struct drm_i915_private *i915;
1921
ssize_t byte;
2022

2123
if (!dev || !data || !ake_data)
2224
return -EINVAL;
2325

24-
i915 = kdev_to_i915(dev);
25-
if (!i915) {
26+
display = to_intel_display(dev);
27+
if (!display) {
2628
dev_err(dev, "DRM not initialized, aborting HDCP.\n");
2729
return -ENODEV;
2830
}
31+
i915 = to_i915(display->drm);
2932

3033
session_init_in.header.api_version = HDCP_API_VERSION;
3134
session_init_in.header.command_id = WIRED_INITIATE_HDCP2_SESSION;
@@ -72,17 +75,19 @@ intel_hdcp_gsc_verify_receiver_cert_prepare_km(struct device *dev,
7275
{
7376
struct wired_cmd_verify_receiver_cert_in verify_rxcert_in = {};
7477
struct wired_cmd_verify_receiver_cert_out verify_rxcert_out = {};
78+
struct intel_display *display;
7579
struct drm_i915_private *i915;
7680
ssize_t byte;
7781

7882
if (!dev || !data || !rx_cert || !km_stored || !ek_pub_km || !msg_sz)
7983
return -EINVAL;
8084

81-
i915 = kdev_to_i915(dev);
82-
if (!i915) {
85+
display = to_intel_display(dev);
86+
if (!display) {
8387
dev_err(dev, "DRM not initialized, aborting HDCP.\n");
8488
return -ENODEV;
8589
}
90+
i915 = to_i915(display->drm);
8691

8792
verify_rxcert_in.header.api_version = HDCP_API_VERSION;
8893
verify_rxcert_in.header.command_id = WIRED_VERIFY_RECEIVER_CERT;
@@ -135,17 +140,19 @@ intel_hdcp_gsc_verify_hprime(struct device *dev, struct hdcp_port_data *data,
135140
{
136141
struct wired_cmd_ake_send_hprime_in send_hprime_in = {};
137142
struct wired_cmd_ake_send_hprime_out send_hprime_out = {};
143+
struct intel_display *display;
138144
struct drm_i915_private *i915;
139145
ssize_t byte;
140146

141147
if (!dev || !data || !rx_hprime)
142148
return -EINVAL;
143149

144-
i915 = kdev_to_i915(dev);
145-
if (!i915) {
150+
display = to_intel_display(dev);
151+
if (!display) {
146152
dev_err(dev, "DRM not initialized, aborting HDCP.\n");
147153
return -ENODEV;
148154
}
155+
i915 = to_i915(display->drm);
149156

150157
send_hprime_in.header.api_version = HDCP_API_VERSION;
151158
send_hprime_in.header.command_id = WIRED_AKE_SEND_HPRIME;
@@ -183,17 +190,19 @@ intel_hdcp_gsc_store_pairing_info(struct device *dev, struct hdcp_port_data *dat
183190
{
184191
struct wired_cmd_ake_send_pairing_info_in pairing_info_in = {};
185192
struct wired_cmd_ake_send_pairing_info_out pairing_info_out = {};
193+
struct intel_display *display;
186194
struct drm_i915_private *i915;
187195
ssize_t byte;
188196

189197
if (!dev || !data || !pairing_info)
190198
return -EINVAL;
191199

192-
i915 = kdev_to_i915(dev);
193-
if (!i915) {
200+
display = to_intel_display(dev);
201+
if (!display) {
194202
dev_err(dev, "DRM not initialized, aborting HDCP.\n");
195203
return -ENODEV;
196204
}
205+
i915 = to_i915(display->drm);
197206

198207
pairing_info_in.header.api_version = HDCP_API_VERSION;
199208
pairing_info_in.header.command_id = WIRED_AKE_SEND_PAIRING_INFO;
@@ -234,17 +243,19 @@ intel_hdcp_gsc_initiate_locality_check(struct device *dev,
234243
{
235244
struct wired_cmd_init_locality_check_in lc_init_in = {};
236245
struct wired_cmd_init_locality_check_out lc_init_out = {};
246+
struct intel_display *display;
237247
struct drm_i915_private *i915;
238248
ssize_t byte;
239249

240250
if (!dev || !data || !lc_init_data)
241251
return -EINVAL;
242252

243-
i915 = kdev_to_i915(dev);
244-
if (!i915) {
253+
display = to_intel_display(dev);
254+
if (!display) {
245255
dev_err(dev, "DRM not initialized, aborting HDCP.\n");
246256
return -ENODEV;
247257
}
258+
i915 = to_i915(display->drm);
248259

249260
lc_init_in.header.api_version = HDCP_API_VERSION;
250261
lc_init_in.header.command_id = WIRED_INIT_LOCALITY_CHECK;
@@ -280,17 +291,19 @@ intel_hdcp_gsc_verify_lprime(struct device *dev, struct hdcp_port_data *data,
280291
{
281292
struct wired_cmd_validate_locality_in verify_lprime_in = {};
282293
struct wired_cmd_validate_locality_out verify_lprime_out = {};
294+
struct intel_display *display;
283295
struct drm_i915_private *i915;
284296
ssize_t byte;
285297

286298
if (!dev || !data || !rx_lprime)
287299
return -EINVAL;
288300

289-
i915 = kdev_to_i915(dev);
290-
if (!i915) {
301+
display = to_intel_display(dev);
302+
if (!display) {
291303
dev_err(dev, "DRM not initialized, aborting HDCP.\n");
292304
return -ENODEV;
293305
}
306+
i915 = to_i915(display->drm);
294307

295308
verify_lprime_in.header.api_version = HDCP_API_VERSION;
296309
verify_lprime_in.header.command_id = WIRED_VALIDATE_LOCALITY;
@@ -330,17 +343,19 @@ int intel_hdcp_gsc_get_session_key(struct device *dev,
330343
{
331344
struct wired_cmd_get_session_key_in get_skey_in = {};
332345
struct wired_cmd_get_session_key_out get_skey_out = {};
346+
struct intel_display *display;
333347
struct drm_i915_private *i915;
334348
ssize_t byte;
335349

336350
if (!dev || !data || !ske_data)
337351
return -EINVAL;
338352

339-
i915 = kdev_to_i915(dev);
340-
if (!i915) {
353+
display = to_intel_display(dev);
354+
if (!display) {
341355
dev_err(dev, "DRM not initialized, aborting HDCP.\n");
342356
return -ENODEV;
343357
}
358+
i915 = to_i915(display->drm);
344359

345360
get_skey_in.header.api_version = HDCP_API_VERSION;
346361
get_skey_in.header.command_id = WIRED_GET_SESSION_KEY;
@@ -382,17 +397,19 @@ intel_hdcp_gsc_repeater_check_flow_prepare_ack(struct device *dev,
382397
{
383398
struct wired_cmd_verify_repeater_in verify_repeater_in = {};
384399
struct wired_cmd_verify_repeater_out verify_repeater_out = {};
400+
struct intel_display *display;
385401
struct drm_i915_private *i915;
386402
ssize_t byte;
387403

388404
if (!dev || !rep_topology || !rep_send_ack || !data)
389405
return -EINVAL;
390406

391-
i915 = kdev_to_i915(dev);
392-
if (!i915) {
407+
display = to_intel_display(dev);
408+
if (!display) {
393409
dev_err(dev, "DRM not initialized, aborting HDCP.\n");
394410
return -ENODEV;
395411
}
412+
i915 = to_i915(display->drm);
396413

397414
verify_repeater_in.header.api_version = HDCP_API_VERSION;
398415
verify_repeater_in.header.command_id = WIRED_VERIFY_REPEATER;
@@ -442,18 +459,20 @@ int intel_hdcp_gsc_verify_mprime(struct device *dev,
442459
{
443460
struct wired_cmd_repeater_auth_stream_req_in *verify_mprime_in;
444461
struct wired_cmd_repeater_auth_stream_req_out verify_mprime_out = {};
462+
struct intel_display *display;
445463
struct drm_i915_private *i915;
446464
ssize_t byte;
447465
size_t cmd_size;
448466

449467
if (!dev || !stream_ready || !data)
450468
return -EINVAL;
451469

452-
i915 = kdev_to_i915(dev);
453-
if (!i915) {
470+
display = to_intel_display(dev);
471+
if (!display) {
454472
dev_err(dev, "DRM not initialized, aborting HDCP.\n");
455473
return -ENODEV;
456474
}
475+
i915 = to_i915(display->drm);
457476

458477
cmd_size = struct_size(verify_mprime_in, streams, data->k);
459478
if (cmd_size == SIZE_MAX)
@@ -504,17 +523,19 @@ int intel_hdcp_gsc_enable_authentication(struct device *dev,
504523
{
505524
struct wired_cmd_enable_auth_in enable_auth_in = {};
506525
struct wired_cmd_enable_auth_out enable_auth_out = {};
526+
struct intel_display *display;
507527
struct drm_i915_private *i915;
508528
ssize_t byte;
509529

510530
if (!dev || !data)
511531
return -EINVAL;
512532

513-
i915 = kdev_to_i915(dev);
514-
if (!i915) {
533+
display = to_intel_display(dev);
534+
if (!display) {
515535
dev_err(dev, "DRM not initialized, aborting HDCP.\n");
516536
return -ENODEV;
517537
}
538+
i915 = to_i915(display->drm);
518539

519540
enable_auth_in.header.api_version = HDCP_API_VERSION;
520541
enable_auth_in.header.command_id = WIRED_ENABLE_AUTH;
@@ -549,17 +570,19 @@ intel_hdcp_gsc_close_session(struct device *dev, struct hdcp_port_data *data)
549570
{
550571
struct wired_cmd_close_session_in session_close_in = {};
551572
struct wired_cmd_close_session_out session_close_out = {};
573+
struct intel_display *display;
552574
struct drm_i915_private *i915;
553575
ssize_t byte;
554576

555577
if (!dev || !data)
556578
return -EINVAL;
557579

558-
i915 = kdev_to_i915(dev);
559-
if (!i915) {
580+
display = to_intel_display(dev);
581+
if (!display) {
560582
dev_err(dev, "DRM not initialized, aborting HDCP.\n");
561583
return -ENODEV;
562584
}
585+
i915 = to_i915(display->drm);
563586

564587
session_close_in.header.api_version = HDCP_API_VERSION;
565588
session_close_in.header.command_id = WIRED_CLOSE_SESSION;

0 commit comments

Comments
 (0)