From: Rob Clark <robdclark@gmail.com>
To: dri-devel@lists.freedesktop.org
Subject: [RFCv4 08/14] drm: Refactor object property check code
Date: Mon, 25 Nov 2013 09:47:32 -0500 [thread overview]
Message-ID: <1385390858-4412-9-git-send-email-robdclark@gmail.com> (raw)
In-Reply-To: <1385390858-4412-1-git-send-email-robdclark@gmail.com>
From: Ville Syrjälä <ville.syrjala@linux.intel.com>
Refactor the code to check whether an object has a specific property
to a new function.
v1: original
v2: rebase on atomic -- Rob Clark
v3: EINVAL->ENOENT
Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
---
drivers/gpu/drm/drm_crtc.c | 25 ++++++++++++++-----------
1 file changed, 14 insertions(+), 11 deletions(-)
diff --git a/drivers/gpu/drm/drm_crtc.c b/drivers/gpu/drm/drm_crtc.c
index 5142599..8180499 100644
--- a/drivers/gpu/drm/drm_crtc.c
+++ b/drivers/gpu/drm/drm_crtc.c
@@ -3506,6 +3506,19 @@ static int drm_mode_set_obj_prop(struct drm_mode_object *obj,
return -EINVAL;
}
+static bool object_has_prop(const struct drm_mode_object *obj, u32 prop_id)
+{
+ int i;
+
+ if (!obj->properties)
+ return false;
+
+ for (i = 0; i < obj->properties->count; i++)
+ if (obj->properties->ids[i] == prop_id)
+ return true;
+ return false;
+}
+
/* call with mode_config mutex held */
static int drm_mode_set_obj_prop_id(struct drm_device *dev, void *state,
uint32_t obj_id, uint32_t obj_type,
@@ -3513,20 +3526,10 @@ static int drm_mode_set_obj_prop_id(struct drm_device *dev, void *state,
{
struct drm_mode_object *arg_obj;
struct drm_property *property;
- int i;
arg_obj = drm_mode_object_find(dev, obj_id, obj_type);
- if (!arg_obj)
+ if (!(arg_obj && object_has_prop(arg_obj, prop_id)))
return -ENOENT;
- if (!arg_obj->properties)
- return -EINVAL;
-
- for (i = 0; i < arg_obj->properties->count; i++)
- if (arg_obj->properties->ids[i] == prop_id)
- break;
-
- if (i == arg_obj->properties->count)
- return -EINVAL;
property = drm_property_find(dev, prop_id);
if (!property)
--
1.8.4.2
_______________________________________________
dri-devel mailing list
dri-devel@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/dri-devel
next prev parent reply other threads:[~2013-11-25 14:48 UTC|newest]
Thread overview: 32+ messages / expand[flat|nested] mbox.gz Atom feed top
2013-11-25 14:47 [RFCv4 00/14] Atomic/nuclear modeset/pageflip Rob Clark
2013-11-25 14:47 ` [RFCv4 01/14] drm: add atomic fxns Rob Clark
2013-11-25 14:47 ` [RFCv4 02/14] drm: convert crtc to ww_mutex Rob Clark
2013-11-25 14:47 ` [RFCv4 03/14] drm: add object property type Rob Clark
2013-11-25 14:47 ` [RFCv4 04/14] drm: add signed-range " Rob Clark
2013-11-25 14:47 ` [RFCv4 05/14] drm: helpers to find mode objects Rob Clark
2013-11-25 14:47 ` [RFCv4 06/14] drm: split propvals out and blob property support Rob Clark
2013-11-25 14:47 ` [RFCv4 07/14] drm: Allow drm_mode_object_find() to look up an object of any type Rob Clark
2013-11-25 14:47 ` Rob Clark [this message]
2013-11-25 14:47 ` [RFCv4 09/14] drm: convert plane to properties/state Rob Clark
2014-01-28 21:52 ` Sean Paul
2014-01-29 13:44 ` Rob Clark
2014-02-07 2:53 ` Sean Paul
2014-02-07 12:28 ` Rob Clark
2014-02-10 17:45 ` Sean Paul
2014-02-26 21:30 ` Sean Paul
2014-02-27 0:18 ` Rob Clark
2014-03-03 19:22 ` Sean Paul
2014-03-03 19:40 ` Rob Clark
2014-03-18 15:48 ` Sean Paul
2014-03-18 16:24 ` Rob Clark
2014-03-18 17:33 ` Sean Paul
2013-11-25 14:47 ` [RFCv4 10/14] drm: convert crtc " Rob Clark
2013-12-11 21:48 ` Matt Roper
2013-12-11 23:38 ` Rob Clark
2014-03-04 21:29 ` Sean Paul
2014-03-04 22:04 ` Rob Clark
2014-03-04 22:36 ` Sean Paul
2013-11-25 14:47 ` [RFCv4 11/14] drm: push locking down into restore_fbdev_mode Rob Clark
2013-11-25 14:47 ` [RFCv4 12/14] drm: Atomic modeset ioctl Rob Clark
2013-11-25 14:47 ` [RFCv4 13/14] drm/msm: add atomic support Rob Clark
2013-11-25 14:47 ` [RFCv4 14/14] HACK: drm: allow FB's in drm_mode_object_find Rob Clark
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=1385390858-4412-9-git-send-email-robdclark@gmail.com \
--to=robdclark@gmail.com \
--cc=dri-devel@lists.freedesktop.org \
/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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox