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=-7.0 required=3.0 tests=BAYES_00,DKIMWL_WL_HIGH, DKIM_SIGNED,DKIM_VALID,HEADER_FROM_DIFFERENT_DOMAINS,INCLUDES_PATCH, MAILING_LIST_MULTI,SIGNED_OFF_BY,SPF_HELO_NONE,SPF_PASS, UNWANTED_LANGUAGE_BODY,URIBL_BLOCKED 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 0B048C2D0A3 for ; Wed, 4 Nov 2020 15:39:05 +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 57D7A2072C for ; Wed, 4 Nov 2020 15:39:04 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=pass (2048-bit key) header.d=lists.infradead.org header.i=@lists.infradead.org header.b="JuFYDZTB"; dkim=fail reason="signature verification failed" (2048-bit key) header.d=linaro.org header.i=@linaro.org header.b="wLzmKttu" DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 57D7A2072C 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-mediatek-bounces+linux-mediatek=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:References:Message-ID: Subject:To:From:Date:Reply-To:Content-ID:Content-Description:Resent-Date: Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID:List-Owner; bh=Ec8Xf5q/DubZ3f6o7S6FSNX2TYT3oD2KiOJRzWTRDnI=; b=JuFYDZTBZ6T8cw+nNjhv9Mq6n cCWJYetTe+yamyjC7N2r6fEMAG524JKduxvoekKRaC3qH6MtHL1N3V51k6EthQvedYSqsd4Za6oS7 b/fQvK0Zp8wQ/S/CETJiwKlZyIOxsjbYEI0sVQKkt3sMWgDVCyTy473dWgYLLqEPWz+KVhxZs9lUk FygFP4HTMfWNaOE4woHIUKkuAT9ZQC6Ei6E3eX0MBh75OBGtrJ5Vw4VKQ6MWVbtv8ZLd/WGPVcRuY oSxWFZFdtBvVEcmavokdP5aVLhdSb+7gw2CQnr1WBqf1wu5Td9VhT2FLAb+Zzc23stZHanscPNT7L qsaG3EEqQ==; Received: from localhost ([::1] helo=merlin.infradead.org) by merlin.infradead.org with esmtp (Exim 4.92.3 #3 (Red Hat Linux)) id 1kaKsC-0003g9-Vv; Wed, 04 Nov 2020 15:38:57 +0000 Received: from mail-wm1-x342.google.com ([2a00:1450:4864:20::342]) by merlin.infradead.org with esmtps (Exim 4.92.3 #3 (Red Hat Linux)) id 1kaKs6-0003eg-Mu for linux-mediatek@lists.infradead.org; Wed, 04 Nov 2020 15:38:52 +0000 Received: by mail-wm1-x342.google.com with SMTP id p19so2133448wmg.0 for ; Wed, 04 Nov 2020 07:38:48 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; h=date:from:to:cc:subject:message-id:references:mime-version :content-disposition:content-transfer-encoding:in-reply-to; bh=B81fQ5xHaQ/yrMSa1yDIBHJseRR/8A0pHv9OArYo8cU=; b=wLzmKttuLo18fcXHfeCevLhrM1Pyh0Gu9tRhzivyTZs25wjTpa4zPDGh5k7v2lh4Fq NCofbJADTQb95FxFTO2zlFjxMtk+x7aRpi2PmBIeIkjSu1kubu0Jf1oFLWDvJvOuMosp PQBXzxI0oZghuk2Slk5F/WjhjvxEliLQjTzIkl8qK8soKNn9Nh4NXdhBHKbJiPv4tAQl sQsIyHTbLynCYzjW6NQ2BY2QyoJdYZ8kYCC2/DDrji1WrLe1H2Z27DgOCaTanNHgAjVt 4XiD7wFKpea399ERBvoQTNR0d9hUCiqGI101/AKGsd9uOcZdo9VpeRa3j83urLZ2F5CE TV2w== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:date:from:to:cc:subject:message-id:references :mime-version:content-disposition:content-transfer-encoding :in-reply-to; bh=B81fQ5xHaQ/yrMSa1yDIBHJseRR/8A0pHv9OArYo8cU=; b=jrts+OOIzelzF2t17xJseA5neNFZEQy05R/7fSCjhZGlDn/A+afD8ngxaNp4FWUZwV l9gixdaEbQVuj6Zt2iJxGpLk39KkiFvq47DIir1rjCSHcf/Vv15U0mrvu8Y+2IkQLFEv G31sYMHAvskdImZ6xb/w6NwbA5Wv7EX09oyXo0k/gVx+bA3ePE6oXIgFFJ7YBSIsZYMG Ib+3r7ehrd9j45Ex20YGaMHsjQZ1mJ4QOGTJczLuT6WISz0TRLcQIEz3Je2SG4MElzci rqWzwPDQhWs4qk/ayAic6LryANmcr1RUelMhlQvmO+gGEMaipIR2zifWeBRjRUTzx6at NGtA== X-Gm-Message-State: AOAM5302IWqQnJA+9f5oLZKQ2i+RZzD16JAIL26H+RG2/azwblcRZAtS Aknfr5WXKXpmLm+YMwMSH2KK5rj68psq7MRm X-Google-Smtp-Source: ABdhPJwERh/SC3WoDOujs22lTdCpF33cv6JBegP3w6PqQpsREVN62NQow5YWY9qDcQaoLWm/J79wqA== X-Received: by 2002:a1c:750b:: with SMTP id o11mr5417896wmc.32.1604504327738; Wed, 04 Nov 2020 07:38:47 -0800 (PST) Received: from dell ([91.110.221.242]) by smtp.gmail.com with ESMTPSA id v67sm2783592wma.17.2020.11.04.07.38.46 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 04 Nov 2020 07:38:46 -0800 (PST) Date: Wed, 4 Nov 2020 15:38:45 +0000 From: Lee Jones To: Gene Chen Subject: Re: [PATCH v5 10/10] mfd: mt6360: Merge different sub-devices I2C read/write Message-ID: <20201104153845.GN4488@dell> References: <1600770019-11585-1-git-send-email-gene.chen.richtek@gmail.com> <1600770019-11585-11-git-send-email-gene.chen.richtek@gmail.com> MIME-Version: 1.0 Content-Disposition: inline In-Reply-To: <1600770019-11585-11-git-send-email-gene.chen.richtek@gmail.com> X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20201104_103850_800035_0DC79B3B X-CRM114-Status: GOOD ( 29.00 ) X-BeenThere: linux-mediatek@lists.infradead.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: gene_chen@richtek.com, linux-kernel@vger.kernel.org, cy_huang@richtek.com, benjamin.chao@mediatek.com, linux-mediatek@lists.infradead.org, matthias.bgg@gmail.com, Wilma.Wu@mediatek.com, linux-arm-kernel@lists.infradead.org, shufan_lee@richtek.com Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Sender: "Linux-mediatek" Errors-To: linux-mediatek-bounces+linux-mediatek=archiver.kernel.org@lists.infradead.org T24gVHVlLCAyMiBTZXAgMjAyMCwgR2VuZSBDaGVuIHdyb3RlOgoKPiBGcm9tOiBHZW5lIENoZW4g PGdlbmVfY2hlbkByaWNodGVrLmNvbT4KPiAKPiBNZXJnZSBkaWZmZXJlbnQgc3ViLWRldmljZXMg STJDIHJlYWQvd3JpdGUgZnVuY3Rpb25zIGludG8gb25lIFJlZ21hcCwKPiBiZWNhdXNlIFBNSUMg YW5kIExETyBwYXJ0IG5lZWQgQ1JDIGJpdHMgZm9yIGFjY2VzcyBwcm90ZWN0aW9uLgo+IAo+IFNp Z25lZC1vZmYtYnk6IEdlbmUgQ2hlbiA8Z2VuZV9jaGVuQHJpY2h0ZWsuY29tPgo+IC0tLQo+ICBk cml2ZXJzL21mZC9LY29uZmlnICAgICAgIHwgICAxICsKPiAgZHJpdmVycy9tZmQvbXQ2MzYwLWNv cmUuYyB8IDIyNCArKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKy0tLS0tLS0t Cj4gIDIgZmlsZXMgY2hhbmdlZCwgMTkwIGluc2VydGlvbnMoKyksIDM1IGRlbGV0aW9ucygtKQo+ IAo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL21mZC9LY29uZmlnIGIvZHJpdmVycy9tZmQvS2NvbmZp Zwo+IGluZGV4IDMzZGYwODMuLjFkZmU0NDYgMTAwNjQ0Cj4gLS0tIGEvZHJpdmVycy9tZmQvS2Nv bmZpZwo+ICsrKyBiL2RyaXZlcnMvbWZkL0tjb25maWcKPiBAQCAtOTEzLDYgKzkxMyw3IEBAIGNv bmZpZyBNRkRfTVQ2MzYwCj4gIAlzZWxlY3QgTUZEX0NPUkUKPiAgCXNlbGVjdCBSRUdNQVBfSTJD Cj4gIAlzZWxlY3QgUkVHTUFQX0lSUQo+ICsJc2VsZWN0IENSQzgKPiAgCWRlcGVuZHMgb24gSTJD Cj4gIAloZWxwCj4gIAkgIFNheSBZIGhlcmUgdG8gZW5hYmxlIE1UNjM2MCBQTVUvUE1JQy9MRE8g ZnVuY3Rpb25hbCBzdXBwb3J0Lgo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL21mZC9tdDYzNjAtY29y ZS5jIGIvZHJpdmVycy9tZmQvbXQ2MzYwLWNvcmUuYwo+IGluZGV4IDA3NWI0NjYuLjJlYzk1NTkg MTAwNjQ0Cj4gLS0tIGEvZHJpdmVycy9tZmQvbXQ2MzYwLWNvcmUuYwo+ICsrKyBiL2RyaXZlcnMv bWZkL210NjM2MC1jb3JlLmMKPiBAQCAtNjIsNiArNjIsMTggQEAgc3RydWN0IG10NjM2MF9kZGF0 YSB7Cj4gIAo+ICAjZGVmaW5lIE1UNjM2MF9DUkM4X1BPTFlOT01JQUwJCTB4Nwo+ICAKPiArI2Rl ZmluZSBNVDYzNjBfQ1JDX0kyQ19BRERSX1NJWkUJMQo+ICsjZGVmaW5lIE1UNjM2MF9DUkNfUkVH X0FERFJfU0laRQkxCj4gKy8qIHByZWFsbG9jYSByZWFkIHNpemUgPSBpMmMgZGV2aWNlIGFkZHIg KyBpMmMgcmVnIGFkZHIgKyB2YWwgLi4uICsgY3JjOCAqLwo+ICsjZGVmaW5lIE1UNjM2MF9BTExP Q19SRUFEX1NJWkUoX3NpemUpCShfc2l6ZSArIDMpCj4gKy8qIHByZWFsbG9jYSB3cml0ZSBzaXpl ID0gaTJjIGRldmljZSBhZGRyICsgaTJjIHJlZyBhZGRyICsgdmFsIC4uLiArIGNyYzggKyBkdW1t eSBieXRlICovCj4gKyNkZWZpbmUgTVQ2MzYwX0FMTE9DX1dSSVRFX1NJWkUoX3NpemUpCShfc2l6 ZSArIDQpCj4gKyNkZWZpbmUgTVQ2MzYwX0NSQ19QUkVEQVRBX09GRlNFVAkoTVQ2MzYwX0NSQ19J MkNfQUREUl9TSVpFICsgTVQ2MzYwX0NSQ19SRUdfQUREUl9TSVpFKQo+ICsjZGVmaW5lIE1UNjM2 MF9DUkNfQ1JDOF9TSVpFCQkxCj4gKyNkZWZpbmUgTVQ2MzYwX0NSQ19EVU1NWV9CWVRFX1NJWkUJ MQo+ICsjZGVmaW5lIE1UNjM2MF9SRUdNQVBfUkVHX0JZVEVfU0laRQkyCj4gKyNkZWZpbmUgSTJD X0FERFJfWExBVEVfOEJJVChfYWRkciwgX3J3KQkoKChfYWRkciAmIDB4N0YpIDw8IDEpICsgX3J3 KQo+ICsKPiAgLyogcmVnIDAgLT4gMCB+IDcgKi8KPiAgI2RlZmluZSBNVDYzNjBfQ0hHX1RSRUdf RVZUCQk0Cj4gICNkZWZpbmUgTVQ2MzYwX0NIR19BSUNSX0VWVAkJNQo+IEBAIC0yNjYsMTIgKzI3 OCw2IEBAIHN0YXRpYyBjb25zdCBzdHJ1Y3QgcmVnbWFwX2lycV9jaGlwIG10NjM2MF9pcnFfY2hp cCA9IHsKPiAgCS51c2VfYWNrID0gdHJ1ZSwKPiAgfTsKPiAgCj4gLXN0YXRpYyBjb25zdCBzdHJ1 Y3QgcmVnbWFwX2NvbmZpZyBtdDYzNjBfcG11X3JlZ21hcF9jb25maWcgPSB7Cj4gLQkucmVnX2Jp dHMgPSA4LAo+IC0JLnZhbF9iaXRzID0gOCwKPiAtCS5tYXhfcmVnaXN0ZXIgPSBNVDYzNjBfUE1V X01BWFJFRywKPiAtfTsKPiAtCj4gIHN0YXRpYyBjb25zdCBzdHJ1Y3QgcmVzb3VyY2UgbXQ2MzYw X2FkY19yZXNvdXJjZXNbXSA9IHsKPiAgCURFRklORV9SRVNfSVJRX05BTUVEKE1UNjM2MF9BRENf RE9ORUksICJhZGNfZG9uZWkiKSwKPiAgfTsKPiBAQCAtMzM0LDcgKzM0MCw3IEBAIHN0YXRpYyBj b25zdCBzdHJ1Y3QgbWZkX2NlbGwgbXQ2MzYwX2RldnNbXSA9IHsKPiAgCU9GX01GRF9DRUxMKCJt dDYzNjAtbGVkIiwgbXQ2MzYwX2xlZF9yZXNvdXJjZXMsCj4gIAkJICAgIE5VTEwsIDAsIDAsICJt ZWRpYXRlayxtdDYzNjAtbGVkIiksCj4gIAlPRl9NRkRfQ0VMTCgibXQ2MzYwLXJlZ3VsYXRvciIs IG10NjM2MF9yZWd1bGF0b3JfcmVzb3VyY2VzLAo+IC0JCSAgICBOVUxMLCAwLCAwLCAibWVkaWF0 ZWssbXQ2MzYwLXJlZ3VsYXRvciIpLAo+ICsJCSAgICBOVUxMLCAwLCAwLCBOVUxMKSwKPiAgCU9G X01GRF9DRUxMKCJtdDYzNjAtdGNwYyIsIE5VTEwsCj4gIAkJICAgIE5VTEwsIDAsIDAsICJtZWRp YXRlayxtdDYzNjAtdGNwYyIpLAo+ICB9Owo+IEBAIC0zNDksNyArMzU1LDcgQEAgc3RhdGljIGlu dCBtdDYzNjBfY2hlY2tfdmVuZG9yX2luZm8oc3RydWN0IG10NjM2MF9kZGF0YSAqZGRhdGEpCj4g IAkJcmV0dXJuIHJldDsKPiAgCj4gIAlpZiAoKGluZm8gJiBDSElQX1ZFTl9NQVNLKSAhPSBDSElQ X1ZFTl9NVDYzNjApIHsKPiAtCQlkZXZfZXJyKCZjbGllbnQtPmRldiwgIkRldmljZSBub3Qgc3Vw cG9ydGVkXG4iKTsKPiArCQlkZXZfZXJyKGRkYXRhLT5kZXYsICJEZXZpY2Ugbm90IHN1cHBvcnRl ZFxuIik7CgpUaGlzIHNlZW1zIGxpa2UgYW4gdW5yZWxhdGVkIGNoYW5nZS4KCj4gIAkJcmV0dXJu IC1FTk9ERVY7Cj4gIAl9Cj4gIAo+IEBAIC0zNTgsMTEgKzM2NCwxNjEgQEAgc3RhdGljIGludCBt dDYzNjBfY2hlY2tfdmVuZG9yX2luZm8oc3RydWN0IG10NjM2MF9kZGF0YSAqZGRhdGEpCj4gIAly ZXR1cm4gMDsKPiAgfQo+ICAKPiAtc3RhdGljIGNvbnN0IHVuc2lnbmVkIHNob3J0IG10NjM2MF9z bGF2ZV9hZGRyW01UNjM2MF9TTEFWRV9NQVhdID0gewo+IC0JTVQ2MzYwX1BNVV9TTEFWRUlELAo+ ICtzdGF0aWMgY29uc3QgdW5zaWduZWQgc2hvcnQgbXQ2MzYwX3NsYXZlX2FkZHJzW01UNjM2MF9T TEFWRV9NQVhdID0gewoKVW5yZWxhdGVkIGNoYW5nZS4KCj4gKwlNVDYzNjBfVENQQ19TTEFWRUlE LAo+ICAJTVQ2MzYwX1BNSUNfU0xBVkVJRCwKPiAgCU1UNjM2MF9MRE9fU0xBVkVJRCwKPiAtCU1U NjM2MF9UQ1BDX1NMQVZFSUQsCj4gKwlNVDYzNjBfUE1VX1NMQVZFSUQsCj4gK307Cj4gKwo+ICtz dGF0aWMgaW50IG10NjM2MF94bGF0ZV9wbWljbGRvX2FkZHIodTggKmFkZHIsIGludCByd19zaXpl KQo+ICt7Cj4gKwkvKiBBZGRyZXNzIGlzIGFscmVhZHkgaW4gZW5jb2RlZCBbNTowXSAqLwo+ICsJ KmFkZHIgJj0gTVQ2MzYwX0FERFJFU1NfTUFTSzsKPiArCj4gKwlzd2l0Y2ggKHJ3X3NpemUpIHsK PiArCWNhc2UgMToKPiArCQkqYWRkciB8PSBNVDYzNjBfREFUQV9TSVpFXzFfQllURTsKPiArCQli cmVhazsKPiArCWNhc2UgMjoKPiArCQkqYWRkciB8PSBNVDYzNjBfREFUQV9TSVpFXzJfQllURVM7 Cj4gKwkJYnJlYWs7Cj4gKwljYXNlIDM6Cj4gKwkJKmFkZHIgfD0gTVQ2MzYwX0RBVEFfU0laRV8z X0JZVEVTOwo+ICsJCWJyZWFrOwo+ICsJY2FzZSA0Ogo+ICsJCSphZGRyIHw9IE1UNjM2MF9EQVRB X1NJWkVfNF9CWVRFUzsKPiArCQlicmVhazsKPiArCWRlZmF1bHQ6Cj4gKwkJcmV0dXJuIC1FSU5W QUw7Cj4gKwl9Cj4gKwo+ICsJcmV0dXJuIDA7Cj4gK30KPiArCj4gK3N0YXRpYyBpbnQgbXQ2MzYw X3JlZ21hcF9yZWFkKHZvaWQgKmNvbnRleHQsIGNvbnN0IHZvaWQgKnJlZywgc2l6ZV90IHJlZ19z aXplLAo+ICsJCQkgICAgICB2b2lkICp2YWwsIHNpemVfdCB2YWxfc2l6ZSkKPiArewo+ICsJc3Ry dWN0IG10NjM2MF9kZGF0YSAqZGRhdGEgPSBjb250ZXh0Owo+ICsJdTggYmFuayA9ICoodTggKily ZWc7Cj4gKwl1OCByZWdfYWRkciA9ICoodTggKikocmVnICsgMSk7Cj4gKwlzdHJ1Y3QgaTJjX2Ns aWVudCAqaTJjID0gZGRhdGEtPmkyY1tiYW5rXTsKPiArCWJvb2wgY3JjX25lZWRlZCA9IGZhbHNl Owo+ICsJdTggKmJ1ZjsKPiArCWludCBidWZfbGVuID0gTVQ2MzYwX0FMTE9DX1JFQURfU0laRSh2 YWxfc2l6ZSk7Cj4gKwlpbnQgcmVhZF9zaXplID0gdmFsX3NpemU7Cj4gKwl1OCBjcmM7Cj4gKwlp bnQgcmV0Owo+ICsKPiArCWlmIChiYW5rID09IE1UNjM2MF9TTEFWRV9QTUlDIHx8IGJhbmsgPT0g TVQ2MzYwX1NMQVZFX0xETykgewo+ICsJCWNyY19uZWVkZWQgPSB0cnVlOwo+ICsJCXJldCA9IG10 NjM2MF94bGF0ZV9wbWljbGRvX2FkZHIoJnJlZ19hZGRyLCB2YWxfc2l6ZSk7Cj4gKwkJaWYgKHJl dCA8IDApCj4gKwkJCXJldHVybiByZXQ7Cj4gKwkJcmVhZF9zaXplICs9IE1UNjM2MF9DUkNfQ1JD OF9TSVpFOwo+ICsJfQo+ICsKPiArCWJ1ZiA9IGt6YWxsb2MoYnVmX2xlbiwgR0ZQX0tFUk5FTCk7 Cj4gKwlpZiAoIWJ1ZikKPiArCQlyZXR1cm4gLUVOT01FTTsKPiArCj4gKwlidWZbMF0gPSBJMkNf QUREUl9YTEFURV84QklUKGkyYy0+YWRkciwgSTJDX1NNQlVTX1JFQUQpOwo+ICsJYnVmWzFdID0g cmVnX2FkZHI7Cj4gKwo+ICsJcmV0ID0gaTJjX3NtYnVzX3JlYWRfaTJjX2Jsb2NrX2RhdGEoaTJj LCByZWdfYWRkciwgcmVhZF9zaXplLAo+ICsJCQkJCSAgICBidWYgKyBNVDYzNjBfQ1JDX1BSRURB VEFfT0ZGU0VUKTsKPiArCWlmIChyZXQgPCAwKQo+ICsJCWdvdG8gb3V0Owo+ICsJZWxzZSBpZiAo cmV0ICE9IHJlYWRfc2l6ZSkgewo+ICsJCXJldCA9IC1FSU87Cj4gKwkJZ290byBvdXQ7Cj4gKwl9 Cj4gKwo+ICsJaWYgKGNyY19uZWVkZWQpIHsKPiArCQljcmMgPSBjcmM4KGRkYXRhLT5jcmM4X3Ri bCwgYnVmLCB2YWxfc2l6ZSArIE1UNjM2MF9DUkNfUFJFREFUQV9PRkZTRVQsIDApOwo+ICsJCWlm IChjcmMgIT0gYnVmW3ZhbF9zaXplICsgTVQ2MzYwX0NSQ19QUkVEQVRBX09GRlNFVF0pIHsKPiAr CQkJcmV0ID0gLUVJTzsKPiArCQkJZ290byBvdXQ7Cj4gKwkJfQo+ICsJfQo+ICsKPiArCW1lbWNw eSh2YWwsIGJ1ZiArIE1UNjM2MF9DUkNfUFJFREFUQV9PRkZTRVQsIHZhbF9zaXplKTsKPiArb3V0 Ogo+ICsJa2ZyZWUoYnVmKTsKPiArCXJldHVybiAocmV0IDwgMCkgPyByZXQgOiAwOwo+ICt9Cj4g Kwo+ICtzdGF0aWMgaW50IG10NjM2MF9yZWdtYXBfd3JpdGUodm9pZCAqY29udGV4dCwgY29uc3Qg dm9pZCAqdmFsLCBzaXplX3QgdmFsX3NpemUpCj4gK3sKPiArCXN0cnVjdCBtdDYzNjBfZGRhdGEg KmRkYXRhID0gY29udGV4dDsKPiArCXU4IGJhbmsgPSAqKHU4ICopdmFsOwo+ICsJdTggcmVnX2Fk ZHIgPSAqKHU4ICopKHZhbCArIDEpOwo+ICsJc3RydWN0IGkyY19jbGllbnQgKmkyYyA9IGRkYXRh LT5pMmNbYmFua107Cj4gKwlib29sIGNyY19uZWVkZWQgPSBmYWxzZTsKPiArCXU4ICpidWY7Cj4g KwlpbnQgYnVmX2xlbiA9IE1UNjM2MF9BTExPQ19XUklURV9TSVpFKHZhbF9zaXplKTsKPiArCWlu dCB3cml0ZV9zaXplID0gdmFsX3NpemUgLSBNVDYzNjBfUkVHTUFQX1JFR19CWVRFX1NJWkU7Cj4g KwlpbnQgcmV0Owo+ICsKPiArCWlmIChiYW5rID09IE1UNjM2MF9TTEFWRV9QTUlDIHx8IGJhbmsg PT0gTVQ2MzYwX1NMQVZFX0xETykgewo+ICsJCWNyY19uZWVkZWQgPSB0cnVlOwo+ICsJCXJldCA9 IG10NjM2MF94bGF0ZV9wbWljbGRvX2FkZHIoJnJlZ19hZGRyLCB2YWxfc2l6ZSAtIE1UNjM2MF9S RUdNQVBfUkVHX0JZVEVfU0laRSk7Cj4gKwkJaWYgKHJldCA8IDApCj4gKwkJCXJldHVybiByZXQ7 Cj4gKwl9Cj4gKwo+ICsJYnVmID0ga3phbGxvYyhidWZfbGVuLCBHRlBfS0VSTkVMKTsKPiArCWlm ICghYnVmKQo+ICsJCXJldHVybiAtRU5PTUVNOwo+ICsKPiArCWJ1ZlswXSA9IEkyQ19BRERSX1hM QVRFXzhCSVQoaTJjLT5hZGRyLCBJMkNfU01CVVNfV1JJVEUpOwo+ICsJYnVmWzFdID0gcmVnX2Fk ZHI7Cj4gKwltZW1jcHkoYnVmICsgTVQ2MzYwX0NSQ19QUkVEQVRBX09GRlNFVCwgdmFsICsgTVQ2 MzYwX1JFR01BUF9SRUdfQllURV9TSVpFLCB3cml0ZV9zaXplKTsKPiArCj4gKwlpZiAoY3JjX25l ZWRlZCkgewo+ICsJCWJ1Zlt2YWxfc2l6ZV0gPSBjcmM4KGRkYXRhLT5jcmM4X3RibCwgYnVmLCB2 YWxfc2l6ZSwgMCk7Cj4gKwkJd3JpdGVfc2l6ZSArPSAoTVQ2MzYwX0NSQ19DUkM4X1NJWkUgKyBN VDYzNjBfQ1JDX0RVTU1ZX0JZVEVfU0laRSk7Cj4gKwl9Cj4gKwo+ICsJcmV0ID0gaTJjX3NtYnVz X3dyaXRlX2kyY19ibG9ja19kYXRhKGkyYywgcmVnX2FkZHIsIHdyaXRlX3NpemUsCj4gKwkJCQkJ ICAgICBidWYgKyBNVDYzNjBfQ1JDX1BSRURBVEFfT0ZGU0VUKTsKPiArCj4gKwlrZnJlZShidWYp Owo+ICsJcmV0dXJuIHJldDsKPiArfQo+ICsKPiArc3RhdGljIGNvbnN0IHN0cnVjdCByZWdtYXBf YnVzIG10NjM2MF9yZWdtYXBfYnVzID0gewo+ICsJLnJlYWQJCT0gbXQ2MzYwX3JlZ21hcF9yZWFk LAo+ICsJLndyaXRlCQk9IG10NjM2MF9yZWdtYXBfd3JpdGUsCj4gKwo+ICsJLyogRHVlIHRvIFBN SUMgYW5kIExETyBDUkMgYWNjZXNzIHNpemUgbGltaXQgKi8KPiArCS5tYXhfcmF3X3JlYWQJPSA0 LAo+ICsJLm1heF9yYXdfd3JpdGUJPSA0LAo+ICt9Owo+ICsKPiArc3RhdGljIGJvb2wgbXQ2MzYw X2lzX3JlYWR3cml0ZV9yZWcoc3RydWN0IGRldmljZSAqZGV2LCB1bnNpZ25lZCBpbnQgcmVnKQo+ ICt7Cj4gKwlzd2l0Y2ggKHJlZykgewo+ICsJY2FzZSBNVDYzNjBfUkVHX1RDUENTVEFSVCAuLi4g TVQ2MzYwX1JFR19UQ1BDRU5EOgo+ICsJCWZhbGx0aHJvdWdoOwo+ICsJY2FzZSBNVDYzNjBfUkVH X1BNSUNTVEFSVCAuLi4gTVQ2MzYwX1JFR19QTUlDRU5EOgo+ICsJCWZhbGx0aHJvdWdoOwo+ICsJ Y2FzZSBNVDYzNjBfUkVHX0xET1NUQVJUIC4uLiBNVDYzNjBfUkVHX0xET0VORDoKPiArCQlmYWxs dGhyb3VnaDsKPiArCWNhc2UgTVQ2MzYwX1JFR19QTVVTVEFSVCAuLi4gTVQ2MzYwX1JFR19QTVVF TkQ6Cj4gKwkJcmV0dXJuIHRydWU7Cj4gKwl9Cj4gKwo+ICsJcmV0dXJuIGZhbHNlOwo+ICt9Cj4g Kwo+ICtzdGF0aWMgY29uc3Qgc3RydWN0IHJlZ21hcF9jb25maWcgbXQ2MzYwX3JlZ21hcF9jb25m aWcgPSB7Cj4gKwkucmVnX2JpdHMJCT0gMTYsCj4gKwkudmFsX2JpdHMJCT0gOCwKPiArCS5yZWdf Zm9ybWF0X2VuZGlhbgk9IFJFR01BUF9FTkRJQU5fQklHLAo+ICsJLm1heF9yZWdpc3RlcgkJPSBN VDYzNjBfUkVHX1BNVUVORCwKPiArCS53cml0ZWFibGVfcmVnCQk9IG10NjM2MF9pc19yZWFkd3Jp dGVfcmVnLAo+ICsJLnJlYWRhYmxlX3JlZwkJPSBtdDYzNjBfaXNfcmVhZHdyaXRlX3JlZywKPiAg fTsKPiAgCj4gIHN0YXRpYyBpbnQgbXQ2MzYwX3Byb2JlKHN0cnVjdCBpMmNfY2xpZW50ICpjbGll bnQpCj4gQEAgLTM3NSw5ICs1MzEsMjMgQEAgc3RhdGljIGludCBtdDYzNjBfcHJvYmUoc3RydWN0 IGkyY19jbGllbnQgKmNsaWVudCkKPiAgCQlyZXR1cm4gLUVOT01FTTsKPiAgCj4gIAlkZGF0YS0+ ZGV2ID0gJmNsaWVudC0+ZGV2Owo+IC0JaTJjX3NldF9jbGllbnRkYXRhKGNsaWVudCwgZGRhdGEp OwoKV2h5IGFyZW4ndCB5b3Ugc2F2aW5nIHRoZSBjbGllbnQgZGF0YSBhbnltb3JlPwoKPiAtCWRk YXRhLT5yZWdtYXAgPSBkZXZtX3JlZ21hcF9pbml0X2kyYyhjbGllbnQsICZtdDYzNjBfcG11X3Jl Z21hcF9jb25maWcpOwo+ICsJZm9yIChpID0gMDsgaSA8IE1UNjM2MF9TTEFWRV9NQVggLSAxOyBp KyspIHsKPiArCQlkZGF0YS0+aTJjW2ldID0gZGV2bV9pMmNfbmV3X2R1bW15X2RldmljZSgmY2xp ZW50LT5kZXYsCj4gKwkJCQkJCQkgIGNsaWVudC0+YWRhcHRlciwKPiArCQkJCQkJCSAgbXQ2MzYw X3NsYXZlX2FkZHJzW2ldKTsKPiArCQlpZiAoSVNfRVJSKGRkYXRhLT5pMmNbaV0pKSB7Cj4gKwkJ CWRldl9lcnIoJmNsaWVudC0+ZGV2LAo+ICsJCQkJIkZhaWxlZCB0byBnZXQgbmV3IGR1bW15IEky QyBkZXZpY2UgZm9yIGFkZHJlc3MgMHgleCIsCj4gKwkJCQltdDYzNjBfc2xhdmVfYWRkcnNbaV0p Owo+ICsJCQlyZXR1cm4gUFRSX0VSUihkZGF0YS0+aTJjW2ldKTsKPiArCQl9Cj4gKwl9Cj4gKwlk ZGF0YS0+aTJjW01UNjM2MF9TTEFWRV9NQVggLSAxXSA9IGNsaWVudDsKPiArCj4gKwljcmM4X3Bv cHVsYXRlX21zYihkZGF0YS0+Y3JjOF90YmwsIE1UNjM2MF9DUkM4X1BPTFlOT01JQUwpOwo+ICsJ ZGRhdGEtPnJlZ21hcCA9IGRldm1fcmVnbWFwX2luaXQoZGRhdGEtPmRldiwgJm10NjM2MF9yZWdt YXBfYnVzLCBkZGF0YSwKPiArCQkJCQkgJm10NjM2MF9yZWdtYXBfY29uZmlnKTsKPiAgCWlmIChJ U19FUlIoZGRhdGEtPnJlZ21hcCkpIHsKPiAgCQlkZXZfZXJyKCZjbGllbnQtPmRldiwgIkZhaWxl ZCB0byByZWdpc3RlciByZWdtYXBcbiIpOwo+ICAJCXJldHVybiBQVFJfRVJSKGRkYXRhLT5yZWdt YXApOwo+IEBAIC0zODcsMzQgKzU1NywxOCBAQCBzdGF0aWMgaW50IG10NjM2MF9wcm9iZShzdHJ1 Y3QgaTJjX2NsaWVudCAqY2xpZW50KQo+ICAJaWYgKHJldCkKPiAgCQlyZXR1cm4gcmV0Owo+ICAK PiAtCXJldCA9IGRldm1fcmVnbWFwX2FkZF9pcnFfY2hpcCgmY2xpZW50LT5kZXYsIGRkYXRhLT5y ZWdtYXAsIGNsaWVudC0+aXJxLAo+IC0JCQkJICAgICAgIDAsIDAsICZtdDYzNjBfaXJxX2NoaXAs Cj4gLQkJCQkgICAgICAgJmRkYXRhLT5pcnFfZGF0YSk7Cj4gKwlyZXQgPSBkZXZtX3JlZ21hcF9h ZGRfaXJxX2NoaXAoJmNsaWVudC0+ZGV2LCBkZGF0YS0+cmVnbWFwLCBjbGllbnQtPmlycSwgMCwg MCwKPiArCQkJCSAgICAgICAmbXQ2MzYwX2lycV9jaGlwLCAmZGRhdGEtPmlycV9kYXRhKTsKClVu cmVsYXRlZCBjaGFuZ2U/Cgo+ICAJaWYgKHJldCkgewo+ICAJCWRldl9lcnIoJmNsaWVudC0+ZGV2 LCAiRmFpbGVkIHRvIGFkZCBSZWdtYXAgSVJRIENoaXBcbiIpOwo+ICAJCXJldHVybiByZXQ7Cj4g IAl9Cj4gIAo+IC0JZGRhdGEtPmkyY1swXSA9IGNsaWVudDsKPiAtCWZvciAoaSA9IDE7IGkgPCBN VDYzNjBfU0xBVkVfTUFYOyBpKyspIHsKPiAtCQlkZGF0YS0+aTJjW2ldID0gZGV2bV9pMmNfbmV3 X2R1bW15X2RldmljZSgmY2xpZW50LT5kZXYsCj4gLQkJCQkJCQljbGllbnQtPmFkYXB0ZXIsCj4g LQkJCQkJCQltdDYzNjBfc2xhdmVfYWRkcltpXSk7Cj4gLQkJaWYgKElTX0VSUihkZGF0YS0+aTJj W2ldKSkgewo+IC0JCQlkZXZfZXJyKCZjbGllbnQtPmRldiwKPiAtCQkJCSJGYWlsZWQgdG8gZ2V0 IG5ldyBkdW1teSBJMkMgZGV2aWNlIGZvciBhZGRyZXNzIDB4JXgiLAo+IC0JCQkJbXQ2MzYwX3Ns YXZlX2FkZHJbaV0pOwo+IC0JCQlyZXR1cm4gUFRSX0VSUihkZGF0YS0+aTJjW2ldKTsKPiAtCQl9 Cj4gLQkJaTJjX3NldF9jbGllbnRkYXRhKGRkYXRhLT5pMmNbaV0sIGRkYXRhKTsKPiAtCX0KPiAt Cgo+IC0JcmV0ID0gZGV2bV9tZmRfYWRkX2RldmljZXMoJmNsaWVudC0+ZGV2LCBQTEFURk9STV9E RVZJRF9BVVRPLAo+IC0JCQkJICAgbXQ2MzYwX2RldnMsIEFSUkFZX1NJWkUobXQ2MzYwX2RldnMp LCBOVUxMLAo+IC0JCQkJICAgMCwgcmVnbWFwX2lycV9nZXRfZG9tYWluKGRkYXRhLT5pcnFfZGF0 YSkpOwo+ICsJcmV0ID0gZGV2bV9tZmRfYWRkX2RldmljZXMoJmNsaWVudC0+ZGV2LCBQTEFURk9S TV9ERVZJRF9BVVRPLCBtdDYzNjBfZGV2cywKPiArCQkJCSAgIEFSUkFZX1NJWkUobXQ2MzYwX2Rl dnMpLCBOVUxMLCAwLAo+ICsJCQkJICAgcmVnbWFwX2lycV9nZXRfZG9tYWluKGRkYXRhLT5pcnFf ZGF0YSkpOwoKVW5yZWxhdGVkIGNoYW5nZT8KCj4gIAlpZiAocmV0KSB7Cj4gLQkJZGV2X2Vycigm Y2xpZW50LT5kZXYsCj4gLQkJCSJGYWlsZWQgdG8gcmVnaXN0ZXIgc3Vib3JkaW5hdGUgZGV2aWNl c1xuIik7Cj4gKwkJZGV2X2VycigmY2xpZW50LT5kZXYsICJGYWlsZWQgdG8gcmVnaXN0ZXIgc3Vi b3JkaW5hdGUgZGV2aWNlc1xuIik7CgpVbnJlbGF0ZWQgY2hhbmdlPwoKWW91IHNob3VsZCByZW1v dmUgYWxsIG9mIHRoZXNlIGZyb20gdGhpcyBwYXRjaCB3aGVuIHlvdSByZS1zcGluLgoKPiAgCQly ZXR1cm4gcmV0Owo+ICAJfQo+ICAKCi0tIApMZWUgSm9uZXMgW+adjueQvOaWr10KU2VuaW9yIFRl Y2huaWNhbCBMZWFkIC0gRGV2ZWxvcGVyIFNlcnZpY2VzCkxpbmFyby5vcmcg4pSCIE9wZW4gc291 cmNlIHNvZnR3YXJlIGZvciBBcm0gU29DcwpGb2xsb3cgTGluYXJvOiBGYWNlYm9vayB8IFR3aXR0 ZXIgfCBCbG9nCgpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f XwpMaW51eC1tZWRpYXRlayBtYWlsaW5nIGxpc3QKTGludXgtbWVkaWF0ZWtAbGlzdHMuaW5mcmFk ZWFkLm9yZwpodHRwOi8vbGlzdHMuaW5mcmFkZWFkLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2xpbnV4 LW1lZGlhdGVrCg== 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=-7.0 required=3.0 tests=BAYES_00,DKIMWL_WL_HIGH, DKIM_SIGNED,DKIM_VALID,HEADER_FROM_DIFFERENT_DOMAINS,INCLUDES_PATCH, MAILING_LIST_MULTI,SIGNED_OFF_BY,SPF_HELO_NONE,SPF_PASS, UNWANTED_LANGUAGE_BODY,URIBL_BLOCKED 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 A4B36C2D0A3 for ; Wed, 4 Nov 2020 15:40:22 +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 1E53D2072C for ; Wed, 4 Nov 2020 15:40:21 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=pass (2048-bit key) header.d=lists.infradead.org header.i=@lists.infradead.org header.b="1Dor3jnd"; dkim=fail reason="signature verification failed" (2048-bit key) header.d=linaro.org header.i=@linaro.org header.b="wLzmKttu" DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 1E53D2072C 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:References:Message-ID: Subject:To:From:Date:Reply-To:Content-ID:Content-Description:Resent-Date: Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID:List-Owner; bh=IUDijmU3izctAusHK41+b+PHd7QgZJbUMoOfB2BanGs=; b=1Dor3jndqRpfWRP/hChBkfwpB mAyB2QKLPT0R/6s8hnuZDaBdBeVoBHWNU2oghlWKh0dyS25YIbvbBXUzCXM8sl2EeIC3j2S2nfavi Spnog8gaXT3D0O78w5ZVoMlu5XD0Ph9iWrSbZPMqfERts52/x0/fev3g4tYCI4Dlgj2pysvaTS14u jgT4kcQEyvMhqp0mxIrCEgT8L/SA/XiPKVPscsCoeKoHX8l0Wmz423LadPxu3egb0TXLp7MHwwZys PbMYQhePnOLf15QffXirDUswCInbapkyNUStx3bqPzHcEazGUkhGh+tXq9uV2mY3iBXUthY6oJgcM xd6BpDwSA==; Received: from localhost ([::1] helo=merlin.infradead.org) by merlin.infradead.org with esmtp (Exim 4.92.3 #3 (Red Hat Linux)) id 1kaKsA-0003fu-MA; Wed, 04 Nov 2020 15:38:54 +0000 Received: from mail-wm1-x341.google.com ([2a00:1450:4864:20::341]) by merlin.infradead.org with esmtps (Exim 4.92.3 #3 (Red Hat Linux)) id 1kaKs6-0003ef-Kv for linux-arm-kernel@lists.infradead.org; Wed, 04 Nov 2020 15:38:52 +0000 Received: by mail-wm1-x341.google.com with SMTP id c9so2772070wml.5 for ; Wed, 04 Nov 2020 07:38:48 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; h=date:from:to:cc:subject:message-id:references:mime-version :content-disposition:content-transfer-encoding:in-reply-to; bh=B81fQ5xHaQ/yrMSa1yDIBHJseRR/8A0pHv9OArYo8cU=; b=wLzmKttuLo18fcXHfeCevLhrM1Pyh0Gu9tRhzivyTZs25wjTpa4zPDGh5k7v2lh4Fq NCofbJADTQb95FxFTO2zlFjxMtk+x7aRpi2PmBIeIkjSu1kubu0Jf1oFLWDvJvOuMosp PQBXzxI0oZghuk2Slk5F/WjhjvxEliLQjTzIkl8qK8soKNn9Nh4NXdhBHKbJiPv4tAQl sQsIyHTbLynCYzjW6NQ2BY2QyoJdYZ8kYCC2/DDrji1WrLe1H2Z27DgOCaTanNHgAjVt 4XiD7wFKpea399ERBvoQTNR0d9hUCiqGI101/AKGsd9uOcZdo9VpeRa3j83urLZ2F5CE TV2w== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:date:from:to:cc:subject:message-id:references :mime-version:content-disposition:content-transfer-encoding :in-reply-to; bh=B81fQ5xHaQ/yrMSa1yDIBHJseRR/8A0pHv9OArYo8cU=; b=nVZTcEv9bLh6L9Y4LES3QnEQl95gYdGKO6afPX7uVA2JzgJOaRkvE7FSOz1meUc0+2 X1b87I4fn7j1NL2pAyeJMTrQqtv3jJ0luHFdKg4IMxLT2+K2qy3bgqU3YVeUl0fP666B eEUoQmxAMfPa+spBmluOs2dgund4wgegKAcPY6PceN+Jc6g+3c56+7nDqtMRmfDYFPvL N4hT91Rvfm/M0aWNQS1HWFREPPAuykv+vzoPbM2KaxwnEeRKcj2GsDNjrM7m00H9QgvP 1DwZxky1xvkVOZL//6eLdyxkee58QfKVptDSGnDM4TUG2BRe9bmd/zWyL20ye1PWpnup dHrw== X-Gm-Message-State: AOAM531x2zv6sKvd+RJxA9FrVvGOfLZwUwymffd1syicGQAI4rx7E/vN w0aCYY1l1M76o/sOQm42I/eMKw== X-Google-Smtp-Source: ABdhPJwERh/SC3WoDOujs22lTdCpF33cv6JBegP3w6PqQpsREVN62NQow5YWY9qDcQaoLWm/J79wqA== X-Received: by 2002:a1c:750b:: with SMTP id o11mr5417896wmc.32.1604504327738; Wed, 04 Nov 2020 07:38:47 -0800 (PST) Received: from dell ([91.110.221.242]) by smtp.gmail.com with ESMTPSA id v67sm2783592wma.17.2020.11.04.07.38.46 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 04 Nov 2020 07:38:46 -0800 (PST) Date: Wed, 4 Nov 2020 15:38:45 +0000 From: Lee Jones To: Gene Chen Subject: Re: [PATCH v5 10/10] mfd: mt6360: Merge different sub-devices I2C read/write Message-ID: <20201104153845.GN4488@dell> References: <1600770019-11585-1-git-send-email-gene.chen.richtek@gmail.com> <1600770019-11585-11-git-send-email-gene.chen.richtek@gmail.com> MIME-Version: 1.0 Content-Disposition: inline In-Reply-To: <1600770019-11585-11-git-send-email-gene.chen.richtek@gmail.com> X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20201104_103850_774792_3BA335FF X-CRM114-Status: GOOD ( 30.61 ) 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: gene_chen@richtek.com, linux-kernel@vger.kernel.org, cy_huang@richtek.com, benjamin.chao@mediatek.com, linux-mediatek@lists.infradead.org, matthias.bgg@gmail.com, Wilma.Wu@mediatek.com, linux-arm-kernel@lists.infradead.org, shufan_lee@richtek.com 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 T24gVHVlLCAyMiBTZXAgMjAyMCwgR2VuZSBDaGVuIHdyb3RlOgoKPiBGcm9tOiBHZW5lIENoZW4g PGdlbmVfY2hlbkByaWNodGVrLmNvbT4KPiAKPiBNZXJnZSBkaWZmZXJlbnQgc3ViLWRldmljZXMg STJDIHJlYWQvd3JpdGUgZnVuY3Rpb25zIGludG8gb25lIFJlZ21hcCwKPiBiZWNhdXNlIFBNSUMg YW5kIExETyBwYXJ0IG5lZWQgQ1JDIGJpdHMgZm9yIGFjY2VzcyBwcm90ZWN0aW9uLgo+IAo+IFNp Z25lZC1vZmYtYnk6IEdlbmUgQ2hlbiA8Z2VuZV9jaGVuQHJpY2h0ZWsuY29tPgo+IC0tLQo+ICBk cml2ZXJzL21mZC9LY29uZmlnICAgICAgIHwgICAxICsKPiAgZHJpdmVycy9tZmQvbXQ2MzYwLWNv cmUuYyB8IDIyNCArKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKy0tLS0tLS0t Cj4gIDIgZmlsZXMgY2hhbmdlZCwgMTkwIGluc2VydGlvbnMoKyksIDM1IGRlbGV0aW9ucygtKQo+ IAo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL21mZC9LY29uZmlnIGIvZHJpdmVycy9tZmQvS2NvbmZp Zwo+IGluZGV4IDMzZGYwODMuLjFkZmU0NDYgMTAwNjQ0Cj4gLS0tIGEvZHJpdmVycy9tZmQvS2Nv bmZpZwo+ICsrKyBiL2RyaXZlcnMvbWZkL0tjb25maWcKPiBAQCAtOTEzLDYgKzkxMyw3IEBAIGNv bmZpZyBNRkRfTVQ2MzYwCj4gIAlzZWxlY3QgTUZEX0NPUkUKPiAgCXNlbGVjdCBSRUdNQVBfSTJD Cj4gIAlzZWxlY3QgUkVHTUFQX0lSUQo+ICsJc2VsZWN0IENSQzgKPiAgCWRlcGVuZHMgb24gSTJD Cj4gIAloZWxwCj4gIAkgIFNheSBZIGhlcmUgdG8gZW5hYmxlIE1UNjM2MCBQTVUvUE1JQy9MRE8g ZnVuY3Rpb25hbCBzdXBwb3J0Lgo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL21mZC9tdDYzNjAtY29y ZS5jIGIvZHJpdmVycy9tZmQvbXQ2MzYwLWNvcmUuYwo+IGluZGV4IDA3NWI0NjYuLjJlYzk1NTkg MTAwNjQ0Cj4gLS0tIGEvZHJpdmVycy9tZmQvbXQ2MzYwLWNvcmUuYwo+ICsrKyBiL2RyaXZlcnMv bWZkL210NjM2MC1jb3JlLmMKPiBAQCAtNjIsNiArNjIsMTggQEAgc3RydWN0IG10NjM2MF9kZGF0 YSB7Cj4gIAo+ICAjZGVmaW5lIE1UNjM2MF9DUkM4X1BPTFlOT01JQUwJCTB4Nwo+ICAKPiArI2Rl ZmluZSBNVDYzNjBfQ1JDX0kyQ19BRERSX1NJWkUJMQo+ICsjZGVmaW5lIE1UNjM2MF9DUkNfUkVH X0FERFJfU0laRQkxCj4gKy8qIHByZWFsbG9jYSByZWFkIHNpemUgPSBpMmMgZGV2aWNlIGFkZHIg KyBpMmMgcmVnIGFkZHIgKyB2YWwgLi4uICsgY3JjOCAqLwo+ICsjZGVmaW5lIE1UNjM2MF9BTExP Q19SRUFEX1NJWkUoX3NpemUpCShfc2l6ZSArIDMpCj4gKy8qIHByZWFsbG9jYSB3cml0ZSBzaXpl ID0gaTJjIGRldmljZSBhZGRyICsgaTJjIHJlZyBhZGRyICsgdmFsIC4uLiArIGNyYzggKyBkdW1t eSBieXRlICovCj4gKyNkZWZpbmUgTVQ2MzYwX0FMTE9DX1dSSVRFX1NJWkUoX3NpemUpCShfc2l6 ZSArIDQpCj4gKyNkZWZpbmUgTVQ2MzYwX0NSQ19QUkVEQVRBX09GRlNFVAkoTVQ2MzYwX0NSQ19J MkNfQUREUl9TSVpFICsgTVQ2MzYwX0NSQ19SRUdfQUREUl9TSVpFKQo+ICsjZGVmaW5lIE1UNjM2 MF9DUkNfQ1JDOF9TSVpFCQkxCj4gKyNkZWZpbmUgTVQ2MzYwX0NSQ19EVU1NWV9CWVRFX1NJWkUJ MQo+ICsjZGVmaW5lIE1UNjM2MF9SRUdNQVBfUkVHX0JZVEVfU0laRQkyCj4gKyNkZWZpbmUgSTJD X0FERFJfWExBVEVfOEJJVChfYWRkciwgX3J3KQkoKChfYWRkciAmIDB4N0YpIDw8IDEpICsgX3J3 KQo+ICsKPiAgLyogcmVnIDAgLT4gMCB+IDcgKi8KPiAgI2RlZmluZSBNVDYzNjBfQ0hHX1RSRUdf RVZUCQk0Cj4gICNkZWZpbmUgTVQ2MzYwX0NIR19BSUNSX0VWVAkJNQo+IEBAIC0yNjYsMTIgKzI3 OCw2IEBAIHN0YXRpYyBjb25zdCBzdHJ1Y3QgcmVnbWFwX2lycV9jaGlwIG10NjM2MF9pcnFfY2hp cCA9IHsKPiAgCS51c2VfYWNrID0gdHJ1ZSwKPiAgfTsKPiAgCj4gLXN0YXRpYyBjb25zdCBzdHJ1 Y3QgcmVnbWFwX2NvbmZpZyBtdDYzNjBfcG11X3JlZ21hcF9jb25maWcgPSB7Cj4gLQkucmVnX2Jp dHMgPSA4LAo+IC0JLnZhbF9iaXRzID0gOCwKPiAtCS5tYXhfcmVnaXN0ZXIgPSBNVDYzNjBfUE1V X01BWFJFRywKPiAtfTsKPiAtCj4gIHN0YXRpYyBjb25zdCBzdHJ1Y3QgcmVzb3VyY2UgbXQ2MzYw X2FkY19yZXNvdXJjZXNbXSA9IHsKPiAgCURFRklORV9SRVNfSVJRX05BTUVEKE1UNjM2MF9BRENf RE9ORUksICJhZGNfZG9uZWkiKSwKPiAgfTsKPiBAQCAtMzM0LDcgKzM0MCw3IEBAIHN0YXRpYyBj b25zdCBzdHJ1Y3QgbWZkX2NlbGwgbXQ2MzYwX2RldnNbXSA9IHsKPiAgCU9GX01GRF9DRUxMKCJt dDYzNjAtbGVkIiwgbXQ2MzYwX2xlZF9yZXNvdXJjZXMsCj4gIAkJICAgIE5VTEwsIDAsIDAsICJt ZWRpYXRlayxtdDYzNjAtbGVkIiksCj4gIAlPRl9NRkRfQ0VMTCgibXQ2MzYwLXJlZ3VsYXRvciIs IG10NjM2MF9yZWd1bGF0b3JfcmVzb3VyY2VzLAo+IC0JCSAgICBOVUxMLCAwLCAwLCAibWVkaWF0 ZWssbXQ2MzYwLXJlZ3VsYXRvciIpLAo+ICsJCSAgICBOVUxMLCAwLCAwLCBOVUxMKSwKPiAgCU9G X01GRF9DRUxMKCJtdDYzNjAtdGNwYyIsIE5VTEwsCj4gIAkJICAgIE5VTEwsIDAsIDAsICJtZWRp YXRlayxtdDYzNjAtdGNwYyIpLAo+ICB9Owo+IEBAIC0zNDksNyArMzU1LDcgQEAgc3RhdGljIGlu dCBtdDYzNjBfY2hlY2tfdmVuZG9yX2luZm8oc3RydWN0IG10NjM2MF9kZGF0YSAqZGRhdGEpCj4g IAkJcmV0dXJuIHJldDsKPiAgCj4gIAlpZiAoKGluZm8gJiBDSElQX1ZFTl9NQVNLKSAhPSBDSElQ X1ZFTl9NVDYzNjApIHsKPiAtCQlkZXZfZXJyKCZjbGllbnQtPmRldiwgIkRldmljZSBub3Qgc3Vw cG9ydGVkXG4iKTsKPiArCQlkZXZfZXJyKGRkYXRhLT5kZXYsICJEZXZpY2Ugbm90IHN1cHBvcnRl ZFxuIik7CgpUaGlzIHNlZW1zIGxpa2UgYW4gdW5yZWxhdGVkIGNoYW5nZS4KCj4gIAkJcmV0dXJu IC1FTk9ERVY7Cj4gIAl9Cj4gIAo+IEBAIC0zNTgsMTEgKzM2NCwxNjEgQEAgc3RhdGljIGludCBt dDYzNjBfY2hlY2tfdmVuZG9yX2luZm8oc3RydWN0IG10NjM2MF9kZGF0YSAqZGRhdGEpCj4gIAly ZXR1cm4gMDsKPiAgfQo+ICAKPiAtc3RhdGljIGNvbnN0IHVuc2lnbmVkIHNob3J0IG10NjM2MF9z bGF2ZV9hZGRyW01UNjM2MF9TTEFWRV9NQVhdID0gewo+IC0JTVQ2MzYwX1BNVV9TTEFWRUlELAo+ ICtzdGF0aWMgY29uc3QgdW5zaWduZWQgc2hvcnQgbXQ2MzYwX3NsYXZlX2FkZHJzW01UNjM2MF9T TEFWRV9NQVhdID0gewoKVW5yZWxhdGVkIGNoYW5nZS4KCj4gKwlNVDYzNjBfVENQQ19TTEFWRUlE LAo+ICAJTVQ2MzYwX1BNSUNfU0xBVkVJRCwKPiAgCU1UNjM2MF9MRE9fU0xBVkVJRCwKPiAtCU1U NjM2MF9UQ1BDX1NMQVZFSUQsCj4gKwlNVDYzNjBfUE1VX1NMQVZFSUQsCj4gK307Cj4gKwo+ICtz dGF0aWMgaW50IG10NjM2MF94bGF0ZV9wbWljbGRvX2FkZHIodTggKmFkZHIsIGludCByd19zaXpl KQo+ICt7Cj4gKwkvKiBBZGRyZXNzIGlzIGFscmVhZHkgaW4gZW5jb2RlZCBbNTowXSAqLwo+ICsJ KmFkZHIgJj0gTVQ2MzYwX0FERFJFU1NfTUFTSzsKPiArCj4gKwlzd2l0Y2ggKHJ3X3NpemUpIHsK PiArCWNhc2UgMToKPiArCQkqYWRkciB8PSBNVDYzNjBfREFUQV9TSVpFXzFfQllURTsKPiArCQli cmVhazsKPiArCWNhc2UgMjoKPiArCQkqYWRkciB8PSBNVDYzNjBfREFUQV9TSVpFXzJfQllURVM7 Cj4gKwkJYnJlYWs7Cj4gKwljYXNlIDM6Cj4gKwkJKmFkZHIgfD0gTVQ2MzYwX0RBVEFfU0laRV8z X0JZVEVTOwo+ICsJCWJyZWFrOwo+ICsJY2FzZSA0Ogo+ICsJCSphZGRyIHw9IE1UNjM2MF9EQVRB X1NJWkVfNF9CWVRFUzsKPiArCQlicmVhazsKPiArCWRlZmF1bHQ6Cj4gKwkJcmV0dXJuIC1FSU5W QUw7Cj4gKwl9Cj4gKwo+ICsJcmV0dXJuIDA7Cj4gK30KPiArCj4gK3N0YXRpYyBpbnQgbXQ2MzYw X3JlZ21hcF9yZWFkKHZvaWQgKmNvbnRleHQsIGNvbnN0IHZvaWQgKnJlZywgc2l6ZV90IHJlZ19z aXplLAo+ICsJCQkgICAgICB2b2lkICp2YWwsIHNpemVfdCB2YWxfc2l6ZSkKPiArewo+ICsJc3Ry dWN0IG10NjM2MF9kZGF0YSAqZGRhdGEgPSBjb250ZXh0Owo+ICsJdTggYmFuayA9ICoodTggKily ZWc7Cj4gKwl1OCByZWdfYWRkciA9ICoodTggKikocmVnICsgMSk7Cj4gKwlzdHJ1Y3QgaTJjX2Ns aWVudCAqaTJjID0gZGRhdGEtPmkyY1tiYW5rXTsKPiArCWJvb2wgY3JjX25lZWRlZCA9IGZhbHNl Owo+ICsJdTggKmJ1ZjsKPiArCWludCBidWZfbGVuID0gTVQ2MzYwX0FMTE9DX1JFQURfU0laRSh2 YWxfc2l6ZSk7Cj4gKwlpbnQgcmVhZF9zaXplID0gdmFsX3NpemU7Cj4gKwl1OCBjcmM7Cj4gKwlp bnQgcmV0Owo+ICsKPiArCWlmIChiYW5rID09IE1UNjM2MF9TTEFWRV9QTUlDIHx8IGJhbmsgPT0g TVQ2MzYwX1NMQVZFX0xETykgewo+ICsJCWNyY19uZWVkZWQgPSB0cnVlOwo+ICsJCXJldCA9IG10 NjM2MF94bGF0ZV9wbWljbGRvX2FkZHIoJnJlZ19hZGRyLCB2YWxfc2l6ZSk7Cj4gKwkJaWYgKHJl dCA8IDApCj4gKwkJCXJldHVybiByZXQ7Cj4gKwkJcmVhZF9zaXplICs9IE1UNjM2MF9DUkNfQ1JD OF9TSVpFOwo+ICsJfQo+ICsKPiArCWJ1ZiA9IGt6YWxsb2MoYnVmX2xlbiwgR0ZQX0tFUk5FTCk7 Cj4gKwlpZiAoIWJ1ZikKPiArCQlyZXR1cm4gLUVOT01FTTsKPiArCj4gKwlidWZbMF0gPSBJMkNf QUREUl9YTEFURV84QklUKGkyYy0+YWRkciwgSTJDX1NNQlVTX1JFQUQpOwo+ICsJYnVmWzFdID0g cmVnX2FkZHI7Cj4gKwo+ICsJcmV0ID0gaTJjX3NtYnVzX3JlYWRfaTJjX2Jsb2NrX2RhdGEoaTJj LCByZWdfYWRkciwgcmVhZF9zaXplLAo+ICsJCQkJCSAgICBidWYgKyBNVDYzNjBfQ1JDX1BSRURB VEFfT0ZGU0VUKTsKPiArCWlmIChyZXQgPCAwKQo+ICsJCWdvdG8gb3V0Owo+ICsJZWxzZSBpZiAo cmV0ICE9IHJlYWRfc2l6ZSkgewo+ICsJCXJldCA9IC1FSU87Cj4gKwkJZ290byBvdXQ7Cj4gKwl9 Cj4gKwo+ICsJaWYgKGNyY19uZWVkZWQpIHsKPiArCQljcmMgPSBjcmM4KGRkYXRhLT5jcmM4X3Ri bCwgYnVmLCB2YWxfc2l6ZSArIE1UNjM2MF9DUkNfUFJFREFUQV9PRkZTRVQsIDApOwo+ICsJCWlm IChjcmMgIT0gYnVmW3ZhbF9zaXplICsgTVQ2MzYwX0NSQ19QUkVEQVRBX09GRlNFVF0pIHsKPiAr CQkJcmV0ID0gLUVJTzsKPiArCQkJZ290byBvdXQ7Cj4gKwkJfQo+ICsJfQo+ICsKPiArCW1lbWNw eSh2YWwsIGJ1ZiArIE1UNjM2MF9DUkNfUFJFREFUQV9PRkZTRVQsIHZhbF9zaXplKTsKPiArb3V0 Ogo+ICsJa2ZyZWUoYnVmKTsKPiArCXJldHVybiAocmV0IDwgMCkgPyByZXQgOiAwOwo+ICt9Cj4g Kwo+ICtzdGF0aWMgaW50IG10NjM2MF9yZWdtYXBfd3JpdGUodm9pZCAqY29udGV4dCwgY29uc3Qg dm9pZCAqdmFsLCBzaXplX3QgdmFsX3NpemUpCj4gK3sKPiArCXN0cnVjdCBtdDYzNjBfZGRhdGEg KmRkYXRhID0gY29udGV4dDsKPiArCXU4IGJhbmsgPSAqKHU4ICopdmFsOwo+ICsJdTggcmVnX2Fk ZHIgPSAqKHU4ICopKHZhbCArIDEpOwo+ICsJc3RydWN0IGkyY19jbGllbnQgKmkyYyA9IGRkYXRh LT5pMmNbYmFua107Cj4gKwlib29sIGNyY19uZWVkZWQgPSBmYWxzZTsKPiArCXU4ICpidWY7Cj4g KwlpbnQgYnVmX2xlbiA9IE1UNjM2MF9BTExPQ19XUklURV9TSVpFKHZhbF9zaXplKTsKPiArCWlu dCB3cml0ZV9zaXplID0gdmFsX3NpemUgLSBNVDYzNjBfUkVHTUFQX1JFR19CWVRFX1NJWkU7Cj4g KwlpbnQgcmV0Owo+ICsKPiArCWlmIChiYW5rID09IE1UNjM2MF9TTEFWRV9QTUlDIHx8IGJhbmsg PT0gTVQ2MzYwX1NMQVZFX0xETykgewo+ICsJCWNyY19uZWVkZWQgPSB0cnVlOwo+ICsJCXJldCA9 IG10NjM2MF94bGF0ZV9wbWljbGRvX2FkZHIoJnJlZ19hZGRyLCB2YWxfc2l6ZSAtIE1UNjM2MF9S RUdNQVBfUkVHX0JZVEVfU0laRSk7Cj4gKwkJaWYgKHJldCA8IDApCj4gKwkJCXJldHVybiByZXQ7 Cj4gKwl9Cj4gKwo+ICsJYnVmID0ga3phbGxvYyhidWZfbGVuLCBHRlBfS0VSTkVMKTsKPiArCWlm ICghYnVmKQo+ICsJCXJldHVybiAtRU5PTUVNOwo+ICsKPiArCWJ1ZlswXSA9IEkyQ19BRERSX1hM QVRFXzhCSVQoaTJjLT5hZGRyLCBJMkNfU01CVVNfV1JJVEUpOwo+ICsJYnVmWzFdID0gcmVnX2Fk ZHI7Cj4gKwltZW1jcHkoYnVmICsgTVQ2MzYwX0NSQ19QUkVEQVRBX09GRlNFVCwgdmFsICsgTVQ2 MzYwX1JFR01BUF9SRUdfQllURV9TSVpFLCB3cml0ZV9zaXplKTsKPiArCj4gKwlpZiAoY3JjX25l ZWRlZCkgewo+ICsJCWJ1Zlt2YWxfc2l6ZV0gPSBjcmM4KGRkYXRhLT5jcmM4X3RibCwgYnVmLCB2 YWxfc2l6ZSwgMCk7Cj4gKwkJd3JpdGVfc2l6ZSArPSAoTVQ2MzYwX0NSQ19DUkM4X1NJWkUgKyBN VDYzNjBfQ1JDX0RVTU1ZX0JZVEVfU0laRSk7Cj4gKwl9Cj4gKwo+ICsJcmV0ID0gaTJjX3NtYnVz X3dyaXRlX2kyY19ibG9ja19kYXRhKGkyYywgcmVnX2FkZHIsIHdyaXRlX3NpemUsCj4gKwkJCQkJ ICAgICBidWYgKyBNVDYzNjBfQ1JDX1BSRURBVEFfT0ZGU0VUKTsKPiArCj4gKwlrZnJlZShidWYp Owo+ICsJcmV0dXJuIHJldDsKPiArfQo+ICsKPiArc3RhdGljIGNvbnN0IHN0cnVjdCByZWdtYXBf YnVzIG10NjM2MF9yZWdtYXBfYnVzID0gewo+ICsJLnJlYWQJCT0gbXQ2MzYwX3JlZ21hcF9yZWFk LAo+ICsJLndyaXRlCQk9IG10NjM2MF9yZWdtYXBfd3JpdGUsCj4gKwo+ICsJLyogRHVlIHRvIFBN SUMgYW5kIExETyBDUkMgYWNjZXNzIHNpemUgbGltaXQgKi8KPiArCS5tYXhfcmF3X3JlYWQJPSA0 LAo+ICsJLm1heF9yYXdfd3JpdGUJPSA0LAo+ICt9Owo+ICsKPiArc3RhdGljIGJvb2wgbXQ2MzYw X2lzX3JlYWR3cml0ZV9yZWcoc3RydWN0IGRldmljZSAqZGV2LCB1bnNpZ25lZCBpbnQgcmVnKQo+ ICt7Cj4gKwlzd2l0Y2ggKHJlZykgewo+ICsJY2FzZSBNVDYzNjBfUkVHX1RDUENTVEFSVCAuLi4g TVQ2MzYwX1JFR19UQ1BDRU5EOgo+ICsJCWZhbGx0aHJvdWdoOwo+ICsJY2FzZSBNVDYzNjBfUkVH X1BNSUNTVEFSVCAuLi4gTVQ2MzYwX1JFR19QTUlDRU5EOgo+ICsJCWZhbGx0aHJvdWdoOwo+ICsJ Y2FzZSBNVDYzNjBfUkVHX0xET1NUQVJUIC4uLiBNVDYzNjBfUkVHX0xET0VORDoKPiArCQlmYWxs dGhyb3VnaDsKPiArCWNhc2UgTVQ2MzYwX1JFR19QTVVTVEFSVCAuLi4gTVQ2MzYwX1JFR19QTVVF TkQ6Cj4gKwkJcmV0dXJuIHRydWU7Cj4gKwl9Cj4gKwo+ICsJcmV0dXJuIGZhbHNlOwo+ICt9Cj4g Kwo+ICtzdGF0aWMgY29uc3Qgc3RydWN0IHJlZ21hcF9jb25maWcgbXQ2MzYwX3JlZ21hcF9jb25m aWcgPSB7Cj4gKwkucmVnX2JpdHMJCT0gMTYsCj4gKwkudmFsX2JpdHMJCT0gOCwKPiArCS5yZWdf Zm9ybWF0X2VuZGlhbgk9IFJFR01BUF9FTkRJQU5fQklHLAo+ICsJLm1heF9yZWdpc3RlcgkJPSBN VDYzNjBfUkVHX1BNVUVORCwKPiArCS53cml0ZWFibGVfcmVnCQk9IG10NjM2MF9pc19yZWFkd3Jp dGVfcmVnLAo+ICsJLnJlYWRhYmxlX3JlZwkJPSBtdDYzNjBfaXNfcmVhZHdyaXRlX3JlZywKPiAg fTsKPiAgCj4gIHN0YXRpYyBpbnQgbXQ2MzYwX3Byb2JlKHN0cnVjdCBpMmNfY2xpZW50ICpjbGll bnQpCj4gQEAgLTM3NSw5ICs1MzEsMjMgQEAgc3RhdGljIGludCBtdDYzNjBfcHJvYmUoc3RydWN0 IGkyY19jbGllbnQgKmNsaWVudCkKPiAgCQlyZXR1cm4gLUVOT01FTTsKPiAgCj4gIAlkZGF0YS0+ ZGV2ID0gJmNsaWVudC0+ZGV2Owo+IC0JaTJjX3NldF9jbGllbnRkYXRhKGNsaWVudCwgZGRhdGEp OwoKV2h5IGFyZW4ndCB5b3Ugc2F2aW5nIHRoZSBjbGllbnQgZGF0YSBhbnltb3JlPwoKPiAtCWRk YXRhLT5yZWdtYXAgPSBkZXZtX3JlZ21hcF9pbml0X2kyYyhjbGllbnQsICZtdDYzNjBfcG11X3Jl Z21hcF9jb25maWcpOwo+ICsJZm9yIChpID0gMDsgaSA8IE1UNjM2MF9TTEFWRV9NQVggLSAxOyBp KyspIHsKPiArCQlkZGF0YS0+aTJjW2ldID0gZGV2bV9pMmNfbmV3X2R1bW15X2RldmljZSgmY2xp ZW50LT5kZXYsCj4gKwkJCQkJCQkgIGNsaWVudC0+YWRhcHRlciwKPiArCQkJCQkJCSAgbXQ2MzYw X3NsYXZlX2FkZHJzW2ldKTsKPiArCQlpZiAoSVNfRVJSKGRkYXRhLT5pMmNbaV0pKSB7Cj4gKwkJ CWRldl9lcnIoJmNsaWVudC0+ZGV2LAo+ICsJCQkJIkZhaWxlZCB0byBnZXQgbmV3IGR1bW15IEky QyBkZXZpY2UgZm9yIGFkZHJlc3MgMHgleCIsCj4gKwkJCQltdDYzNjBfc2xhdmVfYWRkcnNbaV0p Owo+ICsJCQlyZXR1cm4gUFRSX0VSUihkZGF0YS0+aTJjW2ldKTsKPiArCQl9Cj4gKwl9Cj4gKwlk ZGF0YS0+aTJjW01UNjM2MF9TTEFWRV9NQVggLSAxXSA9IGNsaWVudDsKPiArCj4gKwljcmM4X3Bv cHVsYXRlX21zYihkZGF0YS0+Y3JjOF90YmwsIE1UNjM2MF9DUkM4X1BPTFlOT01JQUwpOwo+ICsJ ZGRhdGEtPnJlZ21hcCA9IGRldm1fcmVnbWFwX2luaXQoZGRhdGEtPmRldiwgJm10NjM2MF9yZWdt YXBfYnVzLCBkZGF0YSwKPiArCQkJCQkgJm10NjM2MF9yZWdtYXBfY29uZmlnKTsKPiAgCWlmIChJ U19FUlIoZGRhdGEtPnJlZ21hcCkpIHsKPiAgCQlkZXZfZXJyKCZjbGllbnQtPmRldiwgIkZhaWxl ZCB0byByZWdpc3RlciByZWdtYXBcbiIpOwo+ICAJCXJldHVybiBQVFJfRVJSKGRkYXRhLT5yZWdt YXApOwo+IEBAIC0zODcsMzQgKzU1NywxOCBAQCBzdGF0aWMgaW50IG10NjM2MF9wcm9iZShzdHJ1 Y3QgaTJjX2NsaWVudCAqY2xpZW50KQo+ICAJaWYgKHJldCkKPiAgCQlyZXR1cm4gcmV0Owo+ICAK PiAtCXJldCA9IGRldm1fcmVnbWFwX2FkZF9pcnFfY2hpcCgmY2xpZW50LT5kZXYsIGRkYXRhLT5y ZWdtYXAsIGNsaWVudC0+aXJxLAo+IC0JCQkJICAgICAgIDAsIDAsICZtdDYzNjBfaXJxX2NoaXAs Cj4gLQkJCQkgICAgICAgJmRkYXRhLT5pcnFfZGF0YSk7Cj4gKwlyZXQgPSBkZXZtX3JlZ21hcF9h ZGRfaXJxX2NoaXAoJmNsaWVudC0+ZGV2LCBkZGF0YS0+cmVnbWFwLCBjbGllbnQtPmlycSwgMCwg MCwKPiArCQkJCSAgICAgICAmbXQ2MzYwX2lycV9jaGlwLCAmZGRhdGEtPmlycV9kYXRhKTsKClVu cmVsYXRlZCBjaGFuZ2U/Cgo+ICAJaWYgKHJldCkgewo+ICAJCWRldl9lcnIoJmNsaWVudC0+ZGV2 LCAiRmFpbGVkIHRvIGFkZCBSZWdtYXAgSVJRIENoaXBcbiIpOwo+ICAJCXJldHVybiByZXQ7Cj4g IAl9Cj4gIAo+IC0JZGRhdGEtPmkyY1swXSA9IGNsaWVudDsKPiAtCWZvciAoaSA9IDE7IGkgPCBN VDYzNjBfU0xBVkVfTUFYOyBpKyspIHsKPiAtCQlkZGF0YS0+aTJjW2ldID0gZGV2bV9pMmNfbmV3 X2R1bW15X2RldmljZSgmY2xpZW50LT5kZXYsCj4gLQkJCQkJCQljbGllbnQtPmFkYXB0ZXIsCj4g LQkJCQkJCQltdDYzNjBfc2xhdmVfYWRkcltpXSk7Cj4gLQkJaWYgKElTX0VSUihkZGF0YS0+aTJj W2ldKSkgewo+IC0JCQlkZXZfZXJyKCZjbGllbnQtPmRldiwKPiAtCQkJCSJGYWlsZWQgdG8gZ2V0 IG5ldyBkdW1teSBJMkMgZGV2aWNlIGZvciBhZGRyZXNzIDB4JXgiLAo+IC0JCQkJbXQ2MzYwX3Ns YXZlX2FkZHJbaV0pOwo+IC0JCQlyZXR1cm4gUFRSX0VSUihkZGF0YS0+aTJjW2ldKTsKPiAtCQl9 Cj4gLQkJaTJjX3NldF9jbGllbnRkYXRhKGRkYXRhLT5pMmNbaV0sIGRkYXRhKTsKPiAtCX0KPiAt Cgo+IC0JcmV0ID0gZGV2bV9tZmRfYWRkX2RldmljZXMoJmNsaWVudC0+ZGV2LCBQTEFURk9STV9E RVZJRF9BVVRPLAo+IC0JCQkJICAgbXQ2MzYwX2RldnMsIEFSUkFZX1NJWkUobXQ2MzYwX2RldnMp LCBOVUxMLAo+IC0JCQkJICAgMCwgcmVnbWFwX2lycV9nZXRfZG9tYWluKGRkYXRhLT5pcnFfZGF0 YSkpOwo+ICsJcmV0ID0gZGV2bV9tZmRfYWRkX2RldmljZXMoJmNsaWVudC0+ZGV2LCBQTEFURk9S TV9ERVZJRF9BVVRPLCBtdDYzNjBfZGV2cywKPiArCQkJCSAgIEFSUkFZX1NJWkUobXQ2MzYwX2Rl dnMpLCBOVUxMLCAwLAo+ICsJCQkJICAgcmVnbWFwX2lycV9nZXRfZG9tYWluKGRkYXRhLT5pcnFf ZGF0YSkpOwoKVW5yZWxhdGVkIGNoYW5nZT8KCj4gIAlpZiAocmV0KSB7Cj4gLQkJZGV2X2Vycigm Y2xpZW50LT5kZXYsCj4gLQkJCSJGYWlsZWQgdG8gcmVnaXN0ZXIgc3Vib3JkaW5hdGUgZGV2aWNl c1xuIik7Cj4gKwkJZGV2X2VycigmY2xpZW50LT5kZXYsICJGYWlsZWQgdG8gcmVnaXN0ZXIgc3Vi b3JkaW5hdGUgZGV2aWNlc1xuIik7CgpVbnJlbGF0ZWQgY2hhbmdlPwoKWW91IHNob3VsZCByZW1v dmUgYWxsIG9mIHRoZXNlIGZyb20gdGhpcyBwYXRjaCB3aGVuIHlvdSByZS1zcGluLgoKPiAgCQly ZXR1cm4gcmV0Owo+ICAJfQo+ICAKCi0tIApMZWUgSm9uZXMgW+adjueQvOaWr10KU2VuaW9yIFRl Y2huaWNhbCBMZWFkIC0gRGV2ZWxvcGVyIFNlcnZpY2VzCkxpbmFyby5vcmcg4pSCIE9wZW4gc291 cmNlIHNvZnR3YXJlIGZvciBBcm0gU29DcwpGb2xsb3cgTGluYXJvOiBGYWNlYm9vayB8IFR3aXR0 ZXIgfCBCbG9nCgpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f XwpsaW51eC1hcm0ta2VybmVsIG1haWxpbmcgbGlzdApsaW51eC1hcm0ta2VybmVsQGxpc3RzLmlu ZnJhZGVhZC5vcmcKaHR0cDovL2xpc3RzLmluZnJhZGVhZC5vcmcvbWFpbG1hbi9saXN0aW5mby9s aW51eC1hcm0ta2VybmVsCg== 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=-7.0 required=3.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,HEADER_FROM_DIFFERENT_DOMAINS,INCLUDES_PATCH, MAILING_LIST_MULTI,SIGNED_OFF_BY,SPF_HELO_NONE,SPF_PASS, UNWANTED_LANGUAGE_BODY,URIBL_BLOCKED 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 6834AC2D0A3 for ; Wed, 4 Nov 2020 15:38:51 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by mail.kernel.org (Postfix) with ESMTP id 061DB2072C for ; Wed, 4 Nov 2020 15:38:50 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=pass (2048-bit key) header.d=linaro.org header.i=@linaro.org header.b="wLzmKttu" Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1730493AbgKDPiu (ORCPT ); Wed, 4 Nov 2020 10:38:50 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:56608 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1729992AbgKDPit (ORCPT ); Wed, 4 Nov 2020 10:38:49 -0500 Received: from mail-wm1-x342.google.com (mail-wm1-x342.google.com [IPv6:2a00:1450:4864:20::342]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 1A6C6C0613D3 for ; Wed, 4 Nov 2020 07:38:49 -0800 (PST) Received: by mail-wm1-x342.google.com with SMTP id p22so2787964wmg.3 for ; Wed, 04 Nov 2020 07:38:49 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; h=date:from:to:cc:subject:message-id:references:mime-version :content-disposition:content-transfer-encoding:in-reply-to; bh=B81fQ5xHaQ/yrMSa1yDIBHJseRR/8A0pHv9OArYo8cU=; b=wLzmKttuLo18fcXHfeCevLhrM1Pyh0Gu9tRhzivyTZs25wjTpa4zPDGh5k7v2lh4Fq NCofbJADTQb95FxFTO2zlFjxMtk+x7aRpi2PmBIeIkjSu1kubu0Jf1oFLWDvJvOuMosp PQBXzxI0oZghuk2Slk5F/WjhjvxEliLQjTzIkl8qK8soKNn9Nh4NXdhBHKbJiPv4tAQl sQsIyHTbLynCYzjW6NQ2BY2QyoJdYZ8kYCC2/DDrji1WrLe1H2Z27DgOCaTanNHgAjVt 4XiD7wFKpea399ERBvoQTNR0d9hUCiqGI101/AKGsd9uOcZdo9VpeRa3j83urLZ2F5CE TV2w== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:date:from:to:cc:subject:message-id:references :mime-version:content-disposition:content-transfer-encoding :in-reply-to; bh=B81fQ5xHaQ/yrMSa1yDIBHJseRR/8A0pHv9OArYo8cU=; b=AOx/dGD4RVfq1fOeZbAmUWkwTIDfOHbKska3e0q/eetfF2w6UWh/OLysSDa4U1tlN5 hOMn5e94ZOwxpmffL+Tur1eMN502NelVP44bDOOIU0RYTSqsaGwyrHJbgFmyLT/u2nuf Aa4CRQQLNL+6QySJ/e6jfeqKDHjK+11MWfsnbuYemNzgGzxkTiA7+d1Rn6QIefBn7DLJ n9fSsaWj0d0mVvTvS00DqBp6P5vDbX18KpRspW6uKLcqGLbcNKKV1TFpu3pzBQjAE5F4 c7N/YSmg4Jq3VS+I8VqwndsnytLgzY3lTJrlHtyDaNWXasJfCSl8jLUAL5QAEX6ZL94w Nxdg== X-Gm-Message-State: AOAM530y9OyK2VpFdD7hB0kfEKQQjuDEllZGguYEyjKv9XrdLaiC0Fif DpOoRLryYyNTPaS7y9xFUev5TQ== X-Google-Smtp-Source: ABdhPJwERh/SC3WoDOujs22lTdCpF33cv6JBegP3w6PqQpsREVN62NQow5YWY9qDcQaoLWm/J79wqA== X-Received: by 2002:a1c:750b:: with SMTP id o11mr5417896wmc.32.1604504327738; Wed, 04 Nov 2020 07:38:47 -0800 (PST) Received: from dell ([91.110.221.242]) by smtp.gmail.com with ESMTPSA id v67sm2783592wma.17.2020.11.04.07.38.46 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 04 Nov 2020 07:38:46 -0800 (PST) Date: Wed, 4 Nov 2020 15:38:45 +0000 From: Lee Jones To: Gene Chen Cc: matthias.bgg@gmail.com, linux-arm-kernel@lists.infradead.org, linux-mediatek@lists.infradead.org, linux-kernel@vger.kernel.org, gene_chen@richtek.com, Wilma.Wu@mediatek.com, shufan_lee@richtek.com, cy_huang@richtek.com, benjamin.chao@mediatek.com Subject: Re: [PATCH v5 10/10] mfd: mt6360: Merge different sub-devices I2C read/write Message-ID: <20201104153845.GN4488@dell> References: <1600770019-11585-1-git-send-email-gene.chen.richtek@gmail.com> <1600770019-11585-11-git-send-email-gene.chen.richtek@gmail.com> MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Disposition: inline Content-Transfer-Encoding: 8bit In-Reply-To: <1600770019-11585-11-git-send-email-gene.chen.richtek@gmail.com> Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On Tue, 22 Sep 2020, Gene Chen wrote: > From: Gene Chen > > Merge different sub-devices I2C read/write functions into one Regmap, > because PMIC and LDO part need CRC bits for access protection. > > Signed-off-by: Gene Chen > --- > drivers/mfd/Kconfig | 1 + > drivers/mfd/mt6360-core.c | 224 ++++++++++++++++++++++++++++++++++++++-------- > 2 files changed, 190 insertions(+), 35 deletions(-) > > diff --git a/drivers/mfd/Kconfig b/drivers/mfd/Kconfig > index 33df083..1dfe446 100644 > --- a/drivers/mfd/Kconfig > +++ b/drivers/mfd/Kconfig > @@ -913,6 +913,7 @@ config MFD_MT6360 > select MFD_CORE > select REGMAP_I2C > select REGMAP_IRQ > + select CRC8 > depends on I2C > help > Say Y here to enable MT6360 PMU/PMIC/LDO functional support. > diff --git a/drivers/mfd/mt6360-core.c b/drivers/mfd/mt6360-core.c > index 075b466..2ec9559 100644 > --- a/drivers/mfd/mt6360-core.c > +++ b/drivers/mfd/mt6360-core.c > @@ -62,6 +62,18 @@ struct mt6360_ddata { > > #define MT6360_CRC8_POLYNOMIAL 0x7 > > +#define MT6360_CRC_I2C_ADDR_SIZE 1 > +#define MT6360_CRC_REG_ADDR_SIZE 1 > +/* prealloca read size = i2c device addr + i2c reg addr + val ... + crc8 */ > +#define MT6360_ALLOC_READ_SIZE(_size) (_size + 3) > +/* prealloca write size = i2c device addr + i2c reg addr + val ... + crc8 + dummy byte */ > +#define MT6360_ALLOC_WRITE_SIZE(_size) (_size + 4) > +#define MT6360_CRC_PREDATA_OFFSET (MT6360_CRC_I2C_ADDR_SIZE + MT6360_CRC_REG_ADDR_SIZE) > +#define MT6360_CRC_CRC8_SIZE 1 > +#define MT6360_CRC_DUMMY_BYTE_SIZE 1 > +#define MT6360_REGMAP_REG_BYTE_SIZE 2 > +#define I2C_ADDR_XLATE_8BIT(_addr, _rw) (((_addr & 0x7F) << 1) + _rw) > + > /* reg 0 -> 0 ~ 7 */ > #define MT6360_CHG_TREG_EVT 4 > #define MT6360_CHG_AICR_EVT 5 > @@ -266,12 +278,6 @@ static const struct regmap_irq_chip mt6360_irq_chip = { > .use_ack = true, > }; > > -static const struct regmap_config mt6360_pmu_regmap_config = { > - .reg_bits = 8, > - .val_bits = 8, > - .max_register = MT6360_PMU_MAXREG, > -}; > - > static const struct resource mt6360_adc_resources[] = { > DEFINE_RES_IRQ_NAMED(MT6360_ADC_DONEI, "adc_donei"), > }; > @@ -334,7 +340,7 @@ static const struct mfd_cell mt6360_devs[] = { > OF_MFD_CELL("mt6360-led", mt6360_led_resources, > NULL, 0, 0, "mediatek,mt6360-led"), > OF_MFD_CELL("mt6360-regulator", mt6360_regulator_resources, > - NULL, 0, 0, "mediatek,mt6360-regulator"), > + NULL, 0, 0, NULL), > OF_MFD_CELL("mt6360-tcpc", NULL, > NULL, 0, 0, "mediatek,mt6360-tcpc"), > }; > @@ -349,7 +355,7 @@ static int mt6360_check_vendor_info(struct mt6360_ddata *ddata) > return ret; > > if ((info & CHIP_VEN_MASK) != CHIP_VEN_MT6360) { > - dev_err(&client->dev, "Device not supported\n"); > + dev_err(ddata->dev, "Device not supported\n"); This seems like an unrelated change. > return -ENODEV; > } > > @@ -358,11 +364,161 @@ static int mt6360_check_vendor_info(struct mt6360_ddata *ddata) > return 0; > } > > -static const unsigned short mt6360_slave_addr[MT6360_SLAVE_MAX] = { > - MT6360_PMU_SLAVEID, > +static const unsigned short mt6360_slave_addrs[MT6360_SLAVE_MAX] = { Unrelated change. > + MT6360_TCPC_SLAVEID, > MT6360_PMIC_SLAVEID, > MT6360_LDO_SLAVEID, > - MT6360_TCPC_SLAVEID, > + MT6360_PMU_SLAVEID, > +}; > + > +static int mt6360_xlate_pmicldo_addr(u8 *addr, int rw_size) > +{ > + /* Address is already in encoded [5:0] */ > + *addr &= MT6360_ADDRESS_MASK; > + > + switch (rw_size) { > + case 1: > + *addr |= MT6360_DATA_SIZE_1_BYTE; > + break; > + case 2: > + *addr |= MT6360_DATA_SIZE_2_BYTES; > + break; > + case 3: > + *addr |= MT6360_DATA_SIZE_3_BYTES; > + break; > + case 4: > + *addr |= MT6360_DATA_SIZE_4_BYTES; > + break; > + default: > + return -EINVAL; > + } > + > + return 0; > +} > + > +static int mt6360_regmap_read(void *context, const void *reg, size_t reg_size, > + void *val, size_t val_size) > +{ > + struct mt6360_ddata *ddata = context; > + u8 bank = *(u8 *)reg; > + u8 reg_addr = *(u8 *)(reg + 1); > + struct i2c_client *i2c = ddata->i2c[bank]; > + bool crc_needed = false; > + u8 *buf; > + int buf_len = MT6360_ALLOC_READ_SIZE(val_size); > + int read_size = val_size; > + u8 crc; > + int ret; > + > + if (bank == MT6360_SLAVE_PMIC || bank == MT6360_SLAVE_LDO) { > + crc_needed = true; > + ret = mt6360_xlate_pmicldo_addr(®_addr, val_size); > + if (ret < 0) > + return ret; > + read_size += MT6360_CRC_CRC8_SIZE; > + } > + > + buf = kzalloc(buf_len, GFP_KERNEL); > + if (!buf) > + return -ENOMEM; > + > + buf[0] = I2C_ADDR_XLATE_8BIT(i2c->addr, I2C_SMBUS_READ); > + buf[1] = reg_addr; > + > + ret = i2c_smbus_read_i2c_block_data(i2c, reg_addr, read_size, > + buf + MT6360_CRC_PREDATA_OFFSET); > + if (ret < 0) > + goto out; > + else if (ret != read_size) { > + ret = -EIO; > + goto out; > + } > + > + if (crc_needed) { > + crc = crc8(ddata->crc8_tbl, buf, val_size + MT6360_CRC_PREDATA_OFFSET, 0); > + if (crc != buf[val_size + MT6360_CRC_PREDATA_OFFSET]) { > + ret = -EIO; > + goto out; > + } > + } > + > + memcpy(val, buf + MT6360_CRC_PREDATA_OFFSET, val_size); > +out: > + kfree(buf); > + return (ret < 0) ? ret : 0; > +} > + > +static int mt6360_regmap_write(void *context, const void *val, size_t val_size) > +{ > + struct mt6360_ddata *ddata = context; > + u8 bank = *(u8 *)val; > + u8 reg_addr = *(u8 *)(val + 1); > + struct i2c_client *i2c = ddata->i2c[bank]; > + bool crc_needed = false; > + u8 *buf; > + int buf_len = MT6360_ALLOC_WRITE_SIZE(val_size); > + int write_size = val_size - MT6360_REGMAP_REG_BYTE_SIZE; > + int ret; > + > + if (bank == MT6360_SLAVE_PMIC || bank == MT6360_SLAVE_LDO) { > + crc_needed = true; > + ret = mt6360_xlate_pmicldo_addr(®_addr, val_size - MT6360_REGMAP_REG_BYTE_SIZE); > + if (ret < 0) > + return ret; > + } > + > + buf = kzalloc(buf_len, GFP_KERNEL); > + if (!buf) > + return -ENOMEM; > + > + buf[0] = I2C_ADDR_XLATE_8BIT(i2c->addr, I2C_SMBUS_WRITE); > + buf[1] = reg_addr; > + memcpy(buf + MT6360_CRC_PREDATA_OFFSET, val + MT6360_REGMAP_REG_BYTE_SIZE, write_size); > + > + if (crc_needed) { > + buf[val_size] = crc8(ddata->crc8_tbl, buf, val_size, 0); > + write_size += (MT6360_CRC_CRC8_SIZE + MT6360_CRC_DUMMY_BYTE_SIZE); > + } > + > + ret = i2c_smbus_write_i2c_block_data(i2c, reg_addr, write_size, > + buf + MT6360_CRC_PREDATA_OFFSET); > + > + kfree(buf); > + return ret; > +} > + > +static const struct regmap_bus mt6360_regmap_bus = { > + .read = mt6360_regmap_read, > + .write = mt6360_regmap_write, > + > + /* Due to PMIC and LDO CRC access size limit */ > + .max_raw_read = 4, > + .max_raw_write = 4, > +}; > + > +static bool mt6360_is_readwrite_reg(struct device *dev, unsigned int reg) > +{ > + switch (reg) { > + case MT6360_REG_TCPCSTART ... MT6360_REG_TCPCEND: > + fallthrough; > + case MT6360_REG_PMICSTART ... MT6360_REG_PMICEND: > + fallthrough; > + case MT6360_REG_LDOSTART ... MT6360_REG_LDOEND: > + fallthrough; > + case MT6360_REG_PMUSTART ... MT6360_REG_PMUEND: > + return true; > + } > + > + return false; > +} > + > +static const struct regmap_config mt6360_regmap_config = { > + .reg_bits = 16, > + .val_bits = 8, > + .reg_format_endian = REGMAP_ENDIAN_BIG, > + .max_register = MT6360_REG_PMUEND, > + .writeable_reg = mt6360_is_readwrite_reg, > + .readable_reg = mt6360_is_readwrite_reg, > }; > > static int mt6360_probe(struct i2c_client *client) > @@ -375,9 +531,23 @@ static int mt6360_probe(struct i2c_client *client) > return -ENOMEM; > > ddata->dev = &client->dev; > - i2c_set_clientdata(client, ddata); Why aren't you saving the client data anymore? > - ddata->regmap = devm_regmap_init_i2c(client, &mt6360_pmu_regmap_config); > + for (i = 0; i < MT6360_SLAVE_MAX - 1; i++) { > + ddata->i2c[i] = devm_i2c_new_dummy_device(&client->dev, > + client->adapter, > + mt6360_slave_addrs[i]); > + if (IS_ERR(ddata->i2c[i])) { > + dev_err(&client->dev, > + "Failed to get new dummy I2C device for address 0x%x", > + mt6360_slave_addrs[i]); > + return PTR_ERR(ddata->i2c[i]); > + } > + } > + ddata->i2c[MT6360_SLAVE_MAX - 1] = client; > + > + crc8_populate_msb(ddata->crc8_tbl, MT6360_CRC8_POLYNOMIAL); > + ddata->regmap = devm_regmap_init(ddata->dev, &mt6360_regmap_bus, ddata, > + &mt6360_regmap_config); > if (IS_ERR(ddata->regmap)) { > dev_err(&client->dev, "Failed to register regmap\n"); > return PTR_ERR(ddata->regmap); > @@ -387,34 +557,18 @@ static int mt6360_probe(struct i2c_client *client) > if (ret) > return ret; > > - ret = devm_regmap_add_irq_chip(&client->dev, ddata->regmap, client->irq, > - 0, 0, &mt6360_irq_chip, > - &ddata->irq_data); > + ret = devm_regmap_add_irq_chip(&client->dev, ddata->regmap, client->irq, 0, 0, > + &mt6360_irq_chip, &ddata->irq_data); Unrelated change? > if (ret) { > dev_err(&client->dev, "Failed to add Regmap IRQ Chip\n"); > return ret; > } > > - ddata->i2c[0] = client; > - for (i = 1; i < MT6360_SLAVE_MAX; i++) { > - ddata->i2c[i] = devm_i2c_new_dummy_device(&client->dev, > - client->adapter, > - mt6360_slave_addr[i]); > - if (IS_ERR(ddata->i2c[i])) { > - dev_err(&client->dev, > - "Failed to get new dummy I2C device for address 0x%x", > - mt6360_slave_addr[i]); > - return PTR_ERR(ddata->i2c[i]); > - } > - i2c_set_clientdata(ddata->i2c[i], ddata); > - } > - > - ret = devm_mfd_add_devices(&client->dev, PLATFORM_DEVID_AUTO, > - mt6360_devs, ARRAY_SIZE(mt6360_devs), NULL, > - 0, regmap_irq_get_domain(ddata->irq_data)); > + ret = devm_mfd_add_devices(&client->dev, PLATFORM_DEVID_AUTO, mt6360_devs, > + ARRAY_SIZE(mt6360_devs), NULL, 0, > + regmap_irq_get_domain(ddata->irq_data)); Unrelated change? > if (ret) { > - dev_err(&client->dev, > - "Failed to register subordinate devices\n"); > + dev_err(&client->dev, "Failed to register subordinate devices\n"); Unrelated change? You should remove all of these from this patch when you re-spin. > return ret; > } > -- Lee Jones [李琼斯] Senior Technical Lead - Developer Services Linaro.org │ Open source software for Arm SoCs Follow Linaro: Facebook | Twitter | Blog