From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-11.6 required=3.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,HEADER_FROM_DIFFERENT_DOMAINS,INCLUDES_PATCH, MAILING_LIST_MULTI,NICE_REPLY_A,SIGNED_OFF_BY,SPF_HELO_NONE,SPF_PASS, USER_AGENT_SANE_1 autolearn=unavailable autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id 4112DC433E1 for ; Wed, 15 Jul 2020 15:42:41 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by mail.kernel.org (Postfix) with ESMTP id 1AE4A2071B for ; Wed, 15 Jul 2020 15:42:41 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=pass (2048-bit key) header.d=linaro.org header.i=@linaro.org header.b="Za4agzh0" Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1726376AbgGOPmg (ORCPT ); Wed, 15 Jul 2020 11:42:36 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:34560 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1725854AbgGOPmg (ORCPT ); Wed, 15 Jul 2020 11:42:36 -0400 Received: from mail-ej1-x643.google.com (mail-ej1-x643.google.com [IPv6:2a00:1450:4864:20::643]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id E4B10C08C5DB for ; Wed, 15 Jul 2020 08:42:35 -0700 (PDT) Received: by mail-ej1-x643.google.com with SMTP id dr13so2658362ejc.3 for ; Wed, 15 Jul 2020 08:42:35 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; h=subject:to:cc:references:from:message-id:date:user-agent :mime-version:in-reply-to:content-language:content-transfer-encoding; bh=atHKqaEFyhPKLRlFs+aSX/wC++TiPh0/8Gboy7TmwdM=; b=Za4agzh0zGbSdNgOAJs3GVPJRNXGe9e83bA40iCplS87rlP93Em3M6mFy562u0FkKv aHFZrluW4wSJX1GeuhXH+BpRLv331njTpGIUoKQOa5RAVzWgWS/zkwaQSyNnuQydkT3y Sw+97TkRvXOQLXMVxg3Ju2+aRGF02tlIPxzdVNvAGnFJ6NVNblftLJu992/+uY7ylM+H yO7R40G2z5E5w2yQtt0RHX6xv4bVhLF8FHmLk0I9cBuqZUu6/pB96zpWbOND2JsiRH57 hwT4fwpKfxOZGlxjxe06WYMtgyvkWsH5uyJ6GkHzUyyD4KFSRjo482DerV11VEGxs86o WK3g== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:subject:to:cc:references:from:message-id:date :user-agent:mime-version:in-reply-to:content-language :content-transfer-encoding; bh=atHKqaEFyhPKLRlFs+aSX/wC++TiPh0/8Gboy7TmwdM=; b=ryamdM5WVx9Jzc603oLdvjo9t2UFfq3smPL18g5KlK7vi6IkiYaiptboyx7XYBvb4b nGtva5w5MiZWpRjO/u1a/1zmSvGr/GmaGaMVHaRenSedRKxZ75j5AnKS249/r8GZZC8+ 0kmbLNpwL4Lup90uu+kunYt7jxFudXrxigwabEFuchneG5rxFFb4bAr5MzjiHBS3WoAa gSYoBfDB16c9eE2RBgB5VnHva6VHX7sXjVdrQBr3QfoiHSPrghJQ7TVh4JRYpGkKBRmE 1ymUlnKW7rG3Hzq/wM1ZvfhFSn9BXxFZZh0xfAFolt6sGRMbDCeRyDL2wG30uibybCu0 We/g== X-Gm-Message-State: AOAM531vq5CnV9DkQmVBpPfRFU+zEcYydMIHBH0q36UG0aNeHqLd9fIk Ra9Rbc1CxeWszAKgbK2l04TPtvd5vikRfw== X-Google-Smtp-Source: ABdhPJwaSs0VOlc/io39oYLV1f8wqKHBzAWJbfUdCDxUjrbfAHHTpyjNQUWkgk0CYcmYV7mUB2LZPw== X-Received: by 2002:a17:906:81d2:: with SMTP id e18mr9550885ejx.341.1594827754398; Wed, 15 Jul 2020 08:42:34 -0700 (PDT) Received: from [192.168.1.2] (212-5-158-188.ip.btc-net.bg. [212.5.158.188]) by smtp.googlemail.com with ESMTPSA id qc16sm2404599ejb.33.2020.07.15.08.42.32 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Wed, 15 Jul 2020 08:42:33 -0700 (PDT) Subject: Re: [PATCH 1/4] media: v4l2-ctrl: Add frame-skip std encoder control To: Nicolas Dufresne , Stanimir Varbanov , linux-media@vger.kernel.org, linux-kernel@vger.kernel.org, linux-arm-msm@vger.kernel.org, linux-arm-kernel@lists.infradead.org Cc: Kyungmin Park , Kamil Debski , Jeongtae Park , Andrzej Hajda , Hans Verkuil , Maheshwar Ajja References: <20200705121128.5250-1-stanimir.varbanov@linaro.org> <20200705121128.5250-2-stanimir.varbanov@linaro.org> From: Stanimir Varbanov Message-ID: <513fd919-56a2-08b4-c8a7-5d37d7743129@linaro.org> Date: Wed, 15 Jul 2020 18:42:31 +0300 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:68.0) Gecko/20100101 Thunderbird/68.8.0 MIME-Version: 1.0 In-Reply-To: Content-Type: text/plain; charset=utf-8 Content-Language: en-US Content-Transfer-Encoding: 8bit Sender: linux-arm-msm-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-arm-msm@vger.kernel.org Hi Nicolas, On 7/7/20 11:53 PM, Nicolas Dufresne wrote: > Le dimanche 05 juillet 2020 à 15:11 +0300, Stanimir Varbanov a écrit : >> Adds encoders standard v4l2 control for frame-skip. The control >> is a copy of a custom encoder control so that other v4l2 encoder >> drivers can use it. >> >> Signed-off-by: Stanimir Varbanov >> --- >> .../media/v4l/ext-ctrls-codec.rst | 32 +++++++++++++++++++ >> drivers/media/v4l2-core/v4l2-ctrls.c | 10 ++++++ >> include/uapi/linux/v4l2-controls.h | 6 ++++ >> 3 files changed, 48 insertions(+) >> >> diff --git a/Documentation/userspace-api/media/v4l/ext-ctrls-codec.rst b/Documentation/userspace-api/media/v4l/ext-ctrls-codec.rst >> index d0d506a444b1..a8b4c0b40747 100644 >> --- a/Documentation/userspace-api/media/v4l/ext-ctrls-codec.rst >> +++ b/Documentation/userspace-api/media/v4l/ext-ctrls-codec.rst >> @@ -592,6 +592,38 @@ enum v4l2_mpeg_video_bitrate_mode - >> the average video bitrate. It is ignored if the video bitrate mode >> is set to constant bitrate. >> >> +``V4L2_CID_MPEG_VIDEO_FRAME_SKIP_MODE (enum)`` >> + >> +enum v4l2_mpeg_video_frame_skip_mode - >> + Indicates in what conditions the encoder should skip frames. If >> + encoding a frame would cause the encoded stream to be larger then a >> + chosen data limit then the frame will be skipped. Possible values >> + are: > > I have nothing against this API, in fact it's really nice to generalize > as this is very common. Though, I think we are missing two things. This > documentation refer to the "chosen data limit". Is there controls to > configure these *chosen* limit ? The other issue is the vagueness of > the documented mode, see lower... > >> + >> + >> +.. tabularcolumns:: |p{9.2cm}|p{8.3cm}| >> + >> +.. raw:: latex >> + >> + \small >> + >> +.. flat-table:: >> + :header-rows: 0 >> + :stub-columns: 0 >> + >> + * - ``V4L2_MPEG_FRAME_SKIP_MODE_DISABLED`` >> + - Frame skip mode is disabled. >> + * - ``V4L2_MPEG_FRAME_SKIP_MODE_LEVEL_LIMIT`` >> + - Frame skip mode enabled and buffer limit is set by the chosen >> + level and is defined by the standard. > > At least for H.264, a level is compose of 3 limits. One is the maximum > number of macroblocks, this is is evidently not use for frame skipping > and already constrained in V4L2 (assuming the driver does not ignore > the level control of course). The two other limits are decoded > macroblocks/s and encoded kbits/s. Both are measure over time, which > means the M2M encoder needs to be timing aware. I think the time source > should be documented. Perhaps it is mandatory to set a frame interval > for this to work ? Or we need some timestamp to allow variable frame > interval ? (I don't think the second is really an option without > extending the API again, and confusingly, since I think we have used > the timestamp for other purpose already) Do you want to say that the encoder input timestamp, bitrate control (V4L2_CID_MPEG_VIDEO_BITRATE) and S_PARM is not enough to describe FRAME_SKIP_MODE_LEVEL_LIMIT mode? > >> + * - ``V4L2_MPEG_FRAME_SKIP_MODE_BUF_LIMIT`` >> + - Frame skip mode enabled and buffer limit is set by the VBV >> + (MPEG1/2/4) or CPB (H264) buffer size control. > > The notion of VBV an CPB is unlikely well known. If my memory is right, > these are constrained in buffering: in bytes (VBV) or bits per frame > over a window of n-frames (or the gop size for some less flexible > encoder) (CPB). I think these should be somehow chosen by application > (with controls), directly or indirectly, and documented here to ensure > we get consistent implementation across drivers. I guess you want me to add here references to the following controls: V4L2_CID_MPEG_VIDEO_VBV_SIZE V4L2_CID_MPEG_VIDEO_VBV_DELAY V4L2_CID_MPEG_VIDEO_H264_CPB_SIZE ? > >> + >> +.. raw:: latex >> + >> + \normalsize >> + >> ``V4L2_CID_MPEG_VIDEO_TEMPORAL_DECIMATION (integer)`` >> For every captured frame, skip this many subsequent frames (default >> 0). >> diff --git a/drivers/media/v4l2-core/v4l2-ctrls.c b/drivers/media/v4l2-core/v4l2-ctrls.c >> index 3f3fbcd60cc6..d088acfa6dd8 100644 >> --- a/drivers/media/v4l2-core/v4l2-ctrls.c >> +++ b/drivers/media/v4l2-core/v4l2-ctrls.c >> @@ -590,6 +590,12 @@ const char * const *v4l2_ctrl_get_menu(u32 id) >> "External", >> NULL, >> }; >> + static const char * const mpeg_video_frame_skip[] = { >> + "Disabled", >> + "Level Limit", >> + "VBV/CPB Limit", >> + NULL, >> + }; >> >> switch (id) { >> case V4L2_CID_MPEG_AUDIO_SAMPLING_FREQ: >> @@ -651,6 +657,8 @@ const char * const *v4l2_ctrl_get_menu(u32 id) >> return flash_strobe_source; >> case V4L2_CID_MPEG_VIDEO_HEADER_MODE: >> return header_mode; >> + case V4L2_CID_MPEG_VIDEO_FRAME_SKIP_MODE: >> + return mpeg_video_frame_skip; >> case V4L2_CID_MPEG_VIDEO_MULTI_SLICE_MODE: >> return multi_slice; >> case V4L2_CID_MPEG_VIDEO_H264_ENTROPY_MODE: >> @@ -844,6 +852,7 @@ const char *v4l2_ctrl_get_name(u32 id) >> case V4L2_CID_MPEG_VIDEO_MB_RC_ENABLE: return "H264 MB Level Rate Control"; >> case V4L2_CID_MPEG_VIDEO_HEADER_MODE: return "Sequence Header Mode"; >> case V4L2_CID_MPEG_VIDEO_MAX_REF_PIC: return "Max Number of Reference Pics"; >> + case V4L2_CID_MPEG_VIDEO_FRAME_SKIP_MODE: return "Frame Skip Mode"; >> case V4L2_CID_MPEG_VIDEO_H263_I_FRAME_QP: return "H263 I-Frame QP Value"; >> case V4L2_CID_MPEG_VIDEO_H263_P_FRAME_QP: return "H263 P-Frame QP Value"; >> case V4L2_CID_MPEG_VIDEO_H263_B_FRAME_QP: return "H263 B-Frame QP Value"; >> @@ -1265,6 +1274,7 @@ void v4l2_ctrl_fill(u32 id, const char **name, enum v4l2_ctrl_type *type, >> case V4L2_CID_FLASH_LED_MODE: >> case V4L2_CID_FLASH_STROBE_SOURCE: >> case V4L2_CID_MPEG_VIDEO_HEADER_MODE: >> + case V4L2_CID_MPEG_VIDEO_FRAME_SKIP_MODE: >> case V4L2_CID_MPEG_VIDEO_MULTI_SLICE_MODE: >> case V4L2_CID_MPEG_VIDEO_H264_ENTROPY_MODE: >> case V4L2_CID_MPEG_VIDEO_H264_LEVEL: >> diff --git a/include/uapi/linux/v4l2-controls.h b/include/uapi/linux/v4l2-controls.h >> index 62271418c1be..4e1526175a4c 100644 >> --- a/include/uapi/linux/v4l2-controls.h >> +++ b/include/uapi/linux/v4l2-controls.h >> @@ -742,6 +742,12 @@ enum v4l2_cid_mpeg_video_hevc_size_of_length_field { >> #define V4L2_CID_MPEG_VIDEO_HEVC_HIER_CODING_L6_BR (V4L2_CID_MPEG_BASE + 642) >> #define V4L2_CID_MPEG_VIDEO_REF_NUMBER_FOR_PFRAMES (V4L2_CID_MPEG_BASE + 643) >> #define V4L2_CID_MPEG_VIDEO_PREPEND_SPSPPS_TO_IDR (V4L2_CID_MPEG_BASE + 644) >> +#define V4L2_CID_MPEG_VIDEO_FRAME_SKIP_MODE (V4L2_CID_MPEG_BASE + 645) >> +enum v4l2_mpeg_video_frame_skip_mode { >> + V4L2_MPEG_VIDEO_FRAME_SKIP_MODE_DISABLED = 0, >> + V4L2_MPEG_VIDEO_FRAME_SKIP_MODE_LEVEL_LIMIT = 1, >> + V4L2_MPEG_VIDEO_FRAME_SKIP_MODE_BUF_LIMIT = 2, >> +}; >> >> /* MPEG-class control IDs specific to the CX2341x driver as defined by V4L2 */ >> #define V4L2_CID_MPEG_CX2341X_BASE (V4L2_CTRL_CLASS_MPEG | 0x1000) > -- regards, Stan From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-11.5 required=3.0 tests=BAYES_00,DKIMWL_WL_HIGH, DKIM_SIGNED,DKIM_VALID,HEADER_FROM_DIFFERENT_DOMAINS,INCLUDES_PATCH, MAILING_LIST_MULTI,NICE_REPLY_A,SIGNED_OFF_BY,SPF_HELO_NONE,SPF_PASS, USER_AGENT_SANE_1 autolearn=unavailable autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id 638DEC433E0 for ; Wed, 15 Jul 2020 15:44:07 +0000 (UTC) Received: from merlin.infradead.org (merlin.infradead.org [205.233.59.134]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPS id 1D22520663 for ; Wed, 15 Jul 2020 15:44:06 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=pass (2048-bit key) header.d=lists.infradead.org header.i=@lists.infradead.org header.b="3ZUfpH9p"; dkim=fail reason="signature verification failed" (2048-bit key) header.d=linaro.org header.i=@linaro.org header.b="Za4agzh0" DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 1D22520663 Authentication-Results: mail.kernel.org; dmarc=fail (p=none dis=none) header.from=linaro.org Authentication-Results: mail.kernel.org; spf=none smtp.mailfrom=linux-arm-kernel-bounces+linux-arm-kernel=archiver.kernel.org@lists.infradead.org DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=lists.infradead.org; s=merlin.20170209; h=Sender:Content-Transfer-Encoding: Content-Type:Cc:List-Subscribe:List-Help:List-Post:List-Archive: List-Unsubscribe:List-Id:In-Reply-To:MIME-Version:Date:Message-ID:From: References:To:Subject:Reply-To:Content-ID:Content-Description:Resent-Date: Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID:List-Owner; bh=n7qYh3U8nolTEwv3rT4rq1BsyWe2Kq9moYw/Yx3jGLQ=; b=3ZUfpH9pQKScyN3jT1WoIRffx Xw7R741rXRkPdHOuka74VgWFNo+CQncZq7w6zfexB/RD32D5A4/0dN2+9AEXzDcVaGH6CUWCX62Um k9UR8QpOquh9sK/+lEoKsEIrqjbc9Fp6OgubPpRZ5gteviD0bgFNe07L/tyKByZoGcVcdem7xFGCi UUiZ+HLtzcmhV0IM0hz0Ozr82AAU4pN/GPSh1Hfyx96OObDTqALlzzajhAozxBYGHxUSbc94UaIEC WMLeAqV0zMX5sfEAqK7elzkJUA0WcABm4rurZWiKR+UPUsVMbgzxUme9zZ2ILhBjfGIJo/FFU8w9k /MXRGHoHQ==; Received: from localhost ([::1] helo=merlin.infradead.org) by merlin.infradead.org with esmtp (Exim 4.92.3 #3 (Red Hat Linux)) id 1jvjYO-0005zq-Vv; Wed, 15 Jul 2020 15:42:41 +0000 Received: from mail-ej1-x643.google.com ([2a00:1450:4864:20::643]) by merlin.infradead.org with esmtps (Exim 4.92.3 #3 (Red Hat Linux)) id 1jvjYM-0005yz-8b for linux-arm-kernel@lists.infradead.org; Wed, 15 Jul 2020 15:42:39 +0000 Received: by mail-ej1-x643.google.com with SMTP id w6so2637230ejq.6 for ; Wed, 15 Jul 2020 08:42:36 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; h=subject:to:cc:references:from:message-id:date:user-agent :mime-version:in-reply-to:content-language:content-transfer-encoding; bh=atHKqaEFyhPKLRlFs+aSX/wC++TiPh0/8Gboy7TmwdM=; b=Za4agzh0zGbSdNgOAJs3GVPJRNXGe9e83bA40iCplS87rlP93Em3M6mFy562u0FkKv aHFZrluW4wSJX1GeuhXH+BpRLv331njTpGIUoKQOa5RAVzWgWS/zkwaQSyNnuQydkT3y Sw+97TkRvXOQLXMVxg3Ju2+aRGF02tlIPxzdVNvAGnFJ6NVNblftLJu992/+uY7ylM+H yO7R40G2z5E5w2yQtt0RHX6xv4bVhLF8FHmLk0I9cBuqZUu6/pB96zpWbOND2JsiRH57 hwT4fwpKfxOZGlxjxe06WYMtgyvkWsH5uyJ6GkHzUyyD4KFSRjo482DerV11VEGxs86o WK3g== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:subject:to:cc:references:from:message-id:date :user-agent:mime-version:in-reply-to:content-language :content-transfer-encoding; bh=atHKqaEFyhPKLRlFs+aSX/wC++TiPh0/8Gboy7TmwdM=; b=r+kHaWYHStmsl/Z1pO5bdY2UivSQLIRT3BWRvpjrPFa5jJEkwNAuRufD2UnXl2UWcr u7TC6VGIlDwKi8NaKrUr52y/IUitAPLPn8RA9FQel0TTSwK8EIH92zOIVP+KXQW1i4EL Ez2c5UUk7XJFJwkneby1657mZ0IWguogD1ElQtqdpbHE4SdNY9k9Ng1UP/HrtHWQ1u3H hoZPcLhzeDzzvkRNiVNHtdtAxotaaI+YgYIBCWiYMQNyU0sfHsJ8qqZT+H0RllkXczmh 54Q15IfCDIT53U+vE1oE3l8fETgHcye6mKT9RVl8zifBgn66lHzM5GZmJefCOY1Vjbty e4FQ== X-Gm-Message-State: AOAM531pUoM+YG+RkIa5B+zTBOqXGmxmMCv3ocNPhYBc4lldl6pXLOx3 RHRMZvsH23QK2iloq1jGl4+xcg== X-Google-Smtp-Source: ABdhPJwaSs0VOlc/io39oYLV1f8wqKHBzAWJbfUdCDxUjrbfAHHTpyjNQUWkgk0CYcmYV7mUB2LZPw== X-Received: by 2002:a17:906:81d2:: with SMTP id e18mr9550885ejx.341.1594827754398; Wed, 15 Jul 2020 08:42:34 -0700 (PDT) Received: from [192.168.1.2] (212-5-158-188.ip.btc-net.bg. [212.5.158.188]) by smtp.googlemail.com with ESMTPSA id qc16sm2404599ejb.33.2020.07.15.08.42.32 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Wed, 15 Jul 2020 08:42:33 -0700 (PDT) Subject: Re: [PATCH 1/4] media: v4l2-ctrl: Add frame-skip std encoder control To: Nicolas Dufresne , Stanimir Varbanov , linux-media@vger.kernel.org, linux-kernel@vger.kernel.org, linux-arm-msm@vger.kernel.org, linux-arm-kernel@lists.infradead.org References: <20200705121128.5250-1-stanimir.varbanov@linaro.org> <20200705121128.5250-2-stanimir.varbanov@linaro.org> From: Stanimir Varbanov Message-ID: <513fd919-56a2-08b4-c8a7-5d37d7743129@linaro.org> Date: Wed, 15 Jul 2020 18:42:31 +0300 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:68.0) Gecko/20100101 Thunderbird/68.8.0 MIME-Version: 1.0 In-Reply-To: Content-Language: en-US X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20200715_114238_320620_1066996B X-CRM114-Status: GOOD ( 32.82 ) X-BeenThere: linux-arm-kernel@lists.infradead.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: Maheshwar Ajja , Andrzej Hajda , Kamil Debski , Jeongtae Park , Kyungmin Park , Hans Verkuil Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Sender: "linux-arm-kernel" Errors-To: linux-arm-kernel-bounces+linux-arm-kernel=archiver.kernel.org@lists.infradead.org SGkgTmljb2xhcywKCk9uIDcvNy8yMCAxMTo1MyBQTSwgTmljb2xhcyBEdWZyZXNuZSB3cm90ZToK PiBMZSBkaW1hbmNoZSAwNSBqdWlsbGV0IDIwMjAgw6AgMTU6MTEgKzAzMDAsIFN0YW5pbWlyIFZh cmJhbm92IGEgw6ljcml0IDoKPj4gQWRkcyBlbmNvZGVycyBzdGFuZGFyZCB2NGwyIGNvbnRyb2wg Zm9yIGZyYW1lLXNraXAuIFRoZSBjb250cm9sCj4+IGlzIGEgY29weSBvZiBhIGN1c3RvbSBlbmNv ZGVyIGNvbnRyb2wgc28gdGhhdCBvdGhlciB2NGwyIGVuY29kZXIKPj4gZHJpdmVycyBjYW4gdXNl IGl0Lgo+Pgo+PiBTaWduZWQtb2ZmLWJ5OiBTdGFuaW1pciBWYXJiYW5vdiA8c3RhbmltaXIudmFy YmFub3ZAbGluYXJvLm9yZz4KPj4gLS0tCj4+ICAuLi4vbWVkaWEvdjRsL2V4dC1jdHJscy1jb2Rl Yy5yc3QgICAgICAgICAgICAgfCAzMiArKysrKysrKysrKysrKysrKysrCj4+ICBkcml2ZXJzL21l ZGlhL3Y0bDItY29yZS92NGwyLWN0cmxzLmMgICAgICAgICAgfCAxMCArKysrKysKPj4gIGluY2x1 ZGUvdWFwaS9saW51eC92NGwyLWNvbnRyb2xzLmggICAgICAgICAgICB8ICA2ICsrKysKPj4gIDMg ZmlsZXMgY2hhbmdlZCwgNDggaW5zZXJ0aW9ucygrKQo+Pgo+PiBkaWZmIC0tZ2l0IGEvRG9jdW1l bnRhdGlvbi91c2Vyc3BhY2UtYXBpL21lZGlhL3Y0bC9leHQtY3RybHMtY29kZWMucnN0IGIvRG9j dW1lbnRhdGlvbi91c2Vyc3BhY2UtYXBpL21lZGlhL3Y0bC9leHQtY3RybHMtY29kZWMucnN0Cj4+ IGluZGV4IGQwZDUwNmE0NDRiMS4uYThiNGMwYjQwNzQ3IDEwMDY0NAo+PiAtLS0gYS9Eb2N1bWVu dGF0aW9uL3VzZXJzcGFjZS1hcGkvbWVkaWEvdjRsL2V4dC1jdHJscy1jb2RlYy5yc3QKPj4gKysr IGIvRG9jdW1lbnRhdGlvbi91c2Vyc3BhY2UtYXBpL21lZGlhL3Y0bC9leHQtY3RybHMtY29kZWMu cnN0Cj4+IEBAIC01OTIsNiArNTkyLDM4IEBAIGVudW0gdjRsMl9tcGVnX3ZpZGVvX2JpdHJhdGVf bW9kZSAtCj4+ICAgICAgdGhlIGF2ZXJhZ2UgdmlkZW8gYml0cmF0ZS4gSXQgaXMgaWdub3JlZCBp ZiB0aGUgdmlkZW8gYml0cmF0ZSBtb2RlCj4+ICAgICAgaXMgc2V0IHRvIGNvbnN0YW50IGJpdHJh dGUuCj4+ICAKPj4gK2BgVjRMMl9DSURfTVBFR19WSURFT19GUkFNRV9TS0lQX01PREUgKGVudW0p YGAKPj4gKwo+PiArZW51bSB2NGwyX21wZWdfdmlkZW9fZnJhbWVfc2tpcF9tb2RlIC0KPj4gKyAg ICBJbmRpY2F0ZXMgaW4gd2hhdCBjb25kaXRpb25zIHRoZSBlbmNvZGVyIHNob3VsZCBza2lwIGZy YW1lcy4gSWYKPj4gKyAgICBlbmNvZGluZyBhIGZyYW1lIHdvdWxkIGNhdXNlIHRoZSBlbmNvZGVk IHN0cmVhbSB0byBiZSBsYXJnZXIgdGhlbiBhCj4+ICsgICAgY2hvc2VuIGRhdGEgbGltaXQgdGhl biB0aGUgZnJhbWUgd2lsbCBiZSBza2lwcGVkLiBQb3NzaWJsZSB2YWx1ZXMKPj4gKyAgICBhcmU6 Cj4gCj4gSSBoYXZlIG5vdGhpbmcgYWdhaW5zdCB0aGlzIEFQSSwgaW4gZmFjdCBpdCdzIHJlYWxs eSBuaWNlIHRvIGdlbmVyYWxpemUKPiBhcyB0aGlzIGlzIHZlcnkgY29tbW9uLiBUaG91Z2gsIEkg dGhpbmsgd2UgYXJlIG1pc3NpbmcgdHdvIHRoaW5ncy4gVGhpcwo+IGRvY3VtZW50YXRpb24gcmVm ZXIgdG8gdGhlICJjaG9zZW4gZGF0YSBsaW1pdCIuIElzIHRoZXJlIGNvbnRyb2xzIHRvCj4gY29u ZmlndXJlIHRoZXNlICpjaG9zZW4qIGxpbWl0ID8gVGhlIG90aGVyIGlzc3VlIGlzIHRoZSB2YWd1 ZW5lc3Mgb2YKPiB0aGUgZG9jdW1lbnRlZCBtb2RlLCBzZWUgbG93ZXIuLi4KPiAKPj4gKwo+PiAr Cj4+ICsuLiB0YWJ1bGFyY29sdW1uczo6IHxwezkuMmNtfXxwezguM2NtfXwKPj4gKwo+PiArLi4g cmF3OjogbGF0ZXgKPj4gKwo+PiArICAgIFxzbWFsbAo+PiArCj4+ICsuLiBmbGF0LXRhYmxlOjoK Pj4gKyAgICA6aGVhZGVyLXJvd3M6ICAwCj4+ICsgICAgOnN0dWItY29sdW1uczogMAo+PiArCj4+ ICsgICAgKiAtIGBgVjRMMl9NUEVHX0ZSQU1FX1NLSVBfTU9ERV9ESVNBQkxFRGBgCj4+ICsgICAg ICAtIEZyYW1lIHNraXAgbW9kZSBpcyBkaXNhYmxlZC4KPj4gKyAgICAqIC0gYGBWNEwyX01QRUdf RlJBTUVfU0tJUF9NT0RFX0xFVkVMX0xJTUlUYGAKPj4gKyAgICAgIC0gRnJhbWUgc2tpcCBtb2Rl IGVuYWJsZWQgYW5kIGJ1ZmZlciBsaW1pdCBpcyBzZXQgYnkgdGhlIGNob3Nlbgo+PiArCWxldmVs IGFuZCBpcyBkZWZpbmVkIGJ5IHRoZSBzdGFuZGFyZC4KPiAKPiBBdCBsZWFzdCBmb3IgSC4yNjQs IGEgbGV2ZWwgaXMgY29tcG9zZSBvZiAzIGxpbWl0cy4gT25lIGlzIHRoZSBtYXhpbXVtCj4gbnVt YmVyIG9mIG1hY3JvYmxvY2tzLCB0aGlzIGlzIGlzIGV2aWRlbnRseSBub3QgdXNlIGZvciBmcmFt ZSBza2lwcGluZwo+IGFuZCBhbHJlYWR5IGNvbnN0cmFpbmVkIGluIFY0TDIgKGFzc3VtaW5nIHRo ZSBkcml2ZXIgZG9lcyBub3QgaWdub3JlCj4gdGhlIGxldmVsIGNvbnRyb2wgb2YgY291cnNlKS4g VGhlIHR3byBvdGhlciBsaW1pdHMgYXJlIGRlY29kZWQKPiBtYWNyb2Jsb2Nrcy9zIGFuZCBlbmNv ZGVkIGtiaXRzL3MuIEJvdGggYXJlIG1lYXN1cmUgb3ZlciB0aW1lLCB3aGljaAo+IG1lYW5zIHRo ZSBNMk0gZW5jb2RlciBuZWVkcyB0byBiZSB0aW1pbmcgYXdhcmUuIEkgdGhpbmsgdGhlIHRpbWUg c291cmNlCj4gc2hvdWxkIGJlIGRvY3VtZW50ZWQuIFBlcmhhcHMgaXQgaXMgbWFuZGF0b3J5IHRv IHNldCBhIGZyYW1lIGludGVydmFsCj4gZm9yIHRoaXMgdG8gd29yayA/IE9yIHdlIG5lZWQgc29t ZSB0aW1lc3RhbXAgdG8gYWxsb3cgdmFyaWFibGUgZnJhbWUKPiBpbnRlcnZhbCA/IChJIGRvbid0 IHRoaW5rIHRoZSBzZWNvbmQgaXMgcmVhbGx5IGFuIG9wdGlvbiB3aXRob3V0Cj4gZXh0ZW5kaW5n IHRoZSBBUEkgYWdhaW4sIGFuZCBjb25mdXNpbmdseSwgc2luY2UgSSB0aGluayB3ZSBoYXZlIHVz ZWQKPiB0aGUgdGltZXN0YW1wIGZvciBvdGhlciBwdXJwb3NlIGFscmVhZHkpCgpEbyB5b3Ugd2Fu dCB0byBzYXkgdGhhdCB0aGUgZW5jb2RlciBpbnB1dCB0aW1lc3RhbXAsIGJpdHJhdGUgY29udHJv bAooVjRMMl9DSURfTVBFR19WSURFT19CSVRSQVRFKSBhbmQgU19QQVJNIGlzIG5vdCBlbm91Z2gg dG8gZGVzY3JpYmUKRlJBTUVfU0tJUF9NT0RFX0xFVkVMX0xJTUlUIG1vZGU/Cgo+IAo+PiArICAg ICogLSBgYFY0TDJfTVBFR19GUkFNRV9TS0lQX01PREVfQlVGX0xJTUlUYGAKPj4gKyAgICAgIC0g RnJhbWUgc2tpcCBtb2RlIGVuYWJsZWQgYW5kIGJ1ZmZlciBsaW1pdCBpcyBzZXQgYnkgdGhlIFZC Vgo+PiArCShNUEVHMS8yLzQpIG9yIENQQiAoSDI2NCkgYnVmZmVyIHNpemUgY29udHJvbC4KPiAK PiBUaGUgbm90aW9uIG9mIFZCViBhbiBDUEIgaXMgdW5saWtlbHkgd2VsbCBrbm93bi4gSWYgbXkg bWVtb3J5IGlzIHJpZ2h0LAo+IHRoZXNlIGFyZSBjb25zdHJhaW5lZCBpbiBidWZmZXJpbmc6IGlu IGJ5dGVzIChWQlYpIG9yIGJpdHMgcGVyIGZyYW1lCj4gb3ZlciBhIHdpbmRvdyBvZiBuLWZyYW1l cyAob3IgdGhlIGdvcCBzaXplIGZvciBzb21lIGxlc3MgZmxleGlibGUKPiBlbmNvZGVyKSAoQ1BC KS4gSSB0aGluayB0aGVzZSBzaG91bGQgYmUgc29tZWhvdyBjaG9zZW4gYnkgYXBwbGljYXRpb24K PiAod2l0aCBjb250cm9scyksIGRpcmVjdGx5IG9yIGluZGlyZWN0bHksIGFuZCBkb2N1bWVudGVk IGhlcmUgdG8gZW5zdXJlCj4gd2UgZ2V0IGNvbnNpc3RlbnQgaW1wbGVtZW50YXRpb24gYWNyb3Nz IGRyaXZlcnMuCgpJIGd1ZXNzIHlvdSB3YW50IG1lIHRvIGFkZCBoZXJlIHJlZmVyZW5jZXMgdG8g dGhlIGZvbGxvd2luZyBjb250cm9sczoKClY0TDJfQ0lEX01QRUdfVklERU9fVkJWX1NJWkUKVjRM Ml9DSURfTVBFR19WSURFT19WQlZfREVMQVkKVjRMMl9DSURfTVBFR19WSURFT19IMjY0X0NQQl9T SVpFCgo/Cgo+IAo+PiArCj4+ICsuLiByYXc6OiBsYXRleAo+PiArCj4+ICsgICAgXG5vcm1hbHNp emUKPj4gKwo+PiAgYGBWNEwyX0NJRF9NUEVHX1ZJREVPX1RFTVBPUkFMX0RFQ0lNQVRJT04gKGlu dGVnZXIpYGAKPj4gICAgICBGb3IgZXZlcnkgY2FwdHVyZWQgZnJhbWUsIHNraXAgdGhpcyBtYW55 IHN1YnNlcXVlbnQgZnJhbWVzIChkZWZhdWx0Cj4+ICAgICAgMCkuCj4+IGRpZmYgLS1naXQgYS9k cml2ZXJzL21lZGlhL3Y0bDItY29yZS92NGwyLWN0cmxzLmMgYi9kcml2ZXJzL21lZGlhL3Y0bDIt Y29yZS92NGwyLWN0cmxzLmMKPj4gaW5kZXggM2YzZmJjZDYwY2M2Li5kMDg4YWNmYTZkZDggMTAw NjQ0Cj4+IC0tLSBhL2RyaXZlcnMvbWVkaWEvdjRsMi1jb3JlL3Y0bDItY3RybHMuYwo+PiArKysg Yi9kcml2ZXJzL21lZGlhL3Y0bDItY29yZS92NGwyLWN0cmxzLmMKPj4gQEAgLTU5MCw2ICs1OTAs MTIgQEAgY29uc3QgY2hhciAqIGNvbnN0ICp2NGwyX2N0cmxfZ2V0X21lbnUodTMyIGlkKQo+PiAg CQkiRXh0ZXJuYWwiLAo+PiAgCQlOVUxMLAo+PiAgCX07Cj4+ICsJc3RhdGljIGNvbnN0IGNoYXIg KiBjb25zdCBtcGVnX3ZpZGVvX2ZyYW1lX3NraXBbXSA9IHsKPj4gKwkJIkRpc2FibGVkIiwKPj4g KwkJIkxldmVsIExpbWl0IiwKPj4gKwkJIlZCVi9DUEIgTGltaXQiLAo+PiArCQlOVUxMLAo+PiAr CX07Cj4+ICAKPj4gIAlzd2l0Y2ggKGlkKSB7Cj4+ICAJY2FzZSBWNEwyX0NJRF9NUEVHX0FVRElP X1NBTVBMSU5HX0ZSRVE6Cj4+IEBAIC02NTEsNiArNjU3LDggQEAgY29uc3QgY2hhciAqIGNvbnN0 ICp2NGwyX2N0cmxfZ2V0X21lbnUodTMyIGlkKQo+PiAgCQlyZXR1cm4gZmxhc2hfc3Ryb2JlX3Nv dXJjZTsKPj4gIAljYXNlIFY0TDJfQ0lEX01QRUdfVklERU9fSEVBREVSX01PREU6Cj4+ICAJCXJl dHVybiBoZWFkZXJfbW9kZTsKPj4gKwljYXNlIFY0TDJfQ0lEX01QRUdfVklERU9fRlJBTUVfU0tJ UF9NT0RFOgo+PiArCQlyZXR1cm4gbXBlZ192aWRlb19mcmFtZV9za2lwOwo+PiAgCWNhc2UgVjRM Ml9DSURfTVBFR19WSURFT19NVUxUSV9TTElDRV9NT0RFOgo+PiAgCQlyZXR1cm4gbXVsdGlfc2xp Y2U7Cj4+ICAJY2FzZSBWNEwyX0NJRF9NUEVHX1ZJREVPX0gyNjRfRU5UUk9QWV9NT0RFOgo+PiBA QCAtODQ0LDYgKzg1Miw3IEBAIGNvbnN0IGNoYXIgKnY0bDJfY3RybF9nZXRfbmFtZSh1MzIgaWQp Cj4+ICAJY2FzZSBWNEwyX0NJRF9NUEVHX1ZJREVPX01CX1JDX0VOQUJMRToJCQlyZXR1cm4gIkgy NjQgTUIgTGV2ZWwgUmF0ZSBDb250cm9sIjsKPj4gIAljYXNlIFY0TDJfQ0lEX01QRUdfVklERU9f SEVBREVSX01PREU6CQkJcmV0dXJuICJTZXF1ZW5jZSBIZWFkZXIgTW9kZSI7Cj4+ICAJY2FzZSBW NEwyX0NJRF9NUEVHX1ZJREVPX01BWF9SRUZfUElDOgkJCXJldHVybiAiTWF4IE51bWJlciBvZiBS ZWZlcmVuY2UgUGljcyI7Cj4+ICsJY2FzZSBWNEwyX0NJRF9NUEVHX1ZJREVPX0ZSQU1FX1NLSVBf TU9ERToJCXJldHVybiAiRnJhbWUgU2tpcCBNb2RlIjsKPj4gIAljYXNlIFY0TDJfQ0lEX01QRUdf VklERU9fSDI2M19JX0ZSQU1FX1FQOgkJcmV0dXJuICJIMjYzIEktRnJhbWUgUVAgVmFsdWUiOwo+ PiAgCWNhc2UgVjRMMl9DSURfTVBFR19WSURFT19IMjYzX1BfRlJBTUVfUVA6CQlyZXR1cm4gIkgy NjMgUC1GcmFtZSBRUCBWYWx1ZSI7Cj4+ICAJY2FzZSBWNEwyX0NJRF9NUEVHX1ZJREVPX0gyNjNf Ql9GUkFNRV9RUDoJCXJldHVybiAiSDI2MyBCLUZyYW1lIFFQIFZhbHVlIjsKPj4gQEAgLTEyNjUs NiArMTI3NCw3IEBAIHZvaWQgdjRsMl9jdHJsX2ZpbGwodTMyIGlkLCBjb25zdCBjaGFyICoqbmFt ZSwgZW51bSB2NGwyX2N0cmxfdHlwZSAqdHlwZSwKPj4gIAljYXNlIFY0TDJfQ0lEX0ZMQVNIX0xF RF9NT0RFOgo+PiAgCWNhc2UgVjRMMl9DSURfRkxBU0hfU1RST0JFX1NPVVJDRToKPj4gIAljYXNl IFY0TDJfQ0lEX01QRUdfVklERU9fSEVBREVSX01PREU6Cj4+ICsJY2FzZSBWNEwyX0NJRF9NUEVH X1ZJREVPX0ZSQU1FX1NLSVBfTU9ERToKPj4gIAljYXNlIFY0TDJfQ0lEX01QRUdfVklERU9fTVVM VElfU0xJQ0VfTU9ERToKPj4gIAljYXNlIFY0TDJfQ0lEX01QRUdfVklERU9fSDI2NF9FTlRST1BZ X01PREU6Cj4+ICAJY2FzZSBWNEwyX0NJRF9NUEVHX1ZJREVPX0gyNjRfTEVWRUw6Cj4+IGRpZmYg LS1naXQgYS9pbmNsdWRlL3VhcGkvbGludXgvdjRsMi1jb250cm9scy5oIGIvaW5jbHVkZS91YXBp L2xpbnV4L3Y0bDItY29udHJvbHMuaAo+PiBpbmRleCA2MjI3MTQxOGMxYmUuLjRlMTUyNjE3NWE0 YyAxMDA2NDQKPj4gLS0tIGEvaW5jbHVkZS91YXBpL2xpbnV4L3Y0bDItY29udHJvbHMuaAo+PiAr KysgYi9pbmNsdWRlL3VhcGkvbGludXgvdjRsMi1jb250cm9scy5oCj4+IEBAIC03NDIsNiArNzQy LDEyIEBAIGVudW0gdjRsMl9jaWRfbXBlZ192aWRlb19oZXZjX3NpemVfb2ZfbGVuZ3RoX2ZpZWxk IHsKPj4gICNkZWZpbmUgVjRMMl9DSURfTVBFR19WSURFT19IRVZDX0hJRVJfQ09ESU5HX0w2X0JS CShWNEwyX0NJRF9NUEVHX0JBU0UgKyA2NDIpCj4+ICAjZGVmaW5lIFY0TDJfQ0lEX01QRUdfVklE RU9fUkVGX05VTUJFUl9GT1JfUEZSQU1FUwkoVjRMMl9DSURfTVBFR19CQVNFICsgNjQzKQo+PiAg I2RlZmluZSBWNEwyX0NJRF9NUEVHX1ZJREVPX1BSRVBFTkRfU1BTUFBTX1RPX0lEUgkoVjRMMl9D SURfTVBFR19CQVNFICsgNjQ0KQo+PiArI2RlZmluZSBWNEwyX0NJRF9NUEVHX1ZJREVPX0ZSQU1F X1NLSVBfTU9ERQkJKFY0TDJfQ0lEX01QRUdfQkFTRSArIDY0NSkKPj4gK2VudW0gdjRsMl9tcGVn X3ZpZGVvX2ZyYW1lX3NraXBfbW9kZSB7Cj4+ICsJVjRMMl9NUEVHX1ZJREVPX0ZSQU1FX1NLSVBf TU9ERV9ESVNBQkxFRAk9IDAsCj4+ICsJVjRMMl9NUEVHX1ZJREVPX0ZSQU1FX1NLSVBfTU9ERV9M RVZFTF9MSU1JVAk9IDEsCj4+ICsJVjRMMl9NUEVHX1ZJREVPX0ZSQU1FX1NLSVBfTU9ERV9CVUZf TElNSVQJPSAyLAo+PiArfTsKPj4gIAo+PiAgLyogIE1QRUctY2xhc3MgY29udHJvbCBJRHMgc3Bl Y2lmaWMgdG8gdGhlIENYMjM0MXggZHJpdmVyIGFzIGRlZmluZWQgYnkgVjRMMiAqLwo+PiAgI2Rl ZmluZSBWNEwyX0NJRF9NUEVHX0NYMjM0MVhfQkFTRQkJCQkoVjRMMl9DVFJMX0NMQVNTX01QRUcg fCAweDEwMDApCj4gCgotLSAKcmVnYXJkcywKU3RhbgoKX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX18KbGludXgtYXJtLWtlcm5lbCBtYWlsaW5nIGxpc3QKbGlu dXgtYXJtLWtlcm5lbEBsaXN0cy5pbmZyYWRlYWQub3JnCmh0dHA6Ly9saXN0cy5pbmZyYWRlYWQu b3JnL21haWxtYW4vbGlzdGluZm8vbGludXgtYXJtLWtlcm5lbAo=