[PATCH v5 01/12] drm: move content protection property to mode_config
Daniel Vetter
daniel at ffwll.ch
Tue Apr 23 07:38:53 UTC 2019
On Thu, Apr 18, 2019 at 02:27:54PM +0530, Ramalingam C wrote:
> Content protection property is created once and stored in
> drm_mode_config. And attached to all HDCP capable connectors.
>
> Signed-off-by: Ramalingam C <ramalingam.c at intel.com>
Reviewed-by: Daniel Vetter <daniel.vetter at ffwll.ch>
> ---
> drivers/gpu/drm/drm_atomic_uapi.c | 4 ++--
> drivers/gpu/drm/drm_connector.c | 13 +++++++------
> include/drm/drm_connector.h | 6 ------
> include/drm/drm_mode_config.h | 6 ++++++
> 4 files changed, 15 insertions(+), 14 deletions(-)
>
> diff --git a/drivers/gpu/drm/drm_atomic_uapi.c b/drivers/gpu/drm/drm_atomic_uapi.c
> index ea797d4c82ee..002dcede7915 100644
> --- a/drivers/gpu/drm/drm_atomic_uapi.c
> +++ b/drivers/gpu/drm/drm_atomic_uapi.c
> @@ -727,7 +727,7 @@ static int drm_atomic_connector_set_property(struct drm_connector *connector,
> state->content_type = val;
> } else if (property == connector->scaling_mode_property) {
> state->scaling_mode = val;
> - } else if (property == connector->content_protection_property) {
> + } else if (property == config->content_protection_property) {
> if (val == DRM_MODE_CONTENT_PROTECTION_ENABLED) {
> DRM_DEBUG_KMS("only drivers can set CP Enabled\n");
> return -EINVAL;
> @@ -807,7 +807,7 @@ drm_atomic_connector_get_property(struct drm_connector *connector,
> *val = state->colorspace;
> } else if (property == connector->scaling_mode_property) {
> *val = state->scaling_mode;
> - } else if (property == connector->content_protection_property) {
> + } else if (property == config->content_protection_property) {
> *val = state->content_protection;
> } else if (property == config->writeback_fb_id_property) {
> /* Writeback framebuffer is one-shot, write and forget */
> diff --git a/drivers/gpu/drm/drm_connector.c b/drivers/gpu/drm/drm_connector.c
> index 2355124849db..7c0eda9cca60 100644
> --- a/drivers/gpu/drm/drm_connector.c
> +++ b/drivers/gpu/drm/drm_connector.c
> @@ -1534,18 +1534,19 @@ int drm_connector_attach_content_protection_property(
> struct drm_connector *connector)
> {
> struct drm_device *dev = connector->dev;
> - struct drm_property *prop;
> + struct drm_property *prop =
> + dev->mode_config.content_protection_property;
>
> - prop = drm_property_create_enum(dev, 0, "Content Protection",
> - drm_cp_enum_list,
> - ARRAY_SIZE(drm_cp_enum_list));
> + if (!prop)
> + prop = drm_property_create_enum(dev, 0, "Content Protection",
> + drm_cp_enum_list,
> + ARRAY_SIZE(drm_cp_enum_list));
> if (!prop)
> return -ENOMEM;
>
> drm_object_attach_property(&connector->base, prop,
> DRM_MODE_CONTENT_PROTECTION_UNDESIRED);
> -
> - connector->content_protection_property = prop;
> + dev->mode_config.content_protection_property = prop;
>
> return 0;
> }
> diff --git a/include/drm/drm_connector.h b/include/drm/drm_connector.h
> index 02a131202add..5e41942e5679 100644
> --- a/include/drm/drm_connector.h
> +++ b/include/drm/drm_connector.h
> @@ -1061,12 +1061,6 @@ struct drm_connector {
> */
> struct drm_property *vrr_capable_property;
>
> - /**
> - * @content_protection_property: DRM ENUM property for content
> - * protection. See drm_connector_attach_content_protection_property().
> - */
> - struct drm_property *content_protection_property;
> -
> /**
> * @colorspace_property: Connector property to set the suitable
> * colorspace supported by the sink.
> diff --git a/include/drm/drm_mode_config.h b/include/drm/drm_mode_config.h
> index 7f60e8eb269a..5764ee3c7453 100644
> --- a/include/drm/drm_mode_config.h
> +++ b/include/drm/drm_mode_config.h
> @@ -836,6 +836,12 @@ struct drm_mode_config {
> */
> struct drm_property *writeback_out_fence_ptr_property;
>
> + /**
> + * @content_protection_property: DRM ENUM property for content
> + * protection. See drm_connector_attach_content_protection_property().
> + */
> + struct drm_property *content_protection_property;
> +
> /* dumb ioctl parameters */
> uint32_t preferred_depth, prefer_shadow;
>
> --
> 2.19.1
>
--
Daniel Vetter
Software Engineer, Intel Corporation
http://blog.ffwll.ch
More information about the dri-devel
mailing list