Received: by 2002:a05:6a10:2726:0:0:0:0 with SMTP id ib38csp976109pxb; Wed, 6 Apr 2022 05:49:59 -0700 (PDT) X-Google-Smtp-Source: ABdhPJweN31OJasWGNPDWVTkHWH9hv04eyRu8lK2HKbhwtnF51d4rlBSH3l0Jf2raVbrGmvSArbu X-Received: by 2002:a17:903:1208:b0:151:93fd:d868 with SMTP id l8-20020a170903120800b0015193fdd868mr8436763plh.121.1649249399177; Wed, 06 Apr 2022 05:49:59 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1649249399; cv=none; d=google.com; s=arc-20160816; b=jFm/zvlmVEkTDqiJ4esNvL8SvyIQxDPlK7v4dd0T0hs/am81dWInq0RixxMeMIaEQu 2vbLtblBrMPHU3rJBmKJjzlfk4vx5V6RE4Q9+FGoDN3ZhMX2FLYBIdSlJfVt7SgZX9I9 xVwDBl0RE7JEYTsw9RNfF7roPFSntkZBiQZvTysJQpDeui4hZsHfFIXZ0WICDQdi4j34 d0UeC/Xhs6ye32ZQCSgi1SGR1kGKYYvgfSdnef1j/ph5lTx5gfyQ7Oa0lQuqicBY2SK1 Nh+JECZ1Awm7H8U3yn553tUl6UhHzMdCVhHR9S+TR+VTLE4A+cWajFEumteaiU6JB9ky v/9w== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:in-reply-to:from:references:cc:to :content-language:subject:user-agent:mime-version:date:message-id :dkim-signature; bh=4h0jQAjPjyeEQFyOfCWAZFeN5gwQYDBt24rPHwYYG6s=; b=Lmg4KZMgAJFGrZ71NRfR+py5iZnwnF7EwlkyNseh0d854GPP446CW1fJlX68Pd3/9q lda7M5Lw275H2ydgIWXjA70kC3FZnr2VPsU870xT028KDq85jCtQLmDIyH5Lqho6L4Mq VWVo+Q7u3SAi0A3EpLWzqifZFbzcvRsJxzw3yl/xaUq8iqm1pR8fCKyM/AGYOndiQchW udpLm4hPJE8eywrAoWH4PJ9IV06pi4L6NTKvzWkg0kLXNdJlsFYPBFYeW+fhSRP3oX02 mderWxRm/DrsT4xJviJu86bNezJbCoek708zPylQgTPqmX0ERh4qYLkXqeD3aD/WAflJ rsUA== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@intel.com header.s=Intel header.b=hQBLjfYc; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=intel.com Return-Path: Received: from lindbergh.monkeyblade.net (lindbergh.monkeyblade.net. [2620:137:e000::1:18]) by mx.google.com with ESMTPS id g15-20020a170902d5cf00b00153b2d165c1si14847884plh.457.2022.04.06.05.49.58 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 06 Apr 2022 05:49:59 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:18 as permitted sender) client-ip=2620:137:e000::1:18; Authentication-Results: mx.google.com; dkim=pass header.i=@intel.com header.s=Intel header.b=hQBLjfYc; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=intel.com Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by lindbergh.monkeyblade.net (Postfix) with ESMTP id A8FDA24CEC7; Wed, 6 Apr 2022 02:35:42 -0700 (PDT) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1838034AbiDFAtq (ORCPT + 99 others); Tue, 5 Apr 2022 20:49:46 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:56014 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1452919AbiDEPzm (ORCPT ); Tue, 5 Apr 2022 11:55:42 -0400 Received: from mga07.intel.com (mga07.intel.com [134.134.136.100]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 967DB122996 for ; Tue, 5 Apr 2022 07:58:21 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=intel.com; i=@intel.com; q=dns/txt; s=Intel; t=1649170701; x=1680706701; h=message-id:date:mime-version:subject:to:cc:references: from:in-reply-to; bh=ftoayH4w0WjaPRRerFzfbVHvxVPFkiejmOlJJD0U2Z4=; b=hQBLjfYck/V6GQ8aA9JtYa9YUQQqkdJbx8osndUpZYP1trNgZ7UGxsxk lGCQmlziZ5BLRkikdnBxbENwC3mFwR2nzD1VR6bDMbLvXL+wwtb+DXfMm Migk/32CYhUwHFcSLNbcSanVoul2Z8SQObFp6AlqjvrDU4Kl0o1m1ZBlE CD98rFNh3K6/lucBtN4qiYWl0Cl8tNDh5BHNRxhmwau2VXpIVTjq4CPMH g+ElmzXWiH5v3Um95mCX2e0IbRqFxcYs8eQh5m6bcohcSVmuzyP8wR4z3 n4SozkfeKBgeXhTLcB7FA+mb2TIbxamDaD7QuKwh+WQdVC+2TC7R6lBJs Q==; X-IronPort-AV: E=McAfee;i="6200,9189,10307"; a="323940550" X-IronPort-AV: E=Sophos;i="5.90,236,1643702400"; d="scan'208,223";a="323940550" Received: from fmsmga002.fm.intel.com ([10.253.24.26]) by orsmga105.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 05 Apr 2022 07:58:21 -0700 X-IronPort-AV: E=Sophos;i="5.90,236,1643702400"; d="scan'208,223";a="651919363" Received: from ctveazey-mobl2.amr.corp.intel.com (HELO [10.255.230.126]) ([10.255.230.126]) by fmsmga002-auth.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 05 Apr 2022 07:58:19 -0700 Content-Type: multipart/mixed; boundary="------------ClSbdupNyf17Jgy0oUfwGd0u" Message-ID: <5df9bb3c-2346-f465-fcae-eb6fe381def3@linux.intel.com> Date: Tue, 5 Apr 2022 09:57:30 -0500 MIME-Version: 1.0 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:91.0) Gecko/20100101 Firefox/91.0 Thunderbird/91.5.0 Subject: Re: [PATCH v2 1/2] ASoC: Intel: sof_es8336: support a separate gpio to control headphone Content-Language: en-US To: Mauro Carvalho Chehab Cc: Mauro Carvalho Chehab , Hans de Goede , =?UTF-8?Q?P=c3=a9ter_Ujfalusi?= , Bard Liao , Cezary Rojewski , Jaroslav Kysela , Jie Yang , Liam Girdwood , Mark Brown , Takashi Iwai , alsa-devel@alsa-project.org, linux-kernel@vger.kernel.org References: <0f1e8233fc6744c3d78353e4a20f9669035e693d.1649147890.git.mchehab@kernel.org> From: Pierre-Louis Bossart In-Reply-To: <0f1e8233fc6744c3d78353e4a20f9669035e693d.1649147890.git.mchehab@kernel.org> X-Spam-Status: No, score=-4.7 required=5.0 tests=BAYES_00,DKIMWL_WL_HIGH, DKIM_SIGNED,DKIM_VALID,HEADER_FROM_DIFFERENT_DOMAINS, MAILING_LIST_MULTI,NICE_REPLY_A,RDNS_NONE,SPF_HELO_NONE, T_SCC_BODY_TEXT_LINE autolearn=unavailable autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on lindbergh.monkeyblade.net Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org This is a multi-part message in MIME format. --------------ClSbdupNyf17Jgy0oUfwGd0u Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 7bit On 4/5/22 03:44, Mauro Carvalho Chehab wrote: > From: Mauro Carvalho Chehab > > Some devices may use both gpio0 and gpio1 to independently switch > the speaker and the headphone. > > Add support for that. > > Signed-off-by: Mauro Carvalho Chehab > Signed-off-by: Mauro Carvalho Chehab > --- > > See [PATCH v2 0/2] at: https://lore.kernel.org/all/cover.1649147890.git.mchehab@kernel.org/ > > sound/soc/intel/boards/sof_es8336.c | 60 ++++++++++++++++++++++++----- > 1 file changed, 50 insertions(+), 10 deletions(-) > > diff --git a/sound/soc/intel/boards/sof_es8336.c b/sound/soc/intel/boards/sof_es8336.c > index 5e0529aa4f1d..bcd80870d252 100644 > --- a/sound/soc/intel/boards/sof_es8336.c > +++ b/sound/soc/intel/boards/sof_es8336.c > @@ -30,6 +30,7 @@ > #define SOF_ES8336_TGL_GPIO_QUIRK BIT(4) > #define SOF_ES8336_ENABLE_DMIC BIT(5) > #define SOF_ES8336_JD_INVERTED BIT(6) > +#define SOF_ES8336_HEADPHONE_GPIO BIT(7) > > static unsigned long quirk; > > @@ -39,7 +40,7 @@ MODULE_PARM_DESC(quirk, "Board-specific quirk override"); > > struct sof_es8336_private { > struct device *codec_dev; > - struct gpio_desc *gpio_pa; > + struct gpio_desc *gpio_pa, *gpio_pa_headphone; > struct snd_soc_jack jack; > struct list_head hdmi_pcm_list; > bool speaker_en; > @@ -51,15 +52,28 @@ struct sof_hdmi_pcm { > int device; > }; > > -static const struct acpi_gpio_params pa_enable_gpio = { 0, 0, true }; > +static const struct acpi_gpio_params pa_enable_gpio0 = { 0, 0, true }; > +static const struct acpi_gpio_params pa_enable_gpio1 = { 1, 0, true }; > + > static const struct acpi_gpio_mapping acpi_es8336_gpios[] = { > - { "pa-enable-gpios", &pa_enable_gpio, 1 }, > + { "pa-enable-gpios", &pa_enable_gpio0, 1 }, > { } > }; > > -static const struct acpi_gpio_params quirk_pa_enable_gpio = { 1, 0, true }; > static const struct acpi_gpio_mapping quirk_acpi_es8336_gpios[] = { > - { "pa-enable-gpios", &quirk_pa_enable_gpio, 1 }, > + { "pa-enable-gpios", &pa_enable_gpio1, 1 }, > + { } > +}; > + > +static const struct acpi_gpio_mapping quirk_acpi_headphone_es8336_gpios[] = { > + { "pa-enable-gpios", &pa_enable_gpio0, 1 }, > + { "pa-enable-headphone-gpios", &pa_enable_gpio1, 1 }, > + { } > +}; > + > +static const struct acpi_gpio_mapping quirk_tgl_acpi_headphone_es8336_gpios[] = { > + { "pa-enable-gpios", &pa_enable_gpio1, 1 }, > + { "pa-enable-headphone-gpios", &pa_enable_gpio0, 1 }, > { } This is starting to be a bit messy, the initial gpios were really intended for speakers and should be clearly referring to speakers now. the TGL quirk really means gpio1 is used instead of gpio0, and I can't figure out what the 'pa' prefix is needed for. Can I suggest the attached cleanup patch be added first? That would make it clearer and more readable IMHO. Compile-tested only since I don't have hardware. Thanks! --------------ClSbdupNyf17Jgy0oUfwGd0u Content-Type: text/x-patch; charset=UTF-8; name="0001-ASoC-Intel-sof_es8336-simplify-speaker-gpio-naming.patch" Content-Disposition: attachment; filename*0="0001-ASoC-Intel-sof_es8336-simplify-speaker-gpio-naming.patc"; filename*1="h" Content-Transfer-Encoding: base64 RnJvbSBmM2Q3MTQ0ZDU1MzM0OWY4MDdmYmZlMDc1NWFlZmE5YWMwNGE2ODhjIE1vbiBTZXAg MTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBQaWVycmUtTG91aXMgQm9zc2FydCA8cGllcnJlLWxv dWlzLmJvc3NhcnRAbGludXguaW50ZWwuY29tPgpEYXRlOiBUdWUsIDUgQXByIDIwMjIgMDk6 NDc6MTMgLTA1MDAKU3ViamVjdDogW1BBVENIXSBBU29DOiBJbnRlbDogc29mX2VzODMzNjog c2ltcGxpZnkgc3BlYWtlciBncGlvIG5hbWluZwoKSW4gcHJlcGFyYXRpb24gZm9yIHRoZSBz dXBwb3J0IG9mIGFuIGFkZGl0aW9uYWwgZ3BpbyBmb3IgaGVhZHBob25lCmNvbnRyb2wsIHJl bmFtZSBHUElPcyB0byBtYWtlIGV4cGxpY2l0IHJlZmVyZW5jZXMgdG8gc3BlYWtlcnMgYW5k CmdwaW8wIG9yIGdwaW8xLgoKTm8gZnVuY3Rpb25hbGl0eSBjaGFuZ2UuCgpTaWduZWQtb2Zm LWJ5OiBQaWVycmUtTG91aXMgQm9zc2FydCA8cGllcnJlLWxvdWlzLmJvc3NhcnRAbGludXgu aW50ZWwuY29tPgotLS0KIHNvdW5kL3NvYy9pbnRlbC9ib2FyZHMvc29mX2VzODMzNi5jIHwg NDIgKysrKysrKysrKysrKystLS0tLS0tLS0tLS0tLS0KIDEgZmlsZSBjaGFuZ2VkLCAyMSBp bnNlcnRpb25zKCspLCAyMSBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9zb3VuZC9zb2Mv aW50ZWwvYm9hcmRzL3NvZl9lczgzMzYuYyBiL3NvdW5kL3NvYy9pbnRlbC9ib2FyZHMvc29m X2VzODMzNi5jCmluZGV4IDVlMDUyOWFhNGYxZC4uNGJkODE5ZDc1Y2YyIDEwMDY0NAotLS0g YS9zb3VuZC9zb2MvaW50ZWwvYm9hcmRzL3NvZl9lczgzMzYuYworKysgYi9zb3VuZC9zb2Mv aW50ZWwvYm9hcmRzL3NvZl9lczgzMzYuYwpAQCAtMjcsNyArMjcsNyBAQAogI2RlZmluZSBT T0ZfRVM4MzM2X1NTUF9DT0RFQyhxdWlyaykJCSgocXVpcmspICYgR0VOTUFTSygzLCAwKSkK ICNkZWZpbmUgU09GX0VTODMzNl9TU1BfQ09ERUNfTUFTSwkJKEdFTk1BU0soMywgMCkpCiAK LSNkZWZpbmUgU09GX0VTODMzNl9UR0xfR1BJT19RVUlSSwkJQklUKDQpCisjZGVmaW5lIFNP Rl9FUzgzMzZfU1BFQUtFUlNfRU5fR1BJTzFfUVVJUksJCUJJVCg0KQogI2RlZmluZSBTT0Zf RVM4MzM2X0VOQUJMRV9ETUlDCQkJQklUKDUpCiAjZGVmaW5lIFNPRl9FUzgzMzZfSkRfSU5W RVJURUQJCQlCSVQoNikKIApAQCAtMzksNyArMzksNyBAQCBNT0RVTEVfUEFSTV9ERVNDKHF1 aXJrLCAiQm9hcmQtc3BlY2lmaWMgcXVpcmsgb3ZlcnJpZGUiKTsKIAogc3RydWN0IHNvZl9l czgzMzZfcHJpdmF0ZSB7CiAJc3RydWN0IGRldmljZSAqY29kZWNfZGV2OwotCXN0cnVjdCBn cGlvX2Rlc2MgKmdwaW9fcGE7CisJc3RydWN0IGdwaW9fZGVzYyAqZ3Bpb19zcGVha2VyczsK IAlzdHJ1Y3Qgc25kX3NvY19qYWNrIGphY2s7CiAJc3RydWN0IGxpc3RfaGVhZCBoZG1pX3Bj bV9saXN0OwogCWJvb2wgc3BlYWtlcl9lbjsKQEAgLTUxLDE5ICs1MSwxOSBAQCBzdHJ1Y3Qg c29mX2hkbWlfcGNtIHsKIAlpbnQgZGV2aWNlOwogfTsKIAotc3RhdGljIGNvbnN0IHN0cnVj dCBhY3BpX2dwaW9fcGFyYW1zIHBhX2VuYWJsZV9ncGlvID0geyAwLCAwLCB0cnVlIH07Ci1z dGF0aWMgY29uc3Qgc3RydWN0IGFjcGlfZ3Bpb19tYXBwaW5nIGFjcGlfZXM4MzM2X2dwaW9z W10gPSB7Ci0JeyAicGEtZW5hYmxlLWdwaW9zIiwgJnBhX2VuYWJsZV9ncGlvLCAxIH0sCitz dGF0aWMgY29uc3Qgc3RydWN0IGFjcGlfZ3Bpb19wYXJhbXMgc3BlYWtlcnNfZW5hYmxlX2dw aW8wID0geyAwLCAwLCB0cnVlIH07CitzdGF0aWMgY29uc3Qgc3RydWN0IGFjcGlfZ3Bpb19t YXBwaW5nIGFjcGlfc3BlYWtlcnNfZW5hYmxlX2dwaW8wW10gPSB7CisJeyAic3BlYWtlcnMt ZW5hYmxlLWdwaW9zIiwgJnNwZWFrZXJzX2VuYWJsZV9ncGlvMCwgMSB9LAogCXsgfQogfTsK IAotc3RhdGljIGNvbnN0IHN0cnVjdCBhY3BpX2dwaW9fcGFyYW1zIHF1aXJrX3BhX2VuYWJs ZV9ncGlvID0geyAxLCAwLCB0cnVlIH07Ci1zdGF0aWMgY29uc3Qgc3RydWN0IGFjcGlfZ3Bp b19tYXBwaW5nIHF1aXJrX2FjcGlfZXM4MzM2X2dwaW9zW10gPSB7Ci0JeyAicGEtZW5hYmxl LWdwaW9zIiwgJnF1aXJrX3BhX2VuYWJsZV9ncGlvLCAxIH0sCitzdGF0aWMgY29uc3Qgc3Ry dWN0IGFjcGlfZ3Bpb19wYXJhbXMgc3BlYWtlcnNfZW5hYmxlX2dwaW8xID0geyAxLCAwLCB0 cnVlIH07CitzdGF0aWMgY29uc3Qgc3RydWN0IGFjcGlfZ3Bpb19tYXBwaW5nIGFjcGlfc3Bl YWtlcnNfZW5hYmxlX2dwaW8xW10gPSB7CisJeyAic3BlYWtlcnMtZW5hYmxlLWdwaW9zIiwg JnNwZWFrZXJzX2VuYWJsZV9ncGlvMSwgMSB9LAogCXsgfQogfTsKIAotc3RhdGljIGNvbnN0 IHN0cnVjdCBhY3BpX2dwaW9fbWFwcGluZyAqZ3Bpb19tYXBwaW5nID0gYWNwaV9lczgzMzZf Z3Bpb3M7CitzdGF0aWMgY29uc3Qgc3RydWN0IGFjcGlfZ3Bpb19tYXBwaW5nICpncGlvX21h cHBpbmcgPSBhY3BpX3NwZWFrZXJzX2VuYWJsZV9ncGlvMDsKIAogc3RhdGljIHZvaWQgbG9n X3F1aXJrcyhzdHJ1Y3QgZGV2aWNlICpkZXYpCiB7CkBAIC03MSw4ICs3MSw4IEBAIHN0YXRp YyB2b2lkIGxvZ19xdWlya3Moc3RydWN0IGRldmljZSAqZGV2KQogCWRldl9pbmZvKGRldiwg InF1aXJrIFNTUCVsZFxuIiwgIFNPRl9FUzgzMzZfU1NQX0NPREVDKHF1aXJrKSk7CiAJaWYg KHF1aXJrICYgU09GX0VTODMzNl9FTkFCTEVfRE1JQykKIAkJZGV2X2luZm8oZGV2LCAicXVp cmsgRE1JQyBlbmFibGVkXG4iKTsKLQlpZiAocXVpcmsgJiBTT0ZfRVM4MzM2X1RHTF9HUElP X1FVSVJLKQotCQlkZXZfaW5mbyhkZXYsICJxdWlyayBUR0wgR1BJTyBlbmFibGVkXG4iKTsK KwlpZiAocXVpcmsgJiBTT0ZfRVM4MzM2X1NQRUFLRVJTX0VOX0dQSU8xX1FVSVJLKQorCQlk ZXZfaW5mbyhkZXYsICJTcGVha2VycyBHUElPMSBxdWlyayBlbmFibGVkXG4iKTsKIAlpZiAo cXVpcmsgJiBTT0ZfRVM4MzM2X0pEX0lOVkVSVEVEKQogCQlkZXZfaW5mbyhkZXYsICJxdWly ayBKRCBpbnZlcnRlZCBlbmFibGVkXG4iKTsKIH0KQEAgLTg4LDcgKzg4LDcgQEAgc3RhdGlj IGludCBzb2ZfZXM4MzE2X3NwZWFrZXJfcG93ZXJfZXZlbnQoc3RydWN0IHNuZF9zb2NfZGFw bV93aWRnZXQgKncsCiAJZWxzZQogCQlwcml2LT5zcGVha2VyX2VuID0gdHJ1ZTsKIAotCWdw aW9kX3NldF92YWx1ZV9jYW5zbGVlcChwcml2LT5ncGlvX3BhLCBwcml2LT5zcGVha2VyX2Vu KTsKKwlncGlvZF9zZXRfdmFsdWVfY2Fuc2xlZXAocHJpdi0+Z3Bpb19zcGVha2VycywgcHJp di0+c3BlYWtlcl9lbik7CiAKIAlyZXR1cm4gMDsKIH0KQEAgLTIzMyw4ICsyMzMsOCBAQCBz dGF0aWMgaW50IHNvZl9lczgzMzZfcXVpcmtfY2IoY29uc3Qgc3RydWN0IGRtaV9zeXN0ZW1f aWQgKmlkKQogewogCXF1aXJrID0gKHVuc2lnbmVkIGxvbmcpaWQtPmRyaXZlcl9kYXRhOwog Ci0JaWYgKHF1aXJrICYgU09GX0VTODMzNl9UR0xfR1BJT19RVUlSSykKLQkJZ3Bpb19tYXBw aW5nID0gcXVpcmtfYWNwaV9lczgzMzZfZ3Bpb3M7CisJaWYgKHF1aXJrICYgU09GX0VTODMz Nl9TUEVBS0VSU19FTl9HUElPMV9RVUlSSykKKwkJZ3Bpb19tYXBwaW5nID0gYWNwaV9zcGVh a2Vyc19lbmFibGVfZ3BpbzE7CiAKIAlyZXR1cm4gMTsKIH0KQEAgLTI1Nyw3ICsyNTcsNyBA QCBzdGF0aWMgY29uc3Qgc3RydWN0IGRtaV9zeXN0ZW1faWQgc29mX2VzODMzNl9xdWlya190 YWJsZVtdID0gewogCQkJRE1JX01BVENIKERNSV9TWVNfVkVORE9SLCAiSVAzIHRlY2giKSwK IAkJCURNSV9NQVRDSChETUlfQk9BUkRfTkFNRSwgIldOMSIpLAogCQl9LAotCQkuZHJpdmVy X2RhdGEgPSAodm9pZCAqKShTT0ZfRVM4MzM2X1RHTF9HUElPX1FVSVJLKQorCQkuZHJpdmVy X2RhdGEgPSAodm9pZCAqKShTT0ZfRVM4MzM2X1NQRUFLRVJTX0VOX0dQSU8xX1FVSVJLKQog CX0sCiAJe30KIH07CkBAIC01ODUsMTAgKzU4NSwxMCBAQCBzdGF0aWMgaW50IHNvZl9lczgz MzZfcHJvYmUoc3RydWN0IHBsYXRmb3JtX2RldmljZSAqcGRldikKIAlpZiAocmV0KQogCQlk ZXZfd2Fybihjb2RlY19kZXYsICJ1bmFibGUgdG8gYWRkIEdQSU8gbWFwcGluZyB0YWJsZVxu Iik7CiAKLQlwcml2LT5ncGlvX3BhID0gZ3Bpb2RfZ2V0X29wdGlvbmFsKGNvZGVjX2Rldiwg InBhLWVuYWJsZSIsIEdQSU9EX09VVF9MT1cpOwotCWlmIChJU19FUlIocHJpdi0+Z3Bpb19w YSkpIHsKLQkJcmV0ID0gZGV2X2Vycl9wcm9iZShkZXYsIFBUUl9FUlIocHJpdi0+Z3Bpb19w YSksCi0JCQkJICAgICJjb3VsZCBub3QgZ2V0IHBhLWVuYWJsZSBHUElPXG4iKTsKKwlwcml2 LT5ncGlvX3NwZWFrZXJzID0gZ3Bpb2RfZ2V0X29wdGlvbmFsKGNvZGVjX2RldiwgInNwZWFr ZXJzLWVuYWJsZSIsIEdQSU9EX09VVF9MT1cpOworCWlmIChJU19FUlIocHJpdi0+Z3Bpb19z cGVha2VycykpIHsKKwkJcmV0ID0gZGV2X2Vycl9wcm9iZShkZXYsIFBUUl9FUlIocHJpdi0+ Z3Bpb19zcGVha2VycyksCisJCQkJICAgICJjb3VsZCBub3QgZ2V0IHNwZWFrZXJzLWVuYWJs ZSBHUElPXG4iKTsKIAkJZ290byBlcnJfcHV0X2NvZGVjOwogCX0KIApAQCAtNjA0LDcgKzYw NCw3IEBAIHN0YXRpYyBpbnQgc29mX2VzODMzNl9wcm9iZShzdHJ1Y3QgcGxhdGZvcm1fZGV2 aWNlICpwZGV2KQogCiAJcmV0ID0gZGV2bV9zbmRfc29jX3JlZ2lzdGVyX2NhcmQoZGV2LCBj YXJkKTsKIAlpZiAocmV0KSB7Ci0JCWdwaW9kX3B1dChwcml2LT5ncGlvX3BhKTsKKwkJZ3Bp b2RfcHV0KHByaXYtPmdwaW9fc3BlYWtlcnMpOwogCQlkZXZfZXJyKGRldiwgInNuZF9zb2Nf cmVnaXN0ZXJfY2FyZCBmYWlsZWQ6ICVkXG4iLCByZXQpOwogCQlnb3RvIGVycl9wdXRfY29k ZWM7CiAJfQpAQCAtNjIyLDcgKzYyMiw3IEBAIHN0YXRpYyBpbnQgc29mX2VzODMzNl9yZW1v dmUoc3RydWN0IHBsYXRmb3JtX2RldmljZSAqcGRldikKIAlzdHJ1Y3Qgc25kX3NvY19jYXJk ICpjYXJkID0gcGxhdGZvcm1fZ2V0X2RydmRhdGEocGRldik7CiAJc3RydWN0IHNvZl9lczgz MzZfcHJpdmF0ZSAqcHJpdiA9IHNuZF9zb2NfY2FyZF9nZXRfZHJ2ZGF0YShjYXJkKTsKIAot CWdwaW9kX3B1dChwcml2LT5ncGlvX3BhKTsKKwlncGlvZF9wdXQocHJpdi0+Z3Bpb19zcGVh a2Vycyk7CiAJZGV2aWNlX3JlbW92ZV9zb2Z0d2FyZV9ub2RlKHByaXYtPmNvZGVjX2Rldik7 CiAJcHV0X2RldmljZShwcml2LT5jb2RlY19kZXYpOwogCi0tIAoyLjMwLjIKCg== --------------ClSbdupNyf17Jgy0oUfwGd0u--