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=-14.7 required=3.0 tests=BAYES_00,DKIMWL_WL_HIGH, DKIM_SIGNED,DKIM_VALID,INCLUDES_CR_TRAILER,INCLUDES_PATCH,MAILING_LIST_MULTI, SPF_HELO_NONE,SPF_PASS,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 87A12C433B4 for ; Tue, 11 May 2021 23:51:36 +0000 (UTC) Received: from desiato.infradead.org (desiato.infradead.org [90.155.92.199]) (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 CCB2D61492 for ; Tue, 11 May 2021 23:51:35 +0000 (UTC) DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org CCB2D61492 Authentication-Results: mail.kernel.org; dmarc=fail (p=none dis=none) header.from=kernel.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=desiato.20200630; h=Sender:Content-Transfer-Encoding :Content-Type:List-Subscribe:List-Help:List-Post:List-Archive: List-Unsubscribe:List-Id:Cc:To:Subject:Message-ID:Date:From:In-Reply-To: References:MIME-Version:Reply-To:Content-ID:Content-Description:Resent-Date: Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID:List-Owner; bh=c3eSSbtvL8831oGH3Ar1tfGujglrQ28lrDHmHU+Gic0=; b=ogMT8nWMGdKWfENKTVu206Q+D jyfY2Xyi7vbHbwSl8brohJPcVBDf5xUvA1tn8sl5OmQnnBkvvpFPSXwVBR0qp3JQpmGNwsdbBbl0j nc980peF3sVTw+7nKaw0v56jxKLZi3mV4dvaDeh1Q+hNGea7bPhNvYIG3dfpugHJhGT5qy9pkex99 qTESnFpEoO4H2GqvBQ82cAqE41Dy50ZFClM5L0aUg8vYk+DsDwr99YwwnqhrLTl3p7QmdcfgH9VSx k472nEV4EYqo3JzvZnUi1UBwROYrDcmXlSjJzuBr14nVQC2l6gqB9tfZsQaLAkcFjXPMkAv/cKlpd 0uFvUegZQ==; Received: from localhost ([::1] helo=desiato.infradead.org) by desiato.infradead.org with esmtp (Exim 4.94 #2 (Red Hat Linux)) id 1lgc9p-001Yee-EP; Tue, 11 May 2021 23:51:21 +0000 Received: from bombadil.infradead.org ([2607:7c80:54:e::133]) by desiato.infradead.org with esmtps (Exim 4.94 #2 (Red Hat Linux)) id 1lgc9V-001Ydk-Sd; Tue, 11 May 2021 23:51:02 +0000 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=infradead.org; s=bombadil.20210309; h=Content-Transfer-Encoding: Content-Type:Cc:To:Subject:Message-ID:Date:From:In-Reply-To:References: MIME-Version:Sender:Reply-To:Content-ID:Content-Description; bh=AvKrF11WJBhR4b6nhMeG6zL8lSDRrC2m2z/2pEcVuAE=; b=2Nu1TI+PxdQfGfQtIta1NBCbwT m91bmwuhaN10vU/DKQQKpOOi+/Lst5uS5j3jdIkM7/1V1gBSavS9ivct4uOC6qlgiSDCPp9NEysni LU2wuwOGSZ/HjhTgeRQb4XKopGoQF16FDvGyrNKt0JApLVe3tfTTv1j922jl8CrIMxT/egySxiCbr HCo9Pt8lID+0mr8pfQA588F6Qlj7T/2gWx3SevsbICGY9d8PC9VL5Epd8VL65i2z2OPFRuNYIqwtW SfpS9A/1BNdih+WlBVUK0nFmKvyhHOPNDyiqx+Azt8u1NB5r6YhlzK3pE+bMdxlBqgskEJnQw6WyN vmI37tIg==; Received: from mail.kernel.org ([198.145.29.99]) by bombadil.infradead.org with esmtps (Exim 4.94 #2 (Red Hat Linux)) id 1lgc9T-009zuw-0J; Tue, 11 May 2021 23:51:00 +0000 Received: by mail.kernel.org (Postfix) with ESMTPSA id 1FB006190A; Tue, 11 May 2021 23:50:58 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1620777058; bh=F5ZEQuF0H9iy+oscjWcT5j+fhCa3iygNB9Kp4e81/pE=; h=References:In-Reply-To:From:Date:Subject:To:Cc:From; b=O7IBcM/jHmtJjTBZ+0nNpaPPz/f2AOYcSHLOnCwFuwfnef1H4EhcK7xVOe0CMGTSQ 6cLI9+89r+sqpvNuNRk5ajcgk6RqNLtB0LBTeebiFKfq4z/BBLiMmS0F6Bo8kq7yS5 8iI9+YVEITzMoWx1LYhTnaFAPVjGEGjp+J2zt9O21ZsfijQqmckUcNUMIX8OozvwyQ b1OsD/88PMWK6bz4Vn2HppEKMKaskLeBoFAZkCYYDU+h4tghUp6SGaMBjxPt2im7mu mSchn0VcimtB33HQ+UGH+J+igGbTz/zZAv9+3dsTh4OCE4oLvMIS8Zkq5S4zYotr4w YBLsXEmdx/Kbw== Received: by mail-ej1-f41.google.com with SMTP id w3so32315492ejc.4; Tue, 11 May 2021 16:50:58 -0700 (PDT) X-Gm-Message-State: AOAM530y+vNT3P0bD0GRdZOJEcQnDX8K20sWxjqJDLcUp93HKMYQEbmX P0GrIjHrC3Zi45zGgToyBjPPDbqUqSm3MG0n1g== X-Google-Smtp-Source: ABdhPJzjNs7/285LwkoeFSKYuqkSqbvIEBl87cc/Cda5/XkfKnqXdUrPzChXJP8JxwNkqt+qZOyNF1qaEMQ3Eu+lbWM= X-Received: by 2002:a17:906:b0cb:: with SMTP id bk11mr34935753ejb.310.1620777056572; Tue, 11 May 2021 16:50:56 -0700 (PDT) MIME-Version: 1.0 References: <20210429041641.11077-1-rex-bc.chen@mediatek.com> <20210429041641.11077-4-rex-bc.chen@mediatek.com> In-Reply-To: <20210429041641.11077-4-rex-bc.chen@mediatek.com> From: Chun-Kuang Hu Date: Wed, 12 May 2021 07:50:45 +0800 X-Gmail-Original-Message-ID: Message-ID: Subject: Re: [v3 RESEND, PATCH 3/3] drm/mediatek: dpi: add bus format negotiation To: Rex-BC Chen Cc: Chun-Kuang Hu , Matthias Brugger , DTML , Linux ARM , "moderated list:ARM/Mediatek SoC support" , linux-kernel , Project_Global_Chrome_Upstream_Group@mediatek.com, Jitao Shi X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20210511_165059_120322_CDF906C2 X-CRM114-Status: GOOD ( 19.58 ) X-BeenThere: linux-mediatek@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-mediatek" Errors-To: linux-mediatek-bounces+linux-mediatek=archiver.kernel.org@lists.infradead.org SGksIFJleDoKClJleC1CQyBDaGVuIDxyZXgtYmMuY2hlbkBtZWRpYXRlay5jb20+IOaWvCAyMDIx 5bm0NOaciDI55pelIOmAseWbmyDkuIvljYgxMjoxNuWvq+mBk++8mgo+Cj4gQWRkIHRoZSBhdG9t aWNfZ2V0X291dHB1dF9idXNfZm10cywgYXRvbWljX2dldF9pbnB1dF9idXNfZm10cyB0byBuZWdv dGlhdGUKPiB0aGUgcG9zc2libGUgb3V0cHV0IGFuZCBpbnB1dCBmb3JtYXRzIGZvciB0aGUgY3Vy cmVudCBtb2RlIGFuZCBtb25pdG9yLAo+IGFuZCB1c2UgdGhlIG5lZ290aWF0ZWQgZm9ybWF0cyBp biBhIGJhc2ljIGF0b21pY19jaGVjayBjYWxsYmFjay4KPgo+IFNpZ25lZC1vZmYtYnk6IEppdGFv IFNoaSA8aml0YW8uc2hpQG1lZGlhdGVrLmNvbT4KPiBTaWduZWQtb2ZmLWJ5OiBSZXgtQkMgQ2hl biA8cmV4LWJjLmNoZW5AbWVkaWF0ZWsuY29tPgo+IC0tLQo+ICBkcml2ZXJzL2dwdS9kcm0vbWVk aWF0ZWsvbXRrX2RwaS5jIHwgOTIgKysrKysrKysrKysrKysrKysrKysrKysrKysrKy0tCj4gIDEg ZmlsZSBjaGFuZ2VkLCA4NyBpbnNlcnRpb25zKCspLCA1IGRlbGV0aW9ucygtKQo+Cj4gZGlmZiAt LWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9tZWRpYXRlay9tdGtfZHBpLmMgYi9kcml2ZXJzL2dwdS9k cm0vbWVkaWF0ZWsvbXRrX2RwaS5jCj4gaW5kZXggYzU0ODc4MGRkM2E1Li44ODIyZDk0NDhhZTgg MTAwNjQ0Cj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL21lZGlhdGVrL210a19kcGkuYwo+ICsrKyBi L2RyaXZlcnMvZ3B1L2RybS9tZWRpYXRlay9tdGtfZHBpLmMKPiBAQCAtNTM2LDYgKzUzNiw4NyBA QCBzdGF0aWMgaW50IG10a19kcGlfc2V0X2Rpc3BsYXlfbW9kZShzdHJ1Y3QgbXRrX2RwaSAqZHBp LAo+ICAgICAgICAgcmV0dXJuIDA7Cj4gIH0KPgo+ICsjZGVmaW5lIE1BWF9PVVRQVVRfU0VMX0ZP Uk1BVFMgMgo+ICsKPiArc3RhdGljIHUzMiAqbXRrX2RwaV9icmlkZ2VfYXRvbWljX2dldF9vdXRw dXRfYnVzX2ZtdHMoc3RydWN0IGRybV9icmlkZ2UgKmJyaWRnZSwKPiArICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgc3RydWN0IGRybV9icmlkZ2Vfc3RhdGUgKmJyaWRnZV9z dGF0ZSwKPiArICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RydWN0IGRy bV9jcnRjX3N0YXRlICpjcnRjX3N0YXRlLAo+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBzdHJ1Y3QgZHJtX2Nvbm5lY3Rvcl9zdGF0ZSAqY29ubl9zdGF0ZSwKPiArICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdW5zaWduZWQgaW50ICpudW1fb3V0 cHV0X2ZtdHMpCj4gK3sKPiArICAgICAgIHUzMiAqb3V0cHV0X2ZtdHM7Cj4gKyAgICAgICBzdHJ1 Y3QgbXRrX2RwaSAqZHBpID0gYnJpZGdlX3RvX2RwaShicmlkZ2UpOwo+ICsKPiArICAgICAgICpu dW1fb3V0cHV0X2ZtdHMgPSAwOwo+ICsKPiArICAgICAgIG91dHB1dF9mbXRzID0ga2NhbGxvYyhN QVhfT1VUUFVUX1NFTF9GT1JNQVRTLCBzaXplb2YoKm91dHB1dF9mbXRzKSwKPiArICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBHRlBfS0VSTkVMKTsKPiArICAgICAgIGlmICghb3V0cHV0X2Zt dHMpCj4gKyAgICAgICAgICAgICAgIHJldHVybiBOVUxMOwo+ICsKPiArICAgICAgIC8qIERlZmF1 bHQgOGJpdCBSR0IgZmFsbGJhY2sgKi8KPiArICAgICAgIGlmIChkcGktPmNvbmYtPmR1YWxfZWRn ZSkgewo+ICsgICAgICAgICAgICAgICBvdXRwdXRfZm10c1swXSA9ICBNRURJQV9CVVNfRk1UX1JH Qjg4OF8yWDEyX0xFOwo+ICsgICAgICAgICAgICAgICBvdXRwdXRfZm10c1sxXSA9ICBNRURJQV9C VVNfRk1UX1JHQjg4OF8yWDEyX0JFOwo+ICsgICAgICAgICAgICAgICAqbnVtX291dHB1dF9mbXRz ID0gMjsKCkluIHRoZSBkZWZpbml0aW9uIG9mIGR1YWxfZWRnZSwgaXQgbWF5IGltcGx5IHRoYXQg c3VwcG9ydApNRURJQV9CVVNfRk1UX0JHUjU2NV8yWDhfQkUgYW5kIE1FRElBX0JVU19GTVRfQkdS NTY1XzJYOF9MRS4gU28gSQp3b3VsZCBsaWtlIGRwaS0+Y29uZiB0byBzdG9yZSBvdXRwdXRfZm10 cyBpbnN0ZWFkIG9mIGR1YWxfZWRnZS4gVGhlCm91dHB1dF9mbXRzIGNvdWxkIGltcGx5IHVzZSBk dWFsX2VkZ2Ugb3Igbm90LgoKUmVnYXJkcywKQ2h1bi1LdWFuZy4KCj4gKyAgICAgICB9IGVsc2Ug ewo+ICsgICAgICAgICAgICAgICBvdXRwdXRfZm10c1swXSA9ICBNRURJQV9CVVNfRk1UX1JHQjg4 OF8xWDI0Owo+ICsgICAgICAgICAgICAgICAqbnVtX291dHB1dF9mbXRzID0gMTsKPiArICAgICAg IH0KPiArCj4gKyAgICAgICByZXR1cm4gb3V0cHV0X2ZtdHM7Cj4gK30KPiArCj4gKyNkZWZpbmUg TUFYX0lOUFVUX1NFTF9GT1JNQVRTICAxCj4gKwo+ICtzdGF0aWMgdTMyICptdGtfZHBpX2JyaWRn ZV9hdG9taWNfZ2V0X2lucHV0X2J1c19mbXRzKHN0cnVjdCBkcm1fYnJpZGdlICpicmlkZ2UsCj4g KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cnVjdCBkcm1fYnJpZGdl X3N0YXRlICpicmlkZ2Vfc3RhdGUsCj4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIHN0cnVjdCBkcm1fY3J0Y19zdGF0ZSAqY3J0Y19zdGF0ZSwKPiArICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RydWN0IGRybV9jb25uZWN0b3Jfc3RhdGUgKmNv bm5fc3RhdGUsCj4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHUzMiBv dXRwdXRfZm10LAo+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1bnNp Z25lZCBpbnQgKm51bV9pbnB1dF9mbXRzKQo+ICt7Cj4gKyAgICAgICB1MzIgKmlucHV0X2ZtdHM7 Cj4gKwo+ICsgICAgICAgKm51bV9pbnB1dF9mbXRzID0gMDsKPiArCj4gKyAgICAgICBpbnB1dF9m bXRzID0ga2NhbGxvYyhNQVhfSU5QVVRfU0VMX0ZPUk1BVFMsIHNpemVvZigqaW5wdXRfZm10cyks Cj4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBHRlBfS0VSTkVMKTsKPiArICAgICAgIGlm ICghaW5wdXRfZm10cykKPiArICAgICAgICAgICAgICAgcmV0dXJuIE5VTEw7Cj4gKwo+ICsgICAg ICAgKm51bV9pbnB1dF9mbXRzID0gMTsKPiArICAgICAgIGlucHV0X2ZtdHNbMF0gPSBNRURJQV9C VVNfRk1UX1JHQjg4OF8xWDI0Owo+ICsKPiArICAgICAgIHJldHVybiBpbnB1dF9mbXRzOwo+ICt9 Cj4gKwo+ICtzdGF0aWMgaW50IG10a19kcGlfYnJpZGdlX2F0b21pY19jaGVjayhzdHJ1Y3QgZHJt X2JyaWRnZSAqYnJpZGdlLAo+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IHN0cnVjdCBkcm1fYnJpZGdlX3N0YXRlICpicmlkZ2Vfc3RhdGUsCj4gKyAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgc3RydWN0IGRybV9jcnRjX3N0YXRlICpjcnRjX3N0YXRl LAo+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cnVjdCBkcm1fY29u bmVjdG9yX3N0YXRlICpjb25uX3N0YXRlKQo+ICt7Cj4gKyAgICAgICBzdHJ1Y3QgbXRrX2RwaSAq ZHBpID0gYnJpZGdlLT5kcml2ZXJfcHJpdmF0ZTsKPiArICAgICAgIHVuc2lnbmVkIGludCBvdXRf YnVzX2Zvcm1hdDsKPiArCj4gKyAgICAgICBvdXRfYnVzX2Zvcm1hdCA9IGJyaWRnZV9zdGF0ZS0+ b3V0cHV0X2J1c19jZmcuZm9ybWF0Owo+ICsKPiArICAgICAgIGRldl9kYmcoZHBpLT5kZXYsICJp bnB1dCBmb3JtYXQgMHglMDR4LCBvdXRwdXQgZm9ybWF0IDB4JTA0eFxuIiwKPiArICAgICAgICAg ICAgICAgYnJpZGdlX3N0YXRlLT5pbnB1dF9idXNfY2ZnLmZvcm1hdCwKPiArICAgICAgICAgICAg ICAgYnJpZGdlX3N0YXRlLT5vdXRwdXRfYnVzX2NmZy5mb3JtYXQpOwo+ICsKPiArICAgICAgIGRw aS0+ZGRyX2VkZ2Vfc2VsID0gKG91dF9idXNfZm9ybWF0ID09IE1FRElBX0JVU19GTVRfUkdCODg4 XzJYMTJfTEUpID8KPiArICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRydWUgOiBmYWxz ZTsKPiArCj4gKyAgICAgICBkcGktPmJpdF9udW0gPSBNVEtfRFBJX09VVF9CSVRfTlVNXzhCSVRT Owo+ICsgICAgICAgZHBpLT5jaGFubmVsX3N3YXAgPSBNVEtfRFBJX09VVF9DSEFOTkVMX1NXQVBf UkdCOwo+ICsgICAgICAgZHBpLT55Y19tYXAgPSBNVEtfRFBJX09VVF9ZQ19NQVBfUkdCOwo+ICsg ICAgICAgZHBpLT5jb2xvcl9mb3JtYXQgPSBNVEtfRFBJX0NPTE9SX0ZPUk1BVF9SR0I7Cj4gKwo+ ICsgICAgICAgcmV0dXJuIDA7Cj4gK30KPiArCj4gIHN0YXRpYyBpbnQgbXRrX2RwaV9icmlkZ2Vf YXR0YWNoKHN0cnVjdCBkcm1fYnJpZGdlICpicmlkZ2UsCj4gICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgZW51bSBkcm1fYnJpZGdlX2F0dGFjaF9mbGFncyBmbGFncykKPiAgewo+Cj4g QEAgLTU3NCw2ICs2NTUsMTIgQEAgc3RhdGljIGNvbnN0IHN0cnVjdCBkcm1fYnJpZGdlX2Z1bmNz IG10a19kcGlfYnJpZGdlX2Z1bmNzID0gewo+ICAgICAgICAgLm1vZGVfc2V0ID0gbXRrX2RwaV9i cmlkZ2VfbW9kZV9zZXQsCj4gICAgICAgICAuZGlzYWJsZSA9IG10a19kcGlfYnJpZGdlX2Rpc2Fi bGUsCj4gICAgICAgICAuZW5hYmxlID0gbXRrX2RwaV9icmlkZ2VfZW5hYmxlLAo+ICsgICAgICAg LmF0b21pY19jaGVjayA9IG10a19kcGlfYnJpZGdlX2F0b21pY19jaGVjaywKPiArICAgICAgIC5h dG9taWNfZ2V0X291dHB1dF9idXNfZm10cyA9IG10a19kcGlfYnJpZGdlX2F0b21pY19nZXRfb3V0 cHV0X2J1c19mbXRzLAo+ICsgICAgICAgLmF0b21pY19nZXRfaW5wdXRfYnVzX2ZtdHMgPSBtdGtf ZHBpX2JyaWRnZV9hdG9taWNfZ2V0X2lucHV0X2J1c19mbXRzLAo+ICsgICAgICAgLmF0b21pY19k dXBsaWNhdGVfc3RhdGUgPSBkcm1fYXRvbWljX2hlbHBlcl9icmlkZ2VfZHVwbGljYXRlX3N0YXRl LAo+ICsgICAgICAgLmF0b21pY19kZXN0cm95X3N0YXRlID0gZHJtX2F0b21pY19oZWxwZXJfYnJp ZGdlX2Rlc3Ryb3lfc3RhdGUsCj4gKyAgICAgICAuYXRvbWljX3Jlc2V0ID0gZHJtX2F0b21pY19o ZWxwZXJfYnJpZGdlX3Jlc2V0LAo+ICB9Owo+Cj4gIHZvaWQgbXRrX2RwaV9zdGFydChzdHJ1Y3Qg ZGV2aWNlICpkZXYpCj4gQEAgLTYyMCwxMSArNzA3LDYgQEAgc3RhdGljIGludCBtdGtfZHBpX2Jp bmQoc3RydWN0IGRldmljZSAqZGV2LCBzdHJ1Y3QgZGV2aWNlICptYXN0ZXIsIHZvaWQgKmRhdGEp Cj4gICAgICAgICB9Cj4gICAgICAgICBkcm1fY29ubmVjdG9yX2F0dGFjaF9lbmNvZGVyKGRwaS0+ Y29ubmVjdG9yLCAmZHBpLT5lbmNvZGVyKTsKPgo+IC0gICAgICAgZHBpLT5iaXRfbnVtID0gTVRL X0RQSV9PVVRfQklUX05VTV84QklUUzsKPiAtICAgICAgIGRwaS0+Y2hhbm5lbF9zd2FwID0gTVRL X0RQSV9PVVRfQ0hBTk5FTF9TV0FQX1JHQjsKPiAtICAgICAgIGRwaS0+eWNfbWFwID0gTVRLX0RQ SV9PVVRfWUNfTUFQX1JHQjsKPiAtICAgICAgIGRwaS0+Y29sb3JfZm9ybWF0ID0gTVRLX0RQSV9D T0xPUl9GT1JNQVRfUkdCOwo+IC0KPiAgICAgICAgIHJldHVybiAwOwo+Cj4gIGVycl9jbGVhbnVw Ogo+IC0tCj4gMi4xOC4wCj4KCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fCkxpbnV4LW1lZGlhdGVrIG1haWxpbmcgbGlzdApMaW51eC1tZWRpYXRla0BsaXN0 cy5pbmZyYWRlYWQub3JnCmh0dHA6Ly9saXN0cy5pbmZyYWRlYWQub3JnL21haWxtYW4vbGlzdGlu Zm8vbGludXgtbWVkaWF0ZWsK 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=-16.7 required=3.0 tests=BAYES_00,DKIMWL_WL_HIGH, DKIM_SIGNED,DKIM_VALID,DKIM_VALID_AU,INCLUDES_CR_TRAILER,INCLUDES_PATCH, MAILING_LIST_MULTI,SPF_HELO_NONE,SPF_PASS,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 DFF59C433B4 for ; Tue, 11 May 2021 23:51:02 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by mail.kernel.org (Postfix) with ESMTP id AB92261492 for ; Tue, 11 May 2021 23:51:02 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S229951AbhEKXwG (ORCPT ); Tue, 11 May 2021 19:52:06 -0400 Received: from mail.kernel.org ([198.145.29.99]:36120 "EHLO mail.kernel.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S229637AbhEKXwF (ORCPT ); Tue, 11 May 2021 19:52:05 -0400 Received: by mail.kernel.org (Postfix) with ESMTPSA id 1BA716187E; Tue, 11 May 2021 23:50:58 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1620777058; bh=F5ZEQuF0H9iy+oscjWcT5j+fhCa3iygNB9Kp4e81/pE=; h=References:In-Reply-To:From:Date:Subject:To:Cc:From; b=O7IBcM/jHmtJjTBZ+0nNpaPPz/f2AOYcSHLOnCwFuwfnef1H4EhcK7xVOe0CMGTSQ 6cLI9+89r+sqpvNuNRk5ajcgk6RqNLtB0LBTeebiFKfq4z/BBLiMmS0F6Bo8kq7yS5 8iI9+YVEITzMoWx1LYhTnaFAPVjGEGjp+J2zt9O21ZsfijQqmckUcNUMIX8OozvwyQ b1OsD/88PMWK6bz4Vn2HppEKMKaskLeBoFAZkCYYDU+h4tghUp6SGaMBjxPt2im7mu mSchn0VcimtB33HQ+UGH+J+igGbTz/zZAv9+3dsTh4OCE4oLvMIS8Zkq5S4zYotr4w YBLsXEmdx/Kbw== Received: by mail-ej1-f46.google.com with SMTP id m12so32323493eja.2; Tue, 11 May 2021 16:50:58 -0700 (PDT) X-Gm-Message-State: AOAM531wroLBjTy0TZGPsn8f+TyA1dhXZll/aVatrnX+Si0omHPn43vW htMdJGQ5S9cyz3+crHdnCCeZFEv34RKC6dggFw== X-Google-Smtp-Source: ABdhPJzjNs7/285LwkoeFSKYuqkSqbvIEBl87cc/Cda5/XkfKnqXdUrPzChXJP8JxwNkqt+qZOyNF1qaEMQ3Eu+lbWM= X-Received: by 2002:a17:906:b0cb:: with SMTP id bk11mr34935753ejb.310.1620777056572; Tue, 11 May 2021 16:50:56 -0700 (PDT) MIME-Version: 1.0 References: <20210429041641.11077-1-rex-bc.chen@mediatek.com> <20210429041641.11077-4-rex-bc.chen@mediatek.com> In-Reply-To: <20210429041641.11077-4-rex-bc.chen@mediatek.com> From: Chun-Kuang Hu Date: Wed, 12 May 2021 07:50:45 +0800 X-Gmail-Original-Message-ID: Message-ID: Subject: Re: [v3 RESEND,PATCH 3/3] drm/mediatek: dpi: add bus format negotiation To: Rex-BC Chen Cc: Chun-Kuang Hu , Matthias Brugger , DTML , Linux ARM , "moderated list:ARM/Mediatek SoC support" , linux-kernel , Project_Global_Chrome_Upstream_Group@mediatek.com, Jitao Shi Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Hi, Rex: Rex-BC Chen =E6=96=BC 2021=E5=B9=B44=E6=9C=8829= =E6=97=A5 =E9=80=B1=E5=9B=9B =E4=B8=8B=E5=8D=8812:16=E5=AF=AB=E9=81=93=EF= =BC=9A > > Add the atomic_get_output_bus_fmts, atomic_get_input_bus_fmts to negotiat= e > the possible output and input formats for the current mode and monitor, > and use the negotiated formats in a basic atomic_check callback. > > Signed-off-by: Jitao Shi > Signed-off-by: Rex-BC Chen > --- > drivers/gpu/drm/mediatek/mtk_dpi.c | 92 ++++++++++++++++++++++++++++-- > 1 file changed, 87 insertions(+), 5 deletions(-) > > diff --git a/drivers/gpu/drm/mediatek/mtk_dpi.c b/drivers/gpu/drm/mediate= k/mtk_dpi.c > index c548780dd3a5..8822d9448ae8 100644 > --- a/drivers/gpu/drm/mediatek/mtk_dpi.c > +++ b/drivers/gpu/drm/mediatek/mtk_dpi.c > @@ -536,6 +536,87 @@ static int mtk_dpi_set_display_mode(struct mtk_dpi *= dpi, > return 0; > } > > +#define MAX_OUTPUT_SEL_FORMATS 2 > + > +static u32 *mtk_dpi_bridge_atomic_get_output_bus_fmts(struct drm_bridge = *bridge, > + struct drm_bridge_state *bridge_s= tate, > + struct drm_crtc_state *crtc_state= , > + struct drm_connector_state *conn_= state, > + unsigned int *num_output_fmts) > +{ > + u32 *output_fmts; > + struct mtk_dpi *dpi =3D bridge_to_dpi(bridge); > + > + *num_output_fmts =3D 0; > + > + output_fmts =3D kcalloc(MAX_OUTPUT_SEL_FORMATS, sizeof(*output_fm= ts), > + GFP_KERNEL); > + if (!output_fmts) > + return NULL; > + > + /* Default 8bit RGB fallback */ > + if (dpi->conf->dual_edge) { > + output_fmts[0] =3D MEDIA_BUS_FMT_RGB888_2X12_LE; > + output_fmts[1] =3D MEDIA_BUS_FMT_RGB888_2X12_BE; > + *num_output_fmts =3D 2; In the definition of dual_edge, it may imply that support MEDIA_BUS_FMT_BGR565_2X8_BE and MEDIA_BUS_FMT_BGR565_2X8_LE. So I would like dpi->conf to store output_fmts instead of dual_edge. The output_fmts could imply use dual_edge or not. Regards, Chun-Kuang. > + } else { > + output_fmts[0] =3D MEDIA_BUS_FMT_RGB888_1X24; > + *num_output_fmts =3D 1; > + } > + > + return output_fmts; > +} > + > +#define MAX_INPUT_SEL_FORMATS 1 > + > +static u32 *mtk_dpi_bridge_atomic_get_input_bus_fmts(struct drm_bridge *= bridge, > + struct drm_bridge_state *bridge_s= tate, > + struct drm_crtc_state *crtc_state= , > + struct drm_connector_state *conn_= state, > + u32 output_fmt, > + unsigned int *num_input_fmts) > +{ > + u32 *input_fmts; > + > + *num_input_fmts =3D 0; > + > + input_fmts =3D kcalloc(MAX_INPUT_SEL_FORMATS, sizeof(*input_fmts)= , > + GFP_KERNEL); > + if (!input_fmts) > + return NULL; > + > + *num_input_fmts =3D 1; > + input_fmts[0] =3D MEDIA_BUS_FMT_RGB888_1X24; > + > + return input_fmts; > +} > + > +static int mtk_dpi_bridge_atomic_check(struct drm_bridge *bridge, > + struct drm_bridge_state *bridge_st= ate, > + struct drm_crtc_state *crtc_state, > + struct drm_connector_state *conn_s= tate) > +{ > + struct mtk_dpi *dpi =3D bridge->driver_private; > + unsigned int out_bus_format; > + > + out_bus_format =3D bridge_state->output_bus_cfg.format; > + > + dev_dbg(dpi->dev, "input format 0x%04x, output format 0x%04x\n", > + bridge_state->input_bus_cfg.format, > + bridge_state->output_bus_cfg.format); > + > + dpi->ddr_edge_sel =3D (out_bus_format =3D=3D MEDIA_BUS_FMT_RGB888= _2X12_LE) ? > + true : false; > + > + dpi->bit_num =3D MTK_DPI_OUT_BIT_NUM_8BITS; > + dpi->channel_swap =3D MTK_DPI_OUT_CHANNEL_SWAP_RGB; > + dpi->yc_map =3D MTK_DPI_OUT_YC_MAP_RGB; > + dpi->color_format =3D MTK_DPI_COLOR_FORMAT_RGB; > + > + return 0; > +} > + > static int mtk_dpi_bridge_attach(struct drm_bridge *bridge, > enum drm_bridge_attach_flags flags) > { > > @@ -574,6 +655,12 @@ static const struct drm_bridge_funcs mtk_dpi_bridge_= funcs =3D { > .mode_set =3D mtk_dpi_bridge_mode_set, > .disable =3D mtk_dpi_bridge_disable, > .enable =3D mtk_dpi_bridge_enable, > + .atomic_check =3D mtk_dpi_bridge_atomic_check, > + .atomic_get_output_bus_fmts =3D mtk_dpi_bridge_atomic_get_output_= bus_fmts, > + .atomic_get_input_bus_fmts =3D mtk_dpi_bridge_atomic_get_input_bu= s_fmts, > + .atomic_duplicate_state =3D drm_atomic_helper_bridge_duplicate_st= ate, > + .atomic_destroy_state =3D drm_atomic_helper_bridge_destroy_state, > + .atomic_reset =3D drm_atomic_helper_bridge_reset, > }; > > void mtk_dpi_start(struct device *dev) > @@ -620,11 +707,6 @@ static int mtk_dpi_bind(struct device *dev, struct d= evice *master, void *data) > } > drm_connector_attach_encoder(dpi->connector, &dpi->encoder); > > - dpi->bit_num =3D MTK_DPI_OUT_BIT_NUM_8BITS; > - dpi->channel_swap =3D MTK_DPI_OUT_CHANNEL_SWAP_RGB; > - dpi->yc_map =3D MTK_DPI_OUT_YC_MAP_RGB; > - dpi->color_format =3D MTK_DPI_COLOR_FORMAT_RGB; > - > return 0; > > err_cleanup: > -- > 2.18.0 > 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=-14.7 required=3.0 tests=BAYES_00,DKIMWL_WL_HIGH, DKIM_SIGNED,DKIM_VALID,INCLUDES_CR_TRAILER,INCLUDES_PATCH,MAILING_LIST_MULTI, SPF_HELO_NONE,SPF_PASS,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 CF343C433B4 for ; Tue, 11 May 2021 23:52:53 +0000 (UTC) Received: from desiato.infradead.org (desiato.infradead.org [90.155.92.199]) (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 41128613C6 for ; Tue, 11 May 2021 23:52:53 +0000 (UTC) DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 41128613C6 Authentication-Results: mail.kernel.org; dmarc=fail (p=none dis=none) header.from=kernel.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=desiato.20200630; h=Sender:Content-Transfer-Encoding :Content-Type:List-Subscribe:List-Help:List-Post:List-Archive: List-Unsubscribe:List-Id:Cc:To:Subject:Message-ID:Date:From:In-Reply-To: References:MIME-Version:Reply-To:Content-ID:Content-Description:Resent-Date: Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID:List-Owner; bh=dpYYLRRLc/991g0sXiX2fcWrIcxruFzXV4mh3PmQ/kA=; b=RJDOUqCK5IsRK23+eIErVvqo5 sH+607Clo024NM4QGPN962qiT9Qbe5X9MfdYv+QcZZDGGYj/XG4rLcJmCDuR1YYPJhITicdFFCOQ2 ylTK/qUzC0YIQ8b5n7zbuWhw1dEk3tW4vdWpk5f8aC7J0y7ij3653CTXDNNfVBvde2ZiwsfQ1yy9N AKaBAIiT2dMNNQayGoBANSDMiGBQ6QRxTfKE1UYXjMrckF4xKRoTKeUa41Ew8h7qeor+mu88AJJIt 0XlnL68oxeIRbtZwUC3V3EP8rPs4l0p9F2ezX2c6Sfh6/QeDK/UywxVUMaIOzWEbfY77lFJlxGWdu 7Nesr8D7g==; Received: from localhost ([::1] helo=desiato.infradead.org) by desiato.infradead.org with esmtp (Exim 4.94 #2 (Red Hat Linux)) id 1lgc9Z-001Ydw-GU; Tue, 11 May 2021 23:51:05 +0000 Received: from bombadil.infradead.org ([2607:7c80:54:e::133]) by desiato.infradead.org with esmtps (Exim 4.94 #2 (Red Hat Linux)) id 1lgc9V-001Ydk-Sd; Tue, 11 May 2021 23:51:02 +0000 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=infradead.org; s=bombadil.20210309; h=Content-Transfer-Encoding: Content-Type:Cc:To:Subject:Message-ID:Date:From:In-Reply-To:References: MIME-Version:Sender:Reply-To:Content-ID:Content-Description; bh=AvKrF11WJBhR4b6nhMeG6zL8lSDRrC2m2z/2pEcVuAE=; b=2Nu1TI+PxdQfGfQtIta1NBCbwT m91bmwuhaN10vU/DKQQKpOOi+/Lst5uS5j3jdIkM7/1V1gBSavS9ivct4uOC6qlgiSDCPp9NEysni LU2wuwOGSZ/HjhTgeRQb4XKopGoQF16FDvGyrNKt0JApLVe3tfTTv1j922jl8CrIMxT/egySxiCbr HCo9Pt8lID+0mr8pfQA588F6Qlj7T/2gWx3SevsbICGY9d8PC9VL5Epd8VL65i2z2OPFRuNYIqwtW SfpS9A/1BNdih+WlBVUK0nFmKvyhHOPNDyiqx+Azt8u1NB5r6YhlzK3pE+bMdxlBqgskEJnQw6WyN vmI37tIg==; Received: from mail.kernel.org ([198.145.29.99]) by bombadil.infradead.org with esmtps (Exim 4.94 #2 (Red Hat Linux)) id 1lgc9T-009zuw-0J; Tue, 11 May 2021 23:51:00 +0000 Received: by mail.kernel.org (Postfix) with ESMTPSA id 1FB006190A; Tue, 11 May 2021 23:50:58 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1620777058; bh=F5ZEQuF0H9iy+oscjWcT5j+fhCa3iygNB9Kp4e81/pE=; h=References:In-Reply-To:From:Date:Subject:To:Cc:From; b=O7IBcM/jHmtJjTBZ+0nNpaPPz/f2AOYcSHLOnCwFuwfnef1H4EhcK7xVOe0CMGTSQ 6cLI9+89r+sqpvNuNRk5ajcgk6RqNLtB0LBTeebiFKfq4z/BBLiMmS0F6Bo8kq7yS5 8iI9+YVEITzMoWx1LYhTnaFAPVjGEGjp+J2zt9O21ZsfijQqmckUcNUMIX8OozvwyQ b1OsD/88PMWK6bz4Vn2HppEKMKaskLeBoFAZkCYYDU+h4tghUp6SGaMBjxPt2im7mu mSchn0VcimtB33HQ+UGH+J+igGbTz/zZAv9+3dsTh4OCE4oLvMIS8Zkq5S4zYotr4w YBLsXEmdx/Kbw== Received: by mail-ej1-f41.google.com with SMTP id w3so32315492ejc.4; Tue, 11 May 2021 16:50:58 -0700 (PDT) X-Gm-Message-State: AOAM530y+vNT3P0bD0GRdZOJEcQnDX8K20sWxjqJDLcUp93HKMYQEbmX P0GrIjHrC3Zi45zGgToyBjPPDbqUqSm3MG0n1g== X-Google-Smtp-Source: ABdhPJzjNs7/285LwkoeFSKYuqkSqbvIEBl87cc/Cda5/XkfKnqXdUrPzChXJP8JxwNkqt+qZOyNF1qaEMQ3Eu+lbWM= X-Received: by 2002:a17:906:b0cb:: with SMTP id bk11mr34935753ejb.310.1620777056572; Tue, 11 May 2021 16:50:56 -0700 (PDT) MIME-Version: 1.0 References: <20210429041641.11077-1-rex-bc.chen@mediatek.com> <20210429041641.11077-4-rex-bc.chen@mediatek.com> In-Reply-To: <20210429041641.11077-4-rex-bc.chen@mediatek.com> From: Chun-Kuang Hu Date: Wed, 12 May 2021 07:50:45 +0800 X-Gmail-Original-Message-ID: Message-ID: Subject: Re: [v3 RESEND, PATCH 3/3] drm/mediatek: dpi: add bus format negotiation To: Rex-BC Chen Cc: Chun-Kuang Hu , Matthias Brugger , DTML , Linux ARM , "moderated list:ARM/Mediatek SoC support" , linux-kernel , Project_Global_Chrome_Upstream_Group@mediatek.com, Jitao Shi X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20210511_165059_120322_CDF906C2 X-CRM114-Status: GOOD ( 19.58 ) 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 SGksIFJleDoKClJleC1CQyBDaGVuIDxyZXgtYmMuY2hlbkBtZWRpYXRlay5jb20+IOaWvCAyMDIx 5bm0NOaciDI55pelIOmAseWbmyDkuIvljYgxMjoxNuWvq+mBk++8mgo+Cj4gQWRkIHRoZSBhdG9t aWNfZ2V0X291dHB1dF9idXNfZm10cywgYXRvbWljX2dldF9pbnB1dF9idXNfZm10cyB0byBuZWdv dGlhdGUKPiB0aGUgcG9zc2libGUgb3V0cHV0IGFuZCBpbnB1dCBmb3JtYXRzIGZvciB0aGUgY3Vy cmVudCBtb2RlIGFuZCBtb25pdG9yLAo+IGFuZCB1c2UgdGhlIG5lZ290aWF0ZWQgZm9ybWF0cyBp biBhIGJhc2ljIGF0b21pY19jaGVjayBjYWxsYmFjay4KPgo+IFNpZ25lZC1vZmYtYnk6IEppdGFv IFNoaSA8aml0YW8uc2hpQG1lZGlhdGVrLmNvbT4KPiBTaWduZWQtb2ZmLWJ5OiBSZXgtQkMgQ2hl biA8cmV4LWJjLmNoZW5AbWVkaWF0ZWsuY29tPgo+IC0tLQo+ICBkcml2ZXJzL2dwdS9kcm0vbWVk aWF0ZWsvbXRrX2RwaS5jIHwgOTIgKysrKysrKysrKysrKysrKysrKysrKysrKysrKy0tCj4gIDEg ZmlsZSBjaGFuZ2VkLCA4NyBpbnNlcnRpb25zKCspLCA1IGRlbGV0aW9ucygtKQo+Cj4gZGlmZiAt LWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9tZWRpYXRlay9tdGtfZHBpLmMgYi9kcml2ZXJzL2dwdS9k cm0vbWVkaWF0ZWsvbXRrX2RwaS5jCj4gaW5kZXggYzU0ODc4MGRkM2E1Li44ODIyZDk0NDhhZTgg MTAwNjQ0Cj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL21lZGlhdGVrL210a19kcGkuYwo+ICsrKyBi L2RyaXZlcnMvZ3B1L2RybS9tZWRpYXRlay9tdGtfZHBpLmMKPiBAQCAtNTM2LDYgKzUzNiw4NyBA QCBzdGF0aWMgaW50IG10a19kcGlfc2V0X2Rpc3BsYXlfbW9kZShzdHJ1Y3QgbXRrX2RwaSAqZHBp LAo+ICAgICAgICAgcmV0dXJuIDA7Cj4gIH0KPgo+ICsjZGVmaW5lIE1BWF9PVVRQVVRfU0VMX0ZP Uk1BVFMgMgo+ICsKPiArc3RhdGljIHUzMiAqbXRrX2RwaV9icmlkZ2VfYXRvbWljX2dldF9vdXRw dXRfYnVzX2ZtdHMoc3RydWN0IGRybV9icmlkZ2UgKmJyaWRnZSwKPiArICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgc3RydWN0IGRybV9icmlkZ2Vfc3RhdGUgKmJyaWRnZV9z dGF0ZSwKPiArICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RydWN0IGRy bV9jcnRjX3N0YXRlICpjcnRjX3N0YXRlLAo+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBzdHJ1Y3QgZHJtX2Nvbm5lY3Rvcl9zdGF0ZSAqY29ubl9zdGF0ZSwKPiArICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdW5zaWduZWQgaW50ICpudW1fb3V0 cHV0X2ZtdHMpCj4gK3sKPiArICAgICAgIHUzMiAqb3V0cHV0X2ZtdHM7Cj4gKyAgICAgICBzdHJ1 Y3QgbXRrX2RwaSAqZHBpID0gYnJpZGdlX3RvX2RwaShicmlkZ2UpOwo+ICsKPiArICAgICAgICpu dW1fb3V0cHV0X2ZtdHMgPSAwOwo+ICsKPiArICAgICAgIG91dHB1dF9mbXRzID0ga2NhbGxvYyhN QVhfT1VUUFVUX1NFTF9GT1JNQVRTLCBzaXplb2YoKm91dHB1dF9mbXRzKSwKPiArICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBHRlBfS0VSTkVMKTsKPiArICAgICAgIGlmICghb3V0cHV0X2Zt dHMpCj4gKyAgICAgICAgICAgICAgIHJldHVybiBOVUxMOwo+ICsKPiArICAgICAgIC8qIERlZmF1 bHQgOGJpdCBSR0IgZmFsbGJhY2sgKi8KPiArICAgICAgIGlmIChkcGktPmNvbmYtPmR1YWxfZWRn ZSkgewo+ICsgICAgICAgICAgICAgICBvdXRwdXRfZm10c1swXSA9ICBNRURJQV9CVVNfRk1UX1JH Qjg4OF8yWDEyX0xFOwo+ICsgICAgICAgICAgICAgICBvdXRwdXRfZm10c1sxXSA9ICBNRURJQV9C VVNfRk1UX1JHQjg4OF8yWDEyX0JFOwo+ICsgICAgICAgICAgICAgICAqbnVtX291dHB1dF9mbXRz ID0gMjsKCkluIHRoZSBkZWZpbml0aW9uIG9mIGR1YWxfZWRnZSwgaXQgbWF5IGltcGx5IHRoYXQg c3VwcG9ydApNRURJQV9CVVNfRk1UX0JHUjU2NV8yWDhfQkUgYW5kIE1FRElBX0JVU19GTVRfQkdS NTY1XzJYOF9MRS4gU28gSQp3b3VsZCBsaWtlIGRwaS0+Y29uZiB0byBzdG9yZSBvdXRwdXRfZm10 cyBpbnN0ZWFkIG9mIGR1YWxfZWRnZS4gVGhlCm91dHB1dF9mbXRzIGNvdWxkIGltcGx5IHVzZSBk dWFsX2VkZ2Ugb3Igbm90LgoKUmVnYXJkcywKQ2h1bi1LdWFuZy4KCj4gKyAgICAgICB9IGVsc2Ug ewo+ICsgICAgICAgICAgICAgICBvdXRwdXRfZm10c1swXSA9ICBNRURJQV9CVVNfRk1UX1JHQjg4 OF8xWDI0Owo+ICsgICAgICAgICAgICAgICAqbnVtX291dHB1dF9mbXRzID0gMTsKPiArICAgICAg IH0KPiArCj4gKyAgICAgICByZXR1cm4gb3V0cHV0X2ZtdHM7Cj4gK30KPiArCj4gKyNkZWZpbmUg TUFYX0lOUFVUX1NFTF9GT1JNQVRTICAxCj4gKwo+ICtzdGF0aWMgdTMyICptdGtfZHBpX2JyaWRn ZV9hdG9taWNfZ2V0X2lucHV0X2J1c19mbXRzKHN0cnVjdCBkcm1fYnJpZGdlICpicmlkZ2UsCj4g KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cnVjdCBkcm1fYnJpZGdl X3N0YXRlICpicmlkZ2Vfc3RhdGUsCj4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIHN0cnVjdCBkcm1fY3J0Y19zdGF0ZSAqY3J0Y19zdGF0ZSwKPiArICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RydWN0IGRybV9jb25uZWN0b3Jfc3RhdGUgKmNv bm5fc3RhdGUsCj4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHUzMiBv dXRwdXRfZm10LAo+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1bnNp Z25lZCBpbnQgKm51bV9pbnB1dF9mbXRzKQo+ICt7Cj4gKyAgICAgICB1MzIgKmlucHV0X2ZtdHM7 Cj4gKwo+ICsgICAgICAgKm51bV9pbnB1dF9mbXRzID0gMDsKPiArCj4gKyAgICAgICBpbnB1dF9m bXRzID0ga2NhbGxvYyhNQVhfSU5QVVRfU0VMX0ZPUk1BVFMsIHNpemVvZigqaW5wdXRfZm10cyks Cj4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBHRlBfS0VSTkVMKTsKPiArICAgICAgIGlm ICghaW5wdXRfZm10cykKPiArICAgICAgICAgICAgICAgcmV0dXJuIE5VTEw7Cj4gKwo+ICsgICAg ICAgKm51bV9pbnB1dF9mbXRzID0gMTsKPiArICAgICAgIGlucHV0X2ZtdHNbMF0gPSBNRURJQV9C VVNfRk1UX1JHQjg4OF8xWDI0Owo+ICsKPiArICAgICAgIHJldHVybiBpbnB1dF9mbXRzOwo+ICt9 Cj4gKwo+ICtzdGF0aWMgaW50IG10a19kcGlfYnJpZGdlX2F0b21pY19jaGVjayhzdHJ1Y3QgZHJt X2JyaWRnZSAqYnJpZGdlLAo+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IHN0cnVjdCBkcm1fYnJpZGdlX3N0YXRlICpicmlkZ2Vfc3RhdGUsCj4gKyAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgc3RydWN0IGRybV9jcnRjX3N0YXRlICpjcnRjX3N0YXRl LAo+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cnVjdCBkcm1fY29u bmVjdG9yX3N0YXRlICpjb25uX3N0YXRlKQo+ICt7Cj4gKyAgICAgICBzdHJ1Y3QgbXRrX2RwaSAq ZHBpID0gYnJpZGdlLT5kcml2ZXJfcHJpdmF0ZTsKPiArICAgICAgIHVuc2lnbmVkIGludCBvdXRf YnVzX2Zvcm1hdDsKPiArCj4gKyAgICAgICBvdXRfYnVzX2Zvcm1hdCA9IGJyaWRnZV9zdGF0ZS0+ b3V0cHV0X2J1c19jZmcuZm9ybWF0Owo+ICsKPiArICAgICAgIGRldl9kYmcoZHBpLT5kZXYsICJp bnB1dCBmb3JtYXQgMHglMDR4LCBvdXRwdXQgZm9ybWF0IDB4JTA0eFxuIiwKPiArICAgICAgICAg ICAgICAgYnJpZGdlX3N0YXRlLT5pbnB1dF9idXNfY2ZnLmZvcm1hdCwKPiArICAgICAgICAgICAg ICAgYnJpZGdlX3N0YXRlLT5vdXRwdXRfYnVzX2NmZy5mb3JtYXQpOwo+ICsKPiArICAgICAgIGRw aS0+ZGRyX2VkZ2Vfc2VsID0gKG91dF9idXNfZm9ybWF0ID09IE1FRElBX0JVU19GTVRfUkdCODg4 XzJYMTJfTEUpID8KPiArICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRydWUgOiBmYWxz ZTsKPiArCj4gKyAgICAgICBkcGktPmJpdF9udW0gPSBNVEtfRFBJX09VVF9CSVRfTlVNXzhCSVRT Owo+ICsgICAgICAgZHBpLT5jaGFubmVsX3N3YXAgPSBNVEtfRFBJX09VVF9DSEFOTkVMX1NXQVBf UkdCOwo+ICsgICAgICAgZHBpLT55Y19tYXAgPSBNVEtfRFBJX09VVF9ZQ19NQVBfUkdCOwo+ICsg ICAgICAgZHBpLT5jb2xvcl9mb3JtYXQgPSBNVEtfRFBJX0NPTE9SX0ZPUk1BVF9SR0I7Cj4gKwo+ ICsgICAgICAgcmV0dXJuIDA7Cj4gK30KPiArCj4gIHN0YXRpYyBpbnQgbXRrX2RwaV9icmlkZ2Vf YXR0YWNoKHN0cnVjdCBkcm1fYnJpZGdlICpicmlkZ2UsCj4gICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgZW51bSBkcm1fYnJpZGdlX2F0dGFjaF9mbGFncyBmbGFncykKPiAgewo+Cj4g QEAgLTU3NCw2ICs2NTUsMTIgQEAgc3RhdGljIGNvbnN0IHN0cnVjdCBkcm1fYnJpZGdlX2Z1bmNz IG10a19kcGlfYnJpZGdlX2Z1bmNzID0gewo+ICAgICAgICAgLm1vZGVfc2V0ID0gbXRrX2RwaV9i cmlkZ2VfbW9kZV9zZXQsCj4gICAgICAgICAuZGlzYWJsZSA9IG10a19kcGlfYnJpZGdlX2Rpc2Fi bGUsCj4gICAgICAgICAuZW5hYmxlID0gbXRrX2RwaV9icmlkZ2VfZW5hYmxlLAo+ICsgICAgICAg LmF0b21pY19jaGVjayA9IG10a19kcGlfYnJpZGdlX2F0b21pY19jaGVjaywKPiArICAgICAgIC5h dG9taWNfZ2V0X291dHB1dF9idXNfZm10cyA9IG10a19kcGlfYnJpZGdlX2F0b21pY19nZXRfb3V0 cHV0X2J1c19mbXRzLAo+ICsgICAgICAgLmF0b21pY19nZXRfaW5wdXRfYnVzX2ZtdHMgPSBtdGtf ZHBpX2JyaWRnZV9hdG9taWNfZ2V0X2lucHV0X2J1c19mbXRzLAo+ICsgICAgICAgLmF0b21pY19k dXBsaWNhdGVfc3RhdGUgPSBkcm1fYXRvbWljX2hlbHBlcl9icmlkZ2VfZHVwbGljYXRlX3N0YXRl LAo+ICsgICAgICAgLmF0b21pY19kZXN0cm95X3N0YXRlID0gZHJtX2F0b21pY19oZWxwZXJfYnJp ZGdlX2Rlc3Ryb3lfc3RhdGUsCj4gKyAgICAgICAuYXRvbWljX3Jlc2V0ID0gZHJtX2F0b21pY19o ZWxwZXJfYnJpZGdlX3Jlc2V0LAo+ICB9Owo+Cj4gIHZvaWQgbXRrX2RwaV9zdGFydChzdHJ1Y3Qg ZGV2aWNlICpkZXYpCj4gQEAgLTYyMCwxMSArNzA3LDYgQEAgc3RhdGljIGludCBtdGtfZHBpX2Jp bmQoc3RydWN0IGRldmljZSAqZGV2LCBzdHJ1Y3QgZGV2aWNlICptYXN0ZXIsIHZvaWQgKmRhdGEp Cj4gICAgICAgICB9Cj4gICAgICAgICBkcm1fY29ubmVjdG9yX2F0dGFjaF9lbmNvZGVyKGRwaS0+ Y29ubmVjdG9yLCAmZHBpLT5lbmNvZGVyKTsKPgo+IC0gICAgICAgZHBpLT5iaXRfbnVtID0gTVRL X0RQSV9PVVRfQklUX05VTV84QklUUzsKPiAtICAgICAgIGRwaS0+Y2hhbm5lbF9zd2FwID0gTVRL X0RQSV9PVVRfQ0hBTk5FTF9TV0FQX1JHQjsKPiAtICAgICAgIGRwaS0+eWNfbWFwID0gTVRLX0RQ SV9PVVRfWUNfTUFQX1JHQjsKPiAtICAgICAgIGRwaS0+Y29sb3JfZm9ybWF0ID0gTVRLX0RQSV9D T0xPUl9GT1JNQVRfUkdCOwo+IC0KPiAgICAgICAgIHJldHVybiAwOwo+Cj4gIGVycl9jbGVhbnVw Ogo+IC0tCj4gMi4xOC4wCj4KCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fCmxpbnV4LWFybS1rZXJuZWwgbWFpbGluZyBsaXN0CmxpbnV4LWFybS1rZXJuZWxA bGlzdHMuaW5mcmFkZWFkLm9yZwpodHRwOi8vbGlzdHMuaW5mcmFkZWFkLm9yZy9tYWlsbWFuL2xp c3RpbmZvL2xpbnV4LWFybS1rZXJuZWwK