forked from Minki/linux
drm: move content protection property to mode_config
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@intel.com> Reviewed-by: Daniel Vetter <daniel.vetter@ffwll.ch> Acked-by: Dave Airlie <airlied@gmail.com> Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch> Link: https://patchwork.freedesktop.org/patch/msgid/20190507162745.25600-2-ramalingam.c@intel.com
This commit is contained in:
parent
0152b3b3f4
commit
585b000de2
@ -732,7 +732,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;
|
||||
@ -814,7 +814,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 */
|
||||
|
@ -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;
|
||||
}
|
||||
|
@ -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.
|
||||
|
@ -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;
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user