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.3 required=3.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,HEADER_FROM_DIFFERENT_DOMAINS,INCLUDES_PATCH,MAILING_LIST_MULTI, NICE_REPLY_A,SIGNED_OFF_BY,SPF_HELO_NONE,SPF_PASS,URIBL_BLOCKED, USER_AGENT_SANE_1 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 ADB02C4363D for ; Wed, 23 Sep 2020 07:08:08 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by mail.kernel.org (Postfix) with ESMTP id 3706C2371F for ; Wed, 23 Sep 2020 07:08:08 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=fail reason="signature verification failed" (2048-bit key) header.d=microchip.com header.i=@microchip.com header.b="IM0ySORc"; dkim=pass (1024-bit key) header.d=microchiptechnology.onmicrosoft.com header.i=@microchiptechnology.onmicrosoft.com header.b="TAsY2Ij4" Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1726614AbgIWHIH (ORCPT ); Wed, 23 Sep 2020 03:08:07 -0400 Received: from esa5.microchip.iphmx.com ([216.71.150.166]:31620 "EHLO esa5.microchip.iphmx.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1726557AbgIWHIH (ORCPT ); Wed, 23 Sep 2020 03:08:07 -0400 DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple; d=microchip.com; i=@microchip.com; q=dns/txt; s=mchp; t=1600844887; x=1632380887; h=from:to:cc:subject:date:message-id:references: in-reply-to:content-id:content-transfer-encoding: mime-version; bh=9OXgTY3+wn4w2IEr2OFxflnMZloWwn+bUCnuXn3lqKM=; b=IM0ySORc62HPymKP0eprLzbVlic+bVf4nNwocDAXDYq85QURC7qVW1O2 VtbkpEIZ0fskzeZ/uRGfP8U84w1NrT4GPQV1BHl1vHtugzmmLnp8OqjRf bTGJ8PVlWmeHjjNaZV9fz0nbGOE383xOhnO4J3JRgM4jYZfZDieA4Kmfb OIPD2D40CE+OldrPQjRDs/jFpI6KySEEBrWe4f/d5IDosVir0M5zXhzG6 3Ra1/GQhkcNCgZzt20d4VvAg/xOfcR8NbA7uc7dkg48CHgYS/7mGBm1MR /q8Z4Whwi2am3fHY9Nnr+BO8JRSamOLLAGKTmiucY4lZ4Ptubc+W+mbYi A==; IronPort-SDR: Yc1j77ebt4MQVEp0gl7beLZT5XD9hhJGGZD2L7ZubRE5L3I97oUU4kFmEWrFtDfCvrTdfu3atd +AgzJdA7j4sr6IY+08p+aOXNX7b/CBihygqEUzeYdGNm3srCAvwEMgxUp7/ccE5J3iuSFld3Ax D065syNsqKAEAylXkaI6gGvQIAhcrEBKrFyVeG0GSEZAuVwVlotP0LWgiubA02H/cVHqruvo7K Azq8POCmyRPr9JfxLK+4LjJgwLCdrtRlwa4jRGXu8OyE/jgmdCLZiNYeqeD9MfDIVvKeDhshR4 1JY= X-IronPort-AV: E=Sophos;i="5.77,293,1596524400"; d="scan'208";a="92033737" Received: from smtpout.microchip.com (HELO email.microchip.com) ([198.175.253.82]) by esa5.microchip.iphmx.com with ESMTP/TLS/AES256-SHA256; 23 Sep 2020 00:08:07 -0700 Received: from chn-vm-ex01.mchp-main.com (10.10.85.143) by chn-vm-ex01.mchp-main.com (10.10.85.143) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.1979.3; Wed, 23 Sep 2020 00:07:49 -0700 Received: from NAM02-CY1-obe.outbound.protection.outlook.com (10.10.215.89) by email.microchip.com (10.10.87.71) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.1979.3 via Frontend Transport; Wed, 23 Sep 2020 00:07:49 -0700 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=Fv7sH9Ny09u92eWjofJqqH12tGIYbp473c8GbNeXCdY26KhNPNWNj5SLJ3gamkm+1CrcQ40G91BjlPjqmw4YLjOa4HcIiNvlyEAiNfZGauRNJvRJn9Cja8w/sl0rBaU+xBtymfiI7nZWcDccF0ougvBym9Zp0znBRFZ755KUH6kTPIN74ORXLIcMUFNeVPZN9yL5aetwxzccgFF1d/MCarrzpQ3rMJ9D/KzoSjdDTOYLOGhLL8ORjXKa6LKKDNTmXxnf84HzYbRW83Rfo3EomkGJXbLrDPkZZK5VpFu3cF13GsEvTqEbFMHea167701fEshKLZIzT5aXpIjPn5mQXQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=9OXgTY3+wn4w2IEr2OFxflnMZloWwn+bUCnuXn3lqKM=; b=QRp6orIe2RvlJKEcGVzmwmDotd1Uk3BS6TXVF8S9Tx0iPBu6QICYt1Rd+D6Mk6wMteWSdLq22Dwf9QLP+4m3GPmTDj1Celi/rdOh9B0+PFruiZ27y/mkrwOCR2f1Ik+KHSSEqdjChW1UE+MFMaCpM6u43rxpul4Ya3Bzk2DGnhX1iztTfZAUO7rrUXkprrSYMkhlCFJRCmHT2UxH0+6doKtO4l/JcXmYGs1WM3z5pBXXXb4Bmd1JhAgkwZS41VdJCQVhZXz13ZgIcE6HEHavR07uSQwugakNMCE8SyYGt0faqlNC08zo0n2ZVmuy8pQxpiEShCL1gNQRcLxFIMxZ1g== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=microchip.com; dmarc=pass action=none header.from=microchip.com; dkim=pass header.d=microchip.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=microchiptechnology.onmicrosoft.com; s=selector2-microchiptechnology-onmicrosoft-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=9OXgTY3+wn4w2IEr2OFxflnMZloWwn+bUCnuXn3lqKM=; b=TAsY2Ij4xxu1x4xkEZBju7ZQZrya1TV0RWYXQ+xAizO/nYIwHXJ8qpoEQO1YhnY/pkZr7gtBfBVhGQ/zlgoaNuEQDA6Hbh3eb+bYL/r9+5iX+PNCKQd1WiwkFy5DHY9a1qXBWne7taLsUSK6DeVQBBJ0pdncGdsBfrTvSH9EjVA= Received: from DM5PR11MB1914.namprd11.prod.outlook.com (2603:10b6:3:112::12) by DM5PR11MB2012.namprd11.prod.outlook.com (2603:10b6:3:10::15) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.3391.19; Wed, 23 Sep 2020 07:08:04 +0000 Received: from DM5PR11MB1914.namprd11.prod.outlook.com ([fe80::a8e8:d0bc:8b3c:d385]) by DM5PR11MB1914.namprd11.prod.outlook.com ([fe80::a8e8:d0bc:8b3c:d385%11]) with mapi id 15.20.3391.027; Wed, 23 Sep 2020 07:08:04 +0000 From: To: , , , CC: , , , , Subject: Re: [PATCH 5/7] dmaengine: at_xdmac: add support for sama7g5 based at_xdmac Thread-Topic: [PATCH 5/7] dmaengine: at_xdmac: add support for sama7g5 based at_xdmac Thread-Index: AQHWkXhH5DMcPTrOM0ey2iY+Gg0bJA== Date: Wed, 23 Sep 2020 07:08:03 +0000 Message-ID: <02ed5fc6-d2f9-e717-a0f1-2c08ef556abb@microchip.com> References: <20200914140956.221432-1-eugen.hristev@microchip.com> <20200914140956.221432-6-eugen.hristev@microchip.com> In-Reply-To: <20200914140956.221432-6-eugen.hristev@microchip.com> Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: user-agent: Mozilla/5.0 (X11; Linux x86_64; rv:68.0) Gecko/20100101 Thunderbird/68.10.0 authentication-results: microchip.com; dkim=none (message not signed) header.d=none;microchip.com; dmarc=none action=none header.from=microchip.com; x-originating-ip: [82.77.80.152] x-ms-publictraffictype: Email x-ms-office365-filtering-correlation-id: a4fbdffd-540b-45e8-be9f-08d85f8f6a39 x-ms-traffictypediagnostic: DM5PR11MB2012: x-ms-exchange-transport-forked: True x-microsoft-antispam-prvs: x-bypassexternaltag: True x-ms-oob-tlc-oobclassifiers: OLM:10000; x-ms-exchange-senderadcheck: 1 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: VyI5CpZBscthYdtG5l7Y/BvHi37cgH1O6NYuMNrJH5ljFzm4J6bGFWwP/B2bzK1SRSH96WNdVeMwNhIwkjNwUvJwfh0pC18zg0uif/UXk3ubTzJuWrLky+hPbAVHxN7rysRc0YnWL7Ce+73N6kJZFNlwqMfE74qtRbNwmcANjEKyJ4wYAsRc8K79hE2Kd2Z0J4p4MIsmp3M4KDdZE9kEGwE7mpWBEV74DWv77YDpdrPeMnwgh+ZAo+3GWl45/KbMniMNrJKs2zRbqc0LvUitO75mcwnf68fFlANvml8agWLo1B+64lijyb4gCUKlT5GxvsKttFJxlgwMw4wAFE+LWIUw/wpxTlH1frdyaqrFcyzFDhJTeXAxvAY3owCI9BJ9 x-forefront-antispam-report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:DM5PR11MB1914.namprd11.prod.outlook.com;PTR:;CAT:NONE;SFS:(396003)(366004)(376002)(136003)(39860400002)(346002)(91956017)(478600001)(36756003)(316002)(186003)(6486002)(54906003)(71200400001)(2906002)(2616005)(76116006)(6512007)(110136005)(107886003)(86362001)(6636002)(53546011)(66946007)(66476007)(66556008)(64756008)(66446008)(4326008)(6506007)(8936002)(30864003)(83380400001)(26005)(8676002)(31696002)(5660300002)(31686004)(43740500002);DIR:OUT;SFP:1101; x-ms-exchange-antispam-messagedata: NAeNWnf+ysWt3SQTFLBOAMG1CbnNsDSXDwnSS0n4joPChURk0xYY54JtxlB1qLqxFso72imXomnYanstQ/DYQRD9sMrbVHXQ+3JrHclvodnyELEe5Q7Tzj9w09zof24cPhQZcNICiuwEt6+s2lkJP2rjVPJzUNKFMi7cX826nXEztl9OGz6tduI8ply5Q8cIcOYs/rOYgzGBNGEHPcC1RpgmRgrPB4lEhWoBzwKS9IGg/tmeVOdkMphruwHtnqXNEsHrujPvlTrsyzwKVf6aYiU+cXN3zhJYCvUoi+CFVBTBOvI4lhrcP7tT6afqUUtGWYmNy6aVXx8jwUxcoJR0AkT6lCgPECSZqo29srrc3UR+SN26d1CCdOWbjiMGZjR5bvJsq6+DzaKIRVV5OI4bjceWZAIy4qVMwaRzcxJhq66iY660arePGbgUwgzuyOLaNF3kIDLqHEcr3YyDWAHvAnE1pEBVYiBV5xd2Z9gNg3TwzxrY0zIYAuBnGGH6ikw7jBdOjOF1+l4/WV5ToGK1OdxJDQb+dIHliTX9lR3QxBKXfR7qWDwoduwDbX8bz2G5vDePm/DKbSwQKELAqCCa1fO37wlywCcD8JWgeZrC9aDmJ2Hftc88bR2bfrscw23c+qQLI6KlMCZ/C5wLvJvF0w== Content-Type: text/plain; charset="utf-8" Content-ID: <04FB908CBE2AF94DB3DBD94A0811921C@namprd11.prod.outlook.com> Content-Transfer-Encoding: base64 MIME-Version: 1.0 X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-AuthSource: DM5PR11MB1914.namprd11.prod.outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: a4fbdffd-540b-45e8-be9f-08d85f8f6a39 X-MS-Exchange-CrossTenant-originalarrivaltime: 23 Sep 2020 07:08:03.8279 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: 3f4057f3-b418-4d4e-ba84-d55b4e897d88 X-MS-Exchange-CrossTenant-mailboxtype: HOSTED X-MS-Exchange-CrossTenant-userprincipalname: wnVH9t5OJ7OQo+2wxsGh0zX5frWD1K0UrvimlEA2L2pV72VXDyi7SOEHi1RB9B7T+dHm1TR35d5SUPHf17oZcicLmDvEosxjVKSWG43r2oo= X-MS-Exchange-Transport-CrossTenantHeadersStamped: DM5PR11MB2012 Precedence: bulk List-ID: X-Mailing-List: dmaengine@vger.kernel.org T24gOS8xNC8yMCA1OjA5IFBNLCBFdWdlbiBIcmlzdGV2IHdyb3RlOg0KPiBTQU1BN0c1IFNvQyB1 c2VzIGEgc2xpZ2h0bHkgZGlmZmVyZW50IHZhcmlhbnQgb2YgdGhlIEFUX1hETUFDLg0KPiBBZGRl ZCBzdXBwb3J0IGJ5IGEgbmV3IGNvbXBhdGlibGUgYW5kIGEgbGF5b3V0IHN0cnVjdCB0aGF0IGNv cGVzDQo+IHRvIHRoZSBzcGVjaWZpYyB2ZXJzaW9uIGNvbnNpZGVyaW5nIHRoZSBjb21wYXRpYmxl IHN0cmluZy4NCj4gT25seSB0aGUgZGlmZmVyZW5jZXMgaW4gcmVnaXN0ZXIgbWFwIGFyZSBwcmVz ZW50IGluIHRoZSBsYXlvdXQgc3RydWN0Lg0KPiBJIHJld29ya2VkIHRoZSByZWdpc3RlciBhY2Nl c3MgZm9yIHRoaXMgcGFydCB0aGF0IGhhcyB0aGUgZGlmZmVyZW5jZXMuDQo+IEFsc28gdGhlIFNv dXJjZS9EZXN0aW5hdGlvbiBJbnRlcmZhY2UgYml0cyBhcmUgbm8gbG9uZ2VyIHZhbGlkIGZvciB0 aGlzDQo+IHZhcmlhbnQgb2YgdGhlIFhETUFDLiBUaHVzLCB0aGUgbGF5b3V0IGFsc28gaGFzIGEg Ym9vbCBmb3Igc3BlY2lmeWluZw0KPiB3aGV0aGVyIHRoZXNlIGJpdHMgYXJlIHJlcXVpcmVkIG9y IG5vdC4NCj4gDQo+IFNpZ25lZC1vZmYtYnk6IEV1Z2VuIEhyaXN0ZXYgPGV1Z2VuLmhyaXN0ZXZA bWljcm9jaGlwLmNvbT4NCj4gLS0tDQo+ICBkcml2ZXJzL2RtYS9hdF94ZG1hYy5jICAgICAgfCA5 OSArKysrKysrKysrKysrKysrKysrKysrKysrKysrKystLS0tLS0tDQo+ICBkcml2ZXJzL2RtYS9h dF94ZG1hY19yZWdzLmggfCAgOSAtLS0tDQo+ICAyIGZpbGVzIGNoYW5nZWQsIDgyIGluc2VydGlv bnMoKyksIDI2IGRlbGV0aW9ucygtKQ0KPiANCj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZG1hL2F0 X3hkbWFjLmMgYi9kcml2ZXJzL2RtYS9hdF94ZG1hYy5jDQo+IGluZGV4IDgxYmI5MDIwNjA5Mi4u ODc0NDg0YTRlNzlmIDEwMDY0NA0KPiAtLS0gYS9kcml2ZXJzL2RtYS9hdF94ZG1hYy5jDQo+ICsr KyBiL2RyaXZlcnMvZG1hL2F0X3hkbWFjLmMNCj4gQEAgLTM4LDYgKzM4LDI3IEBAIGVudW0gYXRj X3N0YXR1cyB7DQo+ICAJQVRfWERNQUNfQ0hBTl9JU19QQVVTRUQsDQo+ICB9Ow0KPiAgDQo+ICtz dHJ1Y3QgYXRfeGRtYWNfbGF5b3V0IHsNCj4gKwkvKiBHbG9iYWwgQ2hhbm5lbCBSZWFkIFN1c3Bl bmQgUmVnaXN0ZXIgKi8NCj4gKwl1OAkJCQlncnM7DQo+ICsJLyogR2xvYmFsIFdyaXRlIFN1c3Bl bmQgUmVnaXN0ZXIgKi8NCj4gKwl1OAkJCQlnd3M7DQo+ICsJLyogR2xvYmFsIENoYW5uZWwgUmVh ZCBXcml0ZSBTdXNwZW5kIFJlZ2lzdGVyICovDQo+ICsJdTgJCQkJZ3J3czsNCj4gKwkvKiBHbG9i YWwgQ2hhbm5lbCBSZWFkIFdyaXRlIFJlc3VtZSBSZWdpc3RlciAqLw0KPiArCXU4CQkJCWdyd3I7 DQo+ICsJLyogR2xvYmFsIENoYW5uZWwgU29mdHdhcmUgUmVxdWVzdCBSZWdpc3RlciAqLw0KPiAr CXU4CQkJCWdzd3I7DQo+ICsJLyogR2xvYmFsIGNoYW5uZWwgU29mdHdhcmUgUmVxdWVzdCBTdGF0 dXMgUmVnaXN0ZXIgKi8NCj4gKwl1OAkJCQlnc3dzOw0KPiArCS8qIEdsb2JhbCBDaGFubmVsIFNv ZnR3YXJlIEZsdXNoIFJlcXVlc3QgUmVnaXN0ZXIgKi8NCj4gKwl1OAkJCQlnc3dmOw0KPiArCS8q IENoYW5uZWwgcmVnIGJhc2UgKi8NCj4gKwl1OAkJCQljaGFuX2NjX3JlZ19iYXNlOw0KPiArCS8q IFNvdXJjZS9EZXN0aW5hdGlvbiBJbnRlcmZhY2UgbXVzdCBiZSBzcGVjaWZpZWQgb3Igbm90ICov DQo+ICsJYm9vbAkJCQlzZGlmOw0KPiArfTsNCj4gKw0KPiAgLyogLS0tLS0gQ2hhbm5lbHMgLS0t LS0gKi8NCj4gIHN0cnVjdCBhdF94ZG1hY19jaGFuIHsNCj4gIAlzdHJ1Y3QgZG1hX2NoYW4JCQlj aGFuOw0KPiBAQCAtNzEsNiArOTIsNyBAQCBzdHJ1Y3QgYXRfeGRtYWMgew0KPiAgCXN0cnVjdCBj bGsJCSpjbGs7DQo+ICAJdTMyCQkJc2F2ZV9naW07DQo+ICAJc3RydWN0IGRtYV9wb29sCQkqYXRf eGRtYWNfZGVzY19wb29sOw0KPiArCWNvbnN0IHN0cnVjdCBhdF94ZG1hY19sYXlvdXQJKmxheW91 dDsNCj4gIAlzdHJ1Y3QgYXRfeGRtYWNfY2hhbgljaGFuW107DQo+ICB9Ow0KPiAgDQo+IEBAIC0x MDMsOSArMTI1LDMzIEBAIHN0cnVjdCBhdF94ZG1hY19kZXNjIHsNCj4gIAlzdHJ1Y3QgbGlzdF9o ZWFkCQl4ZmVyX25vZGU7DQo+ICB9IF9fYWxpZ25lZChzaXplb2YodTY0KSk7DQo+ICANCj4gK3N0 YXRpYyBzdHJ1Y3QgYXRfeGRtYWNfbGF5b3V0IGF0X3hkbWFjX3NhbWE1ZDRfbGF5b3V0ID0gew0K DQpzdGF0aWMgY29uc3Qgc3RydWN0DQoNCj4gKwkuZ3JzID0gMHgyOCwNCj4gKwkuZ3dzID0gMHgy QywNCj4gKwkuZ3J3cyA9IDB4MzAsDQo+ICsJLmdyd3IgPSAweDM0LA0KPiArCS5nc3dyID0gMHgz OCwNCj4gKwkuZ3N3cyA9IDB4M0MsDQo+ICsJLmdzd2YgPSAweDQwLA0KPiArCS5jaGFuX2NjX3Jl Z19iYXNlID0gMHg1MCwNCj4gKwkuc2RpZiA9IHRydWUsDQo+ICt9Ow0KPiArDQo+ICtzdGF0aWMg c3RydWN0IGF0X3hkbWFjX2xheW91dCBhdF94ZG1hY19zYW1hN2c1X2xheW91dCA9IHsNCg0Kc3Rh dGljIGNvbnN0IHN0cnVjdA0KDQo+ICsJLmdycyA9IDB4MzAsDQo+ICsJLmd3cyA9IDB4MzgsDQo+ ICsJLmdyd3MgPSAweDQwLA0KPiArCS5ncndyID0gMHg0NCwNCj4gKwkuZ3N3ciA9IDB4NDgsDQo+ ICsJLmdzd3MgPSAweDRDLA0KPiArCS5nc3dmID0gMHg1MCwNCj4gKwkuY2hhbl9jY19yZWdfYmFz ZSA9IDB4NjAsDQoNCm9uZSBtYXkgZmluZCB0aGVzZSBwbGFpbiBvZmZzZXRzIGFzIHRvbyByYXcg YW5kIHByb2JhYmx5IHByZWZlciBzb21lIGRlZmluZXMNCmZvciB0aGVtLCBidXQgSSB0b28gdGhp bmsgdGhhdCB0aGUgbWVtYmVycyBvZiB0aGUgc3RydWN0IGFyZSBzZWxmLWV4cGxhbmF0b3J5LA0K c28gSSdtIG9rIGVpdGhlciB3YXkuDQoNCj4gKwkuc2RpZiA9IGZhbHNlLA0KPiArfTsNCj4gKw0K PiAgc3RhdGljIGlubGluZSB2b2lkIF9faW9tZW0gKmF0X3hkbWFjX2NoYW5fcmVnX2Jhc2Uoc3Ry dWN0IGF0X3hkbWFjICphdHhkbWFjLCB1bnNpZ25lZCBpbnQgY2hhbl9uYikNCj4gIHsNCj4gLQly ZXR1cm4gYXR4ZG1hYy0+cmVncyArIChBVF9YRE1BQ19DSEFOX1JFR19CQVNFICsgY2hhbl9uYiAq IDB4NDApOw0KPiArCXJldHVybiBhdHhkbWFjLT5yZWdzICsgKGF0eGRtYWMtPmxheW91dC0+Y2hh bl9jY19yZWdfYmFzZSArIGNoYW5fbmIgKiAweDQwKTsNCj4gIH0NCj4gIA0KPiAgI2RlZmluZSBh dF94ZG1hY19yZWFkKGF0eGRtYWMsIHJlZykgcmVhZGxfcmVsYXhlZCgoYXR4ZG1hYyktPnJlZ3Mg KyAocmVnKSkNCj4gQEAgLTIwNCw4ICsyNTAsMTAgQEAgc3RhdGljIHZvaWQgYXRfeGRtYWNfc3Rh cnRfeGZlcihzdHJ1Y3QgYXRfeGRtYWNfY2hhbiAqYXRjaGFuLA0KPiAgCWZpcnN0LT5hY3RpdmVf eGZlciA9IHRydWU7DQo+ICANCj4gIAkvKiBUZWxsIHhkbWFjIHdoZXJlIHRvIGdldCB0aGUgZmly c3QgZGVzY3JpcHRvci4gKi8NCj4gLQlyZWcgPSBBVF9YRE1BQ19DTkRBX05EQShmaXJzdC0+dHhf ZG1hX2Rlc2MucGh5cykNCj4gLQkgICAgICB8IEFUX1hETUFDX0NOREFfTkRBSUYoYXRjaGFuLT5t ZW1pZik7DQo+ICsJcmVnID0gQVRfWERNQUNfQ05EQV9OREEoZmlyc3QtPnR4X2RtYV9kZXNjLnBo eXMpOw0KPiArCWlmIChhdHhkbWFjLT5sYXlvdXQtPnNkaWYpDQo+ICsJCXJlZyB8PSBBVF9YRE1B Q19DTkRBX05EQUlGKGF0Y2hhbi0+bWVtaWYpOw0KPiArDQo+ICAJYXRfeGRtYWNfY2hhbl93cml0 ZShhdGNoYW4sIEFUX1hETUFDX0NOREEsIHJlZyk7DQo+ICANCj4gIAkvKg0KPiBAQCAtNDAwLDYg KzQ0OCw3IEBAIHN0YXRpYyBpbnQgYXRfeGRtYWNfY29tcHV0ZV9jaGFuX2NvbmYoc3RydWN0IGRt YV9jaGFuICpjaGFuLA0KPiAgCQkJCSAgICAgIGVudW0gZG1hX3RyYW5zZmVyX2RpcmVjdGlvbiBk aXJlY3Rpb24pDQo+ICB7DQo+ICAJc3RydWN0IGF0X3hkbWFjX2NoYW4JKmF0Y2hhbiA9IHRvX2F0 X3hkbWFjX2NoYW4oY2hhbik7DQo+ICsJc3RydWN0IGF0X3hkbWFjCQkqYXR4ZG1hYyA9IHRvX2F0 X3hkbWFjKGF0Y2hhbi0+Y2hhbi5kZXZpY2UpOw0KPiAgCWludAkJCWNzaXplLCBkd2lkdGg7DQo+ ICANCj4gIAlpZiAoZGlyZWN0aW9uID09IERNQV9ERVZfVE9fTUVNKSB7DQo+IEBAIC00MDcsMTIg KzQ1NiwxNCBAQCBzdGF0aWMgaW50IGF0X3hkbWFjX2NvbXB1dGVfY2hhbl9jb25mKHN0cnVjdCBk bWFfY2hhbiAqY2hhbiwNCj4gIAkJCUFUOTFfWERNQUNfRFRfUEVSSUQoYXRjaGFuLT5wZXJpZCkN Cj4gIAkJCXwgQVRfWERNQUNfQ0NfREFNX0lOQ1JFTUVOVEVEX0FNDQo+ICAJCQl8IEFUX1hETUFD X0NDX1NBTV9GSVhFRF9BTQ0KPiAtCQkJfCBBVF9YRE1BQ19DQ19ESUYoYXRjaGFuLT5tZW1pZikN Cj4gLQkJCXwgQVRfWERNQUNfQ0NfU0lGKGF0Y2hhbi0+cGVyaWYpDQo+ICAJCQl8IEFUX1hETUFD X0NDX1NXUkVRX0hXUl9DT05ORUNURUQNCj4gIAkJCXwgQVRfWERNQUNfQ0NfRFNZTkNfUEVSMk1F TQ0KPiAgCQkJfCBBVF9YRE1BQ19DQ19NQlNJWkVfU0lYVEVFTg0KPiAgCQkJfCBBVF9YRE1BQ19D Q19UWVBFX1BFUl9UUkFOOw0KPiArCQlpZiAoYXR4ZG1hYy0+bGF5b3V0LT5zZGlmKQ0KPiArCQkJ YXRjaGFuLT5jZmcgfD0gQVRfWERNQUNfQ0NfRElGKGF0Y2hhbi0+bWVtaWYpDQo+ICsJCQkJfCBB VF9YRE1BQ19DQ19TSUYoYXRjaGFuLT5wZXJpZik7DQoNCnZlcnkgb2RkIGZvciBtZSB0byBzZWUg dGhlICJ8IiBvcGVyYXRvciBvbiB0aGUgbmV4dCBsaW5lLiBJIGZpbmQgaXQgaGFyZCB0bw0KcmVh ZCBhbmQgc29tZWhvdyBleGhhdXN0aW5nLiBJIHdvdWxkIHB1dCBpdCBvbiB0aGUgZmlyc3QgbGlu ZSBldmVuIGlmIHRocm91Z2hvdXQNCnRoZSBkcml2ZXIgaXQncyBvbiB0aGUgbmV4dCBsaW5lLg0K DQo+ICsNCj4gIAkJY3NpemUgPSBmZnMoYXRjaGFuLT5zY29uZmlnLnNyY19tYXhidXJzdCkgLSAx Ow0KPiAgCQlpZiAoY3NpemUgPCAwKSB7DQo+ICAJCQlkZXZfZXJyKGNoYW4yZGV2KGNoYW4pLCAi aW52YWxpZCBzcmMgbWF4YnVyc3QgdmFsdWVcbiIpOw0KPiBAQCAtNDMwLDEyICs0ODEsMTQgQEAg c3RhdGljIGludCBhdF94ZG1hY19jb21wdXRlX2NoYW5fY29uZihzdHJ1Y3QgZG1hX2NoYW4gKmNo YW4sDQo+ICAJCQlBVDkxX1hETUFDX0RUX1BFUklEKGF0Y2hhbi0+cGVyaWQpDQo+ICAJCQl8IEFU X1hETUFDX0NDX0RBTV9GSVhFRF9BTQ0KPiAgCQkJfCBBVF9YRE1BQ19DQ19TQU1fSU5DUkVNRU5U RURfQU0NCj4gLQkJCXwgQVRfWERNQUNfQ0NfRElGKGF0Y2hhbi0+cGVyaWYpDQo+IC0JCQl8IEFU X1hETUFDX0NDX1NJRihhdGNoYW4tPm1lbWlmKQ0KPiAgCQkJfCBBVF9YRE1BQ19DQ19TV1JFUV9I V1JfQ09OTkVDVEVEDQo+ICAJCQl8IEFUX1hETUFDX0NDX0RTWU5DX01FTTJQRVINCj4gIAkJCXwg QVRfWERNQUNfQ0NfTUJTSVpFX1NJWFRFRU4NCj4gIAkJCXwgQVRfWERNQUNfQ0NfVFlQRV9QRVJf VFJBTjsNCj4gKwkJaWYgKGF0eGRtYWMtPmxheW91dC0+c2RpZikNCj4gKwkJCWF0Y2hhbi0+Y2Zn IHw9ICBBVF9YRE1BQ19DQ19ESUYoYXRjaGFuLT5wZXJpZikNCj4gKwkJCQl8IEFUX1hETUFDX0ND X1NJRihhdGNoYW4tPm1lbWlmKTsNCj4gKw0KPiAgCQljc2l6ZSA9IGZmcyhhdGNoYW4tPnNjb25m aWcuZHN0X21heGJ1cnN0KSAtIDE7DQo+ICAJCWlmIChjc2l6ZSA8IDApIHsNCj4gIAkJCWRldl9l cnIoY2hhbjJkZXYoY2hhbiksICJpbnZhbGlkIHNyYyBtYXhidXJzdCB2YWx1ZVxuIik7DQo+IEBA IC03MTEsNiArNzY0LDcgQEAgYXRfeGRtYWNfaW50ZXJsZWF2ZWRfcXVldWVfZGVzYyhzdHJ1Y3Qg ZG1hX2NoYW4gKmNoYW4sDQo+ICAJCQkJc3RydWN0IGRhdGFfY2h1bmsgKmNodW5rKQ0KPiAgew0K PiAgCXN0cnVjdCBhdF94ZG1hY19kZXNjCSpkZXNjOw0KPiArCXN0cnVjdCBhdF94ZG1hYwkJKmF0 eGRtYWMgPSB0b19hdF94ZG1hYyhhdGNoYW4tPmNoYW4uZGV2aWNlKTsNCj4gIAl1MzIJCQlkd2lk dGg7DQo+ICAJdW5zaWduZWQgbG9uZwkJZmxhZ3M7DQo+ICAJc2l6ZV90CQkJdWJsZW47DQo+IEBA IC03MjcsMTAgKzc4MSwxMCBAQCBhdF94ZG1hY19pbnRlcmxlYXZlZF9xdWV1ZV9kZXNjKHN0cnVj dCBkbWFfY2hhbiAqY2hhbiwNCj4gIAkgKiBmbGFnIHN0YXR1cy4NCj4gIAkgKi8NCj4gIAl1MzIJ CQljaGFuX2NjID0gQVRfWERNQUNfQ0NfUEVSSUQoMHg3ZikNCj4gLQkJCQkJfCBBVF9YRE1BQ19D Q19ESUYoMCkNCj4gLQkJCQkJfCBBVF9YRE1BQ19DQ19TSUYoMCkNCj4gIAkJCQkJfCBBVF9YRE1B Q19DQ19NQlNJWkVfU0lYVEVFTg0KPiAgCQkJCQl8IEFUX1hETUFDX0NDX1RZUEVfTUVNX1RSQU47 DQo+ICsJaWYgKGF0eGRtYWMtPmxheW91dC0+c2RpZikNCj4gKwkJY2hhbl9jYyB8PSBBVF9YRE1B Q19DQ19ESUYoMCkgfCBBVF9YRE1BQ19DQ19TSUYoMCk7DQoNCnRoZXJlIGlzIGEgY29tbWVudCBh Ym92ZSBjaGFuX2NjIGluaXQgdGhhdCBleHBsYWlucyB0aGF0IHdlIGhhdmUgdG8gdXNlDQppbnRl cmZhY2UgMCBmb3IgYm90aCBzb3VyY2UgYW5kIGRlc3RpbmF0aW9uLCBzbyBtYXliZSB3ZSBjYW4g Z2V0IHJpZCBvZg0KdGhpcyBleHBsaWNpdCBPUiB3aXRoIHplcm8gYW5kIHVwZGF0ZSB0aGUgY29t bWVudCBmb3Igc2FtYTdnNSBjYXNlLg0KDQo+ICANCj4gIAlkd2lkdGggPSBhdF94ZG1hY19hbGln bl93aWR0aChjaGFuLCBzcmMgfCBkc3QgfCBjaHVuay0+c2l6ZSk7DQo+ICAJaWYgKGNodW5rLT5z aXplID49IChBVF9YRE1BQ19NQlJfVUJDX1VCTEVOX01BWCA8PCBkd2lkdGgpKSB7DQo+IEBAIC04 OTMsNiArOTQ3LDcgQEAgYXRfeGRtYWNfcHJlcF9kbWFfbWVtY3B5KHN0cnVjdCBkbWFfY2hhbiAq Y2hhbiwgZG1hX2FkZHJfdCBkZXN0LCBkbWFfYWRkcl90IHNyYywNCj4gIAkJCSBzaXplX3QgbGVu LCB1bnNpZ25lZCBsb25nIGZsYWdzKQ0KPiAgew0KPiAgCXN0cnVjdCBhdF94ZG1hY19jaGFuCSph dGNoYW4gPSB0b19hdF94ZG1hY19jaGFuKGNoYW4pOw0KPiArCXN0cnVjdCBhdF94ZG1hYwkJKmF0 eGRtYWMgPSB0b19hdF94ZG1hYyhhdGNoYW4tPmNoYW4uZGV2aWNlKTsNCj4gIAlzdHJ1Y3QgYXRf eGRtYWNfZGVzYwkqZmlyc3QgPSBOVUxMLCAqcHJldiA9IE5VTEw7DQo+ICAJc2l6ZV90CQkJcmVt YWluaW5nX3NpemUgPSBsZW4sIHhmZXJfc2l6ZSA9IDAsIHVibGVuOw0KPiAgCWRtYV9hZGRyX3QJ CXNyY19hZGRyID0gc3JjLCBkc3RfYWRkciA9IGRlc3Q7DQo+IEBAIC05MTEsMTIgKzk2NiwxMyBA QCBhdF94ZG1hY19wcmVwX2RtYV9tZW1jcHkoc3RydWN0IGRtYV9jaGFuICpjaGFuLCBkbWFfYWRk cl90IGRlc3QsIGRtYV9hZGRyX3Qgc3JjLA0KPiAgCXUzMgkJCWNoYW5fY2MgPSBBVF9YRE1BQ19D Q19QRVJJRCgweDdmKQ0KPiAgCQkJCQl8IEFUX1hETUFDX0NDX0RBTV9JTkNSRU1FTlRFRF9BTQ0K PiAgCQkJCQl8IEFUX1hETUFDX0NDX1NBTV9JTkNSRU1FTlRFRF9BTQ0KPiAtCQkJCQl8IEFUX1hE TUFDX0NDX0RJRigwKQ0KPiAtCQkJCQl8IEFUX1hETUFDX0NDX1NJRigwKQ0KPiAgCQkJCQl8IEFU X1hETUFDX0NDX01CU0laRV9TSVhURUVODQo+ICAJCQkJCXwgQVRfWERNQUNfQ0NfVFlQRV9NRU1f VFJBTjsNCj4gIAl1bnNpZ25lZCBsb25nCQlpcnFmbGFnczsNCj4gIA0KPiArCWlmIChhdHhkbWFj LT5sYXlvdXQtPnNkaWYpDQo+ICsJCWNoYW5fY2MgfD0gQVRfWERNQUNfQ0NfRElGKDApIHwgQVRf WERNQUNfQ0NfU0lGKDApOw0KDQpzYW1lIGhlcmUNCg0KPiArDQo+ICAJZGV2X2RiZyhjaGFuMmRl dihjaGFuKSwgIiVzOiBzcmM9JXBhZCwgZGVzdD0lcGFkLCBsZW49JXpkLCBmbGFncz0weCVseFxu IiwNCj4gIAkJX19mdW5jX18sICZzcmMsICZkZXN0LCBsZW4sIGZsYWdzKTsNCj4gIA0KPiBAQCAt OTk5LDYgKzEwNTUsNyBAQCBzdGF0aWMgc3RydWN0IGF0X3hkbWFjX2Rlc2MgKmF0X3hkbWFjX21l bXNldF9jcmVhdGVfZGVzYyhzdHJ1Y3QgZG1hX2NoYW4gKmNoYW4sDQo+ICAJCQkJCQkJIGludCB2 YWx1ZSkNCj4gIHsNCj4gIAlzdHJ1Y3QgYXRfeGRtYWNfZGVzYwkqZGVzYzsNCj4gKwlzdHJ1Y3Qg YXRfeGRtYWMJCSphdHhkbWFjID0gdG9fYXRfeGRtYWMoYXRjaGFuLT5jaGFuLmRldmljZSk7DQo+ ICAJdW5zaWduZWQgbG9uZwkJZmxhZ3M7DQo+ICAJc2l6ZV90CQkJdWJsZW47DQo+ICAJdTMyCQkJ ZHdpZHRoOw0KPiBAQCAtMTAxNywxMSArMTA3NCwxMSBAQCBzdGF0aWMgc3RydWN0IGF0X3hkbWFj X2Rlc2MgKmF0X3hkbWFjX21lbXNldF9jcmVhdGVfZGVzYyhzdHJ1Y3QgZG1hX2NoYW4gKmNoYW4s DQo+ICAJdTMyCQkJY2hhbl9jYyA9IEFUX1hETUFDX0NDX1BFUklEKDB4N2YpDQo+ICAJCQkJCXwg QVRfWERNQUNfQ0NfREFNX1VCU19BTQ0KPiAgCQkJCQl8IEFUX1hETUFDX0NDX1NBTV9JTkNSRU1F TlRFRF9BTQ0KPiAtCQkJCQl8IEFUX1hETUFDX0NDX0RJRigwKQ0KPiAtCQkJCQl8IEFUX1hETUFD X0NDX1NJRigwKQ0KPiAgCQkJCQl8IEFUX1hETUFDX0NDX01CU0laRV9TSVhURUVODQo+ICAJCQkJ CXwgQVRfWERNQUNfQ0NfTUVNU0VUX0hXX01PREUNCj4gIAkJCQkJfCBBVF9YRE1BQ19DQ19UWVBF X01FTV9UUkFOOw0KPiArCWlmIChhdHhkbWFjLT5sYXlvdXQtPnNkaWYpDQo+ICsJCWNoYW5fY2Mg fD0gQVRfWERNQUNfQ0NfRElGKDApIHwgQVRfWERNQUNfQ0NfU0lGKDApOw0KDQpzYW1lIGhlcmUN Cg0KPiAgDQo+ICAJZHdpZHRoID0gYXRfeGRtYWNfYWxpZ25fd2lkdGgoY2hhbiwgZHN0X2FkZHIp Ow0KPiAgDQo+IEBAIC0xMjk3LDcgKzEzNTQsNyBAQCBhdF94ZG1hY190eF9zdGF0dXMoc3RydWN0 IGRtYV9jaGFuICpjaGFuLCBkbWFfY29va2llX3QgY29va2llLA0KPiAgCW1hc2sgPSBBVF9YRE1B Q19DQ19UWVBFIHwgQVRfWERNQUNfQ0NfRFNZTkM7DQo+ICAJdmFsdWUgPSBBVF9YRE1BQ19DQ19U WVBFX1BFUl9UUkFOIHwgQVRfWERNQUNfQ0NfRFNZTkNfUEVSMk1FTTsNCj4gIAlpZiAoKGRlc2Mt PmxsZC5tYnJfY2ZnICYgbWFzaykgPT0gdmFsdWUpIHsNCj4gLQkJYXRfeGRtYWNfd3JpdGUoYXR4 ZG1hYywgQVRfWERNQUNfR1NXRiwgYXRjaGFuLT5tYXNrKTsNCj4gKwkJYXRfeGRtYWNfd3JpdGUo YXR4ZG1hYywgYXR4ZG1hYy0+bGF5b3V0LT5nc3dmLCBhdGNoYW4tPm1hc2spOw0KPiAgCQl3aGls ZSAoIShhdF94ZG1hY19jaGFuX3JlYWQoYXRjaGFuLCBBVF9YRE1BQ19DSVMpICYgQVRfWERNQUNf Q0lTX0ZJUykpDQo+ICAJCQljcHVfcmVsYXgoKTsNCj4gIAl9DQo+IEBAIC0xMzU1LDcgKzE0MTIs NyBAQCBhdF94ZG1hY190eF9zdGF0dXMoc3RydWN0IGRtYV9jaGFuICpjaGFuLCBkbWFfY29va2ll X3QgY29va2llLA0KPiAgCSAqIEZJRk8gZmx1c2ggZW5zdXJlcyB0aGF0IGRhdGEgYXJlIHJlYWxs eSB3cml0dGVuLg0KPiAgCSAqLw0KPiAgCWlmICgoZGVzYy0+bGxkLm1icl9jZmcgJiBtYXNrKSA9 PSB2YWx1ZSkgew0KPiAtCQlhdF94ZG1hY193cml0ZShhdHhkbWFjLCBBVF9YRE1BQ19HU1dGLCBh dGNoYW4tPm1hc2spOw0KPiArCQlhdF94ZG1hY193cml0ZShhdHhkbWFjLCBhdHhkbWFjLT5sYXlv dXQtPmdzd2YsIGF0Y2hhbi0+bWFzayk7DQo+ICAJCXdoaWxlICghKGF0X3hkbWFjX2NoYW5fcmVh ZChhdGNoYW4sIEFUX1hETUFDX0NJUykgJiBBVF9YRE1BQ19DSVNfRklTKSkNCj4gIAkJCWNwdV9y ZWxheCgpOw0KPiAgCX0NCj4gQEAgLTE2MjAsNyArMTY3Nyw3IEBAIHN0YXRpYyBpbnQgYXRfeGRt YWNfZGV2aWNlX3BhdXNlKHN0cnVjdCBkbWFfY2hhbiAqY2hhbikNCj4gIAkJcmV0dXJuIDA7DQo+ ICANCj4gIAlzcGluX2xvY2tfaXJxc2F2ZSgmYXRjaGFuLT5sb2NrLCBmbGFncyk7DQo+IC0JYXRf eGRtYWNfd3JpdGUoYXR4ZG1hYywgQVRfWERNQUNfR1JXUywgYXRjaGFuLT5tYXNrKTsNCj4gKwlh dF94ZG1hY193cml0ZShhdHhkbWFjLCBhdHhkbWFjLT5sYXlvdXQtPmdyd3MsIGF0Y2hhbi0+bWFz ayk7DQo+ICAJd2hpbGUgKGF0X3hkbWFjX2NoYW5fcmVhZChhdGNoYW4sIEFUX1hETUFDX0NDKQ0K PiAgCSAgICAgICAmIChBVF9YRE1BQ19DQ19XUklQIHwgQVRfWERNQUNfQ0NfUkRJUCkpDQo+ICAJ CWNwdV9yZWxheCgpOw0KPiBAQCAtMTY0Myw3ICsxNzAwLDcgQEAgc3RhdGljIGludCBhdF94ZG1h Y19kZXZpY2VfcmVzdW1lKHN0cnVjdCBkbWFfY2hhbiAqY2hhbikNCj4gIAkJcmV0dXJuIDA7DQo+ ICAJfQ0KPiAgDQo+IC0JYXRfeGRtYWNfd3JpdGUoYXR4ZG1hYywgQVRfWERNQUNfR1JXUiwgYXRj aGFuLT5tYXNrKTsNCj4gKwlhdF94ZG1hY193cml0ZShhdHhkbWFjLCBhdHhkbWFjLT5sYXlvdXQt Pmdyd3IsIGF0Y2hhbi0+bWFzayk7DQo+ICAJY2xlYXJfYml0KEFUX1hETUFDX0NIQU5fSVNfUEFV U0VELCAmYXRjaGFuLT5zdGF0dXMpOw0KPiAgCXNwaW5fdW5sb2NrX2lycXJlc3RvcmUoJmF0Y2hh bi0+bG9jaywgZmxhZ3MpOw0KPiAgDQo+IEBAIC0xODQ1LDYgKzE5MDIsMTAgQEAgc3RhdGljIGlu dCBhdF94ZG1hY19wcm9iZShzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlICpwZGV2KQ0KPiAgCWF0eGRt YWMtPnJlZ3MgPSBiYXNlOw0KPiAgCWF0eGRtYWMtPmlycSA9IGlycTsNCj4gIA0KPiArCWF0eGRt YWMtPmxheW91dCA9IG9mX2RldmljZV9nZXRfbWF0Y2hfZGF0YSgmcGRldi0+ZGV2KTsNCj4gKwlp ZiAoIWF0eGRtYWMtPmxheW91dCkNCj4gKwkJcmV0dXJuIC1FTk9ERVY7DQoNCkkgd291bGQgZ2V0 IHRoZSBkYXRhIHVwcGVyIGluIHRoZSBmdW5jdGlvbiwgYWZ0ZXIgZ2V0dGluZyBpcnEuIElmIGRh dGEgaXMNCm5vdCBwcm92aWRlZCwgeW91IHdvdWxkIHNwYXJlIHNvbWUgb3BzIHRoYXQgd2lsbCBi ZSBkb25lIGdyYXR1aXRvdXNseS4NCg0KV2l0aCB0aGVzZSBhZGRyZXNzZWQgb25lIG1heSBhZGQ6 DQpSZXZpZXdlZC1ieTogVHVkb3IgQW1iYXJ1cyA8dHVkb3IuYW1iYXJ1c0BtaWNyb2NoaXAuY29t Pg0KPiArDQo+ICAJYXR4ZG1hYy0+Y2xrID0gZGV2bV9jbGtfZ2V0KCZwZGV2LT5kZXYsICJkbWFf Y2xrIik7DQo+ICAJaWYgKElTX0VSUihhdHhkbWFjLT5jbGspKSB7DQo+ICAJCWRldl9lcnIoJnBk ZXYtPmRldiwgImNhbid0IGdldCBkbWFfY2xrXG4iKTsNCj4gQEAgLTE5ODgsNiArMjA0OSwxMCBA QCBzdGF0aWMgY29uc3Qgc3RydWN0IGRldl9wbV9vcHMgYXRtZWxfeGRtYWNfZGV2X3BtX29wcyA9 IHsNCj4gIHN0YXRpYyBjb25zdCBzdHJ1Y3Qgb2ZfZGV2aWNlX2lkIGF0bWVsX3hkbWFjX2R0X2lk c1tdID0gew0KPiAgCXsNCj4gIAkJLmNvbXBhdGlibGUgPSAiYXRtZWwsc2FtYTVkNC1kbWEiLA0K PiArCQkuZGF0YSA9ICZhdF94ZG1hY19zYW1hNWQ0X2xheW91dCwNCj4gKwl9LCB7DQo+ICsJCS5j b21wYXRpYmxlID0gIm1pY3JvY2hpcCxzYW1hN2c1LWRtYSIsDQo+ICsJCS5kYXRhID0gJmF0X3hk bWFjX3NhbWE3ZzVfbGF5b3V0LA0KPiAgCX0sIHsNCj4gIAkJLyogc2VudGluZWwgKi8NCj4gIAl9 DQo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2RtYS9hdF94ZG1hY19yZWdzLmggYi9kcml2ZXJzL2Rt YS9hdF94ZG1hY19yZWdzLmgNCj4gaW5kZXggM2Y3ZGRhNGM1NzQzLi43YjRiNGUyNGRlNzAgMTAw NjQ0DQo+IC0tLSBhL2RyaXZlcnMvZG1hL2F0X3hkbWFjX3JlZ3MuaA0KPiArKysgYi9kcml2ZXJz L2RtYS9hdF94ZG1hY19yZWdzLmgNCj4gQEAgLTIyLDEzICsyMiw2IEBADQo+ICAjZGVmaW5lIEFU X1hETUFDX0dFCQkweDFDCS8qIEdsb2JhbCBDaGFubmVsIEVuYWJsZSBSZWdpc3RlciAqLw0KPiAg I2RlZmluZSBBVF9YRE1BQ19HRAkJMHgyMAkvKiBHbG9iYWwgQ2hhbm5lbCBEaXNhYmxlIFJlZ2lz dGVyICovDQo+ICAjZGVmaW5lIEFUX1hETUFDX0dTCQkweDI0CS8qIEdsb2JhbCBDaGFubmVsIFN0 YXR1cyBSZWdpc3RlciAqLw0KPiAtI2RlZmluZSBBVF9YRE1BQ19HUlMJCTB4MjgJLyogR2xvYmFs IENoYW5uZWwgUmVhZCBTdXNwZW5kIFJlZ2lzdGVyICovDQo+IC0jZGVmaW5lIEFUX1hETUFDX0dX UwkJMHgyQwkvKiBHbG9iYWwgV3JpdGUgU3VzcGVuZCBSZWdpc3RlciAqLw0KPiAtI2RlZmluZSBB VF9YRE1BQ19HUldTCQkweDMwCS8qIEdsb2JhbCBDaGFubmVsIFJlYWQgV3JpdGUgU3VzcGVuZCBS ZWdpc3RlciAqLw0KPiAtI2RlZmluZSBBVF9YRE1BQ19HUldSCQkweDM0CS8qIEdsb2JhbCBDaGFu bmVsIFJlYWQgV3JpdGUgUmVzdW1lIFJlZ2lzdGVyICovDQo+IC0jZGVmaW5lIEFUX1hETUFDX0dT V1IJCTB4MzgJLyogR2xvYmFsIENoYW5uZWwgU29mdHdhcmUgUmVxdWVzdCBSZWdpc3RlciAqLw0K PiAtI2RlZmluZSBBVF9YRE1BQ19HU1dTCQkweDNDCS8qIEdsb2JhbCBjaGFubmVsIFNvZnR3YXJl IFJlcXVlc3QgU3RhdHVzIFJlZ2lzdGVyICovDQo+IC0jZGVmaW5lIEFUX1hETUFDX0dTV0YJCTB4 NDAJLyogR2xvYmFsIENoYW5uZWwgU29mdHdhcmUgRmx1c2ggUmVxdWVzdCBSZWdpc3RlciAqLw0K PiAgI2RlZmluZSBBVF9YRE1BQ19WRVJTSU9OCTB4RkZDCS8qIFhETUFDIFZlcnNpb24gUmVnaXN0 ZXIgKi8NCj4gIA0KPiAgLyogQ2hhbm5lbCByZWxhdGl2ZSByZWdpc3RlcnMgb2Zmc2V0cyAqLw0K PiBAQCAtMTM0LDggKzEyNyw2IEBADQo+ICAjZGVmaW5lIEFUX1hETUFDX0NTVVMJCTB4MzAJLyog Q2hhbm5lbCBTb3VyY2UgTWljcm9ibG9jayBTdHJpZGUgKi8NCj4gICNkZWZpbmUgQVRfWERNQUNf Q0RVUwkJMHgzNAkvKiBDaGFubmVsIERlc3RpbmF0aW9uIE1pY3JvYmxvY2sgU3RyaWRlICovDQo+ ICANCj4gLSNkZWZpbmUgQVRfWERNQUNfQ0hBTl9SRUdfQkFTRQkweDUwCS8qIENoYW5uZWwgcmVn aXN0ZXJzIGJhc2UgYWRkcmVzcyAqLw0KPiAtDQo+ICAvKiBNaWNyb2Jsb2NrIGNvbnRyb2wgbWVt YmVycyAqLw0KPiAgI2RlZmluZSBBVF9YRE1BQ19NQlJfVUJDX1VCTEVOX01BWAkweEZGRkZGRlVM CS8qIE1heGltdW0gTWljcm9ibG9jayBMZW5ndGggKi8NCj4gICNkZWZpbmUgQVRfWERNQUNfTUJS X1VCQ19OREUJCSgweDEgPDwgMjQpCS8qIE5leHQgRGVzY3JpcHRvciBFbmFibGUgKi8NCj4gDQoN Cg== 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=-12.5 required=3.0 tests=BAYES_00,DKIMWL_WL_HIGH, DKIM_SIGNED,DKIM_VALID,HEADER_FROM_DIFFERENT_DOMAINS,INCLUDES_PATCH, MAILING_LIST_MULTI,NICE_REPLY_A,SIGNED_OFF_BY,SPF_HELO_NONE,SPF_PASS, URIBL_BLOCKED,USER_AGENT_SANE_1 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 D5D71C4363D for ; Wed, 23 Sep 2020 07:09:43 +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 4524B235FC for ; Wed, 23 Sep 2020 07:09:43 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=pass (2048-bit key) header.d=lists.infradead.org header.i=@lists.infradead.org header.b="byfziymH"; dkim=fail reason="signature verification failed" (2048-bit key) header.d=microchip.com header.i=@microchip.com header.b="IISKI+Zw"; dkim=fail reason="signature verification failed" (1024-bit key) header.d=microchiptechnology.onmicrosoft.com header.i=@microchiptechnology.onmicrosoft.com header.b="TAsY2Ij4" DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 4524B235FC Authentication-Results: mail.kernel.org; dmarc=fail (p=quarantine dis=none) header.from=microchip.com 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:MIME-Version:Content-ID:In-Reply-To:References: Message-ID:Date:Subject:To:From:Reply-To:Content-Description:Resent-Date: Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID:List-Owner; bh=8IRpK807OAf7rLEGK2/n3ltC+bwuDJgPzYwg7yWb7qE=; b=byfziymHrY3vtksTy8tzt/sbU aFhw8TC4OHpb4EdY1qwciajUcamNsRxhCkFymvRzJ2WUq+TrQRgyRUoAdfPYkl8n8e6ULbLJmJOGB ackSsRk1gcFmHXB8u88TJLYeaN0pIQAQcucPkxNJalG+QfV/BH6p5aK8cZUKNnDjfHbC7XCTtFrNH 8EMuCPmdh+tusSiw9w2BWgbDlRSSiNEqXnAi5qYcHFLoiERRoO3CEgfKmcasjCGLui9Nl3Rf1nEga IWgy614Cea6l1SD7Rs+WjDF/hcM8ki0eZAJHy3ajqfJmR1buwgyxmo3215TN3+3o6bdBqehnijIb0 4bvoVmXkw==; Received: from localhost ([::1] helo=merlin.infradead.org) by merlin.infradead.org with esmtp (Exim 4.92.3 #3 (Red Hat Linux)) id 1kKysx-0003ab-7j; Wed, 23 Sep 2020 07:08:15 +0000 Received: from esa5.microchip.iphmx.com ([216.71.150.166]) by merlin.infradead.org with esmtps (Exim 4.92.3 #3 (Red Hat Linux)) id 1kKyss-0003Z9-6J for linux-arm-kernel@lists.infradead.org; Wed, 23 Sep 2020 07:08:13 +0000 DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple; d=microchip.com; i=@microchip.com; q=dns/txt; s=mchp; t=1600844890; x=1632380890; h=from:to:cc:subject:date:message-id:references: in-reply-to:content-id:content-transfer-encoding: mime-version; bh=9OXgTY3+wn4w2IEr2OFxflnMZloWwn+bUCnuXn3lqKM=; b=IISKI+ZwQ9zPrpzaxVZd7eb0+BjOP/5snXX7LYMyRAS3uD/Zqd3vdOVI TH3EpilTE4ldfWSrgDpywsxhTlJhiTnxmyG6RATuuO924PD90atdpJ9tZ umF4NwvmSHijblwIZKv0OIEt0HirImOh4XRNv/72ZPMssieO/9P1Crdea bWaENL4TntvIkkjUK2aMJHRvtR/t0U48IVG8DRjU1Hg1MQJT1a17+bFPf a/9wo2JMldmOg9ArKTfa+f/NcB1uB+xEAixOWSONTWYmi7/ilm1QyNOp0 pDzpLxY4ZNzVfyL3picvE2NVoY6RMITl++HUs9Df0VwH4Q+uovjgHwcDa w==; IronPort-SDR: Yc1j77ebt4MQVEp0gl7beLZT5XD9hhJGGZD2L7ZubRE5L3I97oUU4kFmEWrFtDfCvrTdfu3atd +AgzJdA7j4sr6IY+08p+aOXNX7b/CBihygqEUzeYdGNm3srCAvwEMgxUp7/ccE5J3iuSFld3Ax D065syNsqKAEAylXkaI6gGvQIAhcrEBKrFyVeG0GSEZAuVwVlotP0LWgiubA02H/cVHqruvo7K Azq8POCmyRPr9JfxLK+4LjJgwLCdrtRlwa4jRGXu8OyE/jgmdCLZiNYeqeD9MfDIVvKeDhshR4 1JY= X-IronPort-AV: E=Sophos;i="5.77,293,1596524400"; d="scan'208";a="92033737" Received: from smtpout.microchip.com (HELO email.microchip.com) ([198.175.253.82]) by esa5.microchip.iphmx.com with ESMTP/TLS/AES256-SHA256; 23 Sep 2020 00:08:07 -0700 Received: from chn-vm-ex01.mchp-main.com (10.10.85.143) by chn-vm-ex01.mchp-main.com (10.10.85.143) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.1979.3; Wed, 23 Sep 2020 00:07:49 -0700 Received: from NAM02-CY1-obe.outbound.protection.outlook.com (10.10.215.89) by email.microchip.com (10.10.87.71) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.1979.3 via Frontend Transport; Wed, 23 Sep 2020 00:07:49 -0700 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=Fv7sH9Ny09u92eWjofJqqH12tGIYbp473c8GbNeXCdY26KhNPNWNj5SLJ3gamkm+1CrcQ40G91BjlPjqmw4YLjOa4HcIiNvlyEAiNfZGauRNJvRJn9Cja8w/sl0rBaU+xBtymfiI7nZWcDccF0ougvBym9Zp0znBRFZ755KUH6kTPIN74ORXLIcMUFNeVPZN9yL5aetwxzccgFF1d/MCarrzpQ3rMJ9D/KzoSjdDTOYLOGhLL8ORjXKa6LKKDNTmXxnf84HzYbRW83Rfo3EomkGJXbLrDPkZZK5VpFu3cF13GsEvTqEbFMHea167701fEshKLZIzT5aXpIjPn5mQXQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=9OXgTY3+wn4w2IEr2OFxflnMZloWwn+bUCnuXn3lqKM=; b=QRp6orIe2RvlJKEcGVzmwmDotd1Uk3BS6TXVF8S9Tx0iPBu6QICYt1Rd+D6Mk6wMteWSdLq22Dwf9QLP+4m3GPmTDj1Celi/rdOh9B0+PFruiZ27y/mkrwOCR2f1Ik+KHSSEqdjChW1UE+MFMaCpM6u43rxpul4Ya3Bzk2DGnhX1iztTfZAUO7rrUXkprrSYMkhlCFJRCmHT2UxH0+6doKtO4l/JcXmYGs1WM3z5pBXXXb4Bmd1JhAgkwZS41VdJCQVhZXz13ZgIcE6HEHavR07uSQwugakNMCE8SyYGt0faqlNC08zo0n2ZVmuy8pQxpiEShCL1gNQRcLxFIMxZ1g== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=microchip.com; dmarc=pass action=none header.from=microchip.com; dkim=pass header.d=microchip.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=microchiptechnology.onmicrosoft.com; s=selector2-microchiptechnology-onmicrosoft-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=9OXgTY3+wn4w2IEr2OFxflnMZloWwn+bUCnuXn3lqKM=; b=TAsY2Ij4xxu1x4xkEZBju7ZQZrya1TV0RWYXQ+xAizO/nYIwHXJ8qpoEQO1YhnY/pkZr7gtBfBVhGQ/zlgoaNuEQDA6Hbh3eb+bYL/r9+5iX+PNCKQd1WiwkFy5DHY9a1qXBWne7taLsUSK6DeVQBBJ0pdncGdsBfrTvSH9EjVA= Received: from DM5PR11MB1914.namprd11.prod.outlook.com (2603:10b6:3:112::12) by DM5PR11MB2012.namprd11.prod.outlook.com (2603:10b6:3:10::15) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.3391.19; Wed, 23 Sep 2020 07:08:04 +0000 Received: from DM5PR11MB1914.namprd11.prod.outlook.com ([fe80::a8e8:d0bc:8b3c:d385]) by DM5PR11MB1914.namprd11.prod.outlook.com ([fe80::a8e8:d0bc:8b3c:d385%11]) with mapi id 15.20.3391.027; Wed, 23 Sep 2020 07:08:04 +0000 From: To: , , , Subject: Re: [PATCH 5/7] dmaengine: at_xdmac: add support for sama7g5 based at_xdmac Thread-Topic: [PATCH 5/7] dmaengine: at_xdmac: add support for sama7g5 based at_xdmac Thread-Index: AQHWkXhH5DMcPTrOM0ey2iY+Gg0bJA== Date: Wed, 23 Sep 2020 07:08:03 +0000 Message-ID: <02ed5fc6-d2f9-e717-a0f1-2c08ef556abb@microchip.com> References: <20200914140956.221432-1-eugen.hristev@microchip.com> <20200914140956.221432-6-eugen.hristev@microchip.com> In-Reply-To: <20200914140956.221432-6-eugen.hristev@microchip.com> Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: user-agent: Mozilla/5.0 (X11; Linux x86_64; rv:68.0) Gecko/20100101 Thunderbird/68.10.0 authentication-results: microchip.com; dkim=none (message not signed) header.d=none;microchip.com; dmarc=none action=none header.from=microchip.com; x-originating-ip: [82.77.80.152] x-ms-publictraffictype: Email x-ms-office365-filtering-correlation-id: a4fbdffd-540b-45e8-be9f-08d85f8f6a39 x-ms-traffictypediagnostic: DM5PR11MB2012: x-ms-exchange-transport-forked: True x-microsoft-antispam-prvs: x-bypassexternaltag: True x-ms-oob-tlc-oobclassifiers: OLM:10000; x-ms-exchange-senderadcheck: 1 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: VyI5CpZBscthYdtG5l7Y/BvHi37cgH1O6NYuMNrJH5ljFzm4J6bGFWwP/B2bzK1SRSH96WNdVeMwNhIwkjNwUvJwfh0pC18zg0uif/UXk3ubTzJuWrLky+hPbAVHxN7rysRc0YnWL7Ce+73N6kJZFNlwqMfE74qtRbNwmcANjEKyJ4wYAsRc8K79hE2Kd2Z0J4p4MIsmp3M4KDdZE9kEGwE7mpWBEV74DWv77YDpdrPeMnwgh+ZAo+3GWl45/KbMniMNrJKs2zRbqc0LvUitO75mcwnf68fFlANvml8agWLo1B+64lijyb4gCUKlT5GxvsKttFJxlgwMw4wAFE+LWIUw/wpxTlH1frdyaqrFcyzFDhJTeXAxvAY3owCI9BJ9 x-forefront-antispam-report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:DM5PR11MB1914.namprd11.prod.outlook.com; PTR:; CAT:NONE; SFS:(396003)(366004)(376002)(136003)(39860400002)(346002)(91956017)(478600001)(36756003)(316002)(186003)(6486002)(54906003)(71200400001)(2906002)(2616005)(76116006)(6512007)(110136005)(107886003)(86362001)(6636002)(53546011)(66946007)(66476007)(66556008)(64756008)(66446008)(4326008)(6506007)(8936002)(30864003)(83380400001)(26005)(8676002)(31696002)(5660300002)(31686004)(43740500002); DIR:OUT; SFP:1101; x-ms-exchange-antispam-messagedata: NAeNWnf+ysWt3SQTFLBOAMG1CbnNsDSXDwnSS0n4joPChURk0xYY54JtxlB1qLqxFso72imXomnYanstQ/DYQRD9sMrbVHXQ+3JrHclvodnyELEe5Q7Tzj9w09zof24cPhQZcNICiuwEt6+s2lkJP2rjVPJzUNKFMi7cX826nXEztl9OGz6tduI8ply5Q8cIcOYs/rOYgzGBNGEHPcC1RpgmRgrPB4lEhWoBzwKS9IGg/tmeVOdkMphruwHtnqXNEsHrujPvlTrsyzwKVf6aYiU+cXN3zhJYCvUoi+CFVBTBOvI4lhrcP7tT6afqUUtGWYmNy6aVXx8jwUxcoJR0AkT6lCgPECSZqo29srrc3UR+SN26d1CCdOWbjiMGZjR5bvJsq6+DzaKIRVV5OI4bjceWZAIy4qVMwaRzcxJhq66iY660arePGbgUwgzuyOLaNF3kIDLqHEcr3YyDWAHvAnE1pEBVYiBV5xd2Z9gNg3TwzxrY0zIYAuBnGGH6ikw7jBdOjOF1+l4/WV5ToGK1OdxJDQb+dIHliTX9lR3QxBKXfR7qWDwoduwDbX8bz2G5vDePm/DKbSwQKELAqCCa1fO37wlywCcD8JWgeZrC9aDmJ2Hftc88bR2bfrscw23c+qQLI6KlMCZ/C5wLvJvF0w== Content-ID: <04FB908CBE2AF94DB3DBD94A0811921C@namprd11.prod.outlook.com> MIME-Version: 1.0 X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-AuthSource: DM5PR11MB1914.namprd11.prod.outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: a4fbdffd-540b-45e8-be9f-08d85f8f6a39 X-MS-Exchange-CrossTenant-originalarrivaltime: 23 Sep 2020 07:08:03.8279 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: 3f4057f3-b418-4d4e-ba84-d55b4e897d88 X-MS-Exchange-CrossTenant-mailboxtype: HOSTED X-MS-Exchange-CrossTenant-userprincipalname: wnVH9t5OJ7OQo+2wxsGh0zX5frWD1K0UrvimlEA2L2pV72VXDyi7SOEHi1RB9B7T+dHm1TR35d5SUPHf17oZcicLmDvEosxjVKSWG43r2oo= X-MS-Exchange-Transport-CrossTenantHeadersStamped: DM5PR11MB2012 X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20200923_030810_652482_6BBCD2CD X-CRM114-Status: GOOD ( 27.93 ) 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: dmaengine@vger.kernel.org, devicetree@vger.kernel.org, linux-kernel@vger.kernel.org, linux-arm-kernel@lists.infradead.org Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit Sender: "linux-arm-kernel" Errors-To: linux-arm-kernel-bounces+linux-arm-kernel=archiver.kernel.org@lists.infradead.org On 9/14/20 5:09 PM, Eugen Hristev wrote: > SAMA7G5 SoC uses a slightly different variant of the AT_XDMAC. > Added support by a new compatible and a layout struct that copes > to the specific version considering the compatible string. > Only the differences in register map are present in the layout struct. > I reworked the register access for this part that has the differences. > Also the Source/Destination Interface bits are no longer valid for this > variant of the XDMAC. Thus, the layout also has a bool for specifying > whether these bits are required or not. > > Signed-off-by: Eugen Hristev > --- > drivers/dma/at_xdmac.c | 99 ++++++++++++++++++++++++++++++------- > drivers/dma/at_xdmac_regs.h | 9 ---- > 2 files changed, 82 insertions(+), 26 deletions(-) > > diff --git a/drivers/dma/at_xdmac.c b/drivers/dma/at_xdmac.c > index 81bb90206092..874484a4e79f 100644 > --- a/drivers/dma/at_xdmac.c > +++ b/drivers/dma/at_xdmac.c > @@ -38,6 +38,27 @@ enum atc_status { > AT_XDMAC_CHAN_IS_PAUSED, > }; > > +struct at_xdmac_layout { > + /* Global Channel Read Suspend Register */ > + u8 grs; > + /* Global Write Suspend Register */ > + u8 gws; > + /* Global Channel Read Write Suspend Register */ > + u8 grws; > + /* Global Channel Read Write Resume Register */ > + u8 grwr; > + /* Global Channel Software Request Register */ > + u8 gswr; > + /* Global channel Software Request Status Register */ > + u8 gsws; > + /* Global Channel Software Flush Request Register */ > + u8 gswf; > + /* Channel reg base */ > + u8 chan_cc_reg_base; > + /* Source/Destination Interface must be specified or not */ > + bool sdif; > +}; > + > /* ----- Channels ----- */ > struct at_xdmac_chan { > struct dma_chan chan; > @@ -71,6 +92,7 @@ struct at_xdmac { > struct clk *clk; > u32 save_gim; > struct dma_pool *at_xdmac_desc_pool; > + const struct at_xdmac_layout *layout; > struct at_xdmac_chan chan[]; > }; > > @@ -103,9 +125,33 @@ struct at_xdmac_desc { > struct list_head xfer_node; > } __aligned(sizeof(u64)); > > +static struct at_xdmac_layout at_xdmac_sama5d4_layout = { static const struct > + .grs = 0x28, > + .gws = 0x2C, > + .grws = 0x30, > + .grwr = 0x34, > + .gswr = 0x38, > + .gsws = 0x3C, > + .gswf = 0x40, > + .chan_cc_reg_base = 0x50, > + .sdif = true, > +}; > + > +static struct at_xdmac_layout at_xdmac_sama7g5_layout = { static const struct > + .grs = 0x30, > + .gws = 0x38, > + .grws = 0x40, > + .grwr = 0x44, > + .gswr = 0x48, > + .gsws = 0x4C, > + .gswf = 0x50, > + .chan_cc_reg_base = 0x60, one may find these plain offsets as too raw and probably prefer some defines for them, but I too think that the members of the struct are self-explanatory, so I'm ok either way. > + .sdif = false, > +}; > + > static inline void __iomem *at_xdmac_chan_reg_base(struct at_xdmac *atxdmac, unsigned int chan_nb) > { > - return atxdmac->regs + (AT_XDMAC_CHAN_REG_BASE + chan_nb * 0x40); > + return atxdmac->regs + (atxdmac->layout->chan_cc_reg_base + chan_nb * 0x40); > } > > #define at_xdmac_read(atxdmac, reg) readl_relaxed((atxdmac)->regs + (reg)) > @@ -204,8 +250,10 @@ static void at_xdmac_start_xfer(struct at_xdmac_chan *atchan, > first->active_xfer = true; > > /* Tell xdmac where to get the first descriptor. */ > - reg = AT_XDMAC_CNDA_NDA(first->tx_dma_desc.phys) > - | AT_XDMAC_CNDA_NDAIF(atchan->memif); > + reg = AT_XDMAC_CNDA_NDA(first->tx_dma_desc.phys); > + if (atxdmac->layout->sdif) > + reg |= AT_XDMAC_CNDA_NDAIF(atchan->memif); > + > at_xdmac_chan_write(atchan, AT_XDMAC_CNDA, reg); > > /* > @@ -400,6 +448,7 @@ static int at_xdmac_compute_chan_conf(struct dma_chan *chan, > enum dma_transfer_direction direction) > { > struct at_xdmac_chan *atchan = to_at_xdmac_chan(chan); > + struct at_xdmac *atxdmac = to_at_xdmac(atchan->chan.device); > int csize, dwidth; > > if (direction == DMA_DEV_TO_MEM) { > @@ -407,12 +456,14 @@ static int at_xdmac_compute_chan_conf(struct dma_chan *chan, > AT91_XDMAC_DT_PERID(atchan->perid) > | AT_XDMAC_CC_DAM_INCREMENTED_AM > | AT_XDMAC_CC_SAM_FIXED_AM > - | AT_XDMAC_CC_DIF(atchan->memif) > - | AT_XDMAC_CC_SIF(atchan->perif) > | AT_XDMAC_CC_SWREQ_HWR_CONNECTED > | AT_XDMAC_CC_DSYNC_PER2MEM > | AT_XDMAC_CC_MBSIZE_SIXTEEN > | AT_XDMAC_CC_TYPE_PER_TRAN; > + if (atxdmac->layout->sdif) > + atchan->cfg |= AT_XDMAC_CC_DIF(atchan->memif) > + | AT_XDMAC_CC_SIF(atchan->perif); very odd for me to see the "|" operator on the next line. I find it hard to read and somehow exhausting. I would put it on the first line even if throughout the driver it's on the next line. > + > csize = ffs(atchan->sconfig.src_maxburst) - 1; > if (csize < 0) { > dev_err(chan2dev(chan), "invalid src maxburst value\n"); > @@ -430,12 +481,14 @@ static int at_xdmac_compute_chan_conf(struct dma_chan *chan, > AT91_XDMAC_DT_PERID(atchan->perid) > | AT_XDMAC_CC_DAM_FIXED_AM > | AT_XDMAC_CC_SAM_INCREMENTED_AM > - | AT_XDMAC_CC_DIF(atchan->perif) > - | AT_XDMAC_CC_SIF(atchan->memif) > | AT_XDMAC_CC_SWREQ_HWR_CONNECTED > | AT_XDMAC_CC_DSYNC_MEM2PER > | AT_XDMAC_CC_MBSIZE_SIXTEEN > | AT_XDMAC_CC_TYPE_PER_TRAN; > + if (atxdmac->layout->sdif) > + atchan->cfg |= AT_XDMAC_CC_DIF(atchan->perif) > + | AT_XDMAC_CC_SIF(atchan->memif); > + > csize = ffs(atchan->sconfig.dst_maxburst) - 1; > if (csize < 0) { > dev_err(chan2dev(chan), "invalid src maxburst value\n"); > @@ -711,6 +764,7 @@ at_xdmac_interleaved_queue_desc(struct dma_chan *chan, > struct data_chunk *chunk) > { > struct at_xdmac_desc *desc; > + struct at_xdmac *atxdmac = to_at_xdmac(atchan->chan.device); > u32 dwidth; > unsigned long flags; > size_t ublen; > @@ -727,10 +781,10 @@ at_xdmac_interleaved_queue_desc(struct dma_chan *chan, > * flag status. > */ > u32 chan_cc = AT_XDMAC_CC_PERID(0x7f) > - | AT_XDMAC_CC_DIF(0) > - | AT_XDMAC_CC_SIF(0) > | AT_XDMAC_CC_MBSIZE_SIXTEEN > | AT_XDMAC_CC_TYPE_MEM_TRAN; > + if (atxdmac->layout->sdif) > + chan_cc |= AT_XDMAC_CC_DIF(0) | AT_XDMAC_CC_SIF(0); there is a comment above chan_cc init that explains that we have to use interface 0 for both source and destination, so maybe we can get rid of this explicit OR with zero and update the comment for sama7g5 case. > > dwidth = at_xdmac_align_width(chan, src | dst | chunk->size); > if (chunk->size >= (AT_XDMAC_MBR_UBC_UBLEN_MAX << dwidth)) { > @@ -893,6 +947,7 @@ at_xdmac_prep_dma_memcpy(struct dma_chan *chan, dma_addr_t dest, dma_addr_t src, > size_t len, unsigned long flags) > { > struct at_xdmac_chan *atchan = to_at_xdmac_chan(chan); > + struct at_xdmac *atxdmac = to_at_xdmac(atchan->chan.device); > struct at_xdmac_desc *first = NULL, *prev = NULL; > size_t remaining_size = len, xfer_size = 0, ublen; > dma_addr_t src_addr = src, dst_addr = dest; > @@ -911,12 +966,13 @@ at_xdmac_prep_dma_memcpy(struct dma_chan *chan, dma_addr_t dest, dma_addr_t src, > u32 chan_cc = AT_XDMAC_CC_PERID(0x7f) > | AT_XDMAC_CC_DAM_INCREMENTED_AM > | AT_XDMAC_CC_SAM_INCREMENTED_AM > - | AT_XDMAC_CC_DIF(0) > - | AT_XDMAC_CC_SIF(0) > | AT_XDMAC_CC_MBSIZE_SIXTEEN > | AT_XDMAC_CC_TYPE_MEM_TRAN; > unsigned long irqflags; > > + if (atxdmac->layout->sdif) > + chan_cc |= AT_XDMAC_CC_DIF(0) | AT_XDMAC_CC_SIF(0); same here > + > dev_dbg(chan2dev(chan), "%s: src=%pad, dest=%pad, len=%zd, flags=0x%lx\n", > __func__, &src, &dest, len, flags); > > @@ -999,6 +1055,7 @@ static struct at_xdmac_desc *at_xdmac_memset_create_desc(struct dma_chan *chan, > int value) > { > struct at_xdmac_desc *desc; > + struct at_xdmac *atxdmac = to_at_xdmac(atchan->chan.device); > unsigned long flags; > size_t ublen; > u32 dwidth; > @@ -1017,11 +1074,11 @@ static struct at_xdmac_desc *at_xdmac_memset_create_desc(struct dma_chan *chan, > u32 chan_cc = AT_XDMAC_CC_PERID(0x7f) > | AT_XDMAC_CC_DAM_UBS_AM > | AT_XDMAC_CC_SAM_INCREMENTED_AM > - | AT_XDMAC_CC_DIF(0) > - | AT_XDMAC_CC_SIF(0) > | AT_XDMAC_CC_MBSIZE_SIXTEEN > | AT_XDMAC_CC_MEMSET_HW_MODE > | AT_XDMAC_CC_TYPE_MEM_TRAN; > + if (atxdmac->layout->sdif) > + chan_cc |= AT_XDMAC_CC_DIF(0) | AT_XDMAC_CC_SIF(0); same here > > dwidth = at_xdmac_align_width(chan, dst_addr); > > @@ -1297,7 +1354,7 @@ at_xdmac_tx_status(struct dma_chan *chan, dma_cookie_t cookie, > mask = AT_XDMAC_CC_TYPE | AT_XDMAC_CC_DSYNC; > value = AT_XDMAC_CC_TYPE_PER_TRAN | AT_XDMAC_CC_DSYNC_PER2MEM; > if ((desc->lld.mbr_cfg & mask) == value) { > - at_xdmac_write(atxdmac, AT_XDMAC_GSWF, atchan->mask); > + at_xdmac_write(atxdmac, atxdmac->layout->gswf, atchan->mask); > while (!(at_xdmac_chan_read(atchan, AT_XDMAC_CIS) & AT_XDMAC_CIS_FIS)) > cpu_relax(); > } > @@ -1355,7 +1412,7 @@ at_xdmac_tx_status(struct dma_chan *chan, dma_cookie_t cookie, > * FIFO flush ensures that data are really written. > */ > if ((desc->lld.mbr_cfg & mask) == value) { > - at_xdmac_write(atxdmac, AT_XDMAC_GSWF, atchan->mask); > + at_xdmac_write(atxdmac, atxdmac->layout->gswf, atchan->mask); > while (!(at_xdmac_chan_read(atchan, AT_XDMAC_CIS) & AT_XDMAC_CIS_FIS)) > cpu_relax(); > } > @@ -1620,7 +1677,7 @@ static int at_xdmac_device_pause(struct dma_chan *chan) > return 0; > > spin_lock_irqsave(&atchan->lock, flags); > - at_xdmac_write(atxdmac, AT_XDMAC_GRWS, atchan->mask); > + at_xdmac_write(atxdmac, atxdmac->layout->grws, atchan->mask); > while (at_xdmac_chan_read(atchan, AT_XDMAC_CC) > & (AT_XDMAC_CC_WRIP | AT_XDMAC_CC_RDIP)) > cpu_relax(); > @@ -1643,7 +1700,7 @@ static int at_xdmac_device_resume(struct dma_chan *chan) > return 0; > } > > - at_xdmac_write(atxdmac, AT_XDMAC_GRWR, atchan->mask); > + at_xdmac_write(atxdmac, atxdmac->layout->grwr, atchan->mask); > clear_bit(AT_XDMAC_CHAN_IS_PAUSED, &atchan->status); > spin_unlock_irqrestore(&atchan->lock, flags); > > @@ -1845,6 +1902,10 @@ static int at_xdmac_probe(struct platform_device *pdev) > atxdmac->regs = base; > atxdmac->irq = irq; > > + atxdmac->layout = of_device_get_match_data(&pdev->dev); > + if (!atxdmac->layout) > + return -ENODEV; I would get the data upper in the function, after getting irq. If data is not provided, you would spare some ops that will be done gratuitously. With these addressed one may add: Reviewed-by: Tudor Ambarus > + > atxdmac->clk = devm_clk_get(&pdev->dev, "dma_clk"); > if (IS_ERR(atxdmac->clk)) { > dev_err(&pdev->dev, "can't get dma_clk\n"); > @@ -1988,6 +2049,10 @@ static const struct dev_pm_ops atmel_xdmac_dev_pm_ops = { > static const struct of_device_id atmel_xdmac_dt_ids[] = { > { > .compatible = "atmel,sama5d4-dma", > + .data = &at_xdmac_sama5d4_layout, > + }, { > + .compatible = "microchip,sama7g5-dma", > + .data = &at_xdmac_sama7g5_layout, > }, { > /* sentinel */ > } > diff --git a/drivers/dma/at_xdmac_regs.h b/drivers/dma/at_xdmac_regs.h > index 3f7dda4c5743..7b4b4e24de70 100644 > --- a/drivers/dma/at_xdmac_regs.h > +++ b/drivers/dma/at_xdmac_regs.h > @@ -22,13 +22,6 @@ > #define AT_XDMAC_GE 0x1C /* Global Channel Enable Register */ > #define AT_XDMAC_GD 0x20 /* Global Channel Disable Register */ > #define AT_XDMAC_GS 0x24 /* Global Channel Status Register */ > -#define AT_XDMAC_GRS 0x28 /* Global Channel Read Suspend Register */ > -#define AT_XDMAC_GWS 0x2C /* Global Write Suspend Register */ > -#define AT_XDMAC_GRWS 0x30 /* Global Channel Read Write Suspend Register */ > -#define AT_XDMAC_GRWR 0x34 /* Global Channel Read Write Resume Register */ > -#define AT_XDMAC_GSWR 0x38 /* Global Channel Software Request Register */ > -#define AT_XDMAC_GSWS 0x3C /* Global channel Software Request Status Register */ > -#define AT_XDMAC_GSWF 0x40 /* Global Channel Software Flush Request Register */ > #define AT_XDMAC_VERSION 0xFFC /* XDMAC Version Register */ > > /* Channel relative registers offsets */ > @@ -134,8 +127,6 @@ > #define AT_XDMAC_CSUS 0x30 /* Channel Source Microblock Stride */ > #define AT_XDMAC_CDUS 0x34 /* Channel Destination Microblock Stride */ > > -#define AT_XDMAC_CHAN_REG_BASE 0x50 /* Channel registers base address */ > - > /* Microblock control members */ > #define AT_XDMAC_MBR_UBC_UBLEN_MAX 0xFFFFFFUL /* Maximum Microblock Length */ > #define AT_XDMAC_MBR_UBC_NDE (0x1 << 24) /* Next Descriptor Enable */ > _______________________________________________ linux-arm-kernel mailing list linux-arm-kernel@lists.infradead.org http://lists.infradead.org/mailman/listinfo/linux-arm-kernel