From patchwork Wed Sep 23 02:45:12 2015 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Hyungwon Hwang X-Patchwork-Id: 7247071 Return-Path: X-Original-To: patchwork-dri-devel@patchwork.kernel.org Delivered-To: patchwork-parsemail@patchwork2.web.kernel.org Received: from mail.kernel.org (mail.kernel.org [198.145.29.136]) by patchwork2.web.kernel.org (Postfix) with ESMTP id F3554BEEC1 for ; Wed, 23 Sep 2015 02:45:29 +0000 (UTC) Received: from mail.kernel.org (localhost [127.0.0.1]) by mail.kernel.org (Postfix) with ESMTP id F0E3520A92 for ; Wed, 23 Sep 2015 02:45:28 +0000 (UTC) Received: from gabe.freedesktop.org (gabe.freedesktop.org [131.252.210.177]) by mail.kernel.org (Postfix) with ESMTP id D0B8520A81 for ; Wed, 23 Sep 2015 02:45:26 +0000 (UTC) Received: from gabe.freedesktop.org (localhost [127.0.0.1]) by gabe.freedesktop.org (Postfix) with ESMTP id 174966EBBB; Tue, 22 Sep 2015 19:45:25 -0700 (PDT) X-Original-To: dri-devel@lists.freedesktop.org Delivered-To: dri-devel@lists.freedesktop.org Received: from mailout3.samsung.com (mailout3.samsung.com [203.254.224.33]) by gabe.freedesktop.org (Postfix) with ESMTPS id 291E46EBB8 for ; Tue, 22 Sep 2015 19:45:22 -0700 (PDT) Received: from epcpsbgr1.samsung.com (u141.gpu120.samsung.co.kr [203.254.230.141]) by mailout3.samsung.com (Oracle Communications Messaging Server 7.0.5.31.0 64bit (built May 5 2014)) with ESMTP id <0NV3019HPZNKNM70@mailout3.samsung.com> for dri-devel@lists.freedesktop.org; Wed, 23 Sep 2015 11:45:20 +0900 (KST) Received: from epcpsbgm2new.samsung.com ( [172.20.52.112]) by epcpsbgr1.samsung.com (EPCPMTA) with SMTP id 08.8B.05274.F3212065; Wed, 23 Sep 2015 11:45:20 +0900 (KST) X-AuditID: cbfee68d-f79ae6d00000149a-b1-5602123f5345 Received: from epmmp2 ( [203.254.227.17]) by epcpsbgm2new.samsung.com (EPCPMTA) with SMTP id DD.08.18629.F3212065; Wed, 23 Sep 2015 11:45:19 +0900 (KST) Received: from localhost.localdomain.localdomain ([10.252.82.145]) by mmp2.samsung.com (Oracle Communications Messaging Server 7.0.5.31.0 64bit (built May 5 2014)) with ESMTPA id <0NV300GR1ZNG6Y00@mmp2.samsung.com>; Wed, 23 Sep 2015 11:45:19 +0900 (KST) From: Hyungwon Hwang To: dri-devel@lists.freedesktop.org, ppaalanen@gmail.com, emil.l.velikov@gmail.com Subject: [PATCH v3 1/3] modetest: introduce get_prop_info() for getting property id and type Date: Wed, 23 Sep 2015 11:45:12 +0900 Message-id: <1442976314-5792-1-git-send-email-human.hwang@samsung.com> X-Mailer: git-send-email 2.4.3 X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFlrJLMWRmVeSWpSXmKPExsWyRsSkQNdBiCnMYO8CRosrX9+zWey5eo/J YumMPlaL1rZqBxaPnbPusnvc7z7O5NG3ZRVjAHMUl01Kak5mWWqRvl0CV8a2rbfZCu4KV3yd MZWtgfEqfxcjJ4eEgInE9RNTWSFsMYkL99azdTFycQgJrGCU+PhiPTNMUWfHRRaIxCxGif93 Z0BVtTFJXPp6hx2kik1AT2LBtR9gtohAiMSGLRvBbGYBHYnrN7eATRIWiJN48+kX0DoODhYB VYl/W/1ATF4BN4n52xQgdslJnFv/BWyXhMB9NonVZ1sZQRIsAgIS3yYfYgGplxCQldh0AOo2 SYmDK26wTGAUXMDIsIpRNLUguaA4Kb3IUK84Mbe4NC9dLzk/dxMjMARP/3vWu4Px9gHrQ4wC HIxKPLwPvjCGCbEmlhVX5h5iNAXaMJFZSjQ5HxjoeSXxhsZmRhamJqbGRuaWZkrivIpSP4OF BNITS1KzU1MLUovii0pzUosPMTJxcEoBQ7PQZg7zxdsuYnF1V+wCXlwLC3bJnR/a+O6kl4il Y+7ldFudtJ23nh71Vea573RXIo9tV/yPXQfbt9+7lf+ioC8iz3vD47c/Xwk/XsFR5DFRx/Te vOLA0PV+in0MyuwJb0oulZ4PSHRoO7H5zOcjp0Im79/u+uijRVZI3dpZ1uKW/xi5ErJTlFiK MxINtZiLihMBIVXygjwCAAA= X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFvrGLMWRmVeSWpSXmKPExsVy+t9jQV17IaYwg/UvLS2ufH3PZrHn6j0m i6Uz+lgtWtuqHVg8ds66y+5xv/s4k0ffllWMAcxRDYw2GamJKalFCql5yfkpmXnptkrewfHO 8aZmBoa6hpYW5koKeYm5qbZKLj4Bum6ZOUDrlBTKEnNKgUIBicXFSvp2mCaEhrjpWsA0Ruj6 hgTB9RgZoIGENYwZ27beZiu4K1zxdcZUtgbGq/xdjJwcEgImEp0dF1kgbDGJC/fWs3UxcnEI CcxilPh/dwaU08YkcenrHXaQKjYBPYkF136A2SICIRIbtmwEs5kFdCSu39zCDGILC8RJvPn0 i7WLkYODRUBV4t9WPxCTV8BNYv42BYhdchLn1n9hmcDIvYCRYRWjRGpBckFxUnquUV5quV5x Ym5xaV66XnJ+7iZGcJg/k97BeHiX+yFGAQ5GJR5ei++MYUKsiWXFlbmHGCU4mJVEeO/8AQrx piRWVqUW5ccXleakFh9iNAVaP5FZSjQ5HxiDeSXxhsYmZkaWRuaGFkbG5krivDcOMYQJCaQn lqRmp6YWpBbB9DFxcEo1MAoHlsY/53j67WbQ5+tfsmxdIqb4nxN89e6Q/aLatFlNNdEljDvt Hy1rtp5l4HxENnvPuuSfE35GnQpe9ED2zvd/6TLr+j99v3Pki15XT6lq5gmZOqdHnxi4fkcc 8zrJESP1Z8sm8WbPn+FsrbbfZh64efaPm3hpz2SL99aMHBYNNzdcrBFO2qnEUpyRaKjFXFSc CACO3wnviQIAAA== DLP-Filter: Pass X-MTR: 20000000000000000@CPGS X-CFilter-Loop: Reflected X-BeenThere: dri-devel@lists.freedesktop.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: Direct Rendering Infrastructure - Development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , MIME-Version: 1.0 Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" X-Spam-Status: No, score=-4.2 required=5.0 tests=BAYES_00, RCVD_IN_DNSWL_MED, RP_MATCHES_RCVD, UNPARSEABLE_RELAY autolearn=unavailable version=3.3.1 X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on mail.kernel.org X-Virus-Scanned: ClamAV using ClamSMTP Modetest gets the property name from user to set it. So the name must be converted to its id. Until now, this is done in the set_property(). But to support atomic modeset in modetest, this logic should be separated from the fuction, because atomic modeset and legacy modeset use different IOCTLs. Signed-off-by: Hyungwon Hwang --- tests/modetest/modetest.c | 29 ++++++++++++++++++++--------- 1 file changed, 20 insertions(+), 9 deletions(-) -- 2.4.3 diff --git a/tests/modetest/modetest.c b/tests/modetest/modetest.c index 3b01918..08ecf58 100644 --- a/tests/modetest/modetest.c +++ b/tests/modetest/modetest.c @@ -894,12 +894,11 @@ struct property_arg { uint64_t value; }; -static void set_property(struct device *dev, struct property_arg *p) +static int get_prop_info(struct resources *resources, struct property_arg *p, + const char *obj_type) { drmModeObjectProperties *props = NULL; drmModePropertyRes **props_info = NULL; - const char *obj_type; - int ret; int i; p->obj_type = 0; @@ -918,21 +917,21 @@ static void set_property(struct device *dev, struct property_arg *p) } \ } while(0) \ - find_object(dev->resources, res, crtc, CRTC); + find_object(resources, res, crtc, CRTC); if (p->obj_type == 0) - find_object(dev->resources, res, connector, CONNECTOR); + find_object(resources, res, connector, CONNECTOR); if (p->obj_type == 0) - find_object(dev->resources, plane_res, plane, PLANE); + find_object(resources, plane_res, plane, PLANE); if (p->obj_type == 0) { fprintf(stderr, "Object %i not found, can't set property\n", p->obj_id); - return; + return -1; } if (!props) { fprintf(stderr, "%s %i has no properties\n", obj_type, p->obj_id); - return; + return -1; } for (i = 0; i < (int)props->count_props; ++i) { @@ -945,11 +944,23 @@ static void set_property(struct device *dev, struct property_arg *p) if (i == (int)props->count_props) { fprintf(stderr, "%s %i has no %s property\n", obj_type, p->obj_id, p->name); - return; + return -1; } p->prop_id = props->props[i]; + return 0; +} + +static void set_property(struct device *dev, struct property_arg *p) +{ + int ret; + const char *obj_type = NULL; + + ret = get_prop_info(dev->resources, p, obj_type); + if (ret < 0) + return; + ret = drmModeObjectSetProperty(dev->fd, p->obj_id, p->obj_type, p->prop_id, p->value); if (ret < 0)