From patchwork Fri Mar 12 00:09:37 2010 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Devin Heitmueller X-Patchwork-Id: 2924 Return-path: Envelope-to: mchehab@infradead.org Delivery-date: Fri, 12 Mar 2010 00:09:41 +0000 Received: from bombadil.infradead.org [18.85.46.34] by pedra with IMAP (fetchmail-6.3.6) for (single-drop); Thu, 11 Mar 2010 21:11:24 -0300 (BRT) Received: from vger.kernel.org ([209.132.180.67]) by bombadil.infradead.org with esmtp (Exim 4.69 #1 (Red Hat Linux)) id 1NpsRh-0004Jp-14; Fri, 12 Mar 2010 00:09:41 +0000 Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1755493Ab0CLAJi (ORCPT + 1 other); Thu, 11 Mar 2010 19:09:38 -0500 Received: from mail-px0-f198.google.com ([209.85.216.198]:44925 "EHLO mail-px0-f198.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1755297Ab0CLAJh (ORCPT ); Thu, 11 Mar 2010 19:09:37 -0500 Received: by pxi36 with SMTP id 36so196350pxi.21 for ; Thu, 11 Mar 2010 16:09:37 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=gamma; h=domainkey-signature:mime-version:received:date:message-id:subject :from:to:content-type; bh=qsFxj6a9FyPt33nIvOJe0UkPXr3u8ceaLx9Er6XpuFY=; b=A/p7E/+0UsL0g+4PctyLiKRcYQ5zzIoP86ICsxBNo54QNYxLj+1tV9nUofj9443jaA VUnKo192OAjico/w3IO0cLV8yQ07RveOyD3OPxcY0ut4Q07FnhT25F3nbxYtmLi0AAxn xTJ8NZeqWxGo2KzPELCQhqMx5L8WNhCdL/wog= DomainKey-Signature: a=rsa-sha1; c=nofws; d=gmail.com; s=gamma; h=mime-version:date:message-id:subject:from:to:content-type; b=mbHb4e4nLa7LhL3hm4A/wu2AG1OP37Z9wOWUELeMOGIx58/vmDr9NkJBqvetVTbzc6 yXRLPp8yLlVgNj5FPhKv7CNbkT1iSVkYrT1+wNYXitboCyI8ESZTzdYr+FNnxGU8Lab2 vmnsYB4kVjhz/ieVlh5V0io3RZ7IdOskw/LDQ= MIME-Version: 1.0 Received: by 10.114.7.18 with SMTP id 18mr1828960wag.0.1268352577139; Thu, 11 Mar 2010 16:09:37 -0800 (PST) Date: Thu, 11 Mar 2010 19:09:37 -0500 Message-ID: <412bdbff1003111609m72fc7e65he84a9791502cac7d@mail.gmail.com> Subject: [PATCH] v4l2-ctl: fix regression in ability to set/get private controls From: Devin Heitmueller To: Linux Media Mailing List Sender: linux-media-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-media@vger.kernel.org From 3dbab2e437c4a1673c1966937faec6e0fc56be01 Mon Sep 17 00:00:00 2001 From: Devin Heitmueller Date: Wed, 10 Mar 2010 23:01:53 -0500 Subject: [PATCH] v4l2-ctl: fix regression in ability to set/get private controls From: Devin Heitmueller In hg revision 12546, a regression was introduced which resulted in the ability to get/set private controls. The change resulted in all attempts to set private controls going through the extended controls interface, and the extended controls interface explicitly denies ability to use private control CIDs (it's enforced in the check_ext_ctl function in v4l2-ioctl.c. Fix the code such that it goes back to using the older g_ctrl/s_ctrl if the control ID is a private control. Priority: high Signed-off-by: Devin Heitmueller Acked-by: Hans Verkuil --- utils/v4l2-ctl/v4l2-ctl.cpp | 6 ++++-- 1 files changed, 4 insertions(+), 2 deletions(-) @@ -2881,7 +2882,8 @@ set_vid_fmt_error: } for (class2ctrls_map::iterator iter = class2ctrls.begin(); iter != class2ctrls.end(); ++iter) { - if (iter->first == V4L2_CTRL_CLASS_USER) { + if (iter->first == V4L2_CTRL_CLASS_USER || + iter->first == V4L2_CID_PRIVATE_BASE) { for (unsigned i = 0; i < iter->second.size(); i++) { struct v4l2_control ctrl; diff --git a/utils/v4l2-ctl/v4l2-ctl.cpp b/utils/v4l2-ctl/v4l2-ctl.cpp index 26d3996..c88bf6e 100644 --- a/utils/v4l2-ctl/v4l2-ctl.cpp +++ b/utils/v4l2-ctl/v4l2-ctl.cpp @@ -2589,7 +2589,8 @@ set_vid_fmt_error: } for (class2ctrls_map::iterator iter = class2ctrls.begin(); iter != class2ctrls.end(); ++iter) { - if (iter->first == V4L2_CTRL_CLASS_USER) { + if (iter->first == V4L2_CTRL_CLASS_USER || + iter->first == V4L2_CID_PRIVATE_BASE) { for (unsigned i = 0; i < iter->second.size(); i++) { struct v4l2_control ctrl;