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@xxxxxxxxx> Reviewed-by: Daniel Vetter <daniel.vetter@xxxxxxxx> > --- > 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 _______________________________________________ Intel-gfx mailing list Intel-gfx@xxxxxxxxxxxxxxxxxxxxx https://lists.freedesktop.org/mailman/listinfo/intel-gfx