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 Received: from bombadil.infradead.org (bombadil.infradead.org [198.137.202.133]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.lore.kernel.org (Postfix) with ESMTPS id 83596C433EF for ; Mon, 27 Dec 2021 15:01:49 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=lists.infradead.org; s=bombadil.20210309; h=Sender: Content-Transfer-Encoding:Content-Type:List-Subscribe:List-Help:List-Post: List-Archive:List-Unsubscribe:List-Id:MIME-Version:References:In-Reply-To: Message-Id:Date:Subject:Cc:To:From:Reply-To:Content-ID:Content-Description: Resent-Date:Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID: List-Owner; bh=hAL1pN1elPOphBY4qIwiDYC+FWDUnH1BorZ0Hq/8q+c=; b=nrYSzZ3fj2oByf Y9VghT+1wIgPe3TuO6vq9j9SIbUjkvkuxvwx0eSnxQx1h6NcDG4XAnokcaF+WZVPgY8L3fSU8kqcU 8P0IpPTJCqR7x/4XtZ2eqZBo2GeHB0Ekh+p6Vu7jIIQnHOUHCkZ78soWk+7QT/Ygv5Q64hhspJ9QE 5UHj2VqsewAsshG/HX7mt5FNMbd7oSiV0B7vsqwwTzth0KQuHiAdJujU7Q4ScIRPOriataeBghUjg F+RUpxaezdaHWmUfpsegIScvddK1oUYlXBJ203e0UNdoxHNVjU7oEjn4yQ2Y6IVFItC+9zDdOz2jl KNGzpyv1i3K7BcM2hzkg==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.94.2 #2 (Red Hat Linux)) id 1n1rTW-00GqrB-KL; Mon, 27 Dec 2021 14:59:46 +0000 Received: from mail-lf1-x132.google.com ([2a00:1450:4864:20::132]) by bombadil.infradead.org with esmtps (Exim 4.94.2 #2 (Red Hat Linux)) id 1n1rTL-00GqpZ-2s for linux-arm-kernel@lists.infradead.org; Mon, 27 Dec 2021 14:59:36 +0000 Received: by mail-lf1-x132.google.com with SMTP id o12so35364522lfk.1 for ; Mon, 27 Dec 2021 06:59:34 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=QfHr6tcLL8eJz3IzrG6W+JSAyfLXoB/k3UpPfPZrM2Y=; b=o8ooX21IymU+OF8HdeyzP4w7TjTwFeQSaomO1QN0/EbTB7vWSP5mWs5vn0gTNYDr9k GQeUIOVLwe80OWr9wErXr7x2LNkAIkmm/Mu1lr7tNATkv98Q0iJa576D1acXyOCuuzXh 26cxxPFIRgm1qpI2RMkHh0a2HosrcauQPC6gKGgYawEmAVOWYDHH8peNZreLzng7K9WB 7yeLlURre36jO9vfkPQyqKdCz7P0z60uLUZe8YSQj300/mdI6vbCt5TxdMNb5T8Up8uA u6ChwPd3lJtGYZ8SphvkqkVF6H5yoT9X4rCr8ssBhLaqT1e/pEOmt6Slal3MI7Cn3FgM SWKA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=QfHr6tcLL8eJz3IzrG6W+JSAyfLXoB/k3UpPfPZrM2Y=; b=FXsndCkMrsZAPXm9spUzymCQxrzK0oEvUo6qNMM+7ilZNcHAHDxc1G6+Cg5XVak7XX A22zentsxYZSa5iMk3A2sQLL6eulcaNpd2VZfyFP9+gZwoJq+Qa3cUlN52VbAjfDMFFf OsEwxltY/Oj5wT3DnEZoZ9RYMXgoA9EIcHIOz23EqhM68l/MBP7Yz4b5tcdwrnOvU7Ci h49wn0ykDijXve3ewufPHrkzzMjEhePkt+Th/Cp8efIT0QzR/8aa1ZWuCqeJsL3jaFHk sX4ISJq86cc8n7UGa8m56ebxIUbmd7VQXEAwcmufayzuHLB/1v01G0F3nvH2ahl8R+nx fWUQ== X-Gm-Message-State: AOAM531J+lotLcUNrN3eZ8LfrpelSYDGPKZCq4kO37CfidVo6jvlUfwl YMe27/57DgDW6O+a8FK/jgA= X-Google-Smtp-Source: ABdhPJxBK44bIXLCvz9bPZma5rCTCKXtZPbPEjikR5Vf8FjADzar3oeS/f/njYe++VjXgzjpWfES0g== X-Received: by 2002:ac2:4119:: with SMTP id b25mr15653191lfi.3.1640617173336; Mon, 27 Dec 2021 06:59:33 -0800 (PST) Received: from localhost.lan (ip-194-187-74-233.konfederacka.maverick.com.pl. [194.187.74.233]) by smtp.gmail.com with ESMTPSA id o3sm1667766lfo.255.2021.12.27.06.59.32 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 27 Dec 2021 06:59:33 -0800 (PST) From: =?UTF-8?q?Rafa=C5=82=20Mi=C5=82ecki?= To: Pavel Machek , Rob Herring Cc: linux-leds@vger.kernel.org, devicetree@vger.kernel.org, Florian Fainelli , linux-arm-kernel@lists.infradead.org, bcm-kernel-feedback-list@broadcom.com, =?UTF-8?q?Rafa=C5=82=20Mi=C5=82ecki?= Subject: [PATCH V3 2/2] leds: bcm63138: add support for BCM63138 controller Date: Mon, 27 Dec 2021 15:59:05 +0100 Message-Id: <20211227145905.2905-2-zajec5@gmail.com> X-Mailer: git-send-email 2.31.1 In-Reply-To: <20211227145905.2905-1-zajec5@gmail.com> References: <20211227145905.2905-1-zajec5@gmail.com> MIME-Version: 1.0 X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20211227_065935_169223_328D7AEC X-CRM114-Status: GOOD ( 27.25 ) X-BeenThere: linux-arm-kernel@lists.infradead.org X-Mailman-Version: 2.1.34 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , 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 RnJvbTogUmFmYcWCIE1pxYJlY2tpIDxyYWZhbEBtaWxlY2tpLnBsPgoKSXQncyBhIG5ldyBjb250 cm9sbGVyIGZpcnN0IGludHJvZHVjZWQgaW4gQkNNNjMxMzggU29DLiBMYXRlciBpdCB3YXMKYWxz byB1c2VkIGluIEJDTTQ5MDgsIHNvbWUgQkNNNjh4eCBhbmQgc29tZSBCQ002M3h4eCBTb0NzLgoK U2lnbmVkLW9mZi1ieTogUmFmYcWCIE1pxYJlY2tpIDxyYWZhbEBtaWxlY2tpLnBsPgpSZXZpZXdl ZC1ieTogRmxvcmlhbiBGYWluZWxsaSA8Zi5mYWluZWxsaUBnbWFpbC5jb20+Ci0tLQpWMjogUmVu YW1lIHRvIGJjbTYzMTM4CiAgICBJbXByb3ZlIEtjb25maWcgaGVscAogICAgQWRkIGRlZmluZXMg Zm9yIG1hZ2ljIHZhbHVlcwogICAgU3VwcG9ydCBzZXR0aW5nIGJyaWdodG5lc3MKICAgIE1ha2Ug YmNtNjN4eHhfbGVkc19jcmVhdGVfbGVkKCkgdm9pZCBmdW5jdGlvbgpWMzogTW92ZSB0byBibGlu ay8KICAgIEFkZCBiY202MzEzOF9sZWRzX2NyZWF0ZV9sZWQoKSBmYWlsIGRldl9lcnIoKSBjYWxs CiAgICBEcm9wICJkZWZhdWx0LXN0YXRlIiAmIExFRF9GVUxMCi0tLQogZHJpdmVycy9sZWRzL2Js aW5rL0tjb25maWcgICAgICAgICB8ICAxMiArKwogZHJpdmVycy9sZWRzL2JsaW5rL01ha2VmaWxl ICAgICAgICB8ICAgMSArCiBkcml2ZXJzL2xlZHMvYmxpbmsvbGVkcy1iY202MzEzOC5jIHwgMzA4 ICsrKysrKysrKysrKysrKysrKysrKysrKysrKysrCiAzIGZpbGVzIGNoYW5nZWQsIDMyMSBpbnNl cnRpb25zKCspCiBjcmVhdGUgbW9kZSAxMDA2NDQgZHJpdmVycy9sZWRzL2JsaW5rL2xlZHMtYmNt NjMxMzguYwoKZGlmZiAtLWdpdCBhL2RyaXZlcnMvbGVkcy9ibGluay9LY29uZmlnIGIvZHJpdmVy cy9sZWRzL2JsaW5rL0tjb25maWcKaW5kZXggNTliYTgxZTQwZTg1Li5jNjgwYWYwMWI1YTkgMTAw NjQ0Ci0tLSBhL2RyaXZlcnMvbGVkcy9ibGluay9LY29uZmlnCisrKyBiL2RyaXZlcnMvbGVkcy9i bGluay9LY29uZmlnCkBAIC0xLDMgKzEsMTUgQEAKK2NvbmZpZyBMRURTX0JDTTYzMTM4CisJdHJp c3RhdGUgIkxFRCBTdXBwb3J0IGZvciBCcm9hZGNvbSBCQ002MzEzOCBTb0MiCisJZGVwZW5kcyBv biBMRURTX0NMQVNTCisJZGVwZW5kcyBvbiBBUkNIX0JDTTQ5MDggfHwgQVJDSF9CQ01fNTMwMVgg fHwgQkNNNjNYWCB8fCBDT01QSUxFX1RFU1QKKwlkZXBlbmRzIG9uIEhBU19JT01FTQorCWRlcGVu ZHMgb24gT0YKKwlkZWZhdWx0IEFSQ0hfQkNNNDkwOAorCWhlbHAKKwkgIFRoaXMgb3B0aW9uIGVu YWJsZXMgc3VwcG9ydCBmb3IgTEVEIGNvbnRyb2xsZXIgdGhhdCBpcyBwYXJ0IG9mCisJICBCQ002 MzEzOCBTb0MuIFRoZSBzYW1lIGhhcmR3YXJlIGJsb2NrIGlzIGtub3duIHRvIGJlIGFsc28gdXNl ZAorCSAgaW4gQkNNNDkwOCwgQkNNNjg0OCwgQkNNNjg1OCwgQkNNNjMxNDgsIEJDTTYzMzgxIGFu ZCBCQ002ODM2MC4KKwogY29uZmlnIExFRFNfTEdNCiAgICAgICAgdHJpc3RhdGUgIkxFRCBzdXBw b3J0IGZvciBMR00gU29DIHNlcmllcyIKICAgICAgICBkZXBlbmRzIG9uIFg4NiB8fCBDT01QSUxF X1RFU1QKZGlmZiAtLWdpdCBhL2RyaXZlcnMvbGVkcy9ibGluay9NYWtlZmlsZSBiL2RyaXZlcnMv bGVkcy9ibGluay9NYWtlZmlsZQppbmRleCBmYTVkMDRkY2NmMTMuLjQ0NzAyOWY0MTUzYSAxMDA2 NDQKLS0tIGEvZHJpdmVycy9sZWRzL2JsaW5rL01ha2VmaWxlCisrKyBiL2RyaXZlcnMvbGVkcy9i bGluay9NYWtlZmlsZQpAQCAtMSwyICsxLDMgQEAKICMgU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6 IEdQTC0yLjAKK29iai0kKENPTkZJR19MRURTX0JDTTYzMTM4KQkrPSBsZWRzLWJjbTYzMTM4Lm8K IG9iai0kKENPTkZJR19MRURTX0xHTSkJKz0gbGVkcy1sZ20tc3NvLm8KZGlmZiAtLWdpdCBhL2Ry aXZlcnMvbGVkcy9ibGluay9sZWRzLWJjbTYzMTM4LmMgYi9kcml2ZXJzL2xlZHMvYmxpbmsvbGVk cy1iY202MzEzOC5jCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMC4uYzA4 M2NiMTMzMmNiCi0tLSAvZGV2L251bGwKKysrIGIvZHJpdmVycy9sZWRzL2JsaW5rL2xlZHMtYmNt NjMxMzguYwpAQCAtMCwwICsxLDMwOCBAQAorLy8gU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEdQ TC0yLjAtb25seQorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMSBSYWZhxYIgTWnFgmVja2kgPHJh ZmFsQG1pbGVja2kucGw+CisgKi8KKyNpbmNsdWRlIDxsaW51eC9kZWxheS5oPgorI2luY2x1ZGUg PGxpbnV4L2lvLmg+CisjaW5jbHVkZSA8bGludXgvbGVkcy5oPgorI2luY2x1ZGUgPGxpbnV4L21v ZHVsZS5oPgorI2luY2x1ZGUgPGxpbnV4L29mLmg+CisjaW5jbHVkZSA8bGludXgvcGluY3RybC9j b25zdW1lci5oPgorI2luY2x1ZGUgPGxpbnV4L3BsYXRmb3JtX2RldmljZS5oPgorI2luY2x1ZGUg PGxpbnV4L3NwaW5sb2NrLmg+CisKKyNkZWZpbmUgQkNNNjMxMzhfTUFYX0xFRFMJCQkJMzIKKyNk ZWZpbmUgQkNNNjMxMzhfTUFYX0JSSUdIVE5FU1MJCQkJOQorCisjZGVmaW5lIEJDTTYzMTM4X0xF RF9CSVRTCQkJCTQJCQkJLyogaG93IG1hbnkgYml0cyBjb250cm9sIGEgc2luZ2xlIExFRCAqLwor I2RlZmluZSBCQ002MzEzOF9MRURfTUFTSwkJCQkoKDEgPDwgQkNNNjMxMzhfTEVEX0JJVFMpIC0g MSkJLyogMHhmICovCisjZGVmaW5lIEJDTTYzMTM4X0xFRFNfUEVSX1JFRwkJCQkoMzIgLyBCQ002 MzEzOF9MRURfQklUUykJLyogOCAqLworCisjZGVmaW5lIEJDTTYzMTM4X0dMQl9DVFJMCQkJCTB4 MDAKKyNkZWZpbmUgIEJDTTYzMTM4X0dMQl9DVFJMX1NFUklBTF9MRURfREFUQV9QUE9MCQkweDAw MDAwMDAyCisjZGVmaW5lICBCQ002MzEzOF9HTEJfQ1RSTF9TRVJJQUxfTEVEX0VOX1BPTAkJMHgw MDAwMDAwOAorI2RlZmluZSBCQ002MzEzOF9NQVNLCQkJCQkweDA0CisjZGVmaW5lIEJDTTYzMTM4 X0hXX0xFRF9FTgkJCQkweDA4CisjZGVmaW5lIEJDTTYzMTM4X1NFUklBTF9MRURfU0hJRlRfU0VM CQkJMHgwYworI2RlZmluZSBCQ002MzEzOF9GTEFTSF9SQVRFX0NUUkwxCQkJMHgxMAorI2RlZmlu ZSBCQ002MzEzOF9GTEFTSF9SQVRFX0NUUkwyCQkJMHgxNAorI2RlZmluZSBCQ002MzEzOF9GTEFT SF9SQVRFX0NUUkwzCQkJMHgxOAorI2RlZmluZSBCQ002MzEzOF9GTEFTSF9SQVRFX0NUUkw0CQkJ MHgxYworI2RlZmluZSBCQ002MzEzOF9CUklHSFRfQ1RSTDEJCQkJMHgyMAorI2RlZmluZSBCQ002 MzEzOF9CUklHSFRfQ1RSTDIJCQkJMHgyNAorI2RlZmluZSBCQ002MzEzOF9CUklHSFRfQ1RSTDMJ CQkJMHgyOAorI2RlZmluZSBCQ002MzEzOF9CUklHSFRfQ1RSTDQJCQkJMHgyYworI2RlZmluZSBC Q002MzEzOF9QT1dFUl9MRURfQ0ZHCQkJCTB4MzAKKyNkZWZpbmUgQkNNNjMxMzhfSFdfUE9MQVJJ VFkJCQkJMHhiNAorI2RlZmluZSBCQ002MzEzOF9TV19EQVRBCQkJCTB4YjgKKyNkZWZpbmUgQkNN NjMxMzhfU1dfUE9MQVJJVFkJCQkJMHhiYworI2RlZmluZSBCQ002MzEzOF9QQVJBTExFTF9MRURf UE9MQVJJVFkJCQkweGMwCisjZGVmaW5lIEJDTTYzMTM4X1NFUklBTF9MRURfUE9MQVJJVFkJCQkw eGM0CisjZGVmaW5lIEJDTTYzMTM4X0hXX0xFRF9TVEFUVVMJCQkJMHhjOAorI2RlZmluZSBCQ002 MzEzOF9GTEFTSF9DVFJMX1NUQVRVUwkJCTB4Y2MKKyNkZWZpbmUgQkNNNjMxMzhfRkxBU0hfQlJU X0NUUkwJCQkJMHhkMAorI2RlZmluZSBCQ002MzEzOF9GTEFTSF9QX0xFRF9PVVRfU1RBVFVTCQkJ MHhkNAorI2RlZmluZSBCQ002MzEzOF9GTEFTSF9TX0xFRF9PVVRfU1RBVFVTCQkJMHhkOAorCitz dHJ1Y3QgYmNtNjMxMzhfbGVkcyB7CisJc3RydWN0IGRldmljZSAqZGV2OworCXZvaWQgX19pb21l bSAqYmFzZTsKKwlzcGlubG9ja190IGxvY2s7Cit9OworCitzdHJ1Y3QgYmNtNjMxMzhfbGVkIHsK KwlzdHJ1Y3QgYmNtNjMxMzhfbGVkcyAqbGVkczsKKwlzdHJ1Y3QgbGVkX2NsYXNzZGV2IGNkZXY7 CisJdTMyIHBpbjsKKwlib29sIGFjdGl2ZV9sb3c7Cit9OworCisvKgorICogSS9PIGFjY2Vzcwor ICovCisKK3N0YXRpYyB2b2lkIGJjbTYzMTM4X2xlZHNfd3JpdGUoc3RydWN0IGJjbTYzMTM4X2xl ZHMgKmxlZHMsIHVuc2lnbmVkIGludCByZWcsCisJCQkJdTMyIGRhdGEpCit7CisJd3JpdGVsKGRh dGEsIGxlZHMtPmJhc2UgKyByZWcpOworfQorCitzdGF0aWMgdW5zaWduZWQgbG9uZyBiY202MzEz OF9sZWRzX3JlYWQoc3RydWN0IGJjbTYzMTM4X2xlZHMgKmxlZHMsCisJCQkJCXVuc2lnbmVkIGlu dCByZWcpCit7CisJcmV0dXJuIHJlYWRsKGxlZHMtPmJhc2UgKyByZWcpOworfQorCitzdGF0aWMg dm9pZCBiY202MzEzOF9sZWRzX3VwZGF0ZV9iaXRzKHN0cnVjdCBiY202MzEzOF9sZWRzICpsZWRz LAorCQkJCSAgICAgIHVuc2lnbmVkIGludCByZWcsIHUzMiBtYXNrLCB1MzIgdmFsKQoreworCVdB Uk5fT04odmFsICYgfm1hc2spOworCisJYmNtNjMxMzhfbGVkc193cml0ZShsZWRzLCByZWcsIChi Y202MzEzOF9sZWRzX3JlYWQobGVkcywgcmVnKSAmIH5tYXNrKSB8ICh2YWwgJiBtYXNrKSk7Cit9 CisKKy8qCisgKiBIZWxwZXJzCisgKi8KKworc3RhdGljIHZvaWQgYmNtNjMxMzhfbGVkc19zZXRf Zmxhc2hfcmF0ZShzdHJ1Y3QgYmNtNjMxMzhfbGVkcyAqbGVkcywKKwkJCQkJIHN0cnVjdCBiY202 MzEzOF9sZWQgKmxlZCwKKwkJCQkJIHU4IHZhbHVlKQoreworCWludCByZWdfb2Zmc2V0ID0gKGxl ZC0+cGluID4+IGZscygoQkNNNjMxMzhfTEVEU19QRVJfUkVHIC0gMSkpKSAqIDQ7CisJaW50IHNo aWZ0ID0gKGxlZC0+cGluICYgKEJDTTYzMTM4X0xFRFNfUEVSX1JFRyAtIDEpKSAqIEJDTTYzMTM4 X0xFRF9CSVRTOworCisJYmNtNjMxMzhfbGVkc191cGRhdGVfYml0cyhsZWRzLCBCQ002MzEzOF9G TEFTSF9SQVRFX0NUUkwxICsgcmVnX29mZnNldCwKKwkJCQkgIEJDTTYzMTM4X0xFRF9NQVNLIDw8 IHNoaWZ0LCB2YWx1ZSA8PCBzaGlmdCk7Cit9CisKK3N0YXRpYyB2b2lkIGJjbTYzMTM4X2xlZHNf c2V0X2JyaWdodChzdHJ1Y3QgYmNtNjMxMzhfbGVkcyAqbGVkcywKKwkJCQkgICAgIHN0cnVjdCBi Y202MzEzOF9sZWQgKmxlZCwKKwkJCQkgICAgIHU4IHZhbHVlKQoreworCWludCByZWdfb2Zmc2V0 ID0gKGxlZC0+cGluID4+IGZscygoQkNNNjMxMzhfTEVEU19QRVJfUkVHIC0gMSkpKSAqIDQ7CisJ aW50IHNoaWZ0ID0gKGxlZC0+cGluICYgKEJDTTYzMTM4X0xFRFNfUEVSX1JFRyAtIDEpKSAqIEJD TTYzMTM4X0xFRF9CSVRTOworCisJYmNtNjMxMzhfbGVkc191cGRhdGVfYml0cyhsZWRzLCBCQ002 MzEzOF9CUklHSFRfQ1RSTDEgKyByZWdfb2Zmc2V0LAorCQkJCSAgQkNNNjMxMzhfTEVEX01BU0sg PDwgc2hpZnQsIHZhbHVlIDw8IHNoaWZ0KTsKK30KKworc3RhdGljIHZvaWQgYmNtNjMxMzhfbGVk c19lbmFibGVfbGVkKHN0cnVjdCBiY202MzEzOF9sZWRzICpsZWRzLAorCQkJCSAgICAgc3RydWN0 IGJjbTYzMTM4X2xlZCAqbGVkLAorCQkJCSAgICAgZW51bSBsZWRfYnJpZ2h0bmVzcyB2YWx1ZSkK K3sKKwl1MzIgYml0ID0gQklUKGxlZC0+cGluKTsKKworCWJjbTYzMTM4X2xlZHNfdXBkYXRlX2Jp dHMobGVkcywgQkNNNjMxMzhfU1dfREFUQSwgYml0LAorCQkJCSAgdmFsdWUgPT0gTEVEX09GRiA/ IDAgOiBiaXQpOworfQorCisvKgorICogQVBJIGNhbGxiYWNrcworICovCisKK3N0YXRpYyB2b2lk IGJjbTYzMTM4X2xlZHNfYnJpZ2h0bmVzc19zZXQoc3RydWN0IGxlZF9jbGFzc2RldiAqbGVkX2Nk ZXYsCisJCQkJCSBlbnVtIGxlZF9icmlnaHRuZXNzIHZhbHVlKQoreworCXN0cnVjdCBiY202MzEz OF9sZWQgKmxlZCA9IGNvbnRhaW5lcl9vZihsZWRfY2Rldiwgc3RydWN0IGJjbTYzMTM4X2xlZCwg Y2Rldik7CisJc3RydWN0IGJjbTYzMTM4X2xlZHMgKmxlZHMgPSBsZWQtPmxlZHM7CisJdW5zaWdu ZWQgbG9uZyBmbGFnczsKKworCXNwaW5fbG9ja19pcnFzYXZlKCZsZWRzLT5sb2NrLCBmbGFncyk7 CisKKwliY202MzEzOF9sZWRzX2VuYWJsZV9sZWQobGVkcywgbGVkLCB2YWx1ZSk7CisJaWYgKCF2 YWx1ZSkKKwkJYmNtNjMxMzhfbGVkc19zZXRfZmxhc2hfcmF0ZShsZWRzLCBsZWQsIDApOworCWVs c2UKKwkJYmNtNjMxMzhfbGVkc19zZXRfYnJpZ2h0KGxlZHMsIGxlZCwgdmFsdWUpOworCisJc3Bp bl91bmxvY2tfaXJxcmVzdG9yZSgmbGVkcy0+bG9jaywgZmxhZ3MpOworfQorCitzdGF0aWMgaW50 IGJjbTYzMTM4X2xlZHNfYmxpbmtfc2V0KHN0cnVjdCBsZWRfY2xhc3NkZXYgKmxlZF9jZGV2LAor CQkJCSAgIHVuc2lnbmVkIGxvbmcgKmRlbGF5X29uLAorCQkJCSAgIHVuc2lnbmVkIGxvbmcgKmRl bGF5X29mZikKK3sKKwlzdHJ1Y3QgYmNtNjMxMzhfbGVkICpsZWQgPSBjb250YWluZXJfb2YobGVk X2NkZXYsIHN0cnVjdCBiY202MzEzOF9sZWQsIGNkZXYpOworCXN0cnVjdCBiY202MzEzOF9sZWRz ICpsZWRzID0gbGVkLT5sZWRzOworCXVuc2lnbmVkIGxvbmcgZmxhZ3M7CisJdTggdmFsdWU7CisK KwlpZiAoISpkZWxheV9vbiAmJiAhKmRlbGF5X29mZikgeworCQkqZGVsYXlfb24gPSA2NDA7CisJ CSpkZWxheV9vZmYgPSA2NDA7CisJfQorCisJaWYgKCpkZWxheV9vbiAhPSAqZGVsYXlfb2ZmKSB7 CisJCWRldl9kYmcobGVkX2NkZXYtPmRldiwgIkJsaW5raW5nIGF0IHVuZXF1YWwgZGVsYXlzIGlz IG5vdCBzdXBwb3J0ZWRcbiIpOworCQlyZXR1cm4gLUVJTlZBTDsKKwl9CisKKwlzd2l0Y2ggKCpk ZWxheV9vbikgeworCWNhc2UgMTE1MiAuLi4gMTQwODogLyogMTI4MCBtcyDCsSAxMCUgKi8KKwkJ dmFsdWUgPSAweDc7CisJCWJyZWFrOworCWNhc2UgNTc2IC4uLiA3MDQ6IC8qIDY0MCBtcyDCsSAx MCUgKi8KKwkJdmFsdWUgPSAweDY7CisJCWJyZWFrOworCWNhc2UgMjg4IC4uLiAzNTI6IC8qIDMy MCBtcyDCsSAxMCUgKi8KKwkJdmFsdWUgPSAweDU7CisJCWJyZWFrOworCWNhc2UgMTI2IC4uLiAx NTQ6IC8qIDE0MCBtcyDCsSAxMCUgKi8KKwkJdmFsdWUgPSAweDQ7CisJCWJyZWFrOworCWNhc2Ug NTkgLi4uIDcyOiAvKiA2NSBtcyDCsSAxMCUgKi8KKwkJdmFsdWUgPSAweDM7CisJCWJyZWFrOwor CWRlZmF1bHQ6CisJCWRldl9kYmcobGVkX2NkZXYtPmRldiwgIkJsaW5raW5nIGRlbGF5IHZhbHVl ICVsdSBpcyB1bnN1cHBvcnRlZFxuIiwKKwkJCSpkZWxheV9vbik7CisJCXJldHVybiAtRUlOVkFM OworCX0KKworCXNwaW5fbG9ja19pcnFzYXZlKCZsZWRzLT5sb2NrLCBmbGFncyk7CisKKwliY202 MzEzOF9sZWRzX2VuYWJsZV9sZWQobGVkcywgbGVkLCBCQ002MzEzOF9NQVhfQlJJR0hUTkVTUyk7 CisJYmNtNjMxMzhfbGVkc19zZXRfZmxhc2hfcmF0ZShsZWRzLCBsZWQsIHZhbHVlKTsKKworCXNw aW5fdW5sb2NrX2lycXJlc3RvcmUoJmxlZHMtPmxvY2ssIGZsYWdzKTsKKworCXJldHVybiAwOwor fQorCisvKgorICogTEVEIGRyaXZlcgorICovCisKK3N0YXRpYyB2b2lkIGJjbTYzMTM4X2xlZHNf Y3JlYXRlX2xlZChzdHJ1Y3QgYmNtNjMxMzhfbGVkcyAqbGVkcywKKwkJCQkgICAgIHN0cnVjdCBk ZXZpY2Vfbm9kZSAqbnApCit7CisJc3RydWN0IGxlZF9pbml0X2RhdGEgaW5pdF9kYXRhID0gewor CQkuZndub2RlID0gb2ZfZndub2RlX2hhbmRsZShucCksCisJfTsKKwlzdHJ1Y3QgZGV2aWNlICpk ZXYgPSBsZWRzLT5kZXY7CisJc3RydWN0IGJjbTYzMTM4X2xlZCAqbGVkOworCXN0cnVjdCBwaW5j dHJsICpwaW5jdHJsOworCXUzMiBiaXQ7CisJaW50IGVycjsKKworCWxlZCA9IGRldm1fa3phbGxv YyhkZXYsIHNpemVvZigqbGVkKSwgR0ZQX0tFUk5FTCk7CisJaWYgKCFsZWQpIHsKKwkJZGV2X2Vy cihkZXYsICJGYWlsZWQgdG8gYWxsb2MgTEVEXG4iKTsKKwkJcmV0dXJuOworCX0KKworCWxlZC0+ bGVkcyA9IGxlZHM7CisKKwlpZiAob2ZfcHJvcGVydHlfcmVhZF91MzIobnAsICJyZWciLCAmbGVk LT5waW4pKSB7CisJCWRldl9lcnIoZGV2LCAiTWlzc2luZyBcInJlZ1wiIHByb3BlcnR5IGluICVw T0ZcbiIsIG5wKTsKKwkJZ290byBlcnJfZnJlZTsKKwl9CisKKwlpZiAobGVkLT5waW4gPj0gQkNN NjMxMzhfTUFYX0xFRFMpIHsKKwkJZGV2X2VycihkZXYsICJJbnZhbGlkIFwicmVnXCIgdmFsdWUg JWRcbiIsIGxlZC0+cGluKTsKKwkJZ290byBlcnJfZnJlZTsKKwl9CisKKwlsZWQtPmFjdGl2ZV9s b3cgPSBvZl9wcm9wZXJ0eV9yZWFkX2Jvb2wobnAsICJhY3RpdmUtbG93Iik7CisKKwlsZWQtPmNk ZXYubWF4X2JyaWdodG5lc3MgPSBCQ002MzEzOF9NQVhfQlJJR0hUTkVTUzsKKwlsZWQtPmNkZXYu YnJpZ2h0bmVzc19zZXQgPSBiY202MzEzOF9sZWRzX2JyaWdodG5lc3Nfc2V0OworCWxlZC0+Y2Rl di5ibGlua19zZXQgPSBiY202MzEzOF9sZWRzX2JsaW5rX3NldDsKKworCWVyciA9IGRldm1fbGVk X2NsYXNzZGV2X3JlZ2lzdGVyX2V4dChkZXYsICZsZWQtPmNkZXYsICZpbml0X2RhdGEpOworCWlm IChlcnIpIHsKKwkJZGV2X2VycihkZXYsICJGYWlsZWQgdG8gcmVnaXN0ZXIgTEVEICVwT0Y6ICVk XG4iLCBucCwgZXJyKTsKKwkJZ290byBlcnJfZnJlZTsKKwl9CisKKwlwaW5jdHJsID0gZGV2bV9w aW5jdHJsX2dldF9zZWxlY3RfZGVmYXVsdChsZWQtPmNkZXYuZGV2KTsKKwlpZiAoSVNfRVJSKHBp bmN0cmwpICYmIFBUUl9FUlIocGluY3RybCkgIT0gLUVOT0RFVikgeworCQlkZXZfd2FybihsZWQt PmNkZXYuZGV2LCAiRmFpbGVkIHRvIHNlbGVjdCAlcE9GIHBpbmN0cmw6ICVsZFxuIiwKKwkJCSBu cCwgUFRSX0VSUihwaW5jdHJsKSk7CisJfQorCisJYml0ID0gQklUKGxlZC0+cGluKTsKKwliY202 MzEzOF9sZWRzX3VwZGF0ZV9iaXRzKGxlZHMsIEJDTTYzMTM4X1BBUkFMTEVMX0xFRF9QT0xBUklU WSwgYml0LAorCQkJCSAgbGVkLT5hY3RpdmVfbG93ID8gMCA6IGJpdCk7CisJYmNtNjMxMzhfbGVk c191cGRhdGVfYml0cyhsZWRzLCBCQ002MzEzOF9IV19MRURfRU4sIGJpdCwgMCk7CisJYmNtNjMx MzhfbGVkc19zZXRfZmxhc2hfcmF0ZShsZWRzLCBsZWQsIDApOworCWJjbTYzMTM4X2xlZHNfZW5h YmxlX2xlZChsZWRzLCBsZWQsIGxlZC0+Y2Rldi5icmlnaHRuZXNzKTsKKworCXJldHVybjsKKwor ZXJyX2ZyZWU6CisJZGV2bV9rZnJlZShkZXYsIGxlZCk7Cit9CisKK3N0YXRpYyBpbnQgYmNtNjMx MzhfbGVkc19wcm9iZShzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlICpwZGV2KQoreworCXN0cnVjdCBk ZXZpY2Vfbm9kZSAqbnAgPSBkZXZfb2Zfbm9kZSgmcGRldi0+ZGV2KTsKKwlzdHJ1Y3QgZGV2aWNl ICpkZXYgPSAmcGRldi0+ZGV2OworCXN0cnVjdCBiY202MzEzOF9sZWRzICpsZWRzOworCXN0cnVj dCBkZXZpY2Vfbm9kZSAqY2hpbGQ7CisKKwlsZWRzID0gZGV2bV9remFsbG9jKGRldiwgc2l6ZW9m KCpsZWRzKSwgR0ZQX0tFUk5FTCk7CisJaWYgKCFsZWRzKQorCQlyZXR1cm4gLUVOT01FTTsKKwor CWxlZHMtPmRldiA9IGRldjsKKworCWxlZHMtPmJhc2UgPSBkZXZtX3BsYXRmb3JtX2lvcmVtYXBf cmVzb3VyY2UocGRldiwgMCk7CisJaWYgKElTX0VSUihsZWRzLT5iYXNlKSkKKwkJcmV0dXJuIFBU Ul9FUlIobGVkcy0+YmFzZSk7CisKKwlzcGluX2xvY2tfaW5pdCgmbGVkcy0+bG9jayk7CisKKwli Y202MzEzOF9sZWRzX3dyaXRlKGxlZHMsIEJDTTYzMTM4X0dMQl9DVFJMLAorCQkJICAgIEJDTTYz MTM4X0dMQl9DVFJMX1NFUklBTF9MRURfREFUQV9QUE9MIHwKKwkJCSAgICBCQ002MzEzOF9HTEJf Q1RSTF9TRVJJQUxfTEVEX0VOX1BPTCk7CisJYmNtNjMxMzhfbGVkc193cml0ZShsZWRzLCBCQ002 MzEzOF9IV19MRURfRU4sIDApOworCWJjbTYzMTM4X2xlZHNfd3JpdGUobGVkcywgQkNNNjMxMzhf U0VSSUFMX0xFRF9QT0xBUklUWSwgMCk7CisJYmNtNjMxMzhfbGVkc193cml0ZShsZWRzLCBCQ002 MzEzOF9QQVJBTExFTF9MRURfUE9MQVJJVFksIDApOworCisJZm9yX2VhY2hfYXZhaWxhYmxlX2No aWxkX29mX25vZGUobnAsIGNoaWxkKSB7CisJCWJjbTYzMTM4X2xlZHNfY3JlYXRlX2xlZChsZWRz LCBjaGlsZCk7CisJfQorCisJcmV0dXJuIDA7Cit9CisKK3N0YXRpYyBjb25zdCBzdHJ1Y3Qgb2Zf ZGV2aWNlX2lkIGJjbTYzMTM4X2xlZHNfb2ZfbWF0Y2hfdGFibGVbXSA9IHsKKwl7IC5jb21wYXRp YmxlID0gImJyY20sYmNtNjMxMzgtbGVkcyIsIH0sCisJeyB9LAorfTsKKworc3RhdGljIHN0cnVj dCBwbGF0Zm9ybV9kcml2ZXIgYmNtNjMxMzhfbGVkc19kcml2ZXIgPSB7CisJLnByb2JlID0gYmNt NjMxMzhfbGVkc19wcm9iZSwKKwkuZHJpdmVyID0geworCQkubmFtZSA9ICJsZWRzLWJjbTYzeHh4 IiwKKwkJLm9mX21hdGNoX3RhYmxlID0gYmNtNjMxMzhfbGVkc19vZl9tYXRjaF90YWJsZSwKKwl9 LAorfTsKKworbW9kdWxlX3BsYXRmb3JtX2RyaXZlcihiY202MzEzOF9sZWRzX2RyaXZlcik7CisK K01PRFVMRV9BVVRIT1IoIlJhZmHFgiBNacWCZWNraSIpOworTU9EVUxFX0xJQ0VOU0UoIkdQTCIp OworTU9EVUxFX0RFVklDRV9UQUJMRShvZiwgYmNtNjMxMzhfbGVkc19vZl9tYXRjaF90YWJsZSk7 Ci0tIAoyLjMxLjEKCgpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fXwpsaW51eC1hcm0ta2VybmVsIG1haWxpbmcgbGlzdApsaW51eC1hcm0ta2VybmVsQGxpc3Rz LmluZnJhZGVhZC5vcmcKaHR0cDovL2xpc3RzLmluZnJhZGVhZC5vcmcvbWFpbG1hbi9saXN0aW5m by9saW51eC1hcm0ta2VybmVsCg==