All of lore.kernel.org
 help / color / mirror / Atom feed
From: Ander Conselvan de Oliveira <conselvan2@gmail.com>
To: Matt Roper <matthew.d.roper@intel.com>, intel-gfx@lists.freedesktop.org
Subject: Re: [PATCH 04/10] drm/i915: Add .atomic_{get, set}_property() entrypoints to planes
Date: Thu, 22 Jan 2015 13:09:33 +0200	[thread overview]
Message-ID: <54C0DA6D.30105@gmail.com> (raw)
In-Reply-To: <1421886949-26704-5-git-send-email-matthew.d.roper@intel.com>

Reviewed-by: Ander Conselvan de Oliveira <conselvan2@gmail.com>

On 01/22/2015 02:35 AM, Matt Roper wrote:
> When we flip on the DRIVER_ATOMIC bit, the DRM core will start calling
> this entrypoint to set and lookup driver-specific plane property values,
> rather than maintaining a shadow copy in object->properties.
>
> Note that although we add these functions to the plane vtable, they will
> not yet be called.  Future patches that switch our .set_property()
> handler and/or enable full atomic functionality are required before
> these code paths will be executed.
>
> Signed-off-by: Matt Roper <matthew.d.roper@intel.com>
> ---
>   drivers/gpu/drm/i915/intel_atomic_plane.c | 58 +++++++++++++++++++++++++++++++
>   drivers/gpu/drm/i915/intel_display.c      |  2 ++
>   drivers/gpu/drm/i915/intel_drv.h          |  8 +++++
>   3 files changed, 68 insertions(+)
>
> diff --git a/drivers/gpu/drm/i915/intel_atomic_plane.c b/drivers/gpu/drm/i915/intel_atomic_plane.c
> index d9d4306..4a3914f 100644
> --- a/drivers/gpu/drm/i915/intel_atomic_plane.c
> +++ b/drivers/gpu/drm/i915/intel_atomic_plane.c
> @@ -177,3 +177,61 @@ const struct drm_plane_helper_funcs intel_plane_helper_funcs = {
>   	.atomic_update = intel_plane_atomic_update,
>   };
>
> +/**
> + * intel_plane_atomic_get_property - fetch plane property value
> + * @plane: plane to fetch property for
> + * @state: state containing the property value
> + * @property: property to look up
> + * @val: pointer to write property value into
> + *
> + * The DRM core does not store shadow copies of properties for
> + * atomic-capable drivers.  This entrypoint is used to fetch
> + * the current value of a driver-specific plane property.
> + */
> +int
> +intel_plane_atomic_get_property(struct drm_plane *plane,
> +				const struct drm_plane_state *state,
> +				struct drm_property *property,
> +				uint64_t *val)
> +{
> +	struct drm_mode_config *config = &plane->dev->mode_config;
> +
> +	if (property == config->rotation_property) {
> +		*val = state->rotation;
> +	} else {
> +		DRM_DEBUG_KMS("Unknown plane property '%s'\n", property->name);
> +		return -EINVAL;
> +	}
> +
> +	return 0;
> +}
> +
> +/**
> + * intel_plane_atomic_set_property - set plane property value
> + * @plane: plane to set property for
> + * @state: state to update property value in
> + * @property: property to set
> + * @val: value to set property to
> + *
> + * Writes the specified property value for a plane into the provided atomic
> + * state object.
> + *
> + * Returns 0 on success, -EINVAL on unrecognized properties
> + */
> +int
> +intel_plane_atomic_set_property(struct drm_plane *plane,
> +				struct drm_plane_state *state,
> +				struct drm_property *property,
> +				uint64_t val)
> +{
> +	struct drm_mode_config *config = &plane->dev->mode_config;
> +
> +	if (property == config->rotation_property) {
> +		state->rotation = val;
> +	} else {
> +		DRM_DEBUG_KMS("Unknown plane property '%s'\n", property->name);
> +		return -EINVAL;
> +	}
> +
> +	return 0;
> +}
> diff --git a/drivers/gpu/drm/i915/intel_display.c b/drivers/gpu/drm/i915/intel_display.c
> index e0ffb14..047c77e 100644
> --- a/drivers/gpu/drm/i915/intel_display.c
> +++ b/drivers/gpu/drm/i915/intel_display.c
> @@ -12054,6 +12054,8 @@ const struct drm_plane_funcs intel_plane_funcs = {
>   	.disable_plane = drm_plane_helper_disable,
>   	.destroy = intel_plane_destroy,
>   	.set_property = intel_plane_set_property,
> +	.atomic_get_property = intel_plane_atomic_get_property,
> +	.atomic_set_property = intel_plane_atomic_set_property,
>   	.atomic_duplicate_state = intel_plane_duplicate_state,
>   	.atomic_destroy_state = intel_plane_destroy_state,
>
> diff --git a/drivers/gpu/drm/i915/intel_drv.h b/drivers/gpu/drm/i915/intel_drv.h
> index 3b88ecc..24c63fb 100644
> --- a/drivers/gpu/drm/i915/intel_drv.h
> +++ b/drivers/gpu/drm/i915/intel_drv.h
> @@ -945,6 +945,14 @@ int intel_prepare_plane_fb(struct drm_plane *plane,
>   			   struct drm_framebuffer *fb);
>   void intel_cleanup_plane_fb(struct drm_plane *plane,
>   			    struct drm_framebuffer *fb);
> +int intel_plane_atomic_get_property(struct drm_plane *plane,
> +				    const struct drm_plane_state *state,
> +				    struct drm_property *property,
> +				    uint64_t *val);
> +int intel_plane_atomic_set_property(struct drm_plane *plane,
> +				    struct drm_plane_state *state,
> +				    struct drm_property *property,
> +				    uint64_t val);
>
>   /* shared dpll functions */
>   struct intel_shared_dpll *intel_crtc_to_shared_dpll(struct intel_crtc *crtc);
>

_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/intel-gfx

  reply	other threads:[~2015-01-22 11:10 UTC|newest]

Thread overview: 25+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2015-01-22  0:35 [PATCH 00/10] i915 nuclear pageflip (v2) Matt Roper
2015-01-22  0:35 ` [PATCH 01/10] drm: Add rotation value to plane state Matt Roper
2015-01-22  0:35 ` [PATCH 02/10] drm/i915: Move rotation from intel_plane to drm_plane_state Matt Roper
2015-01-22 10:54   ` Ander Conselvan de Oliveira
2015-01-22  0:35 ` [PATCH 03/10] drm/i915: Consolidate plane handler vtables Matt Roper
2015-01-22  0:35 ` [PATCH 04/10] drm/i915: Add .atomic_{get, set}_property() entrypoints to planes Matt Roper
2015-01-22 11:09   ` Ander Conselvan de Oliveira [this message]
2015-01-22  0:35 ` [PATCH 05/10] drm/i915: Add main atomic entrypoints (v2) Matt Roper
2015-01-22 12:52   ` Ander Conselvan de Oliveira
2015-01-22  0:35 ` [PATCH 06/10] drm/i915: Setup dummy atomic state for connectors (v2) Matt Roper
2015-01-22 16:00   ` Ander Conselvan de Oliveira
2015-01-23  0:50     ` [PATCH 06/10] drm/i915: Setup dummy atomic state for connectors (v3) Matt Roper
2015-01-23  5:42       ` Ander Conselvan de Oliveira
2015-01-22  0:35 ` [PATCH 07/10] drm/i915: Add atomic_get_property entrypoint for connectors Matt Roper
2015-01-22 16:55   ` Ander Conselvan de Oliveira
2015-01-23  0:51     ` [PATCH 07/10] drm/i915: Add atomic_get_property entrypoint for connectors (v2) Matt Roper
2015-01-23  5:43       ` Ander Conselvan de Oliveira
2015-01-22  0:35 ` [PATCH 08/10] drm/i915: Add crtc state duplication/destruction functions Matt Roper
2015-01-22 17:08   ` Ander Conselvan de Oliveira
2015-01-22  0:35 ` [PATCH 09/10] drm/i915: Switch plane properties to full atomic helper Matt Roper
2015-01-22 17:16   ` Ander Conselvan de Oliveira
2015-01-22  0:35 ` [PATCH 10/10] drm/i915: Add i915.nuclear_pageflip command line param to force atomic (v3) Matt Roper
2015-01-22 17:32   ` Ander Conselvan de Oliveira
2015-01-23  0:53     ` [PATCH 10/10] drm/i915: Add i915.nuclear_pageflip command line param to force atomic (v4) Matt Roper
2015-01-27  9:22       ` Daniel Vetter

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=54C0DA6D.30105@gmail.com \
    --to=conselvan2@gmail.com \
    --cc=intel-gfx@lists.freedesktop.org \
    --cc=matthew.d.roper@intel.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.