From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-9.8 required=3.0 tests=DKIM_SIGNED,DKIM_VALID, DKIM_VALID_AU,HEADER_FROM_DIFFERENT_DOMAINS,INCLUDES_PATCH,MAILING_LIST_MULTI, MIME_BASE64_TEXT,SIGNED_OFF_BY,SPF_HELO_NONE,SPF_PASS,UNPARSEABLE_RELAY, USER_AGENT_GIT autolearn=ham autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id EB412C2D0CE for ; Tue, 21 Jan 2020 09:53:57 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by mail.kernel.org (Postfix) with ESMTP id AC0F120882 for ; Tue, 21 Jan 2020 09:53:57 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=pass (1024-bit key) header.d=mediatek.com header.i=@mediatek.com header.b="qgX4IIyU" Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1729368AbgAUJx5 (ORCPT ); Tue, 21 Jan 2020 04:53:57 -0500 Received: from mailgw01.mediatek.com ([210.61.82.183]:1870 "EHLO mailgw01.mediatek.com" rhost-flags-OK-FAIL-OK-FAIL) by vger.kernel.org with ESMTP id S1728512AbgAUJx4 (ORCPT ); Tue, 21 Jan 2020 04:53:56 -0500 X-UUID: 287215e410034dde8120c6d99a7b3471-20200121 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=mediatek.com; s=dk; h=Content-Transfer-Encoding:Content-Type:MIME-Version:References:In-Reply-To:Message-ID:Date:Subject:CC:To:From; bh=i7hVTw1Uz+soU8H99sQFAkp94yyVm0a7WO5A4c2GLd4=; b=qgX4IIyU3LBP5nYwI/2e0nKNy3IsSELPjEaM+Q4Y6vy6TIa/bfvCVn/mNtMtkbXy+yuRZGy3QCVNE0pPNToQ9/xfRjkf1MPD9XxHmLH2e/SUvFIJBqbezdnFxlJagKKzniVBovwXZykM4M+zOQA/DVgZFS0JPmNTiAjXEmRkXtY=; X-UUID: 287215e410034dde8120c6d99a7b3471-20200121 Received: from mtkcas06.mediatek.inc [(172.21.101.30)] by mailgw01.mediatek.com (envelope-from ) (Cellopoint E-mail Firewall v4.1.10 Build 0809 with TLS) with ESMTP id 993479257; Tue, 21 Jan 2020 17:53:47 +0800 Received: from MTKCAS06.mediatek.inc (172.21.101.30) by mtkmbs07n1.mediatek.inc (172.21.101.16) with Microsoft SMTP Server (TLS) id 15.0.1395.4; Tue, 21 Jan 2020 17:53:06 +0800 Received: from localhost.localdomain (10.17.3.153) by MTKCAS06.mediatek.inc (172.21.101.73) with Microsoft SMTP Server id 15.0.1395.4 via Frontend Transport; Tue, 21 Jan 2020 17:51:44 +0800 From: Xia Jiang To: Hans Verkuil , Mauro Carvalho Chehab , Rob Herring , Matthias Brugger , Rick Chang CC: , , , , , Marek Szyprowski , Tomasz Figa , , Xia Jiang Subject: [PATCH v6 1/5] media: platform: Fix jpeg dec driver bug and improve code quality Date: Tue, 21 Jan 2020 17:53:17 +0800 Message-ID: <20200121095320.32258-2-xia.jiang@mediatek.com> X-Mailer: git-send-email 2.18.0 In-Reply-To: <20200121095320.32258-1-xia.jiang@mediatek.com> References: <20200121095320.32258-1-xia.jiang@mediatek.com> MIME-Version: 1.0 Content-Type: text/plain X-MTK: N Content-Transfer-Encoding: base64 Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Rml4IHY0bDItY29tcGxpYW5jZSB0ZXN0IGJ1ZyBhbmQgaW1wcm92ZSBjb2RlIHF1YWxpdHkgb2Yg anBlZyBkZWNvZGUNCmRyaXZlciwgYmVjYXVzZSB0aGUganBlZyBlbmNvZGUgZHJpdmVyIHdpbGwg YmFzZSBvbiBpdC4NCg0KU2lnbmVkLW9mZi1ieTogWGlhIEppYW5nIDx4aWEuamlhbmdAbWVkaWF0 ZWsuY29tPg0KLS0tDQp2NjogYWxpZ25tZW50ICdNVEtfSlBFR19EQ1RTSVpFJyBtYXRjaCBvcGVu IHBhcmVudGhlc2lzLg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IA0KdjU6IFVzZSBjbGFtcCgpdG8gcmVwbGFjZSBtdGtfanBlZ19ib3VuZF9hbGlnbl9pbWFnZSgp IGFuZCByb3VuZF91cCgpDQogICAgdG8gcmVwbGFjZSBtdGtfanBlZ19hbGlnbigpLg0KICAgIEdl dCBjb3JyZWN0IGNvbXBvc2UgdmFsdWUgaW4gbXRrX2pwZWdfc2VsZWN0aW9uKCkuDQogICAgQ2Fu Y2VsIHNwaW4gbG9jayBhbmQgdW5sb2NrIG9wZXJhdGlvbiBpbiBkZXZpY2UgcnVuIGZ1bmN0aW9u Lg0KICAgIENoYW5nZSByZWdpc3RlciBvZmZzZXQgaGV4IG51bWJlcmFscyBmcm9tIHVwZXJjYXNl IHRvIGxvd2VyY2FzZS4NCg0KdjQ6IG5ldyBhZGQgcGF0Y2ggZm9yIHY0bDItY29tcGxpYW5jZSB0 ZXN0IGJ1ZyBmaXguDQotLS0NCiAuLi4vbWVkaWEvcGxhdGZvcm0vbXRrLWpwZWcvbXRrX2pwZWdf Y29yZS5jICAgfCA3NiArKysrKystLS0tLS0tLS0tLS0tDQogLi4uL21lZGlhL3BsYXRmb3JtL210 ay1qcGVnL210a19qcGVnX2NvcmUuaCAgIHwgIDcgKy0NCiBkcml2ZXJzL21lZGlhL3BsYXRmb3Jt L210ay1qcGVnL210a19qcGVnX2h3LmMgfCAgOCArLQ0KIGRyaXZlcnMvbWVkaWEvcGxhdGZvcm0v bXRrLWpwZWcvbXRrX2pwZWdfaHcuaCB8ICA1IC0tDQogLi4uL21lZGlhL3BsYXRmb3JtL210ay1q cGVnL210a19qcGVnX3JlZy5oICAgIHwgMTkgKysrLS0NCiA1IGZpbGVzIGNoYW5nZWQsIDQzIGlu c2VydGlvbnMoKyksIDcyIGRlbGV0aW9ucygtKQ0KDQpkaWZmIC0tZ2l0IGEvZHJpdmVycy9tZWRp YS9wbGF0Zm9ybS9tdGstanBlZy9tdGtfanBlZ19jb3JlLmMgYi9kcml2ZXJzL21lZGlhL3BsYXRm b3JtL210ay1qcGVnL210a19qcGVnX2NvcmUuYw0KaW5kZXggZWU4MDJmYzNiY2RmLi4zYWQ4N2Y0 Njk5ZWEgMTAwNjQ0DQotLS0gYS9kcml2ZXJzL21lZGlhL3BsYXRmb3JtL210ay1qcGVnL210a19q cGVnX2NvcmUuYw0KKysrIGIvZHJpdmVycy9tZWRpYS9wbGF0Zm9ybS9tdGstanBlZy9tdGtfanBl Z19jb3JlLmMNCkBAIC0xNTcsMjUgKzE1Nyw2IEBAIHN0YXRpYyBzdHJ1Y3QgbXRrX2pwZWdfZm10 ICptdGtfanBlZ19maW5kX2Zvcm1hdChzdHJ1Y3QgbXRrX2pwZWdfY3R4ICpjdHgsDQogCXJldHVy biBOVUxMOw0KIH0NCiANCi1zdGF0aWMgdm9pZCBtdGtfanBlZ19ib3VuZF9hbGlnbl9pbWFnZSh1 MzIgKncsIHVuc2lnbmVkIGludCB3bWluLA0KLQkJCQkgICAgICAgdW5zaWduZWQgaW50IHdtYXgs IHVuc2lnbmVkIGludCB3YWxpZ24sDQotCQkJCSAgICAgICB1MzIgKmgsIHVuc2lnbmVkIGludCBo bWluLA0KLQkJCQkgICAgICAgdW5zaWduZWQgaW50IGhtYXgsIHVuc2lnbmVkIGludCBoYWxpZ24p DQotew0KLQlpbnQgd2lkdGgsIGhlaWdodCwgd19zdGVwLCBoX3N0ZXA7DQotDQotCXdpZHRoID0g Knc7DQotCWhlaWdodCA9ICpoOw0KLQl3X3N0ZXAgPSAxIDw8IHdhbGlnbjsNCi0JaF9zdGVwID0g MSA8PCBoYWxpZ247DQotDQotCXY0bF9ib3VuZF9hbGlnbl9pbWFnZSh3LCB3bWluLCB3bWF4LCB3 YWxpZ24sIGgsIGhtaW4sIGhtYXgsIGhhbGlnbiwgMCk7DQotCWlmICgqdyA8IHdpZHRoICYmICgq dyArIHdfc3RlcCkgPD0gd21heCkNCi0JCSp3ICs9IHdfc3RlcDsNCi0JaWYgKCpoIDwgaGVpZ2h0 ICYmICgqaCArIGhfc3RlcCkgPD0gaG1heCkNCi0JCSpoICs9IGhfc3RlcDsNCi19DQotDQogc3Rh dGljIHZvaWQgbXRrX2pwZWdfYWRqdXN0X2ZtdF9tcGxhbmUoc3RydWN0IG10a19qcGVnX2N0eCAq Y3R4LA0KIAkJCQkgICAgICAgc3RydWN0IHY0bDJfZm9ybWF0ICpmKQ0KIHsNCkBAIC0yMDEsNyAr MTgyLDYgQEAgc3RhdGljIGludCBtdGtfanBlZ190cnlfZm10X21wbGFuZShzdHJ1Y3QgdjRsMl9m b3JtYXQgKmYsDQogCQkJCSAgIHN0cnVjdCBtdGtfanBlZ19jdHggKmN0eCwgaW50IHFfdHlwZSkN CiB7DQogCXN0cnVjdCB2NGwyX3BpeF9mb3JtYXRfbXBsYW5lICpwaXhfbXAgPSAmZi0+Zm10LnBp eF9tcDsNCi0Jc3RydWN0IG10a19qcGVnX2RldiAqanBlZyA9IGN0eC0+anBlZzsNCiAJaW50IGk7 DQogDQogCW1lbXNldChwaXhfbXAtPnJlc2VydmVkLCAwLCBzaXplb2YocGl4X21wLT5yZXNlcnZl ZCkpOw0KQEAgLTIwOSw3ICsxODksNyBAQCBzdGF0aWMgaW50IG10a19qcGVnX3RyeV9mbXRfbXBs YW5lKHN0cnVjdCB2NGwyX2Zvcm1hdCAqZiwNCiANCiAJaWYgKGN0eC0+c3RhdGUgIT0gTVRLX0pQ RUdfSU5JVCkgew0KIAkJbXRrX2pwZWdfYWRqdXN0X2ZtdF9tcGxhbmUoY3R4LCBmKTsNCi0JCWdv dG8gZW5kOw0KKwkJcmV0dXJuIDA7DQogCX0NCiANCiAJcGl4X21wLT5udW1fcGxhbmVzID0gZm10 LT5jb2xwbGFuZXM7DQpAQCAtMjE4LDQ1ICsxOTgsMzUgQEAgc3RhdGljIGludCBtdGtfanBlZ190 cnlfZm10X21wbGFuZShzdHJ1Y3QgdjRsMl9mb3JtYXQgKmYsDQogCWlmIChxX3R5cGUgPT0gTVRL X0pQRUdfRk1UX1RZUEVfT1VUUFVUKSB7DQogCQlzdHJ1Y3QgdjRsMl9wbGFuZV9waXhfZm9ybWF0 ICpwZm10ID0gJnBpeF9tcC0+cGxhbmVfZm10WzBdOw0KIA0KLQkJbXRrX2pwZWdfYm91bmRfYWxp Z25faW1hZ2UoJnBpeF9tcC0+d2lkdGgsIE1US19KUEVHX01JTl9XSURUSCwNCi0JCQkJCSAgIE1U S19KUEVHX01BWF9XSURUSCwgMCwNCi0JCQkJCSAgICZwaXhfbXAtPmhlaWdodCwgTVRLX0pQRUdf TUlOX0hFSUdIVCwNCi0JCQkJCSAgIE1US19KUEVHX01BWF9IRUlHSFQsIDApOw0KKwkJcGl4X21w LT5oZWlnaHQgPSBjbGFtcChwaXhfbXAtPmhlaWdodCwgTVRLX0pQRUdfTUlOX0hFSUdIVCwNCisJ CQkJICAgICAgIE1US19KUEVHX01BWF9IRUlHSFQpOw0KKwkJcGl4X21wLT53aWR0aCA9IGNsYW1w KHBpeF9tcC0+d2lkdGgsIE1US19KUEVHX01JTl9XSURUSCwNCisJCQkJICAgICAgTVRLX0pQRUdf TUFYX1dJRFRIKTsNCiANCiAJCW1lbXNldChwZm10LT5yZXNlcnZlZCwgMCwgc2l6ZW9mKHBmbXQt PnJlc2VydmVkKSk7DQogCQlwZm10LT5ieXRlc3BlcmxpbmUgPSAwOw0KIAkJLyogU291cmNlIHNp emUgbXVzdCBiZSBhbGlnbmVkIHRvIDEyOCAqLw0KLQkJcGZtdC0+c2l6ZWltYWdlID0gbXRrX2pw ZWdfYWxpZ24ocGZtdC0+c2l6ZWltYWdlLCAxMjgpOw0KKwkJcGZtdC0+c2l6ZWltYWdlID0gcm91 bmRfdXAocGZtdC0+c2l6ZWltYWdlLCAxMjgpOw0KIAkJaWYgKHBmbXQtPnNpemVpbWFnZSA9PSAw KQ0KIAkJCXBmbXQtPnNpemVpbWFnZSA9IE1US19KUEVHX0RFRkFVTFRfU0laRUlNQUdFOw0KLQkJ Z290byBlbmQ7DQorCQlyZXR1cm4gMDsNCiAJfQ0KIA0KIAkvKiB0eXBlIGlzIE1US19KUEVHX0ZN VF9UWVBFX0NBUFRVUkUgKi8NCi0JbXRrX2pwZWdfYm91bmRfYWxpZ25faW1hZ2UoJnBpeF9tcC0+ d2lkdGgsIE1US19KUEVHX01JTl9XSURUSCwNCi0JCQkJICAgTVRLX0pQRUdfTUFYX1dJRFRILCBm bXQtPmhfYWxpZ24sDQotCQkJCSAgICZwaXhfbXAtPmhlaWdodCwgTVRLX0pQRUdfTUlOX0hFSUdI VCwNCi0JCQkJICAgTVRLX0pQRUdfTUFYX0hFSUdIVCwgZm10LT52X2FsaWduKTsNCisJcGl4X21w LT5oZWlnaHQgPSBjbGFtcChyb3VuZF91cChwaXhfbXAtPmhlaWdodCwgZm10LT52X2FsaWduKSwN CisJCQkgICAgICAgTVRLX0pQRUdfTUlOX0hFSUdIVCwgTVRLX0pQRUdfTUFYX0hFSUdIVCk7DQor CXBpeF9tcC0+d2lkdGggPSBjbGFtcChyb3VuZF91cChwaXhfbXAtPndpZHRoLCBmbXQtPmhfYWxp Z24pLA0KKwkJCSAgICAgIE1US19KUEVHX01JTl9XSURUSCwgTVRLX0pQRUdfTUFYX1dJRFRIKTsN CiANCiAJZm9yIChpID0gMDsgaSA8IGZtdC0+Y29scGxhbmVzOyBpKyspIHsNCiAJCXN0cnVjdCB2 NGwyX3BsYW5lX3BpeF9mb3JtYXQgKnBmbXQgPSAmcGl4X21wLT5wbGFuZV9mbXRbaV07DQogCQl1 MzIgc3RyaWRlID0gcGl4X21wLT53aWR0aCAqIGZtdC0+aF9zYW1wbGVbaV0gLyA0Ow0KIAkJdTMy IGggPSBwaXhfbXAtPmhlaWdodCAqIGZtdC0+dl9zYW1wbGVbaV0gLyA0Ow0KIA0KLQkJbWVtc2V0 KHBmbXQtPnJlc2VydmVkLCAwLCBzaXplb2YocGZtdC0+cmVzZXJ2ZWQpKTsNCiAJCXBmbXQtPmJ5 dGVzcGVybGluZSA9IHN0cmlkZTsNCiAJCXBmbXQtPnNpemVpbWFnZSA9IHN0cmlkZSAqIGg7DQog CX0NCi1lbmQ6DQotCXY0bDJfZGJnKDIsIGRlYnVnLCAmanBlZy0+djRsMl9kZXYsICJ3eGg6JXV4 JXVcbiIsDQotCQkgcGl4X21wLT53aWR0aCwgcGl4X21wLT5oZWlnaHQpOw0KLQlmb3IgKGkgPSAw OyBpIDwgcGl4X21wLT5udW1fcGxhbmVzOyBpKyspIHsNCi0JCXY0bDJfZGJnKDIsIGRlYnVnLCAm anBlZy0+djRsMl9kZXYsDQotCQkJICJwbGFuZVslZF0gYnBsPSV1LCBzaXplPSV1XG4iLA0KLQkJ CSBpLA0KLQkJCSBwaXhfbXAtPnBsYW5lX2ZtdFtpXS5ieXRlc3BlcmxpbmUsDQotCQkJIHBpeF9t cC0+cGxhbmVfZm10W2ldLnNpemVpbWFnZSk7DQotCX0NCisNCiAJcmV0dXJuIDA7DQogfQ0KIA0K QEAgLTQ0Niw5ICs0MTYsOSBAQCBzdGF0aWMgaW50IG10a19qcGVnX3N1YnNjcmliZV9ldmVudChz dHJ1Y3QgdjRsMl9maCAqZmgsDQogCXN3aXRjaCAoc3ViLT50eXBlKSB7DQogCWNhc2UgVjRMMl9F VkVOVF9TT1VSQ0VfQ0hBTkdFOg0KIAkJcmV0dXJuIHY0bDJfc3JjX2NoYW5nZV9ldmVudF9zdWJz Y3JpYmUoZmgsIHN1Yik7DQotCWRlZmF1bHQ6DQotCQlyZXR1cm4gLUVJTlZBTDsNCiAJfQ0KKw0K KwlyZXR1cm4gdjRsMl9jdHJsX3N1YnNjcmliZV9ldmVudChmaCwgc3ViKTsNCiB9DQogDQogc3Rh dGljIGludCBtdGtfanBlZ19nX3NlbGVjdGlvbihzdHJ1Y3QgZmlsZSAqZmlsZSwgdm9pZCAqcHJp diwNCkBAIC00OTIsOCArNDYyLDggQEAgc3RhdGljIGludCBtdGtfanBlZ19zX3NlbGVjdGlvbihz dHJ1Y3QgZmlsZSAqZmlsZSwgdm9pZCAqcHJpdiwNCiAJY2FzZSBWNEwyX1NFTF9UR1RfQ09NUE9T RToNCiAJCXMtPnIubGVmdCA9IDA7DQogCQlzLT5yLnRvcCA9IDA7DQotCQlzLT5yLndpZHRoID0g Y3R4LT5vdXRfcS53Ow0KLQkJcy0+ci5oZWlnaHQgPSBjdHgtPm91dF9xLmg7DQorCQljdHgtPm91 dF9xLncgPSBzLT5yLndpZHRoOw0KKwkJY3R4LT5vdXRfcS5oID0gcy0+ci5oZWlnaHQ7DQogCQli cmVhazsNCiAJZGVmYXVsdDoNCiAJCXJldHVybiAtRUlOVkFMOw0KQEAgLTU3MSw2ICs1NDEsMTMg QEAgc3RhdGljIGludCBtdGtfanBlZ19xdWV1ZV9zZXR1cChzdHJ1Y3QgdmIyX3F1ZXVlICpxLA0K IAlpZiAoIXFfZGF0YSkNCiAJCXJldHVybiAtRUlOVkFMOw0KIA0KKwlpZiAoKm51bV9wbGFuZXMp IHsNCisJCWZvciAoaSA9IDA7IGkgPCAqbnVtX3BsYW5lczsgaSsrKQ0KKwkJCWlmIChzaXplc1tp XSA8IHFfZGF0YS0+c2l6ZWltYWdlW2ldKQ0KKwkJCQlyZXR1cm4gLUVJTlZBTDsNCisJCXJldHVy biAwOw0KKwl9DQorDQogCSpudW1fcGxhbmVzID0gcV9kYXRhLT5mbXQtPmNvbHBsYW5lczsNCiAJ Zm9yIChpID0gMDsgaSA8IHFfZGF0YS0+Zm10LT5jb2xwbGFuZXM7IGkrKykgew0KIAkJc2l6ZXNb aV0gPSBxX2RhdGEtPnNpemVpbWFnZVtpXTsNCkBAIC03NjQsOCArNzQxLDggQEAgc3RhdGljIHZv aWQgbXRrX2pwZWdfc2V0X2RlY19zcmMoc3RydWN0IG10a19qcGVnX2N0eCAqY3R4LA0KIHsNCiAJ YnMtPnN0cl9hZGRyID0gdmIyX2RtYV9jb250aWdfcGxhbmVfZG1hX2FkZHIoc3JjX2J1ZiwgMCk7 DQogCWJzLT5lbmRfYWRkciA9IGJzLT5zdHJfYWRkciArDQotCQkJIG10a19qcGVnX2FsaWduKHZi Ml9nZXRfcGxhbmVfcGF5bG9hZChzcmNfYnVmLCAwKSwgMTYpOw0KLQlicy0+c2l6ZSA9IG10a19q cGVnX2FsaWduKHZiMl9wbGFuZV9zaXplKHNyY19idWYsIDApLCAxMjgpOw0KKwkJICAgICAgIHJv dW5kX3VwKHZiMl9nZXRfcGxhbmVfcGF5bG9hZChzcmNfYnVmLCAwKSwgMTYpOw0KKwlicy0+c2l6 ZSA9IHJvdW5kX3VwKHZiMl9wbGFuZV9zaXplKHNyY19idWYsIDApLCAxMjgpOw0KIH0NCiANCiBz dGF0aWMgaW50IG10a19qcGVnX3NldF9kZWNfZHN0KHN0cnVjdCBtdGtfanBlZ19jdHggKmN0eCwN CkBAIC04MDEsNyArNzc4LDYgQEAgc3RhdGljIHZvaWQgbXRrX2pwZWdfZGV2aWNlX3J1bih2b2lk ICpwcml2KQ0KIAlzdHJ1Y3QgbXRrX2pwZWdfZGV2ICpqcGVnID0gY3R4LT5qcGVnOw0KIAlzdHJ1 Y3QgdmIyX3Y0bDJfYnVmZmVyICpzcmNfYnVmLCAqZHN0X2J1ZjsNCiAJZW51bSB2YjJfYnVmZmVy X3N0YXRlIGJ1Zl9zdGF0ZSA9IFZCMl9CVUZfU1RBVEVfRVJST1I7DQotCXVuc2lnbmVkIGxvbmcg ZmxhZ3M7DQogCXN0cnVjdCBtdGtfanBlZ19zcmNfYnVmICpqcGVnX3NyY19idWY7DQogCXN0cnVj dCBtdGtfanBlZ19icyBiczsNCiAJc3RydWN0IG10a19qcGVnX2ZiIGZiOw0KQEAgLTgyOSwxMyAr ODA1LDExIEBAIHN0YXRpYyB2b2lkIG10a19qcGVnX2RldmljZV9ydW4odm9pZCAqcHJpdikNCiAJ aWYgKG10a19qcGVnX3NldF9kZWNfZHN0KGN0eCwgJmpwZWdfc3JjX2J1Zi0+ZGVjX3BhcmFtLCAm ZHN0X2J1Zi0+dmIyX2J1ZiwgJmZiKSkNCiAJCWdvdG8gZGVjX2VuZDsNCiANCi0Jc3Bpbl9sb2Nr X2lycXNhdmUoJmpwZWctPmh3X2xvY2ssIGZsYWdzKTsNCiAJbXRrX2pwZWdfZGVjX3Jlc2V0KGpw ZWctPmRlY19yZWdfYmFzZSk7DQogCW10a19qcGVnX2RlY19zZXRfY29uZmlnKGpwZWctPmRlY19y ZWdfYmFzZSwNCiAJCQkJJmpwZWdfc3JjX2J1Zi0+ZGVjX3BhcmFtLCAmYnMsICZmYik7DQogDQog CW10a19qcGVnX2RlY19zdGFydChqcGVnLT5kZWNfcmVnX2Jhc2UpOw0KLQlzcGluX3VubG9ja19p cnFyZXN0b3JlKCZqcGVnLT5od19sb2NrLCBmbGFncyk7DQogCXJldHVybjsNCiANCiBkZWNfZW5k Og0KZGlmZiAtLWdpdCBhL2RyaXZlcnMvbWVkaWEvcGxhdGZvcm0vbXRrLWpwZWcvbXRrX2pwZWdf Y29yZS5oIGIvZHJpdmVycy9tZWRpYS9wbGF0Zm9ybS9tdGstanBlZy9tdGtfanBlZ19jb3JlLmgN CmluZGV4IDk5OWJkMTQyNzgwOS4uZDMyYTZmYmFhMzExIDEwMDY0NA0KLS0tIGEvZHJpdmVycy9t ZWRpYS9wbGF0Zm9ybS9tdGstanBlZy9tdGtfanBlZ19jb3JlLmgNCisrKyBiL2RyaXZlcnMvbWVk aWEvcGxhdGZvcm0vbXRrLWpwZWcvbXRrX2pwZWdfY29yZS5oDQpAQCAtMTUsNiArMTUsOCBAQA0K IA0KICNkZWZpbmUgTVRLX0pQRUdfTkFNRQkJIm10ay1qcGVnIg0KIA0KKyNkZWZpbmUgTVRLX0pQ RUdfQ09NUF9NQVgJCTMNCisNCiAjZGVmaW5lIE1US19KUEVHX0ZNVF9GTEFHX0RFQ19PVVRQVVQJ QklUKDApDQogI2RlZmluZSBNVEtfSlBFR19GTVRfRkxBR19ERUNfQ0FQVFVSRQlCSVQoMSkNCiAN CkBAIC0yOCw2ICszMCw5IEBADQogDQogI2RlZmluZSBNVEtfSlBFR19ERUZBVUxUX1NJWkVJTUFH RQkoMSAqIDEwMjQgKiAxMDI0KQ0KIA0KKy8qKg0KKyAqIGVudW0gbXRrX2pwZWdfY3R4X3N0YXRl IC0gY29udGV4IHN0YXRlIG9mIGpwZWcNCisgKi8NCiBlbnVtIG10a19qcGVnX2N0eF9zdGF0ZSB7 DQogCU1US19KUEVHX0lOSVQgPSAwLA0KIAlNVEtfSlBFR19SVU5OSU5HLA0KQEAgLTEwNyw5ICsx MTIsNyBAQCBzdHJ1Y3QgbXRrX2pwZWdfcV9kYXRhIHsNCiAgKiBAb3V0X3E6CQlzb3VyY2UgKG91 dHB1dCkgcXVldWUgaW5mb3JtYXRpb24NCiAgKiBAY2FwX3E6CQlkZXN0aW5hdGlvbiAoY2FwdHVy ZSkgcXVldWUgcXVldWUgaW5mb3JtYXRpb24NCiAgKiBAZmg6CQkJVjRMMiBmaWxlIGhhbmRsZQ0K LSAqIEBkZWNfcGFyYW0JCXBhcmFtZXRlcnMgZm9yIEhXIGRlY29kaW5nDQogICogQHN0YXRlOgkJ c3RhdGUgb2YgdGhlIGNvbnRleHQNCi0gKiBAaGVhZGVyX3ZhbGlkOglzZXQgaWYgaGVhZGVyIGhh cyBiZWVuIHBhcnNlZCBhbmQgdmFsaWQNCiAgKiBAY29sb3JzcGFjZTogZW51bSB2NGwyX2NvbG9y c3BhY2U7IHN1cHBsZW1lbnRhbCB0byBwaXhlbGZvcm1hdA0KICAqIEB5Y2Jjcl9lbmM6IGVudW0g djRsMl95Y2Jjcl9lbmNvZGluZywgWSdDYkNyIGVuY29kaW5nDQogICogQHF1YW50aXphdGlvbjog ZW51bSB2NGwyX3F1YW50aXphdGlvbiwgY29sb3JzcGFjZSBxdWFudGl6YXRpb24NCmRpZmYgLS1n aXQgYS9kcml2ZXJzL21lZGlhL3BsYXRmb3JtL210ay1qcGVnL210a19qcGVnX2h3LmMgYi9kcml2 ZXJzL21lZGlhL3BsYXRmb3JtL210ay1qcGVnL210a19qcGVnX2h3LmMNCmluZGV4IGRkZjBkZmE3 OGUyMC4uNjhhYmNmZDc0OTRkIDEwMDY0NA0KLS0tIGEvZHJpdmVycy9tZWRpYS9wbGF0Zm9ybS9t dGstanBlZy9tdGtfanBlZ19ody5jDQorKysgYi9kcml2ZXJzL21lZGlhL3BsYXRmb3JtL210ay1q cGVnL210a19qcGVnX2h3LmMNCkBAIC0xNTMsMTAgKzE1MywxMCBAQCBzdGF0aWMgaW50IG10a19q cGVnX2NhbGNfZHN0X3NpemUoc3RydWN0IG10a19qcGVnX2RlY19wYXJhbSAqcGFyYW0pDQogCQkJ CXBhcmFtLT5zYW1wbGluZ193W2ldOw0KIAkJLyogb3V0cHV0IGZvcm1hdCBpcyA0MjAvNDIyICov DQogCQlwYXJhbS0+Y29tcF93W2ldID0gcGFkZGluZ193ID4+IGJyel93W2ldOw0KLQkJcGFyYW0t PmNvbXBfd1tpXSA9IG10a19qcGVnX2FsaWduKHBhcmFtLT5jb21wX3dbaV0sDQotCQkJCQkJICBN VEtfSlBFR19EQ1RTSVpFKTsNCi0JCXBhcmFtLT5pbWdfc3RyaWRlW2ldID0gaSA/IG10a19qcGVn X2FsaWduKHBhcmFtLT5jb21wX3dbaV0sIDE2KQ0KLQkJCQkJOiBtdGtfanBlZ19hbGlnbihwYXJh bS0+Y29tcF93W2ldLCAzMik7DQorCQlwYXJhbS0+Y29tcF93W2ldID0gcm91bmRfdXAocGFyYW0t PmNvbXBfd1tpXSwNCisJCQkJCSAgICBNVEtfSlBFR19EQ1RTSVpFKTsNCisJCXBhcmFtLT5pbWdf c3RyaWRlW2ldID0gaSA/IHJvdW5kX3VwKHBhcmFtLT5jb21wX3dbaV0sIDE2KQ0KKwkJCQkJOiBy b3VuZF91cChwYXJhbS0+Y29tcF93W2ldLCAzMik7DQogCQlkc19yb3dfaFtpXSA9IChNVEtfSlBF R19EQ1RTSVpFICogcGFyYW0tPnNhbXBsaW5nX2hbaV0pOw0KIAl9DQogCXBhcmFtLT5kZWNfdyA9 IHBhcmFtLT5pbWdfc3RyaWRlWzBdOw0KZGlmZiAtLWdpdCBhL2RyaXZlcnMvbWVkaWEvcGxhdGZv cm0vbXRrLWpwZWcvbXRrX2pwZWdfaHcuaCBiL2RyaXZlcnMvbWVkaWEvcGxhdGZvcm0vbXRrLWpw ZWcvbXRrX2pwZWdfaHcuaA0KaW5kZXggOWM2NTg0ZWFhZDk5Li43YjA2ODdmOGY0YjYgMTAwNjQ0 DQotLS0gYS9kcml2ZXJzL21lZGlhL3BsYXRmb3JtL210ay1qcGVnL210a19qcGVnX2h3LmgNCisr KyBiL2RyaXZlcnMvbWVkaWEvcGxhdGZvcm0vbXRrLWpwZWcvbXRrX2pwZWdfaHcuaA0KQEAgLTU0 LDExICs1NCw2IEBAIHN0cnVjdCBtdGtfanBlZ19kZWNfcGFyYW0gew0KIAl1OCB1dl9icnpfdzsN CiB9Ow0KIA0KLXN0YXRpYyBpbmxpbmUgdTMyIG10a19qcGVnX2FsaWduKHUzMiB2YWwsIHUzMiBh bGlnbikNCi17DQotCXJldHVybiAodmFsICsgYWxpZ24gLSAxKSAmIH4oYWxpZ24gLSAxKTsNCi19 DQotDQogc3RydWN0IG10a19qcGVnX2JzIHsNCiAJZG1hX2FkZHJfdAlzdHJfYWRkcjsNCiAJZG1h X2FkZHJfdAllbmRfYWRkcjsNCmRpZmYgLS1naXQgYS9kcml2ZXJzL21lZGlhL3BsYXRmb3JtL210 ay1qcGVnL210a19qcGVnX3JlZy5oIGIvZHJpdmVycy9tZWRpYS9wbGF0Zm9ybS9tdGstanBlZy9t dGtfanBlZ19yZWcuaA0KaW5kZXggOTRkYjA0ZTljZGI2Li4yMWVjOGY5Njc5N2YgMTAwNjQ0DQot LS0gYS9kcml2ZXJzL21lZGlhL3BsYXRmb3JtL210ay1qcGVnL210a19qcGVnX3JlZy5oDQorKysg Yi9kcml2ZXJzL21lZGlhL3BsYXRmb3JtL210ay1qcGVnL210a19qcGVnX3JlZy5oDQpAQCAtOCw3 ICs4LDYgQEANCiAjaWZuZGVmIF9NVEtfSlBFR19SRUdfSA0KICNkZWZpbmUgX01US19KUEVHX1JF R19IDQogDQotI2RlZmluZSBNVEtfSlBFR19DT01QX01BWAkJMw0KICNkZWZpbmUgTVRLX0pQRUdf QkxPQ0tfTUFYCQkxMA0KICNkZWZpbmUgTVRLX0pQRUdfRENUU0laRQkJOA0KIA0KQEAgLTIwLDI5 ICsxOSwyOSBAQA0KICNkZWZpbmUgQklUX0lOUVNUX01BU0tfQUxMSVJRCQkweDM3DQogDQogI2Rl ZmluZSBKUEdERUNfUkVHX1JFU0VUCQkweDAwOTANCi0jZGVmaW5lIEpQR0RFQ19SRUdfQlJaX0ZB Q1RPUgkJMHgwMEY4DQotI2RlZmluZSBKUEdERUNfUkVHX0RVX05VTQkJMHgwMEZDDQorI2RlZmlu ZSBKUEdERUNfUkVHX0JSWl9GQUNUT1IJCTB4MDBmOA0KKyNkZWZpbmUgSlBHREVDX1JFR19EVV9O VU0JCTB4MDBmYw0KICNkZWZpbmUgSlBHREVDX1JFR19ERVNUX0FERFIwX1kJCTB4MDE0MA0KICNk ZWZpbmUgSlBHREVDX1JFR19ERVNUX0FERFIwX1UJCTB4MDE0NA0KICNkZWZpbmUgSlBHREVDX1JF R19ERVNUX0FERFIwX1YJCTB4MDE0OA0KLSNkZWZpbmUgSlBHREVDX1JFR19ERVNUX0FERFIxX1kJ CTB4MDE0Qw0KKyNkZWZpbmUgSlBHREVDX1JFR19ERVNUX0FERFIxX1kJCTB4MDE0Yw0KICNkZWZp bmUgSlBHREVDX1JFR19ERVNUX0FERFIxX1UJCTB4MDE1MA0KICNkZWZpbmUgSlBHREVDX1JFR19E RVNUX0FERFIxX1YJCTB4MDE1NA0KICNkZWZpbmUgSlBHREVDX1JFR19TVFJJREVfWQkJMHgwMTU4 DQotI2RlZmluZSBKUEdERUNfUkVHX1NUUklERV9VVgkJMHgwMTVDDQorI2RlZmluZSBKUEdERUNf UkVHX1NUUklERV9VVgkJMHgwMTVjDQogI2RlZmluZSBKUEdERUNfUkVHX0lNR19TVFJJREVfWQkJ MHgwMTYwDQogI2RlZmluZSBKUEdERUNfUkVHX0lNR19TVFJJREVfVVYJMHgwMTY0DQotI2RlZmlu ZSBKUEdERUNfUkVHX1dETUFfQ1RSTAkJMHgwMTZDDQorI2RlZmluZSBKUEdERUNfUkVHX1dETUFf Q1RSTAkJMHgwMTZjDQogI2RlZmluZSBKUEdERUNfUkVHX1BBVVNFX01DVV9OVU0JMHgwMTcwDQot I2RlZmluZSBKUEdERUNfUkVHX09QRVJBVElPTl9NT0RFCTB4MDE3Qw0KKyNkZWZpbmUgSlBHREVD X1JFR19PUEVSQVRJT05fTU9ERQkweDAxN2MNCiAjZGVmaW5lIEpQR0RFQ19SRUdfRklMRV9BRERS CQkweDAyMDANCi0jZGVmaW5lIEpQR0RFQ19SRUdfQ09NUF9JRAkJMHgwMjBDDQorI2RlZmluZSBK UEdERUNfUkVHX0NPTVBfSUQJCTB4MDIwYw0KICNkZWZpbmUgSlBHREVDX1JFR19UT1RBTF9NQ1Vf TlVNCTB4MDIxMA0KICNkZWZpbmUgSlBHREVDX1JFR19DT01QMF9EQVRBX1VOSVRfTlVNCTB4MDIy NA0KLSNkZWZpbmUgSlBHREVDX1JFR19EVV9DVFJMCQkweDAyM0MNCisjZGVmaW5lIEpQR0RFQ19S RUdfRFVfQ1RSTAkJMHgwMjNjDQogI2RlZmluZSBKUEdERUNfUkVHX1RSSUcJCQkweDAyNDANCiAj ZGVmaW5lIEpQR0RFQ19SRUdfRklMRV9CUlAJCTB4MDI0OA0KLSNkZWZpbmUgSlBHREVDX1JFR19G SUxFX1RPVEFMX1NJWkUJMHgwMjRDDQorI2RlZmluZSBKUEdERUNfUkVHX0ZJTEVfVE9UQUxfU0la RQkweDAyNGMNCiAjZGVmaW5lIEpQR0RFQ19SRUdfUVRfSUQJCTB4MDI3MA0KICNkZWZpbmUgSlBH REVDX1JFR19JTlRFUlJVUFRfU1RBVFVTCTB4MDI3NA0KICNkZWZpbmUgSlBHREVDX1JFR19TVEFU VVMJCTB4MDI3OA0KLS0gDQoyLjE4LjANCg==