lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite: Windows password security audit tool. GUI, reports in PDF.
[<prev] [next>] [<thread-prev] [day] [month] [year] [list]
Message-ID: <1397126366.16960.17.camel@sagar-desktop>
Date:	Thu, 10 Apr 2014 16:09:26 +0530
From:	Sagar Arun Kamble <sagar.a.kamble@...el.com>
To:	intel-gfx@...ts.freedesktop.org
Cc:	airlied@...ux.ie, dri-devel@...ts.freedesktop.org,
	linux-kernel@...r.kernel.org, robdclark@...il.com,
	rusty@...tcorp.com.au
Subject: Re: [PATCH v2 1/4] drm: Adding new flag to restrict bitmask drm
 properties as 32 bit type and 32 bit value pair


Adding Rob and Rusty in the review thread.

Kindly review these patches for interface being proposed to set
color/alpha property of planes modeled after glBlendFunc.

 http://lists.freedesktop.org/archives/intel-gfx/2014-March/042350.html
 http://lists.freedesktop.org/archives/intel-gfx/2014-March/042351.html
 http://lists.freedesktop.org/archives/intel-gfx/2014-March/042352.html
 http://lists.freedesktop.org/archives/intel-gfx/2014-March/042587.html
 http://lists.freedesktop.org/archives/intel-gfx/2014-March/042354.html

thanks,
Sagar


On Tue, 2014-03-25 at 20:02 +0530, sagar.a.kamble@...el.com wrote:
> From: Sagar Kamble <sagar.a.kamble@...el.com>
> 
> With this patch new flag DRM_MODE_PROP_32BIT_PAIR is added that will help make use
> of 64 bit value of bitmask property as two 32 bit values.
> 
> Cc: airlied@...ux.ie
> Cc: dri-devel@...ts.freedesktop.org
> Cc: linux-kernel@...r.kernel.org
> Signed-off-by: Sagar Kamble <sagar.a.kamble@...el.com>
> ---
>  drivers/gpu/drm/drm_crtc.c  | 22 ++++++++++++++++------
>  include/uapi/drm/drm_mode.h |  3 +++
>  2 files changed, 19 insertions(+), 6 deletions(-)
> 
> diff --git a/drivers/gpu/drm/drm_crtc.c b/drivers/gpu/drm/drm_crtc.c
> index 4e43fc2..d0d03ec 100644
> --- a/drivers/gpu/drm/drm_crtc.c
> +++ b/drivers/gpu/drm/drm_crtc.c
> @@ -2993,10 +2993,13 @@ int drm_property_add_enum(struct drm_property *property, int index,
>  
>  	/*
>  	 * Bitmask enum properties have the additional constraint of values
> -	 * from 0 to 63
> +	 * from 0 to 63. For properties with 32BIT_PAIR Flag set this constraint
> +	 * range is 0 to 31.
>  	 */
> -	if ((property->flags & DRM_MODE_PROP_BITMASK) && (value > 63))
> -		return -EINVAL;
> +	if (property->flags & DRM_MODE_PROP_BITMASK)
> +		if (((property->flags & DRM_MODE_PROP_32BIT_PAIR) && (value > 31)) ||
> +		    (value > 63))
> +			return -EINVAL;
>  
>  	if (!list_empty(&property->enum_blob_list)) {
>  		list_for_each_entry(prop_enum, &property->enum_blob_list, head) {
> @@ -3305,9 +3308,16 @@ static bool drm_property_change_is_valid(struct drm_property *property,
>  	} else if (property->flags & DRM_MODE_PROP_BITMASK) {
>  		int i;
>  		uint64_t valid_mask = 0;
> -		for (i = 0; i < property->num_values; i++)
> -			valid_mask |= (1ULL << property->values[i]);
> -		return !(value & ~valid_mask);
> +		uint32_t valid_32bit_mask = 0;
> +		if (property->flags & DRM_MODE_PROP_32BIT_PAIR) {
> +			for (i = 0; i < property->num_values; i++)
> +				valid_32bit_mask |= (1UL << property->values[i]);
> +			return !((value & 0xFFFFFFFF) & ~valid_32bit_mask);
> +		} else {
> +			for (i = 0; i < property->num_values; i++)
> +				valid_mask |= (1ULL << property->values[i]);
> +			return !(value & ~valid_mask);
> +		}
>  	} else if (property->flags & DRM_MODE_PROP_BLOB) {
>  		/* Only the driver knows */
>  		return true;
> diff --git a/include/uapi/drm/drm_mode.h b/include/uapi/drm/drm_mode.h
> index f104c26..5e3a7d9 100644
> --- a/include/uapi/drm/drm_mode.h
> +++ b/include/uapi/drm/drm_mode.h
> @@ -250,6 +250,9 @@ struct drm_mode_get_connector {
>  #define DRM_MODE_PROP_ENUM	(1<<3) /* enumerated type with text strings */
>  #define DRM_MODE_PROP_BLOB	(1<<4)
>  #define DRM_MODE_PROP_BITMASK	(1<<5) /* bitmask of enumerated types */
> +#define DRM_MODE_PROP_32BIT_PAIR (1<<6) /* 32 bit bitmask of enumerated types
> +					 * and 32 bit of value of the type */
> +
>  
>  struct drm_mode_property_enum {
>  	__u64 value;


--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@...r.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ