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=-11.1 required=3.0 tests=BAYES_00,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,URIBL_BLOCKED,USER_AGENT_GIT 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 15701C55178 for ; Sat, 24 Oct 2020 08:04:28 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by mail.kernel.org (Postfix) with ESMTP id BCC1322281 for ; Sat, 24 Oct 2020 08:04:27 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=pass (1024-bit key) header.d=mediatek.com header.i=@mediatek.com header.b="eHKrTTEO" Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1756288AbgJXIE1 (ORCPT ); Sat, 24 Oct 2020 04:04:27 -0400 Received: from mailgw01.mediatek.com ([210.61.82.183]:60617 "EHLO mailgw01.mediatek.com" rhost-flags-OK-FAIL-OK-FAIL) by vger.kernel.org with ESMTP id S1756292AbgJXIEZ (ORCPT ); Sat, 24 Oct 2020 04:04:25 -0400 X-UUID: e33c755f08e54aecbe2eb8562fdc27a5-20201024 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=YMI2ahoFQ+ekM68MtJKhoBYyxLZ51+5Ktw9lnCzKYpg=; b=eHKrTTEOh7gUmcxrIbHS2SPgP9vnn+Qfk4am/YvLGLnQbmzEz+W7Wd3V+6J9rUEHM523ni+br2qq93azu5UU99IcjrTEvUG40dCRAI/JOkSh0VOcNlOdlT/7UvOw/8naXYXGZNctckZSNio3CvKDwU33Ie8vaZ+FCAAkLHlsyi0=; X-UUID: e33c755f08e54aecbe2eb8562fdc27a5-20201024 Received: from mtkcas10.mediatek.inc [(172.21.101.39)] by mailgw01.mediatek.com (envelope-from ) (Cellopoint E-mail Firewall v4.1.14 Build 0819 with TLSv1.2 ECDHE-RSA-AES256-SHA384 256/256) with ESMTP id 1547236945; Sat, 24 Oct 2020 15:59:07 +0800 Received: from mtkcas07.mediatek.inc (172.21.101.84) by mtkmbs06n1.mediatek.inc (172.21.101.129) with Microsoft SMTP Server (TLS) id 15.0.1497.2; Sat, 24 Oct 2020 15:59:06 +0800 Received: from localhost.localdomain (10.17.3.153) by mtkcas07.mediatek.inc (172.21.101.73) with Microsoft SMTP Server id 15.0.1497.2 via Frontend Transport; Sat, 24 Oct 2020 15:59:03 +0800 From: Jiaxin Yu To: , , , , , , , , , CC: , , , , Jiaxin Yu Subject: [PATCH v3 5/9] ASoC: mediatek: mt8192: support pcm in platform driver Date: Sat, 24 Oct 2020 15:58:55 +0800 Message-ID: <1603526339-15005-6-git-send-email-jiaxin.yu@mediatek.com> X-Mailer: git-send-email 1.8.1.1.dirty In-Reply-To: <1603526339-15005-1-git-send-email-jiaxin.yu@mediatek.com> References: <1603526339-15005-1-git-send-email-jiaxin.yu@mediatek.com> MIME-Version: 1.0 Content-Type: text/plain X-MTK: N Content-Transfer-Encoding: base64 Precedence: bulk List-ID: X-Mailing-List: devicetree@vger.kernel.org VGhpcyBwYXRjaCBhZGRzIG10ODE5MiBwY20gZGFpIGRyaXZlci4NCg0KU2lnbmVkLW9mZi1ieTog SmlheGluIFl1IDxqaWF4aW4ueXVAbWVkaWF0ZWsuY29tPg0KLS0tDQogc291bmQvc29jL21lZGlh dGVrL210ODE5Mi9tdDgxOTItZGFpLXBjbS5jIHwgNDA5ICsrKysrKysrKysrKysrKysrKysrKw0K IDEgZmlsZSBjaGFuZ2VkLCA0MDkgaW5zZXJ0aW9ucygrKQ0KIGNyZWF0ZSBtb2RlIDEwMDY0NCBz b3VuZC9zb2MvbWVkaWF0ZWsvbXQ4MTkyL210ODE5Mi1kYWktcGNtLmMNCg0KZGlmZiAtLWdpdCBh L3NvdW5kL3NvYy9tZWRpYXRlay9tdDgxOTIvbXQ4MTkyLWRhaS1wY20uYyBiL3NvdW5kL3NvYy9t ZWRpYXRlay9tdDgxOTIvbXQ4MTkyLWRhaS1wY20uYw0KbmV3IGZpbGUgbW9kZSAxMDA2NDQNCmlu ZGV4IDAwMDAwMDAwMDAwMDAuLjZlOTRjZmRmMDZmYzENCi0tLSAvZGV2L251bGwNCisrKyBiL3Nv dW5kL3NvYy9tZWRpYXRlay9tdDgxOTIvbXQ4MTkyLWRhaS1wY20uYw0KQEAgLTAsMCArMSw0MDkg QEANCisvLyBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogR1BMLTIuMA0KKy8vDQorLy8gTWVkaWFU ZWsgQUxTQSBTb0MgQXVkaW8gREFJIEkyUyBDb250cm9sDQorLy8NCisvLyBDb3B5cmlnaHQgKGMp IDIwMjAgTWVkaWFUZWsgSW5jLg0KKy8vIEF1dGhvcjogU2hhbmUgQ2hpZW4gPHNoYW5lLmNoaWVu QG1lZGlhdGVrLmNvbT4NCisvLw0KKw0KKyNpbmNsdWRlIDxsaW51eC9yZWdtYXAuaD4NCisjaW5j bHVkZSA8c291bmQvcGNtX3BhcmFtcy5oPg0KKw0KKyNpbmNsdWRlICJtdDgxOTItYWZlLWNvbW1v bi5oIg0KKyNpbmNsdWRlICJtdDgxOTItaW50ZXJjb25uZWN0aW9uLmgiDQorDQorZW51bSBBVURf VFhfTENIX1JQVCB7DQorCUFVRF9UWF9MQ0hfUlBUX05PX1JFUEVBVCA9IDAsDQorCUFVRF9UWF9M Q0hfUlBUX1JFUEVBVCA9IDENCit9Ow0KKw0KK2VudW0gQVVEX1ZCVF8xNktfTU9ERSB7DQorCUFV RF9WQlRfMTZLX01PREVfRElTQUJMRSA9IDAsDQorCUFVRF9WQlRfMTZLX01PREVfRU5BQkxFID0g MQ0KK307DQorDQorZW51bSBBVURfRVhUX01PREVNIHsNCisJQVVEX0VYVF9NT0RFTV9TRUxFQ1Rf SU5URVJOQUwgPSAwLA0KKwlBVURfRVhUX01PREVNX1NFTEVDVF9FWFRFUk5BTCA9IDENCit9Ow0K Kw0KK2VudW0gQVVEX1BDTV9TWU5DX1RZUEUgew0KKwkvKiBiY2sgc3luYyBsZW5ndGggPSAxICov DQorCUFVRF9QQ01fT05FX0JDS19DWUNMRV9TWU5DID0gMCwNCisJLyogYmNrIHN5bmMgbGVuZ3Ro ID0gUENNX0lOVEZfQ09OMVs5OjEzXSAqLw0KKwlBVURfUENNX0VYVEVOREVEX0JDS19DWUNMRV9T WU5DID0gMQ0KK307DQorDQorZW51bSBBVURfQlRfTU9ERSB7DQorCUFVRF9CVF9NT0RFX0RVQUxf TUlDX09OX1RYID0gMCwNCisJQVVEX0JUX01PREVfU0lOR0xFX01JQ19PTl9UWCA9IDENCit9Ow0K Kw0KK2VudW0gQVVEX1BDTV9BRklGT19TUkMgew0KKwkvKiBzbGF2ZSBtb2RlICYgZXh0ZXJuYWwg bW9kZW0gdXNlcyBkaWZmZXJlbnQgY3J5c3RhbCAqLw0KKwlBVURfUENNX0FGSUZPX0FTUkMgPSAw LA0KKwkvKiBzbGF2ZSBtb2RlICYgZXh0ZXJuYWwgbW9kZW0gdXNlcyB0aGUgc2FtZSBjcnlzdGFs ICovDQorCUFVRF9QQ01fQUZJRk9fQUZJRk8gPSAxDQorfTsNCisNCitlbnVtIEFVRF9QQ01fQ0xP Q0tfU09VUkNFIHsNCisJQVVEX1BDTV9DTE9DS19NQVNURVJfTU9ERSA9IDAsDQorCUFVRF9QQ01f Q0xPQ0tfU0xBVkVfTU9ERSA9IDENCit9Ow0KKw0KK2VudW0gQVVEX1BDTV9XTEVOIHsNCisJQVVE X1BDTV9XTEVOX1BDTV8zMl9CQ0tfQ1lDTEVTID0gMCwNCisJQVVEX1BDTV9XTEVOX1BDTV82NF9C Q0tfQ1lDTEVTID0gMQ0KK307DQorDQorZW51bSBBVURfUENNX01PREUgew0KKwlBVURfUENNX01P REVfUENNX01PREVfOEsgPSAwLA0KKwlBVURfUENNX01PREVfUENNX01PREVfMTZLID0gMSwNCisJ QVVEX1BDTV9NT0RFX1BDTV9NT0RFXzMySyA9IDIsDQorCUFVRF9QQ01fTU9ERV9QQ01fTU9ERV80 OEsgPSAzLA0KK307DQorDQorZW51bSBBVURfUENNX0ZNVCB7DQorCUFVRF9QQ01fRk1UX0kyUyA9 IDAsDQorCUFVRF9QQ01fRk1UX0VJQUogPSAxLA0KKwlBVURfUENNX0ZNVF9QQ01fTU9ERV9BID0g MiwNCisJQVVEX1BDTV9GTVRfUENNX01PREVfQiA9IDMNCit9Ow0KKw0KK2VudW0gQVVEX0JDTEtf T1VUX0lOViB7DQorCUFVRF9CQ0xLX09VVF9JTlZfTk9fSU5WRVJTRSA9IDAsDQorCUFVRF9CQ0xL X09VVF9JTlZfSU5WRVJTRSA9IDENCit9Ow0KKw0KK2VudW0gQVVEX1BDTV9FTiB7DQorCUFVRF9Q Q01fRU5fRElTQUJMRSA9IDAsDQorCUFVRF9QQ01fRU5fRU5BQkxFID0gMQ0KK307DQorDQorLyog ZGFpIGNvbXBvbmVudCAqLw0KK3N0YXRpYyBjb25zdCBzdHJ1Y3Qgc25kX2tjb250cm9sX25ldyBt dGtfcGNtXzFfcGxheWJhY2tfY2gxX21peFtdID0gew0KKwlTT0NfREFQTV9TSU5HTEVfQVVUT0RJ U0FCTEUoIkFEREFfVUxfQ0gxIiwgQUZFX0NPTk43LA0KKwkJCQkgICAgSV9BRERBX1VMX0NIMSwg MSwgMCksDQorCVNPQ19EQVBNX1NJTkdMRV9BVVRPRElTQUJMRSgiREwyX0NIMSIsIEFGRV9DT05O NywNCisJCQkJICAgIElfREwyX0NIMSwgMSwgMCksDQorCVNPQ19EQVBNX1NJTkdMRV9BVVRPRElT QUJMRSgiREw0X0NIMSIsIEFGRV9DT05ON18xLA0KKwkJCQkgICAgSV9ETDRfQ0gxLCAxLCAwKSwN Cit9Ow0KKw0KK3N0YXRpYyBjb25zdCBzdHJ1Y3Qgc25kX2tjb250cm9sX25ldyBtdGtfcGNtXzFf cGxheWJhY2tfY2gyX21peFtdID0gew0KKwlTT0NfREFQTV9TSU5HTEVfQVVUT0RJU0FCTEUoIkFE REFfVUxfQ0gyIiwgQUZFX0NPTk44LA0KKwkJCQkgICAgSV9BRERBX1VMX0NIMiwgMSwgMCksDQor CVNPQ19EQVBNX1NJTkdMRV9BVVRPRElTQUJMRSgiREwyX0NIMiIsIEFGRV9DT05OOCwNCisJCQkJ ICAgIElfREwyX0NIMiwgMSwgMCksDQorCVNPQ19EQVBNX1NJTkdMRV9BVVRPRElTQUJMRSgiREw0 X0NIMiIsIEFGRV9DT05OOF8xLA0KKwkJCQkgICAgSV9ETDRfQ0gyLCAxLCAwKSwNCit9Ow0KKw0K K3N0YXRpYyBjb25zdCBzdHJ1Y3Qgc25kX2tjb250cm9sX25ldyBtdGtfcGNtXzFfcGxheWJhY2tf Y2g0X21peFtdID0gew0KKwlTT0NfREFQTV9TSU5HTEVfQVVUT0RJU0FCTEUoIkkyUzBfQ0gxIiwg QUZFX0NPTk4yNywNCisJCQkJICAgIElfSTJTMF9DSDEsIDEsIDApLA0KKwlTT0NfREFQTV9TSU5H TEVfQVVUT0RJU0FCTEUoIkkyUzBfQ0gyIiwgQUZFX0NPTk4yNywNCisJCQkJICAgIElfSTJTMF9D SDIsIDEsIDApLA0KKwlTT0NfREFQTV9TSU5HTEVfQVVUT0RJU0FCTEUoIkRMMV9DSDEiLCBBRkVf Q09OTjI3LA0KKwkJCQkgICAgSV9ETDFfQ0gxLCAxLCAwKSwNCisJU09DX0RBUE1fU0lOR0xFX0FV VE9ESVNBQkxFKCJJMlMyX0NIMSIsIEFGRV9DT05OMjcsDQorCQkJCSAgICBJX0kyUzJfQ0gxLCAx LCAwKSwNCisJU09DX0RBUE1fU0lOR0xFX0FVVE9ESVNBQkxFKCJJMlMyX0NIMiIsIEFGRV9DT05O MjcsDQorCQkJCSAgICBJX0kyUzJfQ0gyLCAxLCAwKSwNCisJU09DX0RBUE1fU0lOR0xFX0FVVE9E SVNBQkxFKCJETDRfQ0gxIiwgQUZFX0NPTk4yN18xLA0KKwkJCQkgICAgSV9ETDRfQ0gxLCAxLCAw KSwNCit9Ow0KKw0KK3N0YXRpYyBjb25zdCBzdHJ1Y3Qgc25kX2tjb250cm9sX25ldyBtdGtfcGNt XzJfcGxheWJhY2tfY2gxX21peFtdID0gew0KKwlTT0NfREFQTV9TSU5HTEVfQVVUT0RJU0FCTEUo IkFEREFfVUxfQ0gxIiwgQUZFX0NPTk4xNywNCisJCQkJICAgIElfQUREQV9VTF9DSDEsIDEsIDAp LA0KKwlTT0NfREFQTV9TSU5HTEVfQVVUT0RJU0FCTEUoIkFEREFfVUxfQ0gyIiwgQUZFX0NPTk4x NywNCisJCQkJICAgIElfQUREQV9VTF9DSDIsIDEsIDApLA0KKwlTT0NfREFQTV9TSU5HTEVfQVVU T0RJU0FCTEUoIkFEREFfVUxfQ0gzIiwgQUZFX0NPTk4xNywNCisJCQkJICAgIElfQUREQV9VTF9D SDMsIDEsIDApLA0KKwlTT0NfREFQTV9TSU5HTEVfQVVUT0RJU0FCTEUoIkRMMl9DSDEiLCBBRkVf Q09OTjE3LA0KKwkJCQkgICAgSV9ETDJfQ0gxLCAxLCAwKSwNCisJU09DX0RBUE1fU0lOR0xFX0FV VE9ESVNBQkxFKCJETDRfQ0gxIiwgQUZFX0NPTk4xN18xLA0KKwkJCQkgICAgSV9ETDRfQ0gxLCAx LCAwKSwNCit9Ow0KKw0KK3N0YXRpYyBjb25zdCBzdHJ1Y3Qgc25kX2tjb250cm9sX25ldyBtdGtf cGNtXzJfcGxheWJhY2tfY2gyX21peFtdID0gew0KKwlTT0NfREFQTV9TSU5HTEVfQVVUT0RJU0FC TEUoIkFEREFfVUxfQ0gxIiwgQUZFX0NPTk4xOCwNCisJCQkJICAgIElfQUREQV9VTF9DSDEsIDEs IDApLA0KKwlTT0NfREFQTV9TSU5HTEVfQVVUT0RJU0FCTEUoIkFEREFfVUxfQ0gyIiwgQUZFX0NP Tk4xOCwNCisJCQkJICAgIElfQUREQV9VTF9DSDIsIDEsIDApLA0KKwlTT0NfREFQTV9TSU5HTEVf QVVUT0RJU0FCTEUoIkFEREFfVUxfQ0gzIiwgQUZFX0NPTk4xOCwNCisJCQkJICAgIElfQUREQV9V TF9DSDMsIDEsIDApLA0KKwlTT0NfREFQTV9TSU5HTEVfQVVUT0RJU0FCTEUoIkRMMl9DSDIiLCBB RkVfQ09OTjE4LA0KKwkJCQkgICAgSV9ETDJfQ0gyLCAxLCAwKSwNCisJU09DX0RBUE1fU0lOR0xF X0FVVE9ESVNBQkxFKCJETDRfQ0gyIiwgQUZFX0NPTk4xOF8xLA0KKwkJCQkgICAgSV9ETDRfQ0gy LCAxLCAwKSwNCit9Ow0KKw0KK3N0YXRpYyBjb25zdCBzdHJ1Y3Qgc25kX2tjb250cm9sX25ldyBt dGtfcGNtXzJfcGxheWJhY2tfY2gzX21peFtdID0gew0KKwlTT0NfREFQTV9TSU5HTEVfQVVUT0RJ U0FCTEUoIkFEREFfVUxfQ0gzIiwgQUZFX0NPTk4yMywNCisJCQkJICAgIElfQUREQV9VTF9DSDMs IDEsIDApLA0KK307DQorDQorc3RhdGljIGNvbnN0IHN0cnVjdCBzbmRfa2NvbnRyb2xfbmV3IG10 a19wY21fMl9wbGF5YmFja19jaDRfbWl4W10gPSB7DQorCVNPQ19EQVBNX1NJTkdMRV9BVVRPRElT QUJMRSgiSTJTMF9DSDEiLCBBRkVfQ09OTjI0LA0KKwkJCQkgICAgSV9JMlMwX0NIMSwgMSwgMCks DQorCVNPQ19EQVBNX1NJTkdMRV9BVVRPRElTQUJMRSgiSTJTMF9DSDIiLCBBRkVfQ09OTjI0LA0K KwkJCQkgICAgSV9JMlMwX0NIMiwgMSwgMCksDQorCVNPQ19EQVBNX1NJTkdMRV9BVVRPRElTQUJM RSgiREwxX0NIMSIsIEFGRV9DT05OMjQsDQorCQkJCSAgICBJX0RMMV9DSDEsIDEsIDApLA0KKwlT T0NfREFQTV9TSU5HTEVfQVVUT0RJU0FCTEUoIkkyUzJfQ0gxIiwgQUZFX0NPTk4yNCwNCisJCQkJ ICAgIElfSTJTMl9DSDEsIDEsIDApLA0KKwlTT0NfREFQTV9TSU5HTEVfQVVUT0RJU0FCTEUoIkky UzJfQ0gyIiwgQUZFX0NPTk4yNCwNCisJCQkJICAgIElfSTJTMl9DSDIsIDEsIDApLA0KKwlTT0Nf REFQTV9TSU5HTEVfQVVUT0RJU0FCTEUoIkRMNF9DSDEiLCBBRkVfQ09OTjI0XzEsDQorCQkJCSAg ICBJX0RMNF9DSDEsIDEsIDApLA0KK307DQorDQorc3RhdGljIGNvbnN0IHN0cnVjdCBzbmRfa2Nv bnRyb2xfbmV3IG10a19wY21fMl9wbGF5YmFja19jaDVfbWl4W10gPSB7DQorCVNPQ19EQVBNX1NJ TkdMRV9BVVRPRElTQUJMRSgiSTJTMF9DSDIiLCBBRkVfQ09OTjI1LA0KKwkJCQkgICAgSV9JMlMw X0NIMiwgMSwgMCksDQorCVNPQ19EQVBNX1NJTkdMRV9BVVRPRElTQUJMRSgiREwxX0NIMiIsIEFG RV9DT05OMjUsDQorCQkJCSAgICBJX0RMMV9DSDIsIDEsIDApLA0KKwlTT0NfREFQTV9TSU5HTEVf QVVUT0RJU0FCTEUoIkkyUzJfQ0gyIiwgQUZFX0NPTk4yNSwNCisJCQkJICAgIElfSTJTMl9DSDIs IDEsIDApLA0KKwlTT0NfREFQTV9TSU5HTEVfQVVUT0RJU0FCTEUoIkRMNF9DSDIiLCBBRkVfQ09O TjI1XzEsDQorCQkJCSAgICBJX0RMNF9DSDIsIDEsIDApLA0KK307DQorDQorc3RhdGljIGludCBt dGtfcGNtX2VuX2V2ZW50KHN0cnVjdCBzbmRfc29jX2RhcG1fd2lkZ2V0ICp3LA0KKwkJCSAgICBz dHJ1Y3Qgc25kX2tjb250cm9sICprY29udHJvbCwNCisJCQkgICAgaW50IGV2ZW50KQ0KK3sNCisJ c3RydWN0IHNuZF9zb2NfY29tcG9uZW50ICpjbXBudCA9IHNuZF9zb2NfZGFwbV90b19jb21wb25l bnQody0+ZGFwbSk7DQorCXN0cnVjdCBtdGtfYmFzZV9hZmUgKmFmZSA9IHNuZF9zb2NfY29tcG9u ZW50X2dldF9kcnZkYXRhKGNtcG50KTsNCisNCisJZGV2X2luZm8oYWZlLT5kZXYsICIlcygpLCBu YW1lICVzLCBldmVudCAweCV4XG4iLA0KKwkJIF9fZnVuY19fLCB3LT5uYW1lLCBldmVudCk7DQor CXJldHVybiAwOw0KK30NCisNCitzdGF0aWMgY29uc3Qgc3RydWN0IHNuZF9zb2NfZGFwbV93aWRn ZXQgbXRrX2RhaV9wY21fd2lkZ2V0c1tdID0gew0KKwkvKiBpbnRlci1jb25uZWN0aW9ucyAqLw0K KwlTTkRfU09DX0RBUE1fTUlYRVIoIlBDTV8xX1BCX0NIMSIsIFNORF9TT0NfTk9QTSwgMCwgMCwN CisJCQkgICBtdGtfcGNtXzFfcGxheWJhY2tfY2gxX21peCwNCisJCQkgICBBUlJBWV9TSVpFKG10 a19wY21fMV9wbGF5YmFja19jaDFfbWl4KSksDQorCVNORF9TT0NfREFQTV9NSVhFUigiUENNXzFf UEJfQ0gyIiwgU05EX1NPQ19OT1BNLCAwLCAwLA0KKwkJCSAgIG10a19wY21fMV9wbGF5YmFja19j aDJfbWl4LA0KKwkJCSAgIEFSUkFZX1NJWkUobXRrX3BjbV8xX3BsYXliYWNrX2NoMl9taXgpKSwN CisJU05EX1NPQ19EQVBNX01JWEVSKCJQQ01fMV9QQl9DSDQiLCBTTkRfU09DX05PUE0sIDAsIDAs DQorCQkJICAgbXRrX3BjbV8xX3BsYXliYWNrX2NoNF9taXgsDQorCQkJICAgQVJSQVlfU0laRSht dGtfcGNtXzFfcGxheWJhY2tfY2g0X21peCkpLA0KKwlTTkRfU09DX0RBUE1fTUlYRVIoIlBDTV8y X1BCX0NIMSIsIFNORF9TT0NfTk9QTSwgMCwgMCwNCisJCQkgICBtdGtfcGNtXzJfcGxheWJhY2tf Y2gxX21peCwNCisJCQkgICBBUlJBWV9TSVpFKG10a19wY21fMl9wbGF5YmFja19jaDFfbWl4KSks DQorCVNORF9TT0NfREFQTV9NSVhFUigiUENNXzJfUEJfQ0gyIiwgU05EX1NPQ19OT1BNLCAwLCAw LA0KKwkJCSAgIG10a19wY21fMl9wbGF5YmFja19jaDJfbWl4LA0KKwkJCSAgIEFSUkFZX1NJWkUo bXRrX3BjbV8yX3BsYXliYWNrX2NoMl9taXgpKSwNCisJU05EX1NPQ19EQVBNX01JWEVSKCJQQ01f Ml9QQl9DSDMiLCBTTkRfU09DX05PUE0sIDAsIDAsDQorCQkJICAgbXRrX3BjbV8yX3BsYXliYWNr X2NoM19taXgsDQorCQkJICAgQVJSQVlfU0laRShtdGtfcGNtXzJfcGxheWJhY2tfY2gzX21peCkp LA0KKwlTTkRfU09DX0RBUE1fTUlYRVIoIlBDTV8yX1BCX0NINCIsIFNORF9TT0NfTk9QTSwgMCwg MCwNCisJCQkgICBtdGtfcGNtXzJfcGxheWJhY2tfY2g0X21peCwNCisJCQkgICBBUlJBWV9TSVpF KG10a19wY21fMl9wbGF5YmFja19jaDRfbWl4KSksDQorCVNORF9TT0NfREFQTV9NSVhFUigiUENN XzJfUEJfQ0g1IiwgU05EX1NPQ19OT1BNLCAwLCAwLA0KKwkJCSAgIG10a19wY21fMl9wbGF5YmFj a19jaDVfbWl4LA0KKwkJCSAgIEFSUkFZX1NJWkUobXRrX3BjbV8yX3BsYXliYWNrX2NoNV9taXgp KSwNCisNCisJU05EX1NPQ19EQVBNX1NVUFBMWSgiUENNXzFfRU4iLA0KKwkJCSAgICBQQ01fSU5U Rl9DT04xLCBQQ01fRU5fU0ZULCAwLA0KKwkJCSAgICBtdGtfcGNtX2VuX2V2ZW50LA0KKwkJCSAg ICBTTkRfU09DX0RBUE1fUFJFX1BNVSB8IFNORF9TT0NfREFQTV9QT1NUX1BNRCksDQorDQorCVNO RF9TT0NfREFQTV9TVVBQTFkoIlBDTV8yX0VOIiwNCisJCQkgICAgUENNMl9JTlRGX0NPTiwgUENN Ml9FTl9TRlQsIDAsDQorCQkJICAgIG10a19wY21fZW5fZXZlbnQsDQorCQkJICAgIFNORF9TT0Nf REFQTV9QUkVfUE1VIHwgU05EX1NPQ19EQVBNX1BPU1RfUE1EKSwNCisNCisJU05EX1NPQ19EQVBN X0lOUFVUKCJNRDFfVE9fQUZFIiksDQorCVNORF9TT0NfREFQTV9JTlBVVCgiTUQyX1RPX0FGRSIp LA0KKwlTTkRfU09DX0RBUE1fT1VUUFVUKCJBRkVfVE9fTUQxIiksDQorCVNORF9TT0NfREFQTV9P VVRQVVQoIkFGRV9UT19NRDIiKSwNCit9Ow0KKw0KK3N0YXRpYyBjb25zdCBzdHJ1Y3Qgc25kX3Nv Y19kYXBtX3JvdXRlIG10a19kYWlfcGNtX3JvdXRlc1tdID0gew0KKwl7IlBDTSAxIFBsYXliYWNr IiwgTlVMTCwgIlBDTV8xX1BCX0NIMSJ9LA0KKwl7IlBDTSAxIFBsYXliYWNrIiwgTlVMTCwgIlBD TV8xX1BCX0NIMiJ9LA0KKwl7IlBDTSAxIFBsYXliYWNrIiwgTlVMTCwgIlBDTV8xX1BCX0NINCJ9 LA0KKwl7IlBDTSAyIFBsYXliYWNrIiwgTlVMTCwgIlBDTV8yX1BCX0NIMSJ9LA0KKwl7IlBDTSAy IFBsYXliYWNrIiwgTlVMTCwgIlBDTV8yX1BCX0NIMiJ9LA0KKwl7IlBDTSAyIFBsYXliYWNrIiwg TlVMTCwgIlBDTV8yX1BCX0NIMyJ9LA0KKwl7IlBDTSAyIFBsYXliYWNrIiwgTlVMTCwgIlBDTV8y X1BCX0NINCJ9LA0KKwl7IlBDTSAyIFBsYXliYWNrIiwgTlVMTCwgIlBDTV8yX1BCX0NINSJ9LA0K Kw0KKwl7IlBDTSAxIFBsYXliYWNrIiwgTlVMTCwgIlBDTV8xX0VOIn0sDQorCXsiUENNIDIgUGxh eWJhY2siLCBOVUxMLCAiUENNXzJfRU4ifSwNCisJeyJQQ00gMSBDYXB0dXJlIiwgTlVMTCwgIlBD TV8xX0VOIn0sDQorCXsiUENNIDIgQ2FwdHVyZSIsIE5VTEwsICJQQ01fMl9FTiJ9LA0KKw0KKwl7 IkFGRV9UT19NRDEiLCBOVUxMLCAiUENNIDIgUGxheWJhY2sifSwNCisJeyJBRkVfVE9fTUQyIiwg TlVMTCwgIlBDTSAxIFBsYXliYWNrIn0sDQorCXsiUENNIDIgQ2FwdHVyZSIsIE5VTEwsICJNRDFf VE9fQUZFIn0sDQorCXsiUENNIDEgQ2FwdHVyZSIsIE5VTEwsICJNRDJfVE9fQUZFIn0sDQorDQor CXsiUENNXzFfUEJfQ0gxIiwgIkRMMl9DSDEiLCAiREwyIn0sDQorCXsiUENNXzFfUEJfQ0gyIiwg IkRMMl9DSDIiLCAiREwyIn0sDQorCXsiUENNXzFfUEJfQ0g0IiwgIkRMMV9DSDEiLCAiREwxIn0s DQorCXsiUENNXzJfUEJfQ0gxIiwgIkRMMl9DSDEiLCAiREwyIn0sDQorCXsiUENNXzJfUEJfQ0gy IiwgIkRMMl9DSDIiLCAiREwyIn0sDQorCXsiUENNXzJfUEJfQ0g0IiwgIkRMMV9DSDEiLCAiREwx In0sDQorDQorCXsiUENNXzFfUEJfQ0gxIiwgIkRMNF9DSDEiLCAiREw0In0sDQorCXsiUENNXzFf UEJfQ0gyIiwgIkRMNF9DSDIiLCAiREw0In0sDQorCXsiUENNXzFfUEJfQ0g0IiwgIkRMNF9DSDEi LCAiREw0In0sDQorCXsiUENNXzJfUEJfQ0gxIiwgIkRMNF9DSDEiLCAiREw0In0sDQorCXsiUENN XzJfUEJfQ0gyIiwgIkRMNF9DSDIiLCAiREw0In0sDQorCXsiUENNXzJfUEJfQ0g0IiwgIkRMNF9D SDEiLCAiREw0In0sDQorCXsiUENNXzFfUEJfQ0g0IiwgIkkyUzBfQ0gxIiwgIkkyUzAifSwNCisJ eyJQQ01fMl9QQl9DSDQiLCAiSTJTMl9DSDEiLCAiSTJTMiJ9LA0KKwl7IlBDTV8yX1BCX0NINSIs ICJETDFfQ0gyIiwgIkRMMSJ9LA0KKwl7IlBDTV8yX1BCX0NINSIsICJETDRfQ0gyIiwgIkRMNCJ9 LA0KKwl7IlBDTV8yX1BCX0NINSIsICJJMlMwX0NIMiIsICJJMlMwIn0sDQorCXsiUENNXzJfUEJf Q0g1IiwgIkkyUzJfQ0gyIiwgIkkyUzIifSwNCit9Ow0KKw0KKy8qIGRhaSBvcHMgKi8NCitzdGF0 aWMgaW50IG10a19kYWlfcGNtX2h3X3BhcmFtcyhzdHJ1Y3Qgc25kX3BjbV9zdWJzdHJlYW0gKnN1 YnN0cmVhbSwNCisJCQkJIHN0cnVjdCBzbmRfcGNtX2h3X3BhcmFtcyAqcGFyYW1zLA0KKwkJCQkg c3RydWN0IHNuZF9zb2NfZGFpICpkYWkpDQorew0KKwlzdHJ1Y3QgbXRrX2Jhc2VfYWZlICphZmUg PSBzbmRfc29jX2RhaV9nZXRfZHJ2ZGF0YShkYWkpOw0KKwl1bnNpZ25lZCBpbnQgcmF0ZSA9IHBh cmFtc19yYXRlKHBhcmFtcyk7DQorCXVuc2lnbmVkIGludCByYXRlX3JlZyA9IG10ODE5Ml9yYXRl X3RyYW5zZm9ybShhZmUtPmRldiwgcmF0ZSwgZGFpLT5pZCk7DQorCXVuc2lnbmVkIGludCBwY21f Y29uID0gMDsNCisNCisJZGV2X2luZm8oYWZlLT5kZXYsICIlcygpLCBpZCAlZCwgc3RyZWFtICVk LCByYXRlICVkLCByYXRlX3JlZyAlZCwgd2lkZ2V0IGFjdGl2ZSBwICVkLCBjICVkXG4iLA0KKwkJ IF9fZnVuY19fLA0KKwkJIGRhaS0+aWQsDQorCQkgc3Vic3RyZWFtLT5zdHJlYW0sDQorCQkgcmF0 ZSwNCisJCSByYXRlX3JlZywNCisJCSBkYWktPnBsYXliYWNrX3dpZGdldC0+YWN0aXZlLA0KKwkJ IGRhaS0+Y2FwdHVyZV93aWRnZXQtPmFjdGl2ZSk7DQorDQorCWlmIChkYWktPnBsYXliYWNrX3dp ZGdldC0+YWN0aXZlIHx8IGRhaS0+Y2FwdHVyZV93aWRnZXQtPmFjdGl2ZSkNCisJCXJldHVybiAw Ow0KKw0KKwlzd2l0Y2ggKGRhaS0+aWQpIHsNCisJY2FzZSBNVDgxOTJfREFJX1BDTV8xOg0KKwkJ cGNtX2NvbiB8PSBBVURfQkNMS19PVVRfSU5WX05PX0lOVkVSU0UgPDwgUENNX0JDTEtfT1VUX0lO Vl9TRlQ7DQorCQlwY21fY29uIHw9IEFVRF9UWF9MQ0hfUlBUX05PX1JFUEVBVCA8PCBQQ01fVFhf TENIX1JQVF9TRlQ7DQorCQlwY21fY29uIHw9IEFVRF9WQlRfMTZLX01PREVfRElTQUJMRSA8PCBQ Q01fVkJUXzE2S19NT0RFX1NGVDsNCisJCXBjbV9jb24gfD0gQVVEX0VYVF9NT0RFTV9TRUxFQ1Rf SU5URVJOQUwgPDwgUENNX0VYVF9NT0RFTV9TRlQ7DQorCQlwY21fY29uIHw9IDAgPDwgUENNX1NZ TkNfTEVOR1RIX1NGVDsNCisJCXBjbV9jb24gfD0gQVVEX1BDTV9PTkVfQkNLX0NZQ0xFX1NZTkMg PDwgUENNX1NZTkNfVFlQRV9TRlQ7DQorCQlwY21fY29uIHw9IEFVRF9CVF9NT0RFX0RVQUxfTUlD X09OX1RYIDw8IFBDTV9CVF9NT0RFX1NGVDsNCisJCXBjbV9jb24gfD0gQVVEX1BDTV9BRklGT19B RklGTyA8PCBQQ01fQllQX0FTUkNfU0ZUOw0KKwkJcGNtX2NvbiB8PSBBVURfUENNX0NMT0NLX1NM QVZFX01PREUgPDwgUENNX1NMQVZFX1NGVDsNCisJCXBjbV9jb24gfD0gcmF0ZV9yZWcgPDwgUENN X01PREVfU0ZUOw0KKwkJcGNtX2NvbiB8PSBBVURfUENNX0ZNVF9QQ01fTU9ERV9CIDw8IFBDTV9G TVRfU0ZUOw0KKw0KKwkJcmVnbWFwX3VwZGF0ZV9iaXRzKGFmZS0+cmVnbWFwLCBQQ01fSU5URl9D T04xLA0KKwkJCQkgICAweGZmZmZmZmZlLCBwY21fY29uKTsNCisJCWJyZWFrOw0KKwljYXNlIE1U ODE5Ml9EQUlfUENNXzI6DQorCQlwY21fY29uIHw9IEFVRF9UWF9MQ0hfUlBUX05PX1JFUEVBVCA8 PCBQQ00yX1RYX0xDSF9SUFRfU0ZUOw0KKwkJcGNtX2NvbiB8PSBBVURfVkJUXzE2S19NT0RFX0RJ U0FCTEUgPDwgUENNMl9WQlRfMTZLX01PREVfU0ZUOw0KKwkJcGNtX2NvbiB8PSBBVURfQlRfTU9E RV9EVUFMX01JQ19PTl9UWCA8PCBQQ00yX0JUX01PREVfU0ZUOw0KKwkJcGNtX2NvbiB8PSBBVURf UENNX0FGSUZPX0FGSUZPIDw8IFBDTTJfQUZJRk9fU0ZUOw0KKwkJcGNtX2NvbiB8PSBBVURfUENN X1dMRU5fUENNXzMyX0JDS19DWUNMRVMgPDwgUENNMl9XTEVOX1NGVDsNCisJCXBjbV9jb24gfD0g cmF0ZV9yZWcgPDwgUENNMl9NT0RFX1NGVDsNCisJCXBjbV9jb24gfD0gQVVEX1BDTV9GTVRfUENN X01PREVfQiA8PCBQQ00yX0ZNVF9TRlQ7DQorDQorCQlyZWdtYXBfdXBkYXRlX2JpdHMoYWZlLT5y ZWdtYXAsIFBDTTJfSU5URl9DT04sDQorCQkJCSAgIDB4ZmZmZmZmZmUsIHBjbV9jb24pOw0KKwkJ YnJlYWs7DQorCWRlZmF1bHQ6DQorCQlkZXZfd2FybihhZmUtPmRldiwgIiVzKCksIGlkICVkIG5v dCBzdXBwb3J0XG4iLA0KKwkJCSBfX2Z1bmNfXywgZGFpLT5pZCk7DQorCQlyZXR1cm4gLUVJTlZB TDsNCisJfQ0KKw0KKwlyZXR1cm4gMDsNCit9DQorDQorc3RhdGljIGNvbnN0IHN0cnVjdCBzbmRf c29jX2RhaV9vcHMgbXRrX2RhaV9wY21fb3BzID0gew0KKwkuaHdfcGFyYW1zID0gbXRrX2RhaV9w Y21faHdfcGFyYW1zLA0KK307DQorDQorLyogZGFpIGRyaXZlciAqLw0KKyNkZWZpbmUgTVRLX1BD TV9SQVRFUyAoU05EUlZfUENNX1JBVEVfODAwMCB8XA0KKwkJICAgICAgIFNORFJWX1BDTV9SQVRF XzE2MDAwIHxcDQorCQkgICAgICAgU05EUlZfUENNX1JBVEVfMzIwMDAgfFwNCisJCSAgICAgICBT TkRSVl9QQ01fUkFURV80ODAwMCkNCisNCisjZGVmaW5lIE1US19QQ01fRk9STUFUUyAoU05EUlZf UENNX0ZNVEJJVF9TMTZfTEUgfFwNCisJCQkgU05EUlZfUENNX0ZNVEJJVF9TMjRfTEUgfFwNCisJ CQkgU05EUlZfUENNX0ZNVEJJVF9TMzJfTEUpDQorDQorc3RhdGljIHN0cnVjdCBzbmRfc29jX2Rh aV9kcml2ZXIgbXRrX2RhaV9wY21fZHJpdmVyW10gPSB7DQorCXsNCisJCS5uYW1lID0gIlBDTSAx IiwNCisJCS5pZCA9IE1UODE5Ml9EQUlfUENNXzEsDQorCQkucGxheWJhY2sgPSB7DQorCQkJLnN0 cmVhbV9uYW1lID0gIlBDTSAxIFBsYXliYWNrIiwNCisJCQkuY2hhbm5lbHNfbWluID0gMSwNCisJ CQkuY2hhbm5lbHNfbWF4ID0gMiwNCisJCQkucmF0ZXMgPSBNVEtfUENNX1JBVEVTLA0KKwkJCS5m b3JtYXRzID0gTVRLX1BDTV9GT1JNQVRTLA0KKwkJfSwNCisJCS5jYXB0dXJlID0gew0KKwkJCS5z dHJlYW1fbmFtZSA9ICJQQ00gMSBDYXB0dXJlIiwNCisJCQkuY2hhbm5lbHNfbWluID0gMSwNCisJ CQkuY2hhbm5lbHNfbWF4ID0gMiwNCisJCQkucmF0ZXMgPSBNVEtfUENNX1JBVEVTLA0KKwkJCS5m b3JtYXRzID0gTVRLX1BDTV9GT1JNQVRTLA0KKwkJfSwNCisJCS5vcHMgPSAmbXRrX2RhaV9wY21f b3BzLA0KKwkJLnN5bW1ldHJpY19yYXRlcyA9IDEsDQorCQkuc3ltbWV0cmljX3NhbXBsZWJpdHMg PSAxLA0KKwl9LA0KKwl7DQorCQkubmFtZSA9ICJQQ00gMiIsDQorCQkuaWQgPSBNVDgxOTJfREFJ X1BDTV8yLA0KKwkJLnBsYXliYWNrID0gew0KKwkJCS5zdHJlYW1fbmFtZSA9ICJQQ00gMiBQbGF5 YmFjayIsDQorCQkJLmNoYW5uZWxzX21pbiA9IDEsDQorCQkJLmNoYW5uZWxzX21heCA9IDIsDQor CQkJLnJhdGVzID0gTVRLX1BDTV9SQVRFUywNCisJCQkuZm9ybWF0cyA9IE1US19QQ01fRk9STUFU UywNCisJCX0sDQorCQkuY2FwdHVyZSA9IHsNCisJCQkuc3RyZWFtX25hbWUgPSAiUENNIDIgQ2Fw dHVyZSIsDQorCQkJLmNoYW5uZWxzX21pbiA9IDEsDQorCQkJLmNoYW5uZWxzX21heCA9IDIsDQor CQkJLnJhdGVzID0gTVRLX1BDTV9SQVRFUywNCisJCQkuZm9ybWF0cyA9IE1US19QQ01fRk9STUFU UywNCisJCX0sDQorCQkub3BzID0gJm10a19kYWlfcGNtX29wcywNCisJCS5zeW1tZXRyaWNfcmF0 ZXMgPSAxLA0KKwkJLnN5bW1ldHJpY19zYW1wbGViaXRzID0gMSwNCisJfSwNCit9Ow0KKw0KK2lu dCBtdDgxOTJfZGFpX3BjbV9yZWdpc3RlcihzdHJ1Y3QgbXRrX2Jhc2VfYWZlICphZmUpDQorew0K KwlzdHJ1Y3QgbXRrX2Jhc2VfYWZlX2RhaSAqZGFpOw0KKw0KKwlkZXZfaW5mbyhhZmUtPmRldiwg IiVzKClcbiIsIF9fZnVuY19fKTsNCisNCisJZGFpID0gZGV2bV9remFsbG9jKGFmZS0+ZGV2LCBz aXplb2YoKmRhaSksIEdGUF9LRVJORUwpOw0KKwlpZiAoIWRhaSkNCisJCXJldHVybiAtRU5PTUVN Ow0KKw0KKwlsaXN0X2FkZCgmZGFpLT5saXN0LCAmYWZlLT5zdWJfZGFpcyk7DQorDQorCWRhaS0+ ZGFpX2RyaXZlcnMgPSBtdGtfZGFpX3BjbV9kcml2ZXI7DQorCWRhaS0+bnVtX2RhaV9kcml2ZXJz ID0gQVJSQVlfU0laRShtdGtfZGFpX3BjbV9kcml2ZXIpOw0KKw0KKwlkYWktPmRhcG1fd2lkZ2V0 cyA9IG10a19kYWlfcGNtX3dpZGdldHM7DQorCWRhaS0+bnVtX2RhcG1fd2lkZ2V0cyA9IEFSUkFZ X1NJWkUobXRrX2RhaV9wY21fd2lkZ2V0cyk7DQorCWRhaS0+ZGFwbV9yb3V0ZXMgPSBtdGtfZGFp X3BjbV9yb3V0ZXM7DQorCWRhaS0+bnVtX2RhcG1fcm91dGVzID0gQVJSQVlfU0laRShtdGtfZGFp X3BjbV9yb3V0ZXMpOw0KKwlyZXR1cm4gMDsNCit9DQotLSANCjIuMTguMA0K