Received: by 2002:a05:6358:bb9e:b0:b9:5105:a5b4 with SMTP id df30csp4255046rwb; Tue, 6 Sep 2022 05:07:47 -0700 (PDT) X-Google-Smtp-Source: AA6agR6cv0O+a1lWWwHimVF4kXEaHOZwlrnecMv+jZLwUMHlRGUzaOeJSevHQLiDdHbLm8YLVUuf X-Received: by 2002:a05:6402:5ca:b0:445:c80a:3c2 with SMTP id n10-20020a05640205ca00b00445c80a03c2mr47363666edx.247.1662466067413; Tue, 06 Sep 2022 05:07:47 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1662466067; cv=none; d=google.com; s=arc-20160816; b=CrKSV+6mXEMUQFcom5NTGtOeI6xEK6vaTEgGY+AqbOwFnE6Tgs6Th2XQHIovQ+tjqB LLfq9dbfTp63TCdErppmIh7slxI618pjkoZ2+0kUVulf3jT5rtAO7rs2u9I+T/S2Vt9U tsP2eq7L4AJFBVFxOSQDdPN7b2uU41XVy2uClbmIR6KBiXp8zA9NgDW73X0mWOKBvy5J 0nwRpszrzwUC5J9XlDiwqOlDsubTQ9g1CoFYdgBNgV3c1Yp2rUeztPjHcckfK3Wr6jUj BPZU0YiOYfkT+cysUquypQxK+WA6FOL/ohgMX8M7Hu2+dTWZ/k81N/wnTo3FAYll/566 5LCg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:message-id:mime-version :content-transfer-encoding:references:in-reply-to:subject:cc:to:from :date; bh=Z4n6Xgvr8Uiq8Vk1CYsSnUJOj7TVRNDB9HnmVRZ4Ekw=; b=CiaZyia5jmlif7ro72DNvRmTYt4KTy0Dn7Xk5OkUSSkzx/WHMuOWG6DnJOTApjHZOI aimH3VbwcBieATLPqqfTN3fQd/xFegIVakvkrPUENbHIOFdHlLkNk7G1AfNnKAgDYP06 bi7vl1EEXFUHhzyrQOHx8G/FehaVycXBKtgGCQ2TQugeDtzBIyUQ6NbSpqPWTin+rCik M7qxXjL1pIJLSpfYwweMMdCdFMMNlwIEdyxp5rcQ5BBeZFM2JdoeVi9TebrrNCZ6WS99 1prcfuLmuqyIL9OrhCXxwP9xhEyj8Il6ff5CI6R1vs221QE7TZUuhrCxsqbene3ez+5o NCKg== ARC-Authentication-Results: i=1; mx.google.com; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Return-Path: Received: from out1.vger.email (out1.vger.email. [2620:137:e000::1:20]) by mx.google.com with ESMTP id gt34-20020a1709072da200b0076f061ffab4si1774900ejc.51.2022.09.06.05.07.20; Tue, 06 Sep 2022 05:07:47 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) client-ip=2620:137:e000::1:20; Authentication-Results: mx.google.com; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S233182AbiIFMBC (ORCPT + 99 others); Tue, 6 Sep 2022 08:01:02 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:58162 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S232295AbiIFMA6 (ORCPT ); Tue, 6 Sep 2022 08:00:58 -0400 Received: from loongson.cn (mail.loongson.cn [114.242.206.163]) by lindbergh.monkeyblade.net (Postfix) with ESMTP id C8CD67820C for ; Tue, 6 Sep 2022 05:00:54 -0700 (PDT) Received: from lichenyang$loongson.cn ( [10.20.42.75] ) by ajax-webmail-localhost.localdomain (Coremail) ; Tue, 6 Sep 2022 20:00:18 +0800 (GMT+08:00) X-Originating-IP: [10.20.42.75] Date: Tue, 6 Sep 2022 20:00:18 +0800 (GMT+08:00) X-CM-HeaderCharset: UTF-8 From: =?UTF-8?B?5p2O5pmo6Ziz?= To: "Maxime Ripard" , "Maarten Lankhorst" , "Thomas Zimmermann" , "Dan Carpenter" , "David Airlie" , "Daniel Vetter" , dri-devel@lists.freedesktop.org, devel@linuxdriverproject.org Cc: "Sam Ravnborg" , linux-kernel@vger.kernel.org Subject: [PATCH v7 3/4] drm/loongson: Add interrupt driver for LS7A. X-Priority: 3 X-Mailer: Coremail Webmail Server Version XT5.0.14 build 20220411(feba7c69) Copyright (c) 2002-2022 www.mailtech.cn .loongson.cn In-Reply-To: <20220625090715.3663-1-lichenyang@loongson.cn> References: <20220625090715.3663-1-lichenyang@loongson.cn> Content-Transfer-Encoding: base64 X-CM-CTRLDATA: vQ1MB2Zvb3Rlcl90eHQ9ODA4OTo2MTI= Content-Type: text/plain; charset=UTF-8 MIME-Version: 1.0 Message-ID: <2d5650a1.6328.18312ac307a.Coremail.lichenyang@loongson.cn> X-Coremail-Locale: zh_CN X-CM-TRANSID: AQAAf8BxP+BSNhdjYbcSAA--.4070W X-CM-SenderInfo: xolfxvxq1d0wo6or00hjvr0hdfq/1tbiAQABA2MV5tsWagACs2 X-Coremail-Antispam: 1Ur529EdanIXcx71UUUUU7IcSsGvfJ3iIAIbVAYjsxI4VW3Jw CS07vEb4IE77IF4wCS07vE1I0E4x80FVAKz4kxMIAIbVAFxVCaYxvI4VCIwcAKzIAtYxBI daVFxhVjvjDU= X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00,SPF_HELO_PASS, SPF_PASS,T_SCC_BODY_TEXT_LINE autolearn=ham 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 QWRkIExTN0EgREMgdnN5bmMgaW50ZXJydXB0IGVuYWJsZSBhbmQgY2xvc2UgZnVuY3Rpb24sIGFu ZApyZWdpc3RlciBpcnFfaGFuZGxlciBmdW5jdGlvbiBpbnRlcmZhY2UuCkFkZCB2YnJhbmsgZXZl bnQgcHJvY2Vzc2luZyBmbG93LgoKdjQ6Ci0gUmVwbGFjZSBkcm1faXJxX2luc3RhbGwgd2l0aCBk ZXZtX3JlcXVlc3RfaXJxLgotIERlbGV0ZSB0aGUgaXJxXyBob29rcyBpbiBkcm1fZHJpdmVyLgoK djM6Ci0gSW1wcm92ZSBjb2RlIHJlYWRhYmlsaXR5LgotIFVzZSB0aGUgdG9fcGNpX2RldiBmdW5j dGlvbiB0byBnZXQgcGNpX2Rldi4KCnYyOgotIEFkZGVkIGVycm9yIGhhbmRsaW5nIGluIHRoZSBs b29uZ3Nvbl9kcm1fbG9hZCBmdW5jdGlvbi4KClNpZ25lZC1vZmYtYnk6IENoZW55YW5nIExpIDxs aWNoZW55YW5nQGxvb25nc29uLmNuPgotLS0KIGRyaXZlcnMvZ3B1L2RybS9sb29uZ3Nvbi9NYWtl ZmlsZSAgICAgICAgfCAgMSArCiBkcml2ZXJzL2dwdS9kcm0vbG9vbmdzb24vbG9vbmdzb25fY3J0 Yy5jIHwgMzcgKysrKysrKysrKysKIGRyaXZlcnMvZ3B1L2RybS9sb29uZ3Nvbi9sb29uZ3Nvbl9k cnYuYyAgfCAgOSArKy0KIGRyaXZlcnMvZ3B1L2RybS9sb29uZ3Nvbi9sb29uZ3Nvbl9kcnYuaCAg fCAxMCArKysKIGRyaXZlcnMvZ3B1L2RybS9sb29uZ3Nvbi9sb29uZ3Nvbl9pcnEuYyAgfCA4NCAr KysrKysrKysrKysrKysrKysrKysrKysKIDUgZmlsZXMgY2hhbmdlZCwgMTQwIGluc2VydGlvbnMo KyksIDEgZGVsZXRpb24oLSkKIGNyZWF0ZSBtb2RlIDEwMDY0NCBkcml2ZXJzL2dwdS9kcm0vbG9v bmdzb24vbG9vbmdzb25faXJxLmMKCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vbG9vbmdz b24vTWFrZWZpbGUgYi9kcml2ZXJzL2dwdS9kcm0vbG9vbmdzb24vTWFrZWZpbGUKaW5kZXggNGE1 ZmFiN2QwMDBiLi5iMDgzODU0ZDc4OWIgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9sb29u Z3Nvbi9NYWtlZmlsZQorKysgYi9kcml2ZXJzL2dwdS9kcm0vbG9vbmdzb24vTWFrZWZpbGUKQEAg LTEwLDUgKzEwLDYgQEAgbG9vbmdzb24teSA6PSBsb29uZ3Nvbl9jb25uZWN0b3IubyBcCiAJbG9v bmdzb25fZHJ2Lm8gXAogCWxvb25nc29uX2VuY29kZXIubyBcCiAJbG9vbmdzb25faTJjLm8gXAor CWxvb25nc29uX2lycS5vIFwKIAlsb29uZ3Nvbl9wbGFuZS5vCiBvYmotJChDT05GSUdfRFJNX0xP T05HU09OKSArPSBsb29uZ3Nvbi5vCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vbG9vbmdz b24vbG9vbmdzb25fY3J0Yy5jIGIvZHJpdmVycy9ncHUvZHJtL2xvb25nc29uL2xvb25nc29uX2Ny dGMuYwppbmRleCA2MTEzNzhjZWY4ZTguLjZhMzFmZjkxMWNlMSAxMDA2NDQKLS0tIGEvZHJpdmVy cy9ncHUvZHJtL2xvb25nc29uL2xvb25nc29uX2NydGMuYworKysgYi9kcml2ZXJzL2dwdS9kcm0v bG9vbmdzb24vbG9vbmdzb25fY3J0Yy5jCkBAIC00LDYgKzQsNyBAQAogICovCiAKICNpbmNsdWRl IDxkcm0vZHJtX2ZvdXJjYy5oPgorI2luY2x1ZGUgPGRybS9kcm1fdmJsYW5rLmg+CiAKICNpbmNs dWRlICJsb29uZ3Nvbl9kcnYuaCIKIApAQCAtMTY3LDggKzE2OCwxNCBAQCBzdGF0aWMgdm9pZCBs b29uZ3Nvbl9jcnRjX2F0b21pY19lbmFibGUoc3RydWN0IGRybV9jcnRjICpjcnRjLAogCXN0cnVj dCBsb29uZ3Nvbl9jcnRjICpsY3J0YyA9IHRvX2xvb25nc29uX2NydGMoY3J0Yyk7CiAJdTMyIHJl Z19vZmZzZXQgPSBsY3J0Yy0+cmVnX29mZnNldDsKIAorCWlmIChsY3J0Yy0+Y2ZnX3JlZyAmIENG R19FTkFCTEUpCisJCWdvdG8gdmJsYW5rX29uOworCiAJbGNydGMtPmNmZ19yZWcgfD0gQ0ZHX0VO QUJMRTsKIAlsczdhX21tX3dyZWcobGRldiwgRkJfQ0ZHX1JFRyArIHJlZ19vZmZzZXQsIGxjcnRj LT5jZmdfcmVnKTsKKwordmJsYW5rX29uOgorCWRybV9jcnRjX3ZibGFua19vbihjcnRjKTsKIH0K IAogc3RhdGljIHZvaWQgbG9vbmdzb25fY3J0Y19hdG9taWNfZGlzYWJsZShzdHJ1Y3QgZHJtX2Ny dGMgKmNydGMsCkBAIC0xODEsNiArMTg4LDMzIEBAIHN0YXRpYyB2b2lkIGxvb25nc29uX2NydGNf YXRvbWljX2Rpc2FibGUoc3RydWN0IGRybV9jcnRjICpjcnRjLAogCiAJbGNydGMtPmNmZ19yZWcg Jj0gfkNGR19FTkFCTEU7CiAJbHM3YV9tbV93cmVnKGxkZXYsIEZCX0NGR19SRUcgKyByZWdfb2Zm c2V0LCBsY3J0Yy0+Y2ZnX3JlZyk7CisKKwlzcGluX2xvY2tfaXJxKCZjcnRjLT5kZXYtPmV2ZW50 X2xvY2spOworCWlmIChjcnRjLT5zdGF0ZS0+ZXZlbnQpIHsKKwkJZHJtX2NydGNfc2VuZF92Ymxh bmtfZXZlbnQoY3J0YywgY3J0Yy0+c3RhdGUtPmV2ZW50KTsKKwkJY3J0Yy0+c3RhdGUtPmV2ZW50 ID0gTlVMTDsKKwl9CisJc3Bpbl91bmxvY2tfaXJxKCZjcnRjLT5kZXYtPmV2ZW50X2xvY2spOwor CisJZHJtX2NydGNfdmJsYW5rX29mZihjcnRjKTsKK30KKworc3RhdGljIHZvaWQgbG9vbmdzb25f Y3J0Y19hdG9taWNfZmx1c2goc3RydWN0IGRybV9jcnRjICpjcnRjLAorCQkJCSAgICAgICBzdHJ1 Y3QgZHJtX2F0b21pY19zdGF0ZSAqc3RhdGUpCit7CisJc3RydWN0IGRybV9wZW5kaW5nX3ZibGFu a19ldmVudCAqZXZlbnQgPSBjcnRjLT5zdGF0ZS0+ZXZlbnQ7CisKKwlpZiAoIWV2ZW50KQorCQly ZXR1cm47CisKKwljcnRjLT5zdGF0ZS0+ZXZlbnQgPSBOVUxMOworCisJc3Bpbl9sb2NrX2lycSgm Y3J0Yy0+ZGV2LT5ldmVudF9sb2NrKTsKKwlpZiAoZHJtX2NydGNfdmJsYW5rX2dldChjcnRjKSA9 PSAwKQorCQlkcm1fY3J0Y19hcm1fdmJsYW5rX2V2ZW50KGNydGMsIGV2ZW50KTsKKwllbHNlCisJ CWRybV9jcnRjX3NlbmRfdmJsYW5rX2V2ZW50KGNydGMsIGV2ZW50KTsKKwlzcGluX3VubG9ja19p cnEoJmNydGMtPmRldi0+ZXZlbnRfbG9jayk7CiB9CiAKIHN0YXRpYyBlbnVtIGRybV9tb2RlX3N0 YXR1cyBsb29uZ3Nvbl9tb2RlX3ZhbGlkKHN0cnVjdCBkcm1fY3J0YyAqY3J0YywKQEAgLTIwMCw2 ICsyMzQsNyBAQCBzdGF0aWMgZW51bSBkcm1fbW9kZV9zdGF0dXMgbG9vbmdzb25fbW9kZV92YWxp ZChzdHJ1Y3QgZHJtX2NydGMgKmNydGMsCiAKIHN0YXRpYyBjb25zdCBzdHJ1Y3QgZHJtX2NydGNf aGVscGVyX2Z1bmNzIGxvb25nc29uX2NydGNfaGVscGVyX2Z1bmNzID0gewogCS5tb2RlX3ZhbGlk ID0gbG9vbmdzb25fbW9kZV92YWxpZCwKKwkuYXRvbWljX2ZsdXNoID0gbG9vbmdzb25fY3J0Y19h dG9taWNfZmx1c2gsCiAJLmF0b21pY19lbmFibGUgPSBsb29uZ3Nvbl9jcnRjX2F0b21pY19lbmFi bGUsCiAJLmF0b21pY19kaXNhYmxlID0gbG9vbmdzb25fY3J0Y19hdG9taWNfZGlzYWJsZSwKIAku bW9kZV9zZXRfbm9mYiA9IGxvb25nc29uX2NydGNfbW9kZV9zZXRfbm9mYiwKQEAgLTIxMSw2ICsy NDYsOCBAQCBzdGF0aWMgY29uc3Qgc3RydWN0IGRybV9jcnRjX2Z1bmNzIGxvb25nc29uX2NydGNf ZnVuY3MgPSB7CiAJLnJlc2V0ID0gZHJtX2F0b21pY19oZWxwZXJfY3J0Y19yZXNldCwKIAkuYXRv bWljX2R1cGxpY2F0ZV9zdGF0ZSA9IGRybV9hdG9taWNfaGVscGVyX2NydGNfZHVwbGljYXRlX3N0 YXRlLAogCS5hdG9taWNfZGVzdHJveV9zdGF0ZSA9IGRybV9hdG9taWNfaGVscGVyX2NydGNfZGVz dHJveV9zdGF0ZSwKKwkuZW5hYmxlX3ZibGFuayA9IGxvb25nc29uX2NydGNfZW5hYmxlX3ZibGFu aywKKwkuZGlzYWJsZV92YmxhbmsgPSBsb29uZ3Nvbl9jcnRjX2Rpc2FibGVfdmJsYW5rLAogfTsK IAogaW50IGxvb25nc29uX2NydGNfaW5pdChzdHJ1Y3QgbG9vbmdzb25fZGV2aWNlICpsZGV2LCBp bnQgaW5kZXgpCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vbG9vbmdzb24vbG9vbmdzb25f ZHJ2LmMgYi9kcml2ZXJzL2dwdS9kcm0vbG9vbmdzb24vbG9vbmdzb25fZHJ2LmMKaW5kZXggMmUz ZWY2MTkzNzY3Li4xZDZmMzVlNzg4MTMgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9sb29u Z3Nvbi9sb29uZ3Nvbl9kcnYuYworKysgYi9kcml2ZXJzL2dwdS9kcm0vbG9vbmdzb24vbG9vbmdz b25fZHJ2LmMKQEAgLTIzLDkgKzIzLDEwIEBACiAvKiBJbnRlcmZhY2UgaGlzdG9yeToKICAqIDAu MSAtIG9yaWdpbmFsLgogICogMC4yIC0gYWRkIGkyYyBhbmQgY29ubmVjdG9yIGRldGVjdC4KKyAq IDAuMyAtIFZibGFuayBhbmQgdnN5bmMgaW50ZXJydXB0IHN1cHBvcnQuCiAgKi8KICNkZWZpbmUg RFJJVkVSX01BSk9SIDAKLSNkZWZpbmUgRFJJVkVSX01JTk9SIDIKKyNkZWZpbmUgRFJJVkVSX01J Tk9SIDMKIAogc3RhdGljIGNvbnN0IHN0cnVjdCBkcm1fbW9kZV9jb25maWdfZnVuY3MgbG9vbmdz b25fbW9kZV9mdW5jcyA9IHsKIAkuZmJfY3JlYXRlID0gZHJtX2dlbV9mYl9jcmVhdGUsCkBAIC0x NjcsNiArMTY4LDEyIEBAIHN0YXRpYyBpbnQgbG9vbmdzb25fZHJpdmVyX2luaXQoc3RydWN0IGRy bV9kZXZpY2UgKmRldikKIAkJZ290byBlcnI7CiAJfQogCisJcmV0ID0gbG9vbmdzb25faXJxX2lu aXQobGRldik7CisJaWYgKHJldCkgeworCQlkZXZfZXJyKGRldi0+ZGV2LCAiRmF0YWwgZXJyb3Ig ZHVyaW5nIGlycSBpbml0OiAlZFxuIiwgcmV0KTsKKwkJZ290byBlcnI7CisJfQorCiAJZHJtX2tt c19oZWxwZXJfcG9sbF9pbml0KGRldik7CiAJZHJtX21vZGVfY29uZmlnX3Jlc2V0KGRldik7CiAK ZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9sb29uZ3Nvbi9sb29uZ3Nvbl9kcnYuaCBiL2Ry aXZlcnMvZ3B1L2RybS9sb29uZ3Nvbi9sb29uZ3Nvbl9kcnYuaAppbmRleCA1YmUyOWQyZDFhNDku LmFmNDdlNjg0ODdmZCAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2xvb25nc29uL2xvb25n c29uX2Rydi5oCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9sb29uZ3Nvbi9sb29uZ3Nvbl9kcnYuaApA QCAtNDAsNiArNDAsNyBAQAogI2RlZmluZSBGQl9IU1lOQ19SRUcgKDB4MTQyMCkKICNkZWZpbmUg RkJfVkRJU1BMQVlfUkVHICgweDE0ODApCiAjZGVmaW5lIEZCX1ZTWU5DX1JFRyAoMHgxNGEwKQor I2RlZmluZSBGQl9JTlRfUkVHICgweDE1NzApCiAKICNkZWZpbmUgQ0ZHX0ZNVCBHRU5NQVNLKDIs IDApCiAjZGVmaW5lIENGR19GQlNXSVRDSCBCSVQoNykKQEAgLTUxLDYgKzUyLDEwIEBACiAjZGVm aW5lIEZCX1BBTkNGR19ERUYgMHg4MDAwMTMxMQogI2RlZmluZSBGQl9IU1lOQ19QVUxTRSAoMSA8 PCAzMCkKICNkZWZpbmUgRkJfVlNZTkNfUFVMU0UgKDEgPDwgMzApCisjZGVmaW5lIEZCX1ZTWU5D MV9FTkFCTEUgKDEgPDwgMTYpCisjZGVmaW5lIEZCX1ZTWU5DMF9FTkFCTEUgKDEgPDwgMTgpCisj ZGVmaW5lIEZCX1ZTWU5DMV9JTlQgKDEgPDwgMCkKKyNkZWZpbmUgRkJfVlNZTkMwX0lOVCAoMSA8 PCAyKQogCiAvKiBQSVggUExMICovCiAjZGVmaW5lIExPT1BDX01JTiAyNApAQCAtMTI4LDYgKzEz MywxMSBAQCBzdHJ1Y3QgbG9vbmdzb25fcGxhbmUgKmxvb25nc29uX3BsYW5lX2luaXQoc3RydWN0 IGRybV9kZXZpY2UgKmRldiwgaW50IGluZGV4KTsKIC8qIGkyYyAqLwogaW50IGxvb25nc29uX2Rj X2dwaW9faW5pdChzdHJ1Y3QgbG9vbmdzb25fZGV2aWNlICpsZGV2KTsKIAorLyogaXJxICovCitp bnQgbG9vbmdzb25faXJxX2luaXQoc3RydWN0IGxvb25nc29uX2RldmljZSAqbGRldik7CitpbnQg bG9vbmdzb25fY3J0Y19lbmFibGVfdmJsYW5rKHN0cnVjdCBkcm1fY3J0YyAqY3J0Yyk7Cit2b2lk IGxvb25nc29uX2NydGNfZGlzYWJsZV92Ymxhbmsoc3RydWN0IGRybV9jcnRjICpjcnRjKTsKKwog LyogZGV2aWNlICovCiB1MzIgbG9vbmdzb25fZ3B1X29mZnNldChzdHJ1Y3QgZHJtX3BsYW5lX3N0 YXRlICpzdGF0ZSwKIAkJCXN0cnVjdCBsb29uZ3Nvbl9kZXZpY2UgKmRldik7CmRpZmYgLS1naXQg YS9kcml2ZXJzL2dwdS9kcm0vbG9vbmdzb24vbG9vbmdzb25faXJxLmMgYi9kcml2ZXJzL2dwdS9k cm0vbG9vbmdzb24vbG9vbmdzb25faXJxLmMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw MDAwMDAwMDAwLi5iYTIxNWQ1ODVkYzcKLS0tIC9kZXYvbnVsbAorKysgYi9kcml2ZXJzL2dwdS9k cm0vbG9vbmdzb24vbG9vbmdzb25faXJxLmMKQEAgLTAsMCArMSw4NCBAQAorLy8gU1BEWC1MaWNl bnNlLUlkZW50aWZpZXI6IEdQTC0yLjAtb3ItbGF0ZXIKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIw MjAtMjAyMiBMb29uZ3NvbiBUZWNobm9sb2d5IENvcnBvcmF0aW9uIExpbWl0ZWQKKyAqLworCisj aW5jbHVkZSA8bGludXgvcGNpLmg+CisKKyNpbmNsdWRlIDxkcm0vZHJtX3ZibGFuay5oPgorCisj aW5jbHVkZSAibG9vbmdzb25fZHJ2LmgiCisKK3N0YXRpYyBpcnFyZXR1cm5fdCBsb29uZ3Nvbl9p cnFfaGFuZGxlcihpbnQgaXJxLCB2b2lkICphcmcpCit7CisJc3RydWN0IGRybV9kZXZpY2UgKmRl diA9IChzdHJ1Y3QgZHJtX2RldmljZSAqKSBhcmc7CisJc3RydWN0IGxvb25nc29uX2RldmljZSAq bGRldiA9IHRvX2xvb25nc29uX2RldmljZShkZXYpOworCXN0cnVjdCBsb29uZ3Nvbl9jcnRjICps Y3J0YzsKKwl1MzIgdmFsOworCisJdmFsID0gbHM3YV9tbV9ycmVnKGxkZXYsIEZCX0lOVF9SRUcp OworCWxzN2FfbW1fd3JlZyhsZGV2LCBGQl9JTlRfUkVHLCB2YWwgJiAoMHhmZmZmIDw8IDE2KSk7 CisKKwlpZiAodmFsICYgRkJfVlNZTkMwX0lOVCkKKwkJbGNydGMgPSBsZGV2LT5tb2RlX2luZm9b MF0uY3J0YzsKKwllbHNlIGlmICh2YWwgJiBGQl9WU1lOQzFfSU5UKQorCQlsY3J0YyA9IGxkZXYt Pm1vZGVfaW5mb1sxXS5jcnRjOworCisJZHJtX2NydGNfaGFuZGxlX3ZibGFuaygmbGNydGMtPmJh c2UpOworCisJcmV0dXJuIElSUV9IQU5ETEVEOworfQorCitpbnQgbG9vbmdzb25faXJxX2luaXQo c3RydWN0IGxvb25nc29uX2RldmljZSAqbGRldikKK3sKKwlpbnQgcmV0OworCXN0cnVjdCBkcm1f ZGV2aWNlICpkZXYgPSAmbGRldi0+ZGV2OworCWludCBpcnEgPSB0b19wY2lfZGV2KGRldi0+ZGV2 KS0+aXJxOworCisJcmV0ID0gZHJtX3ZibGFua19pbml0KGRldiwgbGRldi0+bnVtX2NydGMpOwor CWlmIChyZXQpIHsKKwkJZGV2X2VycihkZXYtPmRldiwgIkZhdGFsIGVycm9yIGR1cmluZyB2Ymxh bmsgaW5pdDogJWRcbiIsIHJldCk7CisJCXJldHVybiByZXQ7CisJfQorCURSTV9JTkZPKCJkcm0g dmJsYW5rIGluaXQgZmluaXNoZWRcbiIpOworCisJcmV0ID0gZGV2bV9yZXF1ZXN0X2lycShkZXYt PmRldiwgaXJxLCBsb29uZ3Nvbl9pcnFfaGFuZGxlciwgMCwKKwkJCSAgICAgICAibG9vbmdzb24t ZHJtIiwgZGV2KTsKKwlpZiAocmV0KSB7CisJCWRldl9lcnIoZGV2LT5kZXYsICJGYXRhbCBlcnJv ciBkdXJpbmcgaXJxIGluc3RhbGw6ICVkXG4iLCByZXQpOworCQlyZXR1cm4gcmV0OworCX0KKwlE Uk1fSU5GTygibG9vbmdzb24gaXJxIGluaXRpYWxpemVkXG4iKTsKKworCXJldHVybiAwOworfQor CitpbnQgbG9vbmdzb25fY3J0Y19lbmFibGVfdmJsYW5rKHN0cnVjdCBkcm1fY3J0YyAqY3J0YykK K3sKKwlzdHJ1Y3QgbG9vbmdzb25fY3J0YyAqbGNydGMgPSB0b19sb29uZ3Nvbl9jcnRjKGNydGMp OworCXN0cnVjdCBsb29uZ3Nvbl9kZXZpY2UgKmxkZXYgPSBsY3J0Yy0+bGRldjsKKwl1MzIgcmVn X3ZhbCA9IGxzN2FfbW1fcnJlZyhsZGV2LCBGQl9JTlRfUkVHKTsKKworCWlmIChsY3J0Yy0+Y3J0 Y19pZCkKKwkJcmVnX3ZhbCB8PSBGQl9WU1lOQzFfRU5BQkxFOworCWVsc2UKKwkJcmVnX3ZhbCB8 PSBGQl9WU1lOQzBfRU5BQkxFOworCisJbHM3YV9tbV93cmVnKGxkZXYsIEZCX0lOVF9SRUcsIHJl Z192YWwpOworCisJcmV0dXJuIDA7Cit9CisKK3ZvaWQgbG9vbmdzb25fY3J0Y19kaXNhYmxlX3Zi bGFuayhzdHJ1Y3QgZHJtX2NydGMgKmNydGMpCit7CisJc3RydWN0IGxvb25nc29uX2NydGMgKmxj cnRjID0gdG9fbG9vbmdzb25fY3J0YyhjcnRjKTsKKwlzdHJ1Y3QgbG9vbmdzb25fZGV2aWNlICps ZGV2ID0gbGNydGMtPmxkZXY7CisJdTMyIHJlZ192YWwgPSBsczdhX21tX3JyZWcobGRldiwgRkJf SU5UX1JFRyk7CisKKwlpZiAobGNydGMtPmNydGNfaWQpCisJCXJlZ192YWwgJj0gfkZCX1ZTWU5D MV9FTkFCTEU7CisJZWxzZQorCQlyZWdfdmFsICY9IH5GQl9WU1lOQzBfRU5BQkxFOworCisJbHM3 YV9tbV93cmVnKGxkZXYsIEZCX0lOVF9SRUcsIHJlZ192YWwpOworfQotLSAKMi4yNS4xCg0KDQrm nKzpgq7ku7blj4rlhbbpmYTku7blkKvmnInpvpnoiq/kuK3np5HnmoTllYbkuJrnp5jlr4bkv6Hm ga/vvIzku4XpmZDkuo7lj5HpgIHnu5nkuIrpnaLlnLDlnYDkuK3liJflh7rnmoTkuKrkurrmiJbn vqTnu4TjgILnpoHmraLku7vkvZXlhbbku5bkurrku6Xku7vkvZXlvaLlvI/kvb/nlKjvvIjljIXm i6zkvYbkuI3pmZDkuo7lhajpg6jmiJbpg6jliIblnLDms4TpnLLjgIHlpI3liLbmiJbmlaPlj5Hv vInmnKzpgq7ku7blj4rlhbbpmYTku7bkuK3nmoTkv6Hmga/jgILlpoLmnpzmgqjplJnmlLbmnKzp gq7ku7bvvIzor7fmgqjnq4vljbPnlLXor53miJbpgq7ku7bpgJrnn6Xlj5Hku7bkurrlubbliKDp maTmnKzpgq7ku7bjgIIgDQpUaGlzIGVtYWlsIGFuZCBpdHMgYXR0YWNobWVudHMgY29udGFpbiBj b25maWRlbnRpYWwgaW5mb3JtYXRpb24gZnJvbSBMb29uZ3NvbiBUZWNobm9sb2d5ICwgd2hpY2gg aXMgaW50ZW5kZWQgb25seSBmb3IgdGhlIHBlcnNvbiBvciBlbnRpdHkgd2hvc2UgYWRkcmVzcyBp cyBsaXN0ZWQgYWJvdmUuIEFueSB1c2Ugb2YgdGhlIGluZm9ybWF0aW9uIGNvbnRhaW5lZCBoZXJl aW4gaW4gYW55IHdheSAoaW5jbHVkaW5nLCBidXQgbm90IGxpbWl0ZWQgdG8sIHRvdGFsIG9yIHBh cnRpYWwgZGlzY2xvc3VyZSwgcmVwcm9kdWN0aW9uIG9yIGRpc3NlbWluYXRpb24pIGJ5IHBlcnNv bnMgb3RoZXIgdGhhbiB0aGUgaW50ZW5kZWQgcmVjaXBpZW50KHMpIGlzIHByb2hpYml0ZWQuIElm IHlvdSByZWNlaXZlIHRoaXMgZW1haWwgaW4gZXJyb3IsIHBsZWFzZSBub3RpZnkgdGhlIHNlbmRl ciBieSBwaG9uZSBvciBlbWFpbCBpbW1lZGlhdGVseSBhbmQgZGVsZXRlIGl0LiA=