From: Ramalingam C <ramalingam.c@intel.com>
To: Pekka Paalanen <ppaalanen@gmail.com>
Cc: intel-gfx <intel-gfx@lists.freedesktop.org>,
dri-devel <dri-devel@lists.freedesktop.org>
Subject: Re: [PATCH v8 4/6] drm/hdcp: update content protection property with uevent
Date: Mon, 8 Jul 2019 14:51:23 +0530 [thread overview]
Message-ID: <20190708092123.GB31930@intel.com> (raw)
In-Reply-To: <20190708130914.28ef159f@eldfell.localdomain>
On 2019-07-08 at 13:09:14 +0300, Pekka Paalanen wrote:
> On Fri, 5 Jul 2019 06:16:40 +0530
> Ramalingam C <ramalingam.c@intel.com> wrote:
>
> > drm function is defined and exported to update a connector's
> > content protection property state and to generate a uevent along
> > with it.
> >
> > Need ACK for the uevent from userspace consumer.
> >
> > v2:
> > Update only when state is different from old one.
> > v3:
> > KDoc is added [Daniel]
> > v4:
> > KDoc is extended bit more [pekka]
> >
> > Signed-off-by: Ramalingam C <ramalingam.c@intel.com>
> > Reviewed-by: Daniel Vetter <daniel.vetter@ffwll.ch>
> > ---
> > drivers/gpu/drm/drm_hdcp.c | 34 ++++++++++++++++++++++++++++++++++
> > include/drm/drm_hdcp.h | 2 ++
> > 2 files changed, 36 insertions(+)
> >
> > diff --git a/drivers/gpu/drm/drm_hdcp.c b/drivers/gpu/drm/drm_hdcp.c
> > index ce235fd1c844..77433ee3d652 100644
> > --- a/drivers/gpu/drm/drm_hdcp.c
> > +++ b/drivers/gpu/drm/drm_hdcp.c
> > @@ -374,6 +374,10 @@ DRM_ENUM_NAME_FN(drm_get_hdcp_content_type_name,
> > *
> > * The content protection will be set to &drm_connector_state.content_protection
> > *
> > + * When kernel triggered content protection state change like DESIRED->ENABLED
> > + * and ENABLED->DESIRED, will use drm_hdcp_update_content_protection() to update
> > + * the content protection state of a connector.
> > + *
> > * Returns:
> > * Zero on success, negative errno on failure.
> > */
> > @@ -414,3 +418,33 @@ int drm_connector_attach_content_protection_property(
> > return 0;
> > }
> > EXPORT_SYMBOL(drm_connector_attach_content_protection_property);
> > +
> > +/**
> > + * drm_hdcp_update_content_protection - Updates the content protection state
> > + * of a connector
> > + *
> > + * @connector: drm_connector on which content protection state needs an update
> > + * @val: New state of the content protection property
> > + *
> > + * This function can be used by display drivers, to update the kernel triggered
> > + * content protection state changes of a drm_connector such as DESIRED->ENABLED
> > + * and ENABLED->DESIRED. No uevent for DESIRED->UNDESIRED or ENABLED->UNDESIRED,
> > + * as userspace is triggering such state change and kernel performs it without
> > + * fail.This function update the new state of the property into the connector's
> > + * state and generate an uevent to notify the userspace.
This para was rewritten to explain in which all are events uevents will be sent
and when events wont be sent.
> > + */
>
> Hi,
>
> this patch is not yet adding the documentation I asked for.
>
> The uevent behaviour needs to be also documented with the Content
> Protection property description. No userspace developer will know to
> come to dig up these kernel-internal functions.
Sure this will help. I will do it. Thanks.
>
> > +void drm_hdcp_update_content_protection(struct drm_connector *connector,
> > + u64 val)
> > +{
> > + struct drm_device *dev = connector->dev;
> > + struct drm_connector_state *state = connector->state;
> > +
> > + WARN_ON(!drm_modeset_is_locked(&dev->mode_config.connection_mutex));
>
> Still missing WARN_ON(val == UNDESIRED) to prevent other drivers from
> making that mistake in the future.
IMHO This is not required. as kernel is not changing the "val" which is the
state requested by userspace tracked by "state->content_protection". So
this function will return as state->content_protection == val is true.
Thanks,
Ram.
>
>
> Thanks,
> pq
>
> > + if (state->content_protection == val)
> > + return;
> > +
> > + state->content_protection = val;
> > + drm_sysfs_connector_status_event(connector,
> > + dev->mode_config.content_protection_property);
> > +}
> > +EXPORT_SYMBOL(drm_hdcp_update_content_protection);
> > diff --git a/include/drm/drm_hdcp.h b/include/drm/drm_hdcp.h
> > index 2970abdfaf12..dd864ac9ce85 100644
> > --- a/include/drm/drm_hdcp.h
> > +++ b/include/drm/drm_hdcp.h
> > @@ -292,4 +292,6 @@ bool drm_hdcp_check_ksvs_revoked(struct drm_device *dev,
> > u8 *ksvs, u32 ksv_count);
> > int drm_connector_attach_content_protection_property(
> > struct drm_connector *connector, bool hdcp_content_type);
> > +void drm_hdcp_update_content_protection(struct drm_connector *connector,
> > + u64 val);
> > #endif
>
_______________________________________________
dri-devel mailing list
dri-devel@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/dri-devel
next prev parent reply other threads:[~2019-07-08 9:21 UTC|newest]
Thread overview: 18+ messages / expand[flat|nested] mbox.gz Atom feed top
2019-07-05 0:46 [PATCH v8 0/6] HDCP2.2 Phase II Ramalingam C
2019-07-05 0:46 ` [PATCH v8 1/6] drm: Add Content protection type property Ramalingam C
2019-07-08 9:52 ` Pekka Paalanen
2019-07-08 9:59 ` Pekka Paalanen
2019-07-08 9:12 ` Ramalingam C
2019-07-09 13:26 ` Pekka Paalanen
2019-07-09 12:58 ` Ramalingam C
2019-07-05 0:46 ` [PATCH v8 2/6] drm/i915: Attach content " Ramalingam C
2019-07-05 0:46 ` [PATCH v8 3/6] drm: uevent for connector status change Ramalingam C
2019-07-05 0:46 ` [PATCH v8 4/6] drm/hdcp: update content protection property with uevent Ramalingam C
2019-07-08 10:09 ` Pekka Paalanen
2019-07-08 9:21 ` Ramalingam C [this message]
2019-07-05 0:46 ` [PATCH v8 5/6] drm/i915: update the hdcp state " Ramalingam C
2019-07-05 0:46 ` [PATCH v8 6/6] drm/hdcp: reference for srm file format Ramalingam C
2019-07-08 10:16 ` Pekka Paalanen
2019-07-08 9:22 ` Ramalingam C
2019-07-05 9:02 ` ✗ Fi.CI.CHECKPATCH: warning for HDCP2.2 Phase II (rev10) Patchwork
2019-07-05 9:48 ` ✗ Fi.CI.BAT: failure " Patchwork
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20190708092123.GB31930@intel.com \
--to=ramalingam.c@intel.com \
--cc=dri-devel@lists.freedesktop.org \
--cc=intel-gfx@lists.freedesktop.org \
--cc=ppaalanen@gmail.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.