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=-9.8 required=3.0 tests=HEADER_FROM_DIFFERENT_DOMAINS, INCLUDES_PATCH,MAILING_LIST_MULTI,SIGNED_OFF_BY,SPF_HELO_NONE,SPF_PASS, URIBL_BLOCKED,USER_AGENT_GIT 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 92BEAC35E09 for ; Tue, 25 Feb 2020 16:12:28 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by mail.kernel.org (Postfix) with ESMTP id 7466B21744 for ; Tue, 25 Feb 2020 16:12:28 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1730773AbgBYQMX (ORCPT ); Tue, 25 Feb 2020 11:12:23 -0500 Received: from mail-wr1-f66.google.com ([209.85.221.66]:32856 "EHLO mail-wr1-f66.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1731127AbgBYQML (ORCPT ); Tue, 25 Feb 2020 11:12:11 -0500 Received: by mail-wr1-f66.google.com with SMTP id u6so15440220wrt.0; Tue, 25 Feb 2020 08:12:09 -0800 (PST) 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=e3LiUsdwFrYwevxlo/tz4vkKcjo7pGSKzPtt39owm1w=; b=Pa/j9RSPkF+ZT/audkxXrc7qIgzuS3iV9YEvFARLXjkFhOnc115wLQISqPvEnJR21D hx8R40jzoGdefDls0ewWpGaHxEiCXk7A0YXeVrzIvY9A4GrMWMSl74Wz2ZQ8KAKoisQH xdGvjoLYItXiCaVXw5yed87xeyrwoikKBMeTvZ7UAoG5yIeLkNT1HhYrBvwCiS51OgbU 5RXpGVXMzjf/sjXsdd3VIeBNANxW1u1krVmaxd4XAcld527WJwRp48zMmEYfSWE0PlWi N72YZ7kaSRv9c1JWTA7sHhXcZXdBRntTqNX1sx1qbUdkutEAyP9GlRDrqsO7t+GqF6fi aNYg== X-Gm-Message-State: APjAAAVGqKEScJAxCx0sqonXCRE9n8hZK4xcWsc7ib4BmK8g6NZJ9Pil ABhuYbGhcZRviqEEFP+vKaFB+brD+/0= X-Google-Smtp-Source: APXvYqxg8OI6/QT5oIPTDgdPR6qug+ApccVoWzypMiLSjCLoZ5bHtn7thLRYK6+6Bvk7z0gzN3h8yg== X-Received: by 2002:a5d:4687:: with SMTP id u7mr71319194wrq.176.1582647128894; Tue, 25 Feb 2020 08:12:08 -0800 (PST) Received: from 1aq-andre.garage.tyco.com ([77.107.218.170]) by smtp.gmail.com with ESMTPSA id h10sm4757339wml.18.2020.02.25.08.12.07 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 25 Feb 2020 08:12:08 -0800 (PST) From: =?UTF-8?q?Andr=C3=A9=20Draszik?= To: linux-kernel@vger.kernel.org Cc: =?UTF-8?q?Andr=C3=A9=20Draszik?= , =?UTF-8?q?Horia=20Geant=C4=83?= , Aymen Sghaier , Herbert Xu , "David S. Miller" , Rob Herring , Mark Rutland , Shawn Guo , Sascha Hauer , Pengutronix Kernel Team , Fabio Estevam , NXP Linux Team , Dmitry Torokhov , Anson Huang , Robin Gong , linux-crypto@vger.kernel.org, devicetree@vger.kernel.org, linux-arm-kernel@lists.infradead.org, linux-input@vger.kernel.org Subject: [PATCH v2 5/6] Input: snvs_pwrkey - enable snvs clock as needed Date: Tue, 25 Feb 2020 16:12:00 +0000 Message-Id: <20200225161201.1975-5-git@andred.net> X-Mailer: git-send-email 2.23.0.rc1 In-Reply-To: <20200225161201.1975-1-git@andred.net> References: <20200225161201.1975-1-git@andred.net> MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Sender: linux-crypto-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-crypto@vger.kernel.org At the moment, enabling this driver without the SNVS RTC driver being active will hang the kernel as soon as the power button is pressed. The reason is that in that case the SNVS isn't enabled, and any attempt to read the SNVS registers will simply hang forever. Ensure the clock is enabled (during the interrupt handler) to make this driver work. Also see commit 7f8993995410 ("drivers/rtc/rtc-snvs: add clock support") and commit edb190cb1734 ("rtc: snvs: make sure clock is enabled for interrupt handle") for similar updates to the snvs rtc driver. Signed-off-by: André Draszik Cc: "Horia Geantă" Cc: Aymen Sghaier Cc: Herbert Xu Cc: "David S. Miller" Cc: Rob Herring Cc: Mark Rutland Cc: Shawn Guo Cc: Sascha Hauer Cc: Pengutronix Kernel Team Cc: Fabio Estevam Cc: NXP Linux Team Cc: Dmitry Torokhov Cc: Anson Huang Cc: Robin Gong Cc: linux-crypto@vger.kernel.org Cc: devicetree@vger.kernel.org Cc: linux-arm-kernel@lists.infradead.org Cc: linux-input@vger.kernel.org --- v2: * drop redundant tests and simplify error handling by using devm_clk_get_optional() * add clock handling to imx_imx_snvs_check_for_events() --- drivers/input/keyboard/snvs_pwrkey.c | 28 +++++++++++++++++++++++++++- 1 file changed, 27 insertions(+), 1 deletion(-) diff --git a/drivers/input/keyboard/snvs_pwrkey.c b/drivers/input/keyboard/snvs_pwrkey.c index 2f5e3ab5ed63..382d2ae82c9b 100644 --- a/drivers/input/keyboard/snvs_pwrkey.c +++ b/drivers/input/keyboard/snvs_pwrkey.c @@ -16,6 +16,7 @@ #include #include #include +#include #include #include @@ -38,6 +39,7 @@ struct pwrkey_drv_data { int wakeup; struct timer_list check_timer; struct input_dev *input; + struct clk *clk; u8 minor_rev; }; @@ -47,7 +49,10 @@ static void imx_imx_snvs_check_for_events(struct timer_list *t) struct input_dev *input = pdata->input; u32 state; + clk_enable(pdata->clk); regmap_read(pdata->snvs, SNVS_HPSR_REG, &state); + clk_disable(pdata->clk); + state = state & SNVS_HPSR_BTN ? 1 : 0; /* only report new event if status changed */ @@ -74,11 +79,13 @@ static irqreturn_t imx_snvs_pwrkey_interrupt(int irq, void *dev_id) pm_wakeup_event(input->dev.parent, 0); + clk_enable(pdata->clk); + regmap_read(pdata->snvs, SNVS_LPSR_REG, &lp_status); if (lp_status & SNVS_LPSR_SPO) { if (pdata->minor_rev == 0) { /* - * The first generation i.MX6 SoCs only sends an + * The first generation i.MX[6|7] SoCs only send an * interrupt on button release. To mimic power-key * usage, we'll prepend a press event. */ @@ -96,6 +103,8 @@ static irqreturn_t imx_snvs_pwrkey_interrupt(int irq, void *dev_id) /* clear SPO status */ regmap_write(pdata->snvs, SNVS_LPSR_REG, SNVS_LPSR_SPO); + clk_disable(pdata->clk); + return IRQ_HANDLED; } @@ -140,6 +149,23 @@ static int imx_snvs_pwrkey_probe(struct platform_device *pdev) if (pdata->irq < 0) return -EINVAL; + pdata->clk = devm_clk_get_optional(&pdev->dev, "snvs-pwrkey"); + if (IS_ERR(pdata->clk)) + return PTR_ERR(pdata->clk); + + error = clk_prepare(pdata->clk); + if (error) { + dev_err(&pdev->dev, "failed to prepare the snvs clock\n"); + return error; + } + error = devm_add_action_or_reset(&pdev->dev, + (void(*)(void *))clk_unprepare, + pdata->clk); + if (error) { + dev_err(&pdev->dev, "failed to add reset action on 'snvs-pwrkey'"); + return error; + } + regmap_read(pdata->snvs, SNVS_HPVIDR1_REG, &vid); pdata->minor_rev = vid & 0xff; -- 2.23.0.rc1 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=-9.8 required=3.0 tests=DKIMWL_WL_HIGH,DKIM_SIGNED, DKIM_VALID,HEADER_FROM_DIFFERENT_DOMAINS,INCLUDES_PATCH,MAILING_LIST_MULTI, SIGNED_OFF_BY,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 C3604C35E04 for ; Tue, 25 Feb 2020 16:13:13 +0000 (UTC) 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 mail.kernel.org (Postfix) with ESMTPS id 89C062084E for ; Tue, 25 Feb 2020 16:13:13 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=pass (2048-bit key) header.d=lists.infradead.org header.i=@lists.infradead.org header.b="jFOuMmob" DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 89C062084E Authentication-Results: mail.kernel.org; dmarc=none (p=none dis=none) header.from=andred.net Authentication-Results: mail.kernel.org; spf=none smtp.mailfrom=linux-arm-kernel-bounces+infradead-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=bombadil.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=7LXcdwspehAWOfNYPzAIIYMlI4l/p7YLY4s9y9gTGL0=; b=jFOuMmobaCACKX VFZbatiS8DbNMOLJclCUUMxqaFmUnWKUlKukvXwOURoPNeUIuKNsO5BJnZYKuKAogl42eLVYsnkev o2lVx941TNGZlg8jlgE4ossHAckv8XyHygHW2pjj8wOVTSv/sbSo8uUpGG/EPufoTA8vbYy3fRFTO s4mMBxeyg1Ryx+NDRoGyjQUwT/KZBXpPm/ihRYYUea+hEsFs5FzONsFUTYehbvzp7GHpfHtCuPmx9 GuNzbDY2EV/cX4Ssnawz7Sjk6MjPxo8LD2D2nU10v9aq9tLvlaIXztDSQiP5U1FM00VlSFD0PztQC pNHzFUO6QTKgCjil9MVg==; Received: from localhost ([127.0.0.1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.92.3 #3 (Red Hat Linux)) id 1j6cpU-0006DE-E3; Tue, 25 Feb 2020 16:13:04 +0000 Received: from mail-wr1-f66.google.com ([209.85.221.66]) by bombadil.infradead.org with esmtps (Exim 4.92.3 #3 (Red Hat Linux)) id 1j6coc-0005Lo-19 for linux-arm-kernel@lists.infradead.org; Tue, 25 Feb 2020 16:12:14 +0000 Received: by mail-wr1-f66.google.com with SMTP id t3so15380830wru.7 for ; Tue, 25 Feb 2020 08:12:09 -0800 (PST) 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=e3LiUsdwFrYwevxlo/tz4vkKcjo7pGSKzPtt39owm1w=; b=NpL93vNUhFcqQggVq9mqRp9foFvjf8FbRqWrQIt+cNNuQCpgAunATCkR/cdG9GDY46 QVFeQkS/icW5ej/HKBHPMwIhzUJJC8Z4QL8Xq9U4SoaEDn8DMxJWytBomr9Xi7q8IGwX 1NEI+MddxlxwRd5M/sfSmsIdXTg5FZusGg8lie8KPwc16GrEFo1ilN3qXSuw05V6PzcK XNkR/g3AROhQE7WpjNRRNamrS6sXit+4FdR0QBDNQgSdLUkhZEXmVMWf7ipLoxk6o2aj z1KuMovKPEiKNDMC2E8FqXF92NB66/JQUpmfhAiuOV4CeMa+X/Z/SnSF/EDCeWJ3OVwa SM5A== X-Gm-Message-State: APjAAAXq+77db1rEWuM0Sn1JpWTCIRwj+WPZU4pmzq+dIKgXCh/7GBR5 xbGcUzlwKuJHL5z+Nz0JPFE= X-Google-Smtp-Source: APXvYqxg8OI6/QT5oIPTDgdPR6qug+ApccVoWzypMiLSjCLoZ5bHtn7thLRYK6+6Bvk7z0gzN3h8yg== X-Received: by 2002:a5d:4687:: with SMTP id u7mr71319194wrq.176.1582647128894; Tue, 25 Feb 2020 08:12:08 -0800 (PST) Received: from 1aq-andre.garage.tyco.com ([77.107.218.170]) by smtp.gmail.com with ESMTPSA id h10sm4757339wml.18.2020.02.25.08.12.07 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 25 Feb 2020 08:12:08 -0800 (PST) From: =?UTF-8?q?Andr=C3=A9=20Draszik?= To: linux-kernel@vger.kernel.org Subject: [PATCH v2 5/6] Input: snvs_pwrkey - enable snvs clock as needed Date: Tue, 25 Feb 2020 16:12:00 +0000 Message-Id: <20200225161201.1975-5-git@andred.net> X-Mailer: git-send-email 2.23.0.rc1 In-Reply-To: <20200225161201.1975-1-git@andred.net> References: <20200225161201.1975-1-git@andred.net> MIME-Version: 1.0 X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20200225_081210_072834_1F10AD7B X-CRM114-Status: GOOD ( 18.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: Mark Rutland , devicetree@vger.kernel.org, Aymen Sghaier , Herbert Xu , =?UTF-8?q?Horia=20Geant=C4=83?= , Anson Huang , =?UTF-8?q?Andr=C3=A9=20Draszik?= , Sascha Hauer , Dmitry Torokhov , Fabio Estevam , Rob Herring , NXP Linux Team , Pengutronix Kernel Team , linux-input@vger.kernel.org, Robin Gong , Shawn Guo , "David S. Miller" , linux-arm-kernel@lists.infradead.org, linux-crypto@vger.kernel.org Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Sender: "linux-arm-kernel" Errors-To: linux-arm-kernel-bounces+infradead-linux-arm-kernel=archiver.kernel.org@lists.infradead.org QXQgdGhlIG1vbWVudCwgZW5hYmxpbmcgdGhpcyBkcml2ZXIgd2l0aG91dCB0aGUgU05WUyBSVEMg ZHJpdmVyCmJlaW5nIGFjdGl2ZSB3aWxsIGhhbmcgdGhlIGtlcm5lbCBhcyBzb29uIGFzIHRoZSBw b3dlciBidXR0b24KaXMgcHJlc3NlZC4KClRoZSByZWFzb24gaXMgdGhhdCBpbiB0aGF0IGNhc2Ug dGhlIFNOVlMgaXNuJ3QgZW5hYmxlZCwgYW5kCmFueSBhdHRlbXB0IHRvIHJlYWQgdGhlIFNOVlMg cmVnaXN0ZXJzIHdpbGwgc2ltcGx5IGhhbmcgZm9yZXZlci4KCkVuc3VyZSB0aGUgY2xvY2sgaXMg ZW5hYmxlZCAoZHVyaW5nIHRoZSBpbnRlcnJ1cHQgaGFuZGxlcikgdG8KbWFrZSB0aGlzIGRyaXZl ciB3b3JrLgoKQWxzbyBzZWUgY29tbWl0IDdmODk5Mzk5NTQxMCAoImRyaXZlcnMvcnRjL3J0Yy1z bnZzOiBhZGQgY2xvY2sgc3VwcG9ydCIpCmFuZCBjb21taXQgZWRiMTkwY2IxNzM0CigicnRjOiBz bnZzOiBtYWtlIHN1cmUgY2xvY2sgaXMgZW5hYmxlZCBmb3IgaW50ZXJydXB0IGhhbmRsZSIpCmZv ciBzaW1pbGFyIHVwZGF0ZXMgdG8gdGhlIHNudnMgcnRjIGRyaXZlci4KClNpZ25lZC1vZmYtYnk6 IEFuZHLDqSBEcmFzemlrIDxnaXRAYW5kcmVkLm5ldD4KQ2M6ICJIb3JpYSBHZWFudMSDIiA8aG9y aWEuZ2VhbnRhQG54cC5jb20+CkNjOiBBeW1lbiBTZ2hhaWVyIDxheW1lbi5zZ2hhaWVyQG54cC5j b20+CkNjOiBIZXJiZXJ0IFh1IDxoZXJiZXJ0QGdvbmRvci5hcGFuYS5vcmcuYXU+CkNjOiAiRGF2 aWQgUy4gTWlsbGVyIiA8ZGF2ZW1AZGF2ZW1sb2Z0Lm5ldD4KQ2M6IFJvYiBIZXJyaW5nIDxyb2Jo K2R0QGtlcm5lbC5vcmc+CkNjOiBNYXJrIFJ1dGxhbmQgPG1hcmsucnV0bGFuZEBhcm0uY29tPgpD YzogU2hhd24gR3VvIDxzaGF3bmd1b0BrZXJuZWwub3JnPgpDYzogU2FzY2hhIEhhdWVyIDxzLmhh dWVyQHBlbmd1dHJvbml4LmRlPgpDYzogUGVuZ3V0cm9uaXggS2VybmVsIFRlYW0gPGtlcm5lbEBw ZW5ndXRyb25peC5kZT4KQ2M6IEZhYmlvIEVzdGV2YW0gPGZlc3RldmFtQGdtYWlsLmNvbT4KQ2M6 IE5YUCBMaW51eCBUZWFtIDxsaW51eC1pbXhAbnhwLmNvbT4KQ2M6IERtaXRyeSBUb3Jva2hvdiA8 ZG1pdHJ5LnRvcm9raG92QGdtYWlsLmNvbT4KQ2M6IEFuc29uIEh1YW5nIDxBbnNvbi5IdWFuZ0Bu eHAuY29tPgpDYzogUm9iaW4gR29uZyA8eWliaW4uZ29uZ0BueHAuY29tPgpDYzogbGludXgtY3J5 cHRvQHZnZXIua2VybmVsLm9yZwpDYzogZGV2aWNldHJlZUB2Z2VyLmtlcm5lbC5vcmcKQ2M6IGxp bnV4LWFybS1rZXJuZWxAbGlzdHMuaW5mcmFkZWFkLm9yZwpDYzogbGludXgtaW5wdXRAdmdlci5r ZXJuZWwub3JnCgotLS0KdjI6CiogZHJvcCByZWR1bmRhbnQgdGVzdHMgYW5kIHNpbXBsaWZ5IGVy cm9yIGhhbmRsaW5nIGJ5IHVzaW5nCiAgZGV2bV9jbGtfZ2V0X29wdGlvbmFsKCkKKiBhZGQgY2xv Y2sgaGFuZGxpbmcgdG8gaW14X2lteF9zbnZzX2NoZWNrX2Zvcl9ldmVudHMoKQotLS0KIGRyaXZl cnMvaW5wdXQva2V5Ym9hcmQvc252c19wd3JrZXkuYyB8IDI4ICsrKysrKysrKysrKysrKysrKysr KysrKysrKy0KIDEgZmlsZSBjaGFuZ2VkLCAyNyBpbnNlcnRpb25zKCspLCAxIGRlbGV0aW9uKC0p CgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9pbnB1dC9rZXlib2FyZC9zbnZzX3B3cmtleS5jIGIvZHJp dmVycy9pbnB1dC9rZXlib2FyZC9zbnZzX3B3cmtleS5jCmluZGV4IDJmNWUzYWI1ZWQ2My4uMzgy ZDJhZTgyYzliIDEwMDY0NAotLS0gYS9kcml2ZXJzL2lucHV0L2tleWJvYXJkL3NudnNfcHdya2V5 LmMKKysrIGIvZHJpdmVycy9pbnB1dC9rZXlib2FyZC9zbnZzX3B3cmtleS5jCkBAIC0xNiw2ICsx Niw3IEBACiAjaW5jbHVkZSA8bGludXgvb2ZfYWRkcmVzcy5oPgogI2luY2x1ZGUgPGxpbnV4L3Bs YXRmb3JtX2RldmljZS5oPgogI2luY2x1ZGUgPGxpbnV4L3BtX3dha2VpcnEuaD4KKyNpbmNsdWRl IDxsaW51eC9jbGsuaD4KICNpbmNsdWRlIDxsaW51eC9tZmQvc3lzY29uLmg+CiAjaW5jbHVkZSA8 bGludXgvcmVnbWFwLmg+CiAKQEAgLTM4LDYgKzM5LDcgQEAgc3RydWN0IHB3cmtleV9kcnZfZGF0 YSB7CiAJaW50IHdha2V1cDsKIAlzdHJ1Y3QgdGltZXJfbGlzdCBjaGVja190aW1lcjsKIAlzdHJ1 Y3QgaW5wdXRfZGV2ICppbnB1dDsKKwlzdHJ1Y3QgY2xrICpjbGs7CiAJdTggbWlub3JfcmV2Owog fTsKIApAQCAtNDcsNyArNDksMTAgQEAgc3RhdGljIHZvaWQgaW14X2lteF9zbnZzX2NoZWNrX2Zv cl9ldmVudHMoc3RydWN0IHRpbWVyX2xpc3QgKnQpCiAJc3RydWN0IGlucHV0X2RldiAqaW5wdXQg PSBwZGF0YS0+aW5wdXQ7CiAJdTMyIHN0YXRlOwogCisJY2xrX2VuYWJsZShwZGF0YS0+Y2xrKTsK IAlyZWdtYXBfcmVhZChwZGF0YS0+c252cywgU05WU19IUFNSX1JFRywgJnN0YXRlKTsKKwljbGtf ZGlzYWJsZShwZGF0YS0+Y2xrKTsKKwogCXN0YXRlID0gc3RhdGUgJiBTTlZTX0hQU1JfQlROID8g MSA6IDA7CiAKIAkvKiBvbmx5IHJlcG9ydCBuZXcgZXZlbnQgaWYgc3RhdHVzIGNoYW5nZWQgKi8K QEAgLTc0LDExICs3OSwxMyBAQCBzdGF0aWMgaXJxcmV0dXJuX3QgaW14X3NudnNfcHdya2V5X2lu dGVycnVwdChpbnQgaXJxLCB2b2lkICpkZXZfaWQpCiAKIAlwbV93YWtldXBfZXZlbnQoaW5wdXQt PmRldi5wYXJlbnQsIDApOwogCisJY2xrX2VuYWJsZShwZGF0YS0+Y2xrKTsKKwogCXJlZ21hcF9y ZWFkKHBkYXRhLT5zbnZzLCBTTlZTX0xQU1JfUkVHLCAmbHBfc3RhdHVzKTsKIAlpZiAobHBfc3Rh dHVzICYgU05WU19MUFNSX1NQTykgewogCQlpZiAocGRhdGEtPm1pbm9yX3JldiA9PSAwKSB7CiAJ CQkvKgotCQkJICogVGhlIGZpcnN0IGdlbmVyYXRpb24gaS5NWDYgU29DcyBvbmx5IHNlbmRzIGFu CisJCQkgKiBUaGUgZmlyc3QgZ2VuZXJhdGlvbiBpLk1YWzZ8N10gU29DcyBvbmx5IHNlbmQgYW4K IAkJCSAqIGludGVycnVwdCBvbiBidXR0b24gcmVsZWFzZS4gVG8gbWltaWMgcG93ZXIta2V5CiAJ CQkgKiB1c2FnZSwgd2UnbGwgcHJlcGVuZCBhIHByZXNzIGV2ZW50LgogCQkJICovCkBAIC05Niw2 ICsxMDMsOCBAQCBzdGF0aWMgaXJxcmV0dXJuX3QgaW14X3NudnNfcHdya2V5X2ludGVycnVwdChp bnQgaXJxLCB2b2lkICpkZXZfaWQpCiAJLyogY2xlYXIgU1BPIHN0YXR1cyAqLwogCXJlZ21hcF93 cml0ZShwZGF0YS0+c252cywgU05WU19MUFNSX1JFRywgU05WU19MUFNSX1NQTyk7CiAKKwljbGtf ZGlzYWJsZShwZGF0YS0+Y2xrKTsKKwogCXJldHVybiBJUlFfSEFORExFRDsKIH0KIApAQCAtMTQw LDYgKzE0OSwyMyBAQCBzdGF0aWMgaW50IGlteF9zbnZzX3B3cmtleV9wcm9iZShzdHJ1Y3QgcGxh dGZvcm1fZGV2aWNlICpwZGV2KQogCWlmIChwZGF0YS0+aXJxIDwgMCkKIAkJcmV0dXJuIC1FSU5W QUw7CiAKKwlwZGF0YS0+Y2xrID0gZGV2bV9jbGtfZ2V0X29wdGlvbmFsKCZwZGV2LT5kZXYsICJz bnZzLXB3cmtleSIpOworCWlmIChJU19FUlIocGRhdGEtPmNsaykpCisJCXJldHVybiBQVFJfRVJS KHBkYXRhLT5jbGspOworCisJZXJyb3IgPSBjbGtfcHJlcGFyZShwZGF0YS0+Y2xrKTsKKwlpZiAo ZXJyb3IpIHsKKwkJZGV2X2VycigmcGRldi0+ZGV2LCAiZmFpbGVkIHRvIHByZXBhcmUgdGhlIHNu dnMgY2xvY2tcbiIpOworCQlyZXR1cm4gZXJyb3I7CisJfQorCWVycm9yID0gZGV2bV9hZGRfYWN0 aW9uX29yX3Jlc2V0KCZwZGV2LT5kZXYsCisJCQkodm9pZCgqKSh2b2lkICopKWNsa191bnByZXBh cmUsCisJCQlwZGF0YS0+Y2xrKTsKKwlpZiAoZXJyb3IpIHsKKwkJZGV2X2VycigmcGRldi0+ZGV2 LCAiZmFpbGVkIHRvIGFkZCByZXNldCBhY3Rpb24gb24gJ3NudnMtcHdya2V5JyIpOworCQlyZXR1 cm4gZXJyb3I7CisJfQorCiAJcmVnbWFwX3JlYWQocGRhdGEtPnNudnMsIFNOVlNfSFBWSURSMV9S RUcsICZ2aWQpOwogCXBkYXRhLT5taW5vcl9yZXYgPSB2aWQgJiAweGZmOwogCi0tIAoyLjIzLjAu cmMxCgoKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KbGlu dXgtYXJtLWtlcm5lbCBtYWlsaW5nIGxpc3QKbGludXgtYXJtLWtlcm5lbEBsaXN0cy5pbmZyYWRl YWQub3JnCmh0dHA6Ly9saXN0cy5pbmZyYWRlYWQub3JnL21haWxtYW4vbGlzdGluZm8vbGludXgt YXJtLWtlcm5lbAo=