[PATCH 1/2] drm/i915/hdcp: Do not use inline intel_de_read

Jani Nikula jani.nikula at intel.com
Thu Jun 19 10:59:01 UTC 2025


On Thu, 19 Jun 2025, Suraj Kandpal <suraj.kandpal at intel.com> wrote:
> Do not use intel_de_read() inline in the WARN_ON functions.
> While we are at it make the comparision for stream_type u8 to u8.
>
> Signed-off-by: Suraj Kandpal <suraj.kandpal at intel.com>
> ---
>  drivers/gpu/drm/i915/display/intel_dp_hdcp.c | 7 +++++--
>  1 file changed, 5 insertions(+), 2 deletions(-)
>
> diff --git a/drivers/gpu/drm/i915/display/intel_dp_hdcp.c b/drivers/gpu/drm/i915/display/intel_dp_hdcp.c
> index 7bd775fb65a0..3620f7853c8f 100644
> --- a/drivers/gpu/drm/i915/display/intel_dp_hdcp.c
> +++ b/drivers/gpu/drm/i915/display/intel_dp_hdcp.c
> @@ -805,10 +805,13 @@ intel_dp_mst_hdcp2_stream_encryption(struct intel_connector *connector,
>  	enum pipe pipe = (enum pipe)cpu_transcoder;
>  	enum port port = dig_port->base.port;
>  	int ret;
> +	u32 val;
> +	u8 stream_type;
>  
> +	val = intel_de_read(display, HDCP2_AUTH_STREAM(display, cpu_transcoder, port));
> +	stream_type = REG_FIELD_GET8(AUTH_STREAM_TYPE, val);

The size in GET8 is not really about the size of the field, it's about
the size of the register/value, and how the field is defined.

It should be REG_FIELD_GET() for 32-bit registers.

But then should AUTH_STREAM_TYPE be defined via REG_GENMASK()?

#define   AUTH_STREAM_TYPE_MASK		REG_GENMASK(31, 31)

Would be more consistent:

	stream_type = REG_FIELD_GET(AUTH_STREAM_TYPE_MASK, val);

>  	drm_WARN_ON(display->drm, enable &&
> -		    !!(intel_de_read(display, HDCP2_AUTH_STREAM(display, cpu_transcoder, port))
> -		    & AUTH_STREAM_TYPE) != data->streams[0].stream_type);
> +		    stream_type == data->streams[0].stream_type);

Comparing it like this certainly makes much more sense, but shouldn't it
remain != instead of ==?

BR,
Jani.

>  
>  	ret = intel_dp_mst_toggle_hdcp_stream_select(connector, enable);
>  	if (ret)

-- 
Jani Nikula, Intel


More information about the Intel-gfx mailing list