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=-17.1 required=3.0 tests=BAYES_00,DKIMWL_WL_HIGH, DKIM_SIGNED,DKIM_VALID,HEADER_FROM_DIFFERENT_DOMAINS,INCLUDES_CR_TRAILER, INCLUDES_PATCH,MAILING_LIST_MULTI,SPF_HELO_NONE,SPF_PASS,URIBL_BLOCKED, USER_AGENT_GIT autolearn=ham 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 EFBE8C433DB for ; Wed, 27 Jan 2021 15:19:01 +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 3885420771 for ; Wed, 27 Jan 2021 15:19:01 +0000 (UTC) DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 3885420771 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:MIME-Version:References:In-Reply-To:Message-Id:Date: Subject:To:From:Reply-To:Content-ID:Content-Description:Resent-Date: Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID:List-Owner; bh=erntgi6qdJ4zuAGcQJvDSXs1I8Q8za8hKkaWsZ0ziNU=; b=sDDrkGo68T+jIDurtwAb95m5+ CSIf7JQYeRK7/YaOsCUT4FFiVMVE+8EjhMMOJCurCB4QWlTgq8u+eUJ9dAVmJhy9MV3wfsWK47Nkc Kenc88Pu41sMP/AVN3A5XwdkaD0kWOhMyUPYPMF+wJdh9yONvzfiN4qtiFOYRY8Znu9KeoMqhyVea rjbuZyb2PO2Lnx068R1Mw3GDiVUSk+0CLvL0iDhko00eWgF8Pq9YucSpHW143B4k0tmJ5oDvHIcF1 UIQ6OV/J6K7J46spgTQ23IO5/8LBO+UAwLRB4X5A9/kSpFC7UIf7zrTPaYH15haA6j/8n/B79+nwk q4cXqqNvQ==; Received: from localhost ([::1] helo=merlin.infradead.org) by merlin.infradead.org with esmtp (Exim 4.92.3 #3 (Red Hat Linux)) id 1l4mZQ-00053y-9y; Wed, 27 Jan 2021 15:17:25 +0000 Received: from casper.infradead.org ([2001:8b0:10b:1236::1]) by merlin.infradead.org with esmtps (Exim 4.92.3 #3 (Red Hat Linux)) id 1l4mZE-0003b1-M4 for linux-arm-kernel@merlin.infradead.org; Wed, 27 Jan 2021 15:17:12 +0000 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=infradead.org; s=casper.20170209; h=Content-Transfer-Encoding:Content-Type: MIME-Version:References:In-Reply-To:Message-Id:Date:Subject:Cc:To:From:Sender :Reply-To:Content-ID:Content-Description; bh=dztqGTphGnn6nnVxD1jMPSO5o/aMhjJVAhHl5YeCIaU=; b=Y0tvyEbSn63wYts+/94jGFDCtX cV3szB9C3ixY5yTgi91BVkF9qoxIgwdQSEZaKoW/yfEeWHPJdrFtyyEWlfjnHKlIQInuvTc88KOIx FoIKiiNR/pJDYh0BrVvbc0ipF/w+6rY/vo1tKVpvz36u6F6+4R/QVNj3nvZdSEMIXDAJaGMJOd4YS j8c8IAOkXpY7fnCTIRQnl3U1pp3T5L0gKuSrN9hnnXNepxGp5p8PFBP9/zs9R9U2P0sJ37Iz4UXOG 0uVau6zoS682MSVSDXwAMccL9d5Ht0rtWYSZuV/ASmBuCEi9aBnWig5iO6M3VlVQEPJiETn6GGADC zDCct9tg==; Received: from mail-ej1-x62d.google.com ([2a00:1450:4864:20::62d]) by casper.infradead.org with esmtps (Exim 4.94 #2 (Red Hat Linux)) id 1l4mBK-0078fW-LQ for linux-arm-kernel@lists.infradead.org; Wed, 27 Jan 2021 14:52:48 +0000 Received: by mail-ej1-x62d.google.com with SMTP id by1so3073356ejc.0 for ; Wed, 27 Jan 2021 06:51:17 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=dztqGTphGnn6nnVxD1jMPSO5o/aMhjJVAhHl5YeCIaU=; b=Jf1K5oU16Gm8HKqbRMsN96+ewru+xfnlNdxmc28mSUwJ19Vo+3V4g0RFbw7k8h+f+t 8ySJQEbbYxOpCz9BfSF3pjhyFmAyyOMdT8KVnoJlrBzFruQPZW4vxKohGtZcylk62lyg bvbbwl+srLISxcsfG8sImP3bNHcExqlIV0CX9NLxEYxUiq9OuyQ4EaNTO/J7gwRrPGZj +W3qYIf4m9Xa7ekct+d5/E81/bzy2LWWl4o1Kvm3tlICSu5EUFS3l9KzwfOGJCeu9Wq4 m/gMYmArS0Zsye6TrqwCcme7UUn6VL8u5vdKlUHRkD3m1ua9Pi29C7zzYnOCVLkXKkTG J4sQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=dztqGTphGnn6nnVxD1jMPSO5o/aMhjJVAhHl5YeCIaU=; b=ZcA2UV8r7ow1DdTsCM3t1IE55ZTwsb2zuWgM4Lw5HouqqCInMug7qLKXze2aRHGPGN t9lN7bBkdcCMzYCnadlALkh7R5DFnWjPFBoRk2ykZt0jDwi/DLOh+zBWxvvYZAhX1BAC 8uqySTuCnnKAGLzFiSWOwAWnvPmb1GigA+dKGe6Pmg1kMyvtY8Nig8FJTjM9x0ergGEa +ekHJMZicr9tGC/d8XKWXqJgfVq9BlV3YlczhG1ncl0P3YlUnqTAHr5PXmVST7o4qePM tjD/weIHZkykMLeuzJjI8N7AacST7/SaTOgOqTQcjwXrZhNLIyjRWA/0/GVOnIFjlavo Q/AA== X-Gm-Message-State: AOAM533WD5ii+UdZ/WLI9NH/2+A9VzwZvdVmSa8YBOoXJi3XXPSev4jc 2SzisUUs6MCWHOfJIIv30TL5rA== X-Google-Smtp-Source: ABdhPJwaz1qVeGD941gwftPLQ0z6maeITH2SX+qKdODWuwt/JIAAQC6ve2+Q15qFzLJvT6ityTLUvg== X-Received: by 2002:a17:907:724a:: with SMTP id ds10mr6919671ejc.28.1611759015248; Wed, 27 Jan 2021 06:50:15 -0800 (PST) Received: from localhost.localdomain ([2a02:2450:102f:d6a:62e7:589a:1625:7acc]) by smtp.gmail.com with ESMTPSA id ah12sm947799ejc.70.2021.01.27.06.50.13 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 27 Jan 2021 06:50:14 -0800 (PST) From: Robert Foss To: agross@kernel.org, bjorn.andersson@linaro.org, robert.foss@linaro.org, todor.too@gmail.com, mchehab@kernel.org, robh+dt@kernel.org, catalin.marinas@arm.com, will@kernel.org, shawnguo@kernel.org, leoyang.li@nxp.com, geert+renesas@glider.be, arnd@arndb.de, Anson.Huang@nxp.com, michael@walle.cc, agx@sigxcpu.org, max.oss.09@gmail.com, angelogioacchino.delregno@somainline.org, linux-arm-msm@vger.kernel.org, linux-media@vger.kernel.org, devicetree@vger.kernel.org, linux-kernel@vger.kernel.org, linux-arm-kernel@lists.infradead.org, AngeloGioacchino Del Regno , Rob Herring , Andrey Konovalov Subject: [PATCH v3 04/22] media: camss: Make ISPIF subdevice optional Date: Wed, 27 Jan 2021 15:49:12 +0100 Message-Id: <20210127144930.2158242-5-robert.foss@linaro.org> X-Mailer: git-send-email 2.27.0 In-Reply-To: <20210127144930.2158242-1-robert.foss@linaro.org> References: <20210127144930.2158242-1-robert.foss@linaro.org> MIME-Version: 1.0 X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20210127_145248_268775_1B856AAE X-CRM114-Status: GOOD ( 21.55 ) 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: Azam Sadiq Pasha Kapatrala Syed , Sarvesh Sridutt , Laurent Pinchart , Jonathan Marek , Tomasz Figa 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 VGhpcyBkcml2ZXIgc3VwcG9ydHMgbXVsdGlwbGUgYXJjaGl0ZWN0dXJlIHZlcnNpb25zIG9mIHRo ZSBRdWFsY29tbSBJU1AuClRoZSBDQU1TUyBhcmNoaXRlY3VyZSB3aGljaCB0aGlzIGRyaXZlciBp cyBuYW1lIGFmdGVyLCBhbmQgd2l0aCB0aGUKaW50cm9kdWN0aW9uIG9mIHRoaXMgc2VyaWVzLCB0 aGUgVGl0YW4gYXJjaGl0ZWN0dXJlLgoKVGhlIElTUElGIGlzIGFuIElQLWJsb2NrIHRoYXQgaXMg b25seSBwcmVzZW50IGluIHRoZSBDQU1TUyBnZW5lcmF0aW9uIG9mCnRoZSBhcmNoaXRlY3R1cmUu IEluIG9yZGVyIHRvIHN1cHBvcnQgdGhlIFRpdGFuIGdlbmVyYXRpb24sIG1ha2UgdGhlCklTUElG IGFuIG9wdGlvbmFsIHN1YmRldmljZS4KClNpZ25lZC1vZmYtYnk6IFJvYmVydCBGb3NzIDxyb2Jl cnQuZm9zc0BsaW5hcm8ub3JnPgotLS0KCkNoYW5nZXMgc2luY2UgdjE6CiAtIEJqw7ZybjogSW1w cm92ZWQgY29tbWl0IG1lc3NhZ2UKIC0gQmrDtnJuOiBVc2UgbG9jYWwgJ2RldicgcHRyIGluc3Rl YWQgb2YgJ2NhbXNzLT5kZXYnCiAtIEJqw7ZybjogUmVtb3ZlIHJlcy9pc3BpZiBOVUxMIGNoZWNr cwogLSBCasO2cm46IFJlbW92ZSBpc3BpZiBOVUxMIGNoZWNrcyBiZWZvcmUgY2FsbGluZwogICBt c21faXNwaWZfdW5yZWdpc3Rlcl9lbnRpdGllcygpCiAtIEFuZHJleTogRml4ZWQgaW5jb3JyZWN0 IGFsbG9jYXRpb24gc2l6ZQoKCiAuLi4vbWVkaWEvcGxhdGZvcm0vcWNvbS9jYW1zcy9jYW1zcy1p c3BpZi5jICAgfCAxMTQgKysrKysrKysrKy0tLS0tLS0tCiAuLi4vbWVkaWEvcGxhdGZvcm0vcWNv bS9jYW1zcy9jYW1zcy1pc3BpZi5oICAgfCAgIDMgKy0KIGRyaXZlcnMvbWVkaWEvcGxhdGZvcm0v cWNvbS9jYW1zcy9jYW1zcy5jICAgICB8IDExMSArKysrKysrKysrKy0tLS0tLQogZHJpdmVycy9t ZWRpYS9wbGF0Zm9ybS9xY29tL2NhbXNzL2NhbXNzLmggICAgIHwgICAyICstCiA0IGZpbGVzIGNo YW5nZWQsIDE0MiBpbnNlcnRpb25zKCspLCA4OCBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9k cml2ZXJzL21lZGlhL3BsYXRmb3JtL3Fjb20vY2Ftc3MvY2Ftc3MtaXNwaWYuYyBiL2RyaXZlcnMv bWVkaWEvcGxhdGZvcm0vcWNvbS9jYW1zcy9jYW1zcy1pc3BpZi5jCmluZGV4IGFkZWI5MjgwODk5 OC4uYzM2NTcwMDQyMDgyIDEwMDY0NAotLS0gYS9kcml2ZXJzL21lZGlhL3BsYXRmb3JtL3Fjb20v Y2Ftc3MvY2Ftc3MtaXNwaWYuYworKysgYi9kcml2ZXJzL21lZGlhL3BsYXRmb3JtL3Fjb20vY2Ft c3MvY2Ftc3MtaXNwaWYuYwpAQCAtMTYxLDYgKzE2MSw3IEBAIHN0YXRpYyBjb25zdCB1MzIgaXNw aWZfZm9ybWF0c184eDk2W10gPSB7CiBzdGF0aWMgaXJxcmV0dXJuX3QgaXNwaWZfaXNyXzh4OTYo aW50IGlycSwgdm9pZCAqZGV2KQogewogCXN0cnVjdCBpc3BpZl9kZXZpY2UgKmlzcGlmID0gZGV2 OworCXN0cnVjdCBjYW1zcyAqY2Ftc3MgPSBpc3BpZi0+Y2Ftc3M7CiAJdTMyIHZhbHVlMCwgdmFs dWUxLCB2YWx1ZTIsIHZhbHVlMywgdmFsdWU0LCB2YWx1ZTU7CiAKIAl2YWx1ZTAgPSByZWFkbF9y ZWxheGVkKGlzcGlmLT5iYXNlICsgSVNQSUZfVkZFX21fSVJRX1NUQVRVU18wKDApKTsKQEAgLTE4 NiwzNCArMTg3LDM0IEBAIHN0YXRpYyBpcnFyZXR1cm5fdCBpc3BpZl9pc3JfOHg5NihpbnQgaXJx LCB2b2lkICpkZXYpCiAJCWNvbXBsZXRlKCZpc3BpZi0+cmVzZXRfY29tcGxldGVbMV0pOwogCiAJ aWYgKHVubGlrZWx5KHZhbHVlMCAmIElTUElGX1ZGRV9tX0lSUV9TVEFUVVNfMF9QSVgwX09WRVJG TE9XKSkKLQkJZGV2X2Vycl9yYXRlbGltaXRlZCh0b19kZXZpY2UoaXNwaWYpLCAiVkZFMCBwaXgw IG92ZXJmbG93XG4iKTsKKwkJZGV2X2Vycl9yYXRlbGltaXRlZChjYW1zcy0+ZGV2LCAiVkZFMCBw aXgwIG92ZXJmbG93XG4iKTsKIAogCWlmICh1bmxpa2VseSh2YWx1ZTAgJiBJU1BJRl9WRkVfbV9J UlFfU1RBVFVTXzBfUkRJMF9PVkVSRkxPVykpCi0JCWRldl9lcnJfcmF0ZWxpbWl0ZWQodG9fZGV2 aWNlKGlzcGlmKSwgIlZGRTAgcmRpMCBvdmVyZmxvd1xuIik7CisJCWRldl9lcnJfcmF0ZWxpbWl0 ZWQoY2Ftc3MtPmRldiwgIlZGRTAgcmRpMCBvdmVyZmxvd1xuIik7CiAKIAlpZiAodW5saWtlbHko dmFsdWUxICYgSVNQSUZfVkZFX21fSVJRX1NUQVRVU18xX1BJWDFfT1ZFUkZMT1cpKQotCQlkZXZf ZXJyX3JhdGVsaW1pdGVkKHRvX2RldmljZShpc3BpZiksICJWRkUwIHBpeDEgb3ZlcmZsb3dcbiIp OworCQlkZXZfZXJyX3JhdGVsaW1pdGVkKGNhbXNzLT5kZXYsICJWRkUwIHBpeDEgb3ZlcmZsb3dc biIpOwogCiAJaWYgKHVubGlrZWx5KHZhbHVlMSAmIElTUElGX1ZGRV9tX0lSUV9TVEFUVVNfMV9S REkxX09WRVJGTE9XKSkKLQkJZGV2X2Vycl9yYXRlbGltaXRlZCh0b19kZXZpY2UoaXNwaWYpLCAi VkZFMCByZGkxIG92ZXJmbG93XG4iKTsKKwkJZGV2X2Vycl9yYXRlbGltaXRlZChjYW1zcy0+ZGV2 LCAiVkZFMCByZGkxIG92ZXJmbG93XG4iKTsKIAogCWlmICh1bmxpa2VseSh2YWx1ZTIgJiBJU1BJ Rl9WRkVfbV9JUlFfU1RBVFVTXzJfUkRJMl9PVkVSRkxPVykpCi0JCWRldl9lcnJfcmF0ZWxpbWl0 ZWQodG9fZGV2aWNlKGlzcGlmKSwgIlZGRTAgcmRpMiBvdmVyZmxvd1xuIik7CisJCWRldl9lcnJf cmF0ZWxpbWl0ZWQoY2Ftc3MtPmRldiwgIlZGRTAgcmRpMiBvdmVyZmxvd1xuIik7CiAKIAlpZiAo dW5saWtlbHkodmFsdWUzICYgSVNQSUZfVkZFX21fSVJRX1NUQVRVU18wX1BJWDBfT1ZFUkZMT1cp KQotCQlkZXZfZXJyX3JhdGVsaW1pdGVkKHRvX2RldmljZShpc3BpZiksICJWRkUxIHBpeDAgb3Zl cmZsb3dcbiIpOworCQlkZXZfZXJyX3JhdGVsaW1pdGVkKGNhbXNzLT5kZXYsICJWRkUxIHBpeDAg b3ZlcmZsb3dcbiIpOwogCiAJaWYgKHVubGlrZWx5KHZhbHVlMyAmIElTUElGX1ZGRV9tX0lSUV9T VEFUVVNfMF9SREkwX09WRVJGTE9XKSkKLQkJZGV2X2Vycl9yYXRlbGltaXRlZCh0b19kZXZpY2Uo aXNwaWYpLCAiVkZFMSByZGkwIG92ZXJmbG93XG4iKTsKKwkJZGV2X2Vycl9yYXRlbGltaXRlZChj YW1zcy0+ZGV2LCAiVkZFMSByZGkwIG92ZXJmbG93XG4iKTsKIAogCWlmICh1bmxpa2VseSh2YWx1 ZTQgJiBJU1BJRl9WRkVfbV9JUlFfU1RBVFVTXzFfUElYMV9PVkVSRkxPVykpCi0JCWRldl9lcnJf cmF0ZWxpbWl0ZWQodG9fZGV2aWNlKGlzcGlmKSwgIlZGRTEgcGl4MSBvdmVyZmxvd1xuIik7CisJ CWRldl9lcnJfcmF0ZWxpbWl0ZWQoY2Ftc3MtPmRldiwgIlZGRTEgcGl4MSBvdmVyZmxvd1xuIik7 CiAKIAlpZiAodW5saWtlbHkodmFsdWU0ICYgSVNQSUZfVkZFX21fSVJRX1NUQVRVU18xX1JESTFf T1ZFUkZMT1cpKQotCQlkZXZfZXJyX3JhdGVsaW1pdGVkKHRvX2RldmljZShpc3BpZiksICJWRkUx IHJkaTEgb3ZlcmZsb3dcbiIpOworCQlkZXZfZXJyX3JhdGVsaW1pdGVkKGNhbXNzLT5kZXYsICJW RkUxIHJkaTEgb3ZlcmZsb3dcbiIpOwogCiAJaWYgKHVubGlrZWx5KHZhbHVlNSAmIElTUElGX1ZG RV9tX0lSUV9TVEFUVVNfMl9SREkyX09WRVJGTE9XKSkKLQkJZGV2X2Vycl9yYXRlbGltaXRlZCh0 b19kZXZpY2UoaXNwaWYpLCAiVkZFMSByZGkyIG92ZXJmbG93XG4iKTsKKwkJZGV2X2Vycl9yYXRl bGltaXRlZChjYW1zcy0+ZGV2LCAiVkZFMSByZGkyIG92ZXJmbG93XG4iKTsKIAogCXJldHVybiBJ UlFfSEFORExFRDsKIH0KQEAgLTIyOCw2ICsyMjksNyBAQCBzdGF0aWMgaXJxcmV0dXJuX3QgaXNw aWZfaXNyXzh4OTYoaW50IGlycSwgdm9pZCAqZGV2KQogc3RhdGljIGlycXJldHVybl90IGlzcGlm X2lzcl84eDE2KGludCBpcnEsIHZvaWQgKmRldikKIHsKIAlzdHJ1Y3QgaXNwaWZfZGV2aWNlICpp c3BpZiA9IGRldjsKKwlzdHJ1Y3QgY2Ftc3MgKmNhbXNzID0gaXNwaWYtPmNhbXNzOwogCXUzMiB2 YWx1ZTAsIHZhbHVlMSwgdmFsdWUyOwogCiAJdmFsdWUwID0gcmVhZGxfcmVsYXhlZChpc3BpZi0+ YmFzZSArIElTUElGX1ZGRV9tX0lSUV9TVEFUVVNfMCgwKSk7CkBAIC0yNDQsMzAgKzI0NiwzMiBA QCBzdGF0aWMgaXJxcmV0dXJuX3QgaXNwaWZfaXNyXzh4MTYoaW50IGlycSwgdm9pZCAqZGV2KQog CQljb21wbGV0ZSgmaXNwaWYtPnJlc2V0X2NvbXBsZXRlWzBdKTsKIAogCWlmICh1bmxpa2VseSh2 YWx1ZTAgJiBJU1BJRl9WRkVfbV9JUlFfU1RBVFVTXzBfUElYMF9PVkVSRkxPVykpCi0JCWRldl9l cnJfcmF0ZWxpbWl0ZWQodG9fZGV2aWNlKGlzcGlmKSwgIlZGRTAgcGl4MCBvdmVyZmxvd1xuIik7 CisJCWRldl9lcnJfcmF0ZWxpbWl0ZWQoY2Ftc3MtPmRldiwgIlZGRTAgcGl4MCBvdmVyZmxvd1xu Iik7CiAKIAlpZiAodW5saWtlbHkodmFsdWUwICYgSVNQSUZfVkZFX21fSVJRX1NUQVRVU18wX1JE STBfT1ZFUkZMT1cpKQotCQlkZXZfZXJyX3JhdGVsaW1pdGVkKHRvX2RldmljZShpc3BpZiksICJW RkUwIHJkaTAgb3ZlcmZsb3dcbiIpOworCQlkZXZfZXJyX3JhdGVsaW1pdGVkKGNhbXNzLT5kZXYs ICJWRkUwIHJkaTAgb3ZlcmZsb3dcbiIpOwogCiAJaWYgKHVubGlrZWx5KHZhbHVlMSAmIElTUElG X1ZGRV9tX0lSUV9TVEFUVVNfMV9QSVgxX09WRVJGTE9XKSkKLQkJZGV2X2Vycl9yYXRlbGltaXRl ZCh0b19kZXZpY2UoaXNwaWYpLCAiVkZFMCBwaXgxIG92ZXJmbG93XG4iKTsKKwkJZGV2X2Vycl9y YXRlbGltaXRlZChjYW1zcy0+ZGV2LCAiVkZFMCBwaXgxIG92ZXJmbG93XG4iKTsKIAogCWlmICh1 bmxpa2VseSh2YWx1ZTEgJiBJU1BJRl9WRkVfbV9JUlFfU1RBVFVTXzFfUkRJMV9PVkVSRkxPVykp Ci0JCWRldl9lcnJfcmF0ZWxpbWl0ZWQodG9fZGV2aWNlKGlzcGlmKSwgIlZGRTAgcmRpMSBvdmVy Zmxvd1xuIik7CisJCWRldl9lcnJfcmF0ZWxpbWl0ZWQoY2Ftc3MtPmRldiwgIlZGRTAgcmRpMSBv dmVyZmxvd1xuIik7CiAKIAlpZiAodW5saWtlbHkodmFsdWUyICYgSVNQSUZfVkZFX21fSVJRX1NU QVRVU18yX1JESTJfT1ZFUkZMT1cpKQotCQlkZXZfZXJyX3JhdGVsaW1pdGVkKHRvX2RldmljZShp c3BpZiksICJWRkUwIHJkaTIgb3ZlcmZsb3dcbiIpOworCQlkZXZfZXJyX3JhdGVsaW1pdGVkKGNh bXNzLT5kZXYsICJWRkUwIHJkaTIgb3ZlcmZsb3dcbiIpOwogCiAJcmV0dXJuIElSUV9IQU5ETEVE OwogfQogCiBzdGF0aWMgaW50IGlzcGlmX3ZmZV9yZXNldChzdHJ1Y3QgaXNwaWZfZGV2aWNlICpp c3BpZiwgdTggdmZlX2lkKQogeworCXN0cnVjdCBjYW1zcyAqY2Ftc3MgPSBpc3BpZi0+Y2Ftc3M7 CisKIAl1bnNpZ25lZCBsb25nIHRpbWU7CiAJdTMyIHZhbDsKIAotCWlmICh2ZmVfaWQgPiAodG9f Y2Ftc3MoaXNwaWYpLT52ZmVfbnVtIC0gMSkpIHsKLQkJZGV2X2Vycih0b19kZXZpY2UoaXNwaWYp LAorCWlmICh2ZmVfaWQgPiAoY2Ftc3MtPnZmZV9udW0gLSAxKSkgeworCQlkZXZfZXJyKGNhbXNz LT5kZXYsCiAJCQkiRXJyb3I6IGFza2VkIHJlc2V0IGZvciBpbnZhbGlkIFZGRSVkXG4iLCB2ZmVf aWQpOwogCQlyZXR1cm4gLUVOT0VOVDsKIAl9CkBAIC0zMDAsNyArMzA0LDcgQEAgc3RhdGljIGlu dCBpc3BpZl92ZmVfcmVzZXQoc3RydWN0IGlzcGlmX2RldmljZSAqaXNwaWYsIHU4IHZmZV9pZCkK IAl0aW1lID0gd2FpdF9mb3JfY29tcGxldGlvbl90aW1lb3V0KCZpc3BpZi0+cmVzZXRfY29tcGxl dGVbdmZlX2lkXSwKIAkJbXNlY3NfdG9famlmZmllcyhJU1BJRl9SRVNFVF9USU1FT1VUX01TKSk7 CiAJaWYgKCF0aW1lKSB7Ci0JCWRldl9lcnIodG9fZGV2aWNlKGlzcGlmKSwKKwkJZGV2X2Vycihj YW1zcy0+ZGV2LAogCQkJIklTUElGIGZvciBWRkUlZCByZXNldCB0aW1lb3V0XG4iLCB2ZmVfaWQp OwogCQlyZXR1cm4gLUVJTzsKIAl9CkBAIC0zMTYsMzAgKzMyMCwzMSBAQCBzdGF0aWMgaW50IGlz cGlmX3ZmZV9yZXNldChzdHJ1Y3QgaXNwaWZfZGV2aWNlICppc3BpZiwgdTggdmZlX2lkKQogICov CiBzdGF0aWMgaW50IGlzcGlmX3Jlc2V0KHN0cnVjdCBpc3BpZl9kZXZpY2UgKmlzcGlmLCB1OCB2 ZmVfaWQpCiB7CisJc3RydWN0IGNhbXNzICpjYW1zcyA9IGlzcGlmLT5jYW1zczsKIAlpbnQgcmV0 OwogCi0JcmV0ID0gY2Ftc3NfcG1fZG9tYWluX29uKHRvX2NhbXNzKGlzcGlmKSwgUE1fRE9NQUlO X1ZGRTApOworCXJldCA9IGNhbXNzX3BtX2RvbWFpbl9vbihjYW1zcywgUE1fRE9NQUlOX1ZGRTAp OwogCWlmIChyZXQgPCAwKQogCQlyZXR1cm4gcmV0OwogCi0JcmV0ID0gY2Ftc3NfcG1fZG9tYWlu X29uKHRvX2NhbXNzKGlzcGlmKSwgUE1fRE9NQUlOX1ZGRTEpOworCXJldCA9IGNhbXNzX3BtX2Rv bWFpbl9vbihjYW1zcywgUE1fRE9NQUlOX1ZGRTEpOwogCWlmIChyZXQgPCAwKQogCQlyZXR1cm4g cmV0OwogCiAJcmV0ID0gY2Ftc3NfZW5hYmxlX2Nsb2Nrcyhpc3BpZi0+bmNsb2Nrc19mb3JfcmVz ZXQsCiAJCQkJICBpc3BpZi0+Y2xvY2tfZm9yX3Jlc2V0LAotCQkJCSAgdG9fZGV2aWNlKGlzcGlm KSk7CisJCQkJICBjYW1zcy0+ZGV2KTsKIAlpZiAocmV0IDwgMCkKIAkJcmV0dXJuIHJldDsKIAog CXJldCA9IGlzcGlmX3ZmZV9yZXNldChpc3BpZiwgdmZlX2lkKTsKIAlpZiAocmV0KQotCQlkZXZf ZGJnKHRvX2RldmljZShpc3BpZiksICJJU1BJRiBSZXNldCBmYWlsZWRcbiIpOworCQlkZXZfZGJn KGNhbXNzLT5kZXYsICJJU1BJRiBSZXNldCBmYWlsZWRcbiIpOwogCiAJY2Ftc3NfZGlzYWJsZV9j bG9ja3MoaXNwaWYtPm5jbG9ja3NfZm9yX3Jlc2V0LCBpc3BpZi0+Y2xvY2tfZm9yX3Jlc2V0KTsK IAotCWNhbXNzX3BtX2RvbWFpbl9vZmYodG9fY2Ftc3MoaXNwaWYpLCBQTV9ET01BSU5fVkZFMCk7 Ci0JY2Ftc3NfcG1fZG9tYWluX29mZih0b19jYW1zcyhpc3BpZiksIFBNX0RPTUFJTl9WRkUxKTsK KwljYW1zc19wbV9kb21haW5fb2ZmKGNhbXNzLCBQTV9ET01BSU5fVkZFMCk7CisJY2Ftc3NfcG1f ZG9tYWluX29mZihjYW1zcywgUE1fRE9NQUlOX1ZGRTEpOwogCiAJcmV0dXJuIHJldDsKIH0KQEAg LTM1NSw3ICszNjAsNyBAQCBzdGF0aWMgaW50IGlzcGlmX3NldF9wb3dlcihzdHJ1Y3QgdjRsMl9z dWJkZXYgKnNkLCBpbnQgb24pCiB7CiAJc3RydWN0IGlzcGlmX2xpbmUgKmxpbmUgPSB2NGwyX2dl dF9zdWJkZXZkYXRhKHNkKTsKIAlzdHJ1Y3QgaXNwaWZfZGV2aWNlICppc3BpZiA9IGxpbmUtPmlz cGlmOwotCXN0cnVjdCBkZXZpY2UgKmRldiA9IHRvX2RldmljZShpc3BpZik7CisJc3RydWN0IGRl dmljZSAqZGV2ID0gaXNwaWYtPmNhbXNzLT5kZXY7CiAJaW50IHJldCA9IDA7CiAKIAltdXRleF9s b2NrKCZpc3BpZi0+cG93ZXJfbG9jayk7CkBAIC01MDUsNyArNTEwLDcgQEAgc3RhdGljIGludCBp c3BpZl92YWxpZGF0ZV9pbnRmX3N0YXR1cyhzdHJ1Y3QgaXNwaWZfZGV2aWNlICppc3BpZiwKIAl9 CiAKIAlpZiAoKHZhbCAmIDB4ZikgIT0gMHhmKSB7Ci0JCWRldl9lcnIodG9fZGV2aWNlKGlzcGlm KSwgIiVzOiBpc3BpZiBpcyBidXN5OiAweCV4XG4iLAorCQlkZXZfZXJyKGlzcGlmLT5jYW1zcy0+ ZGV2LCAiJXM6IGlzcGlmIGlzIGJ1c3k6IDB4JXhcbiIsCiAJCQlfX2Z1bmNfXywgdmFsKTsKIAkJ cmV0ID0gLUVCVVNZOwogCX0KQEAgLTU1Miw3ICs1NTcsNyBAQCBzdGF0aWMgaW50IGlzcGlmX3dh aXRfZm9yX3N0b3Aoc3RydWN0IGlzcGlmX2RldmljZSAqaXNwaWYsCiAJCQkJIElTUElGX1RJTUVP VVRfU0xFRVBfVVMsCiAJCQkJIElTUElGX1RJTUVPVVRfQUxMX1VTKTsKIAlpZiAocmV0IDwgMCkK LQkJZGV2X2Vycih0b19kZXZpY2UoaXNwaWYpLCAiJXM6IGlzcGlmIHN0b3AgdGltZW91dFxuIiwK KwkJZGV2X2Vycihpc3BpZi0+Y2Ftc3MtPmRldiwgIiVzOiBpc3BpZiBzdG9wIHRpbWVvdXRcbiIs CiAJCQlfX2Z1bmNfXyk7CiAKIAlyZXR1cm4gcmV0OwpAQCAtODAwLDYgKzgwNSw3IEBAIHN0YXRp YyBpbnQgaXNwaWZfc2V0X3N0cmVhbShzdHJ1Y3QgdjRsMl9zdWJkZXYgKnNkLCBpbnQgZW5hYmxl KQogewogCXN0cnVjdCBpc3BpZl9saW5lICpsaW5lID0gdjRsMl9nZXRfc3ViZGV2ZGF0YShzZCk7 CiAJc3RydWN0IGlzcGlmX2RldmljZSAqaXNwaWYgPSBsaW5lLT5pc3BpZjsKKwlzdHJ1Y3QgY2Ft c3MgKmNhbXNzID0gaXNwaWYtPmNhbXNzOwogCWVudW0gaXNwaWZfaW50ZiBpbnRmID0gbGluZS0+ aW50ZXJmYWNlOwogCXU4IGNzaWQgPSBsaW5lLT5jc2lkX2lkOwogCXU4IHZmZSA9IGxpbmUtPnZm ZV9pZDsKQEAgLTgyNSw4ICs4MzEsOCBAQCBzdGF0aWMgaW50IGlzcGlmX3NldF9zdHJlYW0oc3Ry dWN0IHY0bDJfc3ViZGV2ICpzZCwgaW50IGVuYWJsZSkKIAkJaXNwaWZfc2VsZWN0X2NzaWQoaXNw aWYsIGludGYsIGNzaWQsIHZmZSwgMSk7CiAJCWlzcGlmX3NlbGVjdF9jaWQoaXNwaWYsIGludGYs IGNpZCwgdmZlLCAxKTsKIAkJaXNwaWZfY29uZmlnX2lycShpc3BpZiwgaW50ZiwgdmZlLCAxKTsK LQkJaWYgKHRvX2NhbXNzKGlzcGlmKS0+dmVyc2lvbiA9PSBDQU1TU184eDk2IHx8Ci0JCSAgICB0 b19jYW1zcyhpc3BpZiktPnZlcnNpb24gPT0gQ0FNU1NfNjYwKQorCQlpZiAoY2Ftc3MtPnZlcnNp b24gPT0gQ0FNU1NfOHg5NiB8fAorCQkgICAgY2Ftc3MtPnZlcnNpb24gPT0gQ0FNU1NfNjYwKQog CQkJaXNwaWZfY29uZmlnX3BhY2soaXNwaWYsCiAJCQkJCSAgbGluZS0+Zm10W01TTV9JU1BJRl9Q QURfU0lOS10uY29kZSwKIAkJCQkJICBpbnRmLCBjaWQsIHZmZSwgMSk7CkBAIC04NDMsOCArODQ5 LDggQEAgc3RhdGljIGludCBpc3BpZl9zZXRfc3RyZWFtKHN0cnVjdCB2NGwyX3N1YmRldiAqc2Qs IGludCBlbmFibGUpCiAJCQlyZXR1cm4gcmV0OwogCiAJCW11dGV4X2xvY2soJmlzcGlmLT5jb25m aWdfbG9jayk7Ci0JCWlmICh0b19jYW1zcyhpc3BpZiktPnZlcnNpb24gPT0gQ0FNU1NfOHg5NiB8 fAotCQkgICAgdG9fY2Ftc3MoaXNwaWYpLT52ZXJzaW9uID09IENBTVNTXzY2MCkKKwkJaWYgKGNh bXNzLT52ZXJzaW9uID09IENBTVNTXzh4OTYgfHwKKwkJICAgIGNhbXNzLT52ZXJzaW9uID09IENB TVNTXzY2MCkKIAkJCWlzcGlmX2NvbmZpZ19wYWNrKGlzcGlmLAogCQkJCQkgIGxpbmUtPmZtdFtN U01fSVNQSUZfUEFEX1NJTktdLmNvZGUsCiAJCQkJCSAgaW50ZiwgY2lkLCB2ZmUsIDApOwpAQCAt MTA4OCwyNiArMTA5NCwyOSBAQCBzdGF0aWMgaW50IGlzcGlmX2luaXRfZm9ybWF0cyhzdHJ1Y3Qg djRsMl9zdWJkZXYgKnNkLCBzdHJ1Y3QgdjRsMl9zdWJkZXZfZmggKmZoKQogICoKICAqIFJldHVy biAwIG9uIHN1Y2Nlc3Mgb3IgYSBuZWdhdGl2ZSBlcnJvciBjb2RlIG90aGVyd2lzZQogICovCi1p bnQgbXNtX2lzcGlmX3N1YmRldl9pbml0KHN0cnVjdCBpc3BpZl9kZXZpY2UgKmlzcGlmLAoraW50 IG1zbV9pc3BpZl9zdWJkZXZfaW5pdChzdHJ1Y3QgY2Ftc3MgKmNhbXNzLAogCQkJICBjb25zdCBz dHJ1Y3QgcmVzb3VyY2VzX2lzcGlmICpyZXMpCiB7Ci0Jc3RydWN0IGRldmljZSAqZGV2ID0gdG9f ZGV2aWNlKGlzcGlmKTsKKwlzdHJ1Y3QgZGV2aWNlICpkZXYgPSBjYW1zcy0+ZGV2OworCXN0cnVj dCBpc3BpZl9kZXZpY2UgKmlzcGlmID0gY2Ftc3MtPmlzcGlmOwogCXN0cnVjdCBwbGF0Zm9ybV9k ZXZpY2UgKnBkZXYgPSB0b19wbGF0Zm9ybV9kZXZpY2UoZGV2KTsKIAlzdHJ1Y3QgcmVzb3VyY2Ug KnI7CiAJaW50IGk7CiAJaW50IHJldDsKIAorCWlzcGlmLT5jYW1zcyA9IGNhbXNzOworCiAJLyog TnVtYmVyIG9mIElTUElGIGxpbmVzIC0gc2FtZSBhcyBudW1iZXIgb2YgQ1NJRCBoYXJkd2FyZSBt b2R1bGVzICovCi0JaWYgKHRvX2NhbXNzKGlzcGlmKS0+dmVyc2lvbiA9PSBDQU1TU184eDE2KQor CWlmIChjYW1zcy0+dmVyc2lvbiA9PSBDQU1TU184eDE2KQogCQlpc3BpZi0+bGluZV9udW0gPSAy OwotCWVsc2UgaWYgKHRvX2NhbXNzKGlzcGlmKS0+dmVyc2lvbiA9PSBDQU1TU184eDk2IHx8Ci0J CSB0b19jYW1zcyhpc3BpZiktPnZlcnNpb24gPT0gQ0FNU1NfNjYwKQorCWVsc2UgaWYgKGNhbXNz LT52ZXJzaW9uID09IENBTVNTXzh4OTYgfHwKKwkJIGNhbXNzLT52ZXJzaW9uID09IENBTVNTXzY2 MCkKIAkJaXNwaWYtPmxpbmVfbnVtID0gNDsKIAllbHNlCiAJCXJldHVybiAtRUlOVkFMOwogCi0J aXNwaWYtPmxpbmUgPSBkZXZtX2tjYWxsb2MoZGV2LCBpc3BpZi0+bGluZV9udW0sIHNpemVvZigq aXNwaWYtPmxpbmUpLAotCQkJCSAgIEdGUF9LRVJORUwpOworCWlzcGlmLT5saW5lID0gZGV2bV9r Y2FsbG9jKGRldiwgaXNwaWYtPmxpbmVfbnVtLAorCQkJc2l6ZW9mKCppc3BpZi0+bGluZSksIEdG UF9LRVJORUwpOwogCWlmICghaXNwaWYtPmxpbmUpCiAJCXJldHVybiAtRU5PTUVNOwogCkBAIC0x MTE1LDEyICsxMTI0LDEyIEBAIGludCBtc21faXNwaWZfc3ViZGV2X2luaXQoc3RydWN0IGlzcGlm X2RldmljZSAqaXNwaWYsCiAJCWlzcGlmLT5saW5lW2ldLmlzcGlmID0gaXNwaWY7CiAJCWlzcGlm LT5saW5lW2ldLmlkID0gaTsKIAotCQlpZiAodG9fY2Ftc3MoaXNwaWYpLT52ZXJzaW9uID09IENB TVNTXzh4MTYpIHsKKwkJaWYgKGNhbXNzLT52ZXJzaW9uID09IENBTVNTXzh4MTYpIHsKIAkJCWlz cGlmLT5saW5lW2ldLmZvcm1hdHMgPSBpc3BpZl9mb3JtYXRzXzh4MTY7CiAJCQlpc3BpZi0+bGlu ZVtpXS5uZm9ybWF0cyA9CiAJCQkJCUFSUkFZX1NJWkUoaXNwaWZfZm9ybWF0c184eDE2KTsKLQkJ fSBlbHNlIGlmICh0b19jYW1zcyhpc3BpZiktPnZlcnNpb24gPT0gQ0FNU1NfOHg5NiB8fAotCQkJ ICAgdG9fY2Ftc3MoaXNwaWYpLT52ZXJzaW9uID09IENBTVNTXzY2MCkgeworCQl9IGVsc2UgaWYg KGNhbXNzLT52ZXJzaW9uID09IENBTVNTXzh4OTYgfHwKKwkJCSAgIGNhbXNzLT52ZXJzaW9uID09 IENBTVNTXzY2MCkgewogCQkJaXNwaWYtPmxpbmVbaV0uZm9ybWF0cyA9IGlzcGlmX2Zvcm1hdHNf OHg5NjsKIAkJCWlzcGlmLT5saW5lW2ldLm5mb3JtYXRzID0KIAkJCQkJQVJSQVlfU0laRShpc3Bp Zl9mb3JtYXRzXzh4OTYpOwpAQCAtMTE1NywxNSArMTE2NiwxNiBAQCBpbnQgbXNtX2lzcGlmX3N1 YmRldl9pbml0KHN0cnVjdCBpc3BpZl9kZXZpY2UgKmlzcGlmLAogCWlzcGlmLT5pcnEgPSByLT5z dGFydDsKIAlzbnByaW50Zihpc3BpZi0+aXJxX25hbWUsIHNpemVvZihpc3BpZi0+aXJxX25hbWUp LCAiJXNfJXMiLAogCQkgZGV2X25hbWUoZGV2KSwgTVNNX0lTUElGX05BTUUpOwotCWlmICh0b19j YW1zcyhpc3BpZiktPnZlcnNpb24gPT0gQ0FNU1NfOHgxNikKKwlpZiAoY2Ftc3MtPnZlcnNpb24g PT0gQ0FNU1NfOHgxNikKIAkJcmV0ID0gZGV2bV9yZXF1ZXN0X2lycShkZXYsIGlzcGlmLT5pcnEs IGlzcGlmX2lzcl84eDE2LAogCQkJICAgICAgIElSUUZfVFJJR0dFUl9SSVNJTkcsIGlzcGlmLT5p cnFfbmFtZSwgaXNwaWYpOwotCWVsc2UgaWYgKHRvX2NhbXNzKGlzcGlmKS0+dmVyc2lvbiA9PSBD QU1TU184eDk2IHx8Ci0JCSB0b19jYW1zcyhpc3BpZiktPnZlcnNpb24gPT0gQ0FNU1NfNjYwKQor CWVsc2UgaWYgKGNhbXNzLT52ZXJzaW9uID09IENBTVNTXzh4OTYgfHwKKwkJIGNhbXNzLT52ZXJz aW9uID09IENBTVNTXzY2MCkKIAkJcmV0ID0gZGV2bV9yZXF1ZXN0X2lycShkZXYsIGlzcGlmLT5p cnEsIGlzcGlmX2lzcl84eDk2LAogCQkJICAgICAgIElSUUZfVFJJR0dFUl9SSVNJTkcsIGlzcGlm LT5pcnFfbmFtZSwgaXNwaWYpOwogCWVsc2UKIAkJcmV0ID0gLUVJTlZBTDsKKwogCWlmIChyZXQg PCAwKSB7CiAJCWRldl9lcnIoZGV2LCAicmVxdWVzdF9pcnEgZmFpbGVkOiAlZFxuIiwgcmV0KTsK IAkJcmV0dXJuIHJldDsKQEAgLTEzMzEsMTAgKzEzNDEsMTMgQEAgc3RhdGljIGNvbnN0IHN0cnVj dCBtZWRpYV9lbnRpdHlfb3BlcmF0aW9ucyBpc3BpZl9tZWRpYV9vcHMgPSB7CiBpbnQgbXNtX2lz cGlmX3JlZ2lzdGVyX2VudGl0aWVzKHN0cnVjdCBpc3BpZl9kZXZpY2UgKmlzcGlmLAogCQkJCXN0 cnVjdCB2NGwyX2RldmljZSAqdjRsMl9kZXYpCiB7Ci0Jc3RydWN0IGRldmljZSAqZGV2ID0gdG9f ZGV2aWNlKGlzcGlmKTsKKwlzdHJ1Y3QgY2Ftc3MgKmNhbXNzID0gIGlzcGlmLT5jYW1zczsKIAlp bnQgcmV0OwogCWludCBpOwogCisJaWYgKCFpc3BpZikKKwkJcmV0dXJuIDA7CisKIAlmb3IgKGkg PSAwOyBpIDwgaXNwaWYtPmxpbmVfbnVtOyBpKyspIHsKIAkJc3RydWN0IHY0bDJfc3ViZGV2ICpz ZCA9ICZpc3BpZi0+bGluZVtpXS5zdWJkZXY7CiAJCXN0cnVjdCBtZWRpYV9wYWQgKnBhZHMgPSBp c3BpZi0+bGluZVtpXS5wYWRzOwpAQCAtMTM0OCw3ICsxMzYxLDcgQEAgaW50IG1zbV9pc3BpZl9y ZWdpc3Rlcl9lbnRpdGllcyhzdHJ1Y3QgaXNwaWZfZGV2aWNlICppc3BpZiwKIAogCQlyZXQgPSBp c3BpZl9pbml0X2Zvcm1hdHMoc2QsIE5VTEwpOwogCQlpZiAocmV0IDwgMCkgewotCQkJZGV2X2Vy cihkZXYsICJGYWlsZWQgdG8gaW5pdCBmb3JtYXQ6ICVkXG4iLCByZXQpOworCQkJZGV2X2Vycihj YW1zcy0+ZGV2LCAiRmFpbGVkIHRvIGluaXQgZm9ybWF0OiAlZFxuIiwgcmV0KTsKIAkJCWdvdG8g ZXJyb3I7CiAJCX0KIApAQCAtMTM2MCwxMyArMTM3MywxNSBAQCBpbnQgbXNtX2lzcGlmX3JlZ2lz dGVyX2VudGl0aWVzKHN0cnVjdCBpc3BpZl9kZXZpY2UgKmlzcGlmLAogCQlyZXQgPSBtZWRpYV9l bnRpdHlfcGFkc19pbml0KCZzZC0+ZW50aXR5LCBNU01fSVNQSUZfUEFEU19OVU0sCiAJCQkJCSAg ICAgcGFkcyk7CiAJCWlmIChyZXQgPCAwKSB7Ci0JCQlkZXZfZXJyKGRldiwgIkZhaWxlZCB0byBp bml0IG1lZGlhIGVudGl0eTogJWRcbiIsIHJldCk7CisJCQlkZXZfZXJyKGNhbXNzLT5kZXYsICJG YWlsZWQgdG8gaW5pdCBtZWRpYSBlbnRpdHk6ICVkXG4iLAorCQkJCXJldCk7CiAJCQlnb3RvIGVy cm9yOwogCQl9CiAKIAkJcmV0ID0gdjRsMl9kZXZpY2VfcmVnaXN0ZXJfc3ViZGV2KHY0bDJfZGV2 LCBzZCk7CiAJCWlmIChyZXQgPCAwKSB7Ci0JCQlkZXZfZXJyKGRldiwgIkZhaWxlZCB0byByZWdp c3RlciBzdWJkZXY6ICVkXG4iLCByZXQpOworCQkJZGV2X2VycihjYW1zcy0+ZGV2LCAiRmFpbGVk IHRvIHJlZ2lzdGVyIHN1YmRldjogJWRcbiIsCisJCQkJcmV0KTsKIAkJCW1lZGlhX2VudGl0eV9j bGVhbnVwKCZzZC0+ZW50aXR5KTsKIAkJCWdvdG8gZXJyb3I7CiAJCX0KQEAgLTEzOTMsNiArMTQw OCw5IEBAIHZvaWQgbXNtX2lzcGlmX3VucmVnaXN0ZXJfZW50aXRpZXMoc3RydWN0IGlzcGlmX2Rl dmljZSAqaXNwaWYpCiB7CiAJaW50IGk7CiAKKwlpZiAoIWlzcGlmKQorCQlyZXR1cm47CisKIAlt dXRleF9kZXN0cm95KCZpc3BpZi0+cG93ZXJfbG9jayk7CiAJbXV0ZXhfZGVzdHJveSgmaXNwaWYt PmNvbmZpZ19sb2NrKTsKIApkaWZmIC0tZ2l0IGEvZHJpdmVycy9tZWRpYS9wbGF0Zm9ybS9xY29t L2NhbXNzL2NhbXNzLWlzcGlmLmggYi9kcml2ZXJzL21lZGlhL3BsYXRmb3JtL3Fjb20vY2Ftc3Mv Y2Ftc3MtaXNwaWYuaAppbmRleCA0MTMyMTc0ZjdlYTEuLmZkZjI4ZTY4Y2M3ZCAxMDA2NDQKLS0t IGEvZHJpdmVycy9tZWRpYS9wbGF0Zm9ybS9xY29tL2NhbXNzL2NhbXNzLWlzcGlmLmgKKysrIGIv ZHJpdmVycy9tZWRpYS9wbGF0Zm9ybS9xY29tL2NhbXNzL2NhbXNzLWlzcGlmLmgKQEAgLTYzLDEx ICs2MywxMiBAQCBzdHJ1Y3QgaXNwaWZfZGV2aWNlIHsKIAlzdHJ1Y3QgbXV0ZXggY29uZmlnX2xv Y2s7CiAJdW5zaWduZWQgaW50IGxpbmVfbnVtOwogCXN0cnVjdCBpc3BpZl9saW5lICpsaW5lOwor CXN0cnVjdCBjYW1zcyAqY2Ftc3M7CiB9OwogCiBzdHJ1Y3QgcmVzb3VyY2VzX2lzcGlmOwogCi1p bnQgbXNtX2lzcGlmX3N1YmRldl9pbml0KHN0cnVjdCBpc3BpZl9kZXZpY2UgKmlzcGlmLAoraW50 IG1zbV9pc3BpZl9zdWJkZXZfaW5pdChzdHJ1Y3QgY2Ftc3MgKmNhbXNzLAogCQkJICBjb25zdCBz dHJ1Y3QgcmVzb3VyY2VzX2lzcGlmICpyZXMpOwogCiBpbnQgbXNtX2lzcGlmX3JlZ2lzdGVyX2Vu dGl0aWVzKHN0cnVjdCBpc3BpZl9kZXZpY2UgKmlzcGlmLApkaWZmIC0tZ2l0IGEvZHJpdmVycy9t ZWRpYS9wbGF0Zm9ybS9xY29tL2NhbXNzL2NhbXNzLmMgYi9kcml2ZXJzL21lZGlhL3BsYXRmb3Jt L3Fjb20vY2Ftc3MvY2Ftc3MuYwppbmRleCA4ZmVmY2U1N2JjNDkuLmI5NjZkZTM0NGI1YiAxMDA2 NDQKLS0tIGEvZHJpdmVycy9tZWRpYS9wbGF0Zm9ybS9xY29tL2NhbXNzL2NhbXNzLmMKKysrIGIv ZHJpdmVycy9tZWRpYS9wbGF0Zm9ybS9xY29tL2NhbXNzL2NhbXNzLmMKQEAgLTc0OCwxMSArNzQ4 LDEzIEBAIHN0YXRpYyBpbnQgY2Ftc3NfaW5pdF9zdWJkZXZpY2VzKHN0cnVjdCBjYW1zcyAqY2Ft c3MpCiAJCX0KIAl9CiAKLQlyZXQgPSBtc21faXNwaWZfc3ViZGV2X2luaXQoJmNhbXNzLT5pc3Bp ZiwgaXNwaWZfcmVzKTsKLQlpZiAocmV0IDwgMCkgewotCQlkZXZfZXJyKGNhbXNzLT5kZXYsICJG YWlsZWQgdG8gaW5pdCBpc3BpZiBzdWItZGV2aWNlOiAlZFxuIiwKKwlpZiAoY2Ftc3MtPmlzcGlm KSB7CisJCXJldCA9IG1zbV9pc3BpZl9zdWJkZXZfaW5pdChjYW1zcywgaXNwaWZfcmVzKTsKKwkJ aWYgKHJldCA8IDApIHsKKwkJCWRldl9lcnIoY2Ftc3MtPmRldiwgIkZhaWxlZCB0byBpbml0IGlz cGlmIHN1Yi1kZXZpY2U6ICVkXG4iLAogCQkJcmV0KTsKLQkJcmV0dXJuIHJldDsKKwkJCXJldHVy biByZXQ7CisJCX0KIAl9CiAKIAlmb3IgKGkgPSAwOyBpIDwgY2Ftc3MtPnZmZV9udW07IGkrKykg ewpAQCAtODAxLDExICs4MDMsMTQgQEAgc3RhdGljIGludCBjYW1zc19yZWdpc3Rlcl9lbnRpdGll cyhzdHJ1Y3QgY2Ftc3MgKmNhbXNzKQogCQl9CiAJfQogCi0JcmV0ID0gbXNtX2lzcGlmX3JlZ2lz dGVyX2VudGl0aWVzKCZjYW1zcy0+aXNwaWYsICZjYW1zcy0+djRsMl9kZXYpOwotCWlmIChyZXQg PCAwKSB7Ci0JCWRldl9lcnIoY2Ftc3MtPmRldiwgIkZhaWxlZCB0byByZWdpc3RlciBpc3BpZiBl bnRpdGllczogJWRcbiIsCisJaWYgKGNhbXNzLT5pc3BpZikgeworCQlyZXQgPSBtc21faXNwaWZf cmVnaXN0ZXJfZW50aXRpZXMoY2Ftc3MtPmlzcGlmLAorCQkJCQkJICAmY2Ftc3MtPnY0bDJfZGV2 KTsKKwkJaWYgKHJldCA8IDApIHsKKwkJCWRldl9lcnIoY2Ftc3MtPmRldiwgIkZhaWxlZCB0byBy ZWdpc3RlciBpc3BpZiBlbnRpdGllczogJWRcbiIsCiAJCQlyZXQpOwotCQlnb3RvIGVycl9yZWdf aXNwaWY7CisJCQlnb3RvIGVycl9yZWdfaXNwaWY7CisJCX0KIAl9CiAKIAlmb3IgKGkgPSAwOyBp IDwgY2Ftc3MtPnZmZV9udW07IGkrKykgewpAQCAtODM4LDQzICs4NDMsNjQgQEAgc3RhdGljIGlu dCBjYW1zc19yZWdpc3Rlcl9lbnRpdGllcyhzdHJ1Y3QgY2Ftc3MgKmNhbXNzKQogCQl9CiAJfQog Ci0JZm9yIChpID0gMDsgaSA8IGNhbXNzLT5jc2lkX251bTsgaSsrKSB7Ci0JCWZvciAoaiA9IDA7 IGogPCBjYW1zcy0+aXNwaWYubGluZV9udW07IGorKykgewotCQkJcmV0ID0gbWVkaWFfY3JlYXRl X3BhZF9saW5rKAotCQkJCSZjYW1zcy0+Y3NpZFtpXS5zdWJkZXYuZW50aXR5LAotCQkJCU1TTV9D U0lEX1BBRF9TUkMsCi0JCQkJJmNhbXNzLT5pc3BpZi5saW5lW2pdLnN1YmRldi5lbnRpdHksCi0J CQkJTVNNX0lTUElGX1BBRF9TSU5LLAotCQkJCTApOwotCQkJaWYgKHJldCA8IDApIHsKLQkJCQlk ZXZfZXJyKGNhbXNzLT5kZXYsCi0JCQkJCSJGYWlsZWQgdG8gbGluayAlcy0+JXMgZW50aXRpZXM6 ICVkXG4iLAotCQkJCQljYW1zcy0+Y3NpZFtpXS5zdWJkZXYuZW50aXR5Lm5hbWUsCi0JCQkJCWNh bXNzLT5pc3BpZi5saW5lW2pdLnN1YmRldi5lbnRpdHkubmFtZSwKLQkJCQkJcmV0KTsKLQkJCQln b3RvIGVycl9saW5rOwotCQkJfQotCQl9Ci0JfQotCi0JZm9yIChpID0gMDsgaSA8IGNhbXNzLT5p c3BpZi5saW5lX251bTsgaSsrKQotCQlmb3IgKGsgPSAwOyBrIDwgY2Ftc3MtPnZmZV9udW07IGsr KykKLQkJCWZvciAoaiA9IDA7IGogPCBBUlJBWV9TSVpFKGNhbXNzLT52ZmVba10ubGluZSk7IGor KykgeworCWlmIChjYW1zcy0+aXNwaWYpIHsKKwkJZm9yIChpID0gMDsgaSA8IGNhbXNzLT5jc2lk X251bTsgaSsrKSB7CisJCQlmb3IgKGogPSAwOyBqIDwgY2Ftc3MtPmlzcGlmLT5saW5lX251bTsg aisrKSB7CiAJCQkJcmV0ID0gbWVkaWFfY3JlYXRlX3BhZF9saW5rKAotCQkJCQkmY2Ftc3MtPmlz cGlmLmxpbmVbaV0uc3ViZGV2LmVudGl0eSwKLQkJCQkJTVNNX0lTUElGX1BBRF9TUkMsCi0JCQkJ CSZjYW1zcy0+dmZlW2tdLmxpbmVbal0uc3ViZGV2LmVudGl0eSwKLQkJCQkJTVNNX1ZGRV9QQURf U0lOSywKKwkJCQkJJmNhbXNzLT5jc2lkW2ldLnN1YmRldi5lbnRpdHksCisJCQkJCU1TTV9DU0lE X1BBRF9TUkMsCisJCQkJCSZjYW1zcy0+aXNwaWYtPmxpbmVbal0uc3ViZGV2LmVudGl0eSwKKwkJ CQkJTVNNX0lTUElGX1BBRF9TSU5LLAogCQkJCQkwKTsKIAkJCQlpZiAocmV0IDwgMCkgewogCQkJ CQlkZXZfZXJyKGNhbXNzLT5kZXYsCiAJCQkJCQkiRmFpbGVkIHRvIGxpbmsgJXMtPiVzIGVudGl0 aWVzOiAlZFxuIiwKLQkJCQkJCWNhbXNzLT5pc3BpZi5saW5lW2ldLnN1YmRldi5lbnRpdHkubmFt ZSwKLQkJCQkJCWNhbXNzLT52ZmVba10ubGluZVtqXS5zdWJkZXYuZW50aXR5Lm5hbWUsCisJCQkJ CQljYW1zcy0+Y3NpZFtpXS5zdWJkZXYuZW50aXR5Lm5hbWUsCisJCQkJCQljYW1zcy0+aXNwaWYt PmxpbmVbal0uc3ViZGV2LmVudGl0eS5uYW1lLAogCQkJCQkJcmV0KTsKIAkJCQkJZ290byBlcnJf bGluazsKIAkJCQl9CiAJCQl9CisJCX0KKworCQlmb3IgKGkgPSAwOyBpIDwgY2Ftc3MtPmlzcGlm LT5saW5lX251bTsgaSsrKQorCQkJZm9yIChrID0gMDsgayA8IGNhbXNzLT52ZmVfbnVtOyBrKysp CisJCQkJZm9yIChqID0gMDsgaiA8IEFSUkFZX1NJWkUoY2Ftc3MtPnZmZVtrXS5saW5lKTsgaisr KSB7CisJCQkJCXJldCA9IG1lZGlhX2NyZWF0ZV9wYWRfbGluaygKKwkJCQkJCSZjYW1zcy0+aXNw aWYtPmxpbmVbaV0uc3ViZGV2LmVudGl0eSwKKwkJCQkJCU1TTV9JU1BJRl9QQURfU1JDLAorCQkJ CQkJJmNhbXNzLT52ZmVba10ubGluZVtqXS5zdWJkZXYuZW50aXR5LAorCQkJCQkJTVNNX1ZGRV9Q QURfU0lOSywKKwkJCQkJCTApOworCQkJCQlpZiAocmV0IDwgMCkgeworCQkJCQkJZGV2X2Vycihj YW1zcy0+ZGV2LAorCQkJCQkJCSJGYWlsZWQgdG8gbGluayAlcy0+JXMgZW50aXRpZXM6ICVkXG4i LAorCQkJCQkJCWNhbXNzLT5pc3BpZi0+bGluZVtpXS5zdWJkZXYuZW50aXR5Lm5hbWUsCisJCQkJ CQkJY2Ftc3MtPnZmZVtrXS5saW5lW2pdLnN1YmRldi5lbnRpdHkubmFtZSwKKwkJCQkJCQlyZXQp OworCQkJCQkJZ290byBlcnJfbGluazsKKwkJCQkJfQorCQkJCX0KKwl9IGVsc2UgeworCQlmb3Ig KGkgPSAwOyBpIDwgY2Ftc3MtPmNzaWRfbnVtOyBpKyspCisJCQlmb3IgKGsgPSAwOyBrIDwgY2Ft c3MtPnZmZV9udW07IGsrKykKKwkJCQlmb3IgKGogPSAwOyBqIDwgQVJSQVlfU0laRShjYW1zcy0+ dmZlW2tdLmxpbmUpOyBqKyspIHsKKwkJCQkJcmV0ID0gbWVkaWFfY3JlYXRlX3BhZF9saW5rKAor CQkJCQkJJmNhbXNzLT5jc2lkW2ldLnN1YmRldi5lbnRpdHksCisJCQkJCQlNU01fQ1NJRF9QQURf U1JDLAorCQkJCQkJJmNhbXNzLT52ZmVba10ubGluZVtqXS5zdWJkZXYuZW50aXR5LAorCQkJCQkJ TVNNX1ZGRV9QQURfU0lOSywKKwkJCQkJCTApOworCQkJCQlpZiAocmV0IDwgMCkgeworCQkJCQkJ ZGV2X2VycihjYW1zcy0+ZGV2LAorCQkJCQkJCSJGYWlsZWQgdG8gbGluayAlcy0+JXMgZW50aXRp ZXM6ICVkXG4iLAorCQkJCQkJCWNhbXNzLT5jc2lkW2ldLnN1YmRldi5lbnRpdHkubmFtZSwKKwkJ CQkJCQljYW1zcy0+dmZlW2tdLmxpbmVbal0uc3ViZGV2LmVudGl0eS5uYW1lLAorCQkJCQkJCXJl dCk7CisJCQkJCQlnb3RvIGVycl9saW5rOworCQkJCQl9CisJCQkJfQorCX0KIAogCXJldHVybiAw OwogCkBAIC04ODQsOCArOTEwLDggQEAgc3RhdGljIGludCBjYW1zc19yZWdpc3Rlcl9lbnRpdGll cyhzdHJ1Y3QgY2Ftc3MgKmNhbXNzKQogCWZvciAoaS0tOyBpID49IDA7IGktLSkKIAkJbXNtX3Zm ZV91bnJlZ2lzdGVyX2VudGl0aWVzKCZjYW1zcy0+dmZlW2ldKTsKIAotCW1zbV9pc3BpZl91bnJl Z2lzdGVyX2VudGl0aWVzKCZjYW1zcy0+aXNwaWYpOwogZXJyX3JlZ19pc3BpZjoKKwltc21faXNw aWZfdW5yZWdpc3Rlcl9lbnRpdGllcyhjYW1zcy0+aXNwaWYpOwogCiAJaSA9IGNhbXNzLT5jc2lk X251bTsKIGVycl9yZWdfY3NpZDoKQEAgLTkxNiw3ICs5NDIsNyBAQCBzdGF0aWMgdm9pZCBjYW1z c191bnJlZ2lzdGVyX2VudGl0aWVzKHN0cnVjdCBjYW1zcyAqY2Ftc3MpCiAJZm9yIChpID0gMDsg aSA8IGNhbXNzLT5jc2lkX251bTsgaSsrKQogCQltc21fY3NpZF91bnJlZ2lzdGVyX2VudGl0eSgm Y2Ftc3MtPmNzaWRbaV0pOwogCi0JbXNtX2lzcGlmX3VucmVnaXN0ZXJfZW50aXRpZXMoJmNhbXNz LT5pc3BpZik7CisJbXNtX2lzcGlmX3VucmVnaXN0ZXJfZW50aXRpZXMoY2Ftc3MtPmlzcGlmKTsK IAogCWZvciAoaSA9IDA7IGkgPCBjYW1zcy0+dmZlX251bTsgaSsrKQogCQltc21fdmZlX3VucmVn aXN0ZXJfZW50aXRpZXMoJmNhbXNzLT52ZmVbaV0pOwpAQCAtMTA0Nyw2ICsxMDczLDE1IEBAIHN0 YXRpYyBpbnQgY2Ftc3NfcHJvYmUoc3RydWN0IHBsYXRmb3JtX2RldmljZSAqcGRldikKIAkJZ290 byBlcnJfZnJlZTsKIAl9CiAKKwlpZiAoY2Ftc3MtPnZlcnNpb24gPT0gQ0FNU1NfOHgxNiB8fAor CSAgICBjYW1zcy0+dmVyc2lvbiA9PSBDQU1TU184eDk2KSB7CisJCWNhbXNzLT5pc3BpZiA9IGRl dm1fa2NhbGxvYyhkZXYsIDEsIHNpemVvZigqY2Ftc3MtPmlzcGlmKSwgR0ZQX0tFUk5FTCk7CisJ CWlmICghY2Ftc3MtPmlzcGlmKSB7CisJCQlyZXQgPSAtRU5PTUVNOworCQkJZ290byBlcnJfZnJl ZTsKKwkJfQorCX0KKwogCWNhbXNzLT52ZmUgPSBkZXZtX2tjYWxsb2MoZGV2LCBjYW1zcy0+dmZl X251bSwgc2l6ZW9mKCpjYW1zcy0+dmZlKSwKIAkJCQkgIEdGUF9LRVJORUwpOwogCWlmICghY2Ft c3MtPnZmZSkgewpkaWZmIC0tZ2l0IGEvZHJpdmVycy9tZWRpYS9wbGF0Zm9ybS9xY29tL2NhbXNz L2NhbXNzLmggYi9kcml2ZXJzL21lZGlhL3BsYXRmb3JtL3Fjb20vY2Ftc3MvY2Ftc3MuaAppbmRl eCA0NmU5ODY0NTI4MjQuLmI3YWQ4ZTlmNjhhOCAxMDA2NDQKLS0tIGEvZHJpdmVycy9tZWRpYS9w bGF0Zm9ybS9xY29tL2NhbXNzL2NhbXNzLmgKKysrIGIvZHJpdmVycy9tZWRpYS9wbGF0Zm9ybS9x Y29tL2NhbXNzL2NhbXNzLmgKQEAgLTc5LDcgKzc5LDcgQEAgc3RydWN0IGNhbXNzIHsKIAlzdHJ1 Y3QgY3NpcGh5X2RldmljZSAqY3NpcGh5OwogCWludCBjc2lkX251bTsKIAlzdHJ1Y3QgY3NpZF9k ZXZpY2UgKmNzaWQ7Ci0Jc3RydWN0IGlzcGlmX2RldmljZSBpc3BpZjsKKwlzdHJ1Y3QgaXNwaWZf ZGV2aWNlICppc3BpZjsKIAlpbnQgdmZlX251bTsKIAlzdHJ1Y3QgdmZlX2RldmljZSAqdmZlOwog CWF0b21pY190IHJlZl9jb3VudDsKLS0gCjIuMjcuMAoKCl9fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fCmxpbnV4LWFybS1rZXJuZWwgbWFpbGluZyBsaXN0Cmxp bnV4LWFybS1rZXJuZWxAbGlzdHMuaW5mcmFkZWFkLm9yZwpodHRwOi8vbGlzdHMuaW5mcmFkZWFk Lm9yZy9tYWlsbWFuL2xpc3RpbmZvL2xpbnV4LWFybS1rZXJuZWwK