From patchwork Mon Dec 16 07:58:13 2024 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: Larisa Grigore X-Patchwork-Id: 13909320 Received: from EUR05-DB8-obe.outbound.protection.outlook.com (mail-db8eur05on2070.outbound.protection.outlook.com [40.107.20.70]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id AAB4A1FFC46; Mon, 16 Dec 2024 07:58:36 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=40.107.20.70 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1734335918; cv=fail; b=jt6lZ6ERLTiw0pSCeNL0qB2DVlU4gVdjF8C+p1DECDOD0SqtFwE/l+XNsIVp8eEiZCHK05RhGbjwMCYq+g7etMcwUL8Ug2Q3WRXfTESPK/ll22zrPI9XkxhNHXHkiEaT9wGG7yUtzx0cxgyqOdlpAnUYsfj43qyOIecBRtYSQd0= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1734335918; c=relaxed/simple; bh=hoC/8j7Aw2+ZwBS8LuDJ4kHSWCEk88ZD9MGKraAll0Q=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: Content-Type:MIME-Version; b=n+v12qy6CyEd83HGxmkJwO1jK/fwaI5iVDyZKp3U2EqjSCVd4Jdii4iPNFZgqHxfMOab9yepLbWpGceMKk+NKpK+nZZgR3cJBMkiwNSCXWsa+vJOni4lMXfOrFfMpX2Rqu47q8QHGAiN3mdcV4UiNIVDy6v7K3YSfz20hQk4iUY= ARC-Authentication-Results: i=2; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=oss.nxp.com; spf=pass smtp.mailfrom=oss.nxp.com; dkim=pass (2048-bit key) header.d=NXP1.onmicrosoft.com header.i=@NXP1.onmicrosoft.com header.b=lGHU5x5K; arc=fail smtp.client-ip=40.107.20.70 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=oss.nxp.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=oss.nxp.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=NXP1.onmicrosoft.com header.i=@NXP1.onmicrosoft.com header.b="lGHU5x5K" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=QMGGiJBXUpe9NsH/PEknIigkdvUGLFBh+7YuEOPeExrqUi+mDhn6nG/PeBuc2uHUAiH0Z3TP2cNPvTPcvX9Ofk1ezyoOZb9g9IzulB2Ui9wv/+uHa4UjTWj7kZ1EuP81cBanz6GHr/RmMuFsguBmC/0FNP4iLQg4gppgHrAFJqZyASHRGzCT3iXfDc8vn3yXjZAJ9Bgd/APy21WQN/Ooy6wDoFGD/086o5gYTPGveii7SNGvTgQlk553MKfPpFZotwPC+djeIAENa02eat/iiYJhRAXPPH/8JSLkOW/bIhTf2lfA56aH/iLIv4bCVBRseu5t/VTcBGcsFUOBgGPWAw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector10001; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=RpjL3UpDhlGU8cK6OFygpbSRbkq5xgfG+Nf5MiagAt4=; b=McjjEn+u/49DQaXMT7cmOxNbUrS8xirY0AqgCVMHtW8d/YhUOMiDeYH6S9OzmhdBI2Pnoptwwh0VxEhWFSDy4vUei31lR6OP2I68EfWqQWZzkLIdZtuDo1uDb8Zq+slUeqNMU7OD86wv9Z75711p4599uGSypAkOiYF2HAPpcwloKIcdOednOicejDrUZ+L1xoidpdlMSSrm81UEhHhHzz0I9WpmY7SiTEnmuL3cFYbXITYX0pUAxFgtfcCORHZMir8NsiDKJDPjkCxtDK4DC4tzQcKgov6KjPTZRB8m/9Sw/AcGVbbESlYAkdJTjMEuvQbT7WXuXAPRASIbz7pCAA== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=oss.nxp.com; dmarc=pass action=none header.from=oss.nxp.com; dkim=pass header.d=oss.nxp.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=NXP1.onmicrosoft.com; s=selector1-NXP1-onmicrosoft-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=RpjL3UpDhlGU8cK6OFygpbSRbkq5xgfG+Nf5MiagAt4=; b=lGHU5x5K6Li8gpcNNe0qH8L/SHafOod5xNsz7rU13trtl4mRG1K1bSy/UU/R+pcJfqOBCBl4YkRnveea7IGjeHKejK3LPOpv5pSn+YMqbmMoidPMLGlTTS1eDDE0N1t0mf7qZEM8ILjpopFiidHwGG7DEE38a0Na4CKbdCQW4s9cwZ5q8OyUAFa/clSf0JtazsrKuecgKi6xCmar+OIAUJCnInOYHlP6kM7y25nrxQxqhSboTJyLC1e1nFilzDnXcHTkMVIyyugLmPTCywMXrbmgXoBTYhtBIrnTrKhhoVCTFwH6Lq39pFzioTMYgwrbAK7rxmUt5nuPV7tPrJ2W/A== Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=oss.nxp.com; Received: from AS4PR04MB9550.eurprd04.prod.outlook.com (2603:10a6:20b:4f9::17) by DU4PR04MB10361.eurprd04.prod.outlook.com (2603:10a6:10:55d::10) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8251.21; Mon, 16 Dec 2024 07:58:29 +0000 Received: from AS4PR04MB9550.eurprd04.prod.outlook.com ([fe80::e28d:10f8:289:baf7]) by AS4PR04MB9550.eurprd04.prod.outlook.com ([fe80::e28d:10f8:289:baf7%6]) with mapi id 15.20.8251.015; Mon, 16 Dec 2024 07:58:29 +0000 From: Larisa Grigore To: Frank.Li@nxp.com Cc: dmaengine@vger.kernel.org, imx@lists.linux.dev, linux-kernel@vger.kernel.org, s32@nxp.com, Christophe Lizzi , Alberto Ruiz , Enric Balletbo , Larisa Grigore Subject: [PATCH 3/8] =?utf-8?q?dmaengine=3A_fsl-edma=3A_move_eDMAv2_related_?= =?utf-8?q?registers_to_a_new_structure_=E2=80=99edma2=5Fregs=E2=80=99?= Date: Mon, 16 Dec 2024 09:58:13 +0200 Message-ID: <20241216075819.2066772-4-larisa.grigore@oss.nxp.com> X-Mailer: git-send-email 2.47.0 In-Reply-To: <20241216075819.2066772-1-larisa.grigore@oss.nxp.com> References: <20241216075819.2066772-1-larisa.grigore@oss.nxp.com> X-ClientProxiedBy: AM0PR04CA0084.eurprd04.prod.outlook.com (2603:10a6:208:be::25) To AS4PR04MB9550.eurprd04.prod.outlook.com (2603:10a6:20b:4f9::17) Precedence: bulk X-Mailing-List: dmaengine@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-MS-Exchange-MessageSentRepresentingType: 1 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: AS4PR04MB9550:EE_|DU4PR04MB10361:EE_ X-MS-Office365-Filtering-Correlation-Id: 1b5d47f9-1d7a-413d-7f6f-08dd1da76dd5 X-MS-Exchange-SharedMailbox-RoutingAgent-Processed: True X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|366016|376014|1800799024; X-Microsoft-Antispam-Message-Info: =?utf-8?q?tJF1ywnwxd/i3PIicsJQwTmzpQ2GIlR?= =?utf-8?q?9KhEMjkjguoOvoCylp6xdQtzRkLQnOmNUxGRzEMWxNfS05Uf/j1quOVDOemA9LAvN?= =?utf-8?q?k0ibr3ScHTZM0No912JfZAaQ/J8c1BxtqCvbhxh1Z/6165GD8tqWIrO/Al1TM5G2I?= =?utf-8?q?zjDtntc1AZRBn4Ci69aRtZRs+7ZNHW6hfjhNNVs8f5JfW3VlsAOvAT0xsxLM9o1xa?= =?utf-8?q?CET/HJ+pPvZ/uHKrALOJ+ib4s6I30KjzCdjRHaq9/GSfumSYwk3eU9AG7/LIXSPha?= =?utf-8?q?SQX+fOobjP6DMEB0fzJiEWw9mQjlkZyzTCfQY7OLZz0Y9VUYDT2ikWQXE9+jdwRXS?= =?utf-8?q?FUXIDfmLMdwx04hHekdv0r0Ki6sanZmFuJWP7uYloaP+XBN+qvL6cCjyyXj3CLVL4?= =?utf-8?q?WUC6/mngKVqnZpqE44yEx2gVn1o04ecMpSmo+B/pcth6Yexap0XLcA3QlukoIywMQ?= =?utf-8?q?OOOWEFYA6cwrixkzKAFtegQp2V+/5kp65xH67Nf3HpsA1GtUt4u46k5YtHnWCGyW6?= =?utf-8?q?pTfeqxa36wIfdATc/rogGbpFl7FYafESnYIHWuFPUOvNSREPJwkKX/xgigl/Snefm?= =?utf-8?q?CvDXjJU+8tOVcVRoObKfS8JpvfI7dT0l0Ak/e8PABfnEdq3Qsmbo8sKYRVDcgzfFu?= =?utf-8?q?GvDWvf5lJzsDm49arzLgyWBI9fDwIAPbGiQhGXYkmPm8Pax0lXRRvqDB+5up6nzTi?= =?utf-8?q?7L1YcMof1Hy6rhsWtSWjL5F0xqkTbts5rS8ls43EvS2eKMmjGUgnPNwrK6lsan65z?= =?utf-8?q?5wY4/oxs/IJXvMVsdv49gU6XXbZa0NlIsJloTZ+il6HlEa18D1MtbxNaK8/5WwlaJ?= =?utf-8?q?UMCw1hpCCGm793LSr4quIdUwAefwTItI6Sx1dz+zTIsxuhq2H11ractarXCohu2+A?= =?utf-8?q?aXoziK+8Uq9U/gwyzUYTESjN1ZwUm2Ghr5Gpsph1H73cThq6G3T/yEtqvJARVI0Zz?= =?utf-8?q?OL5rAKN9lc8rZMBJUD0y33/ysWxVEJwt0FxVc3/LohXlKDkVsopMrs04CaorDoNp3?= =?utf-8?q?o6y94rIEcGSxhHSIamza27XpefkTrtDLfsauer+qSddVEnMG3lqVYn41UWUZ5YqAE?= =?utf-8?q?lvVDBnWWmRnLcNzkMK9C9ZVirduFvSD59urJ40VLtK5NsuMfZCnE+fPsVeBaaXLtn?= =?utf-8?q?BhLKUpZCwCj4aouygJDGLVDshI9xAgCSg6D++7c9W/Pt7XKmTQFjI+DlnQP9DGVZn?= =?utf-8?q?zqAXuq/KW9+YAIDytml2KURUDwzt9CijG+PKmApSFpSU+kWDPX5NK3pQYzqS9mONr?= =?utf-8?q?qPkeLkqhfq/Mou4VienvkQ4uVf9oqMKt83CHaLq9TVw8Jhl7ypayT7IuiHUHMtAPH?= =?utf-8?q?DtpVs2pGhOa+?= X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:AS4PR04MB9550.eurprd04.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(366016)(376014)(1800799024);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?utf-8?q?9j9Y724dGjPEgqdSSUVQmEXuk6w0?= =?utf-8?q?JX3a54PS1l1X3Cc+uX69mVYtZH/ksV4gaNDDuENhAyzpckwkWyAeTRDPIJ93n9FAk?= =?utf-8?q?9GDdjSSrRfMUfLTHeCNu3N1iIbfcJQn9UH9itgBQRv9+SoHXAu2ByeFNNcdFkAOnm?= =?utf-8?q?2w1sBssYVfLKbuK6vFRXwLD/JuDStyhYmMHDWHGBtivm/Z7Bk6k82tkbAO/vbUglK?= =?utf-8?q?McVVGl2nc/cfx7EdLCJ5wi5HIgM71Mka/VE+TMhsDI4YMl/LMszgoTbUqN1I5xZ2M?= =?utf-8?q?0QcNEWmGEP8ZXdH5O4+xlwKUKtenfnS3j+MS4QpEs96Dyzm9jVhTxe3PxwP1H5bgw?= =?utf-8?q?4LXe+tg7uvP2Qg+zhO/YvNSJnMncHPMNehN5CsFl4RZCY4WEjQ71xdlzWJd4devJx?= =?utf-8?q?NkwT+o7Ev9grJbx5evMUVC8sgzawcQzFhsvC8h1rzpEyF5koOtR1ERO+56/+4lK8u?= =?utf-8?q?2JukRgI6vtBztS36wU0jRx+0eW+aWvgA49Yq9/TbJxBkh9fJc7rvKCQwhxrv3llx7?= =?utf-8?q?nXkFueE4gujQ9W5e74VaHLE8KZcYH1ChWJWR2UG1e9WtLQ4vqmCXqqAKCLnOWyTTz?= =?utf-8?q?cvXXVz3bDKi83GSOtLYJEjZ+lGaHm3m24EPvYN4WnI9HJfZHCzdZVk85YVge7GXGt?= =?utf-8?q?RGb0iuLO6iAiVnWRDhyzXgXnc9C+FiBjGWUtWV4e7HTswrUtbDOy1LUsRbzikNg3a?= =?utf-8?q?O/EKwRl5vyDqUgBfBgtmGP8mxECFLAQlo2WU66dkpoJLIKzeNUb1MrwTPeqe+7I81?= =?utf-8?q?tmNMM+sPHEqL456qKpwdyJ99Gtt8Yl6fZMKTvdvxeWzjycUZurs5wuAZdjNs5V1KF?= =?utf-8?q?x+4i4debeCqLjMPXOzK1Ou8T0O2v1/kLIXRXH/WfIJGuaIqn7uwswRnxyhYybSDgl?= =?utf-8?q?5lpu/MNK6vv6lqqvE85oh6UBWs5hVXfiHzQKOfxU6UhYqiCI4SQlOX0ulx9sg0htv?= =?utf-8?q?4TKDR0F85dgKfdfXSss/dLWMuIjwbEVqPzdJJH1brw+t+hjI6/lFNLZsz3+y8qn5+?= =?utf-8?q?DWxur1QhtGHxkisafEh3bksUDGPFJ0e3MzdfHjTsELfnv6XDt/QI18vv6LzyZyHLa?= =?utf-8?q?/x/SDJ3Ie4us5cPvprdPwPpGGRA2bsxwu8D4V2jT7DRxDSBTajCQEpmeg/baIZUdF?= =?utf-8?q?ZEwdX5KrHGUEZ5uS09RmszQv/E9aOXrA02jk13U1rlGlh4BANrY971bDlJJAnbD1K?= =?utf-8?q?jgmkpbczkyS/J1iBK9IIh88BXB7cii8XbUU5OEhHMU/lBSv2eph+/dPlxG1ANJMHO?= =?utf-8?q?uK8T16T8iol8rima+HjDr8xeMYDLt8TylURayBThiufN+yHw0PVHMjUTmA77q1wUc?= =?utf-8?q?t4H2RgTAUpp/bnI5nit/bc44fwDoNeSXcjxg5LgClUf48hZ973+nJ4pKjbRUeCk5C?= =?utf-8?q?Jb3tkUesj8P78HRvkeXIwoHYhJTHea8xqr1IfMbR9IdrfxLqcAsFq8/0vi/5M2/uy?= =?utf-8?q?aGThJy9CWogFp7lpUOMtGH3bQ6gJa6HgBs0cvhv873jpCf8B82I8WkpzOZTUfUts2?= =?utf-8?q?HmWwbTqeyYuP?= X-OriginatorOrg: oss.nxp.com X-MS-Exchange-CrossTenant-Network-Message-Id: 1b5d47f9-1d7a-413d-7f6f-08dd1da76dd5 X-MS-Exchange-CrossTenant-AuthSource: AS4PR04MB9550.eurprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 16 Dec 2024 07:58:29.7397 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 686ea1d3-bc2b-4c6f-a92c-d99c5c301635 X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: b0TIst55EVfbhdjfymyy7aD8Yq6NsH68uY+4CR/23CReWMp65oN1taiCaA1dpgfWaT4cPUTB2HrR5+MzqqHicA== X-MS-Exchange-Transport-CrossTenantHeadersStamped: DU4PR04MB10361 Move eDMAv2 related registers to a new structure ’edma2_regs’ to better support eDMAv3. eDMAv3 registers will be added in the next commit. Signed-off-by: Larisa Grigore Reviewed-by: Frank Li --- drivers/dma/fsl-edma-common.c | 52 ++++++++++++++++++----------------- drivers/dma/fsl-edma-common.h | 10 +++++-- drivers/dma/fsl-edma-main.c | 14 ++++++---- 3 files changed, 42 insertions(+), 34 deletions(-) diff --git a/drivers/dma/fsl-edma-common.c b/drivers/dma/fsl-edma-common.c index b7f15ab96855..b132a88dfdec 100644 --- a/drivers/dma/fsl-edma-common.c +++ b/drivers/dma/fsl-edma-common.c @@ -108,14 +108,15 @@ static void fsl_edma_enable_request(struct fsl_edma_chan *fsl_chan) return fsl_edma3_enable_request(fsl_chan); if (fsl_chan->edma->drvdata->flags & FSL_EDMA_DRV_WRAP_IO) { - edma_writeb(fsl_chan->edma, EDMA_SEEI_SEEI(ch), regs->seei); - edma_writeb(fsl_chan->edma, ch, regs->serq); + edma_writeb(fsl_chan->edma, EDMA_SEEI_SEEI(ch), + regs->v2.seei); + edma_writeb(fsl_chan->edma, ch, regs->v2.serq); } else { /* ColdFire is big endian, and accesses natively * big endian I/O peripherals */ - iowrite8(EDMA_SEEI_SEEI(ch), regs->seei); - iowrite8(ch, regs->serq); + iowrite8(EDMA_SEEI_SEEI(ch), regs->v2.seei); + iowrite8(ch, regs->v2.serq); } } @@ -142,14 +143,15 @@ void fsl_edma_disable_request(struct fsl_edma_chan *fsl_chan) return fsl_edma3_disable_request(fsl_chan); if (fsl_chan->edma->drvdata->flags & FSL_EDMA_DRV_WRAP_IO) { - edma_writeb(fsl_chan->edma, ch, regs->cerq); - edma_writeb(fsl_chan->edma, EDMA_CEEI_CEEI(ch), regs->ceei); + edma_writeb(fsl_chan->edma, ch, regs->v2.cerq); + edma_writeb(fsl_chan->edma, EDMA_CEEI_CEEI(ch), + regs->v2.ceei); } else { /* ColdFire is big endian, and accesses natively * big endian I/O peripherals */ - iowrite8(ch, regs->cerq); - iowrite8(EDMA_CEEI_CEEI(ch), regs->ceei); + iowrite8(ch, regs->v2.cerq); + iowrite8(EDMA_CEEI_CEEI(ch), regs->v2.ceei); } } @@ -880,25 +882,25 @@ void fsl_edma_setup_regs(struct fsl_edma_engine *edma) edma->regs.cr = edma->membase + EDMA_CR; edma->regs.es = edma->membase + EDMA_ES; - edma->regs.erql = edma->membase + EDMA_ERQ; - edma->regs.eeil = edma->membase + EDMA_EEI; - - edma->regs.serq = edma->membase + (is64 ? EDMA64_SERQ : EDMA_SERQ); - edma->regs.cerq = edma->membase + (is64 ? EDMA64_CERQ : EDMA_CERQ); - edma->regs.seei = edma->membase + (is64 ? EDMA64_SEEI : EDMA_SEEI); - edma->regs.ceei = edma->membase + (is64 ? EDMA64_CEEI : EDMA_CEEI); - edma->regs.cint = edma->membase + (is64 ? EDMA64_CINT : EDMA_CINT); - edma->regs.cerr = edma->membase + (is64 ? EDMA64_CERR : EDMA_CERR); - edma->regs.ssrt = edma->membase + (is64 ? EDMA64_SSRT : EDMA_SSRT); - edma->regs.cdne = edma->membase + (is64 ? EDMA64_CDNE : EDMA_CDNE); - edma->regs.intl = edma->membase + (is64 ? EDMA64_INTL : EDMA_INTR); - edma->regs.errl = edma->membase + (is64 ? EDMA64_ERRL : EDMA_ERR); + edma->regs.v2.erql = edma->membase + EDMA_ERQ; + edma->regs.v2.eeil = edma->membase + EDMA_EEI; + + edma->regs.v2.serq = edma->membase + (is64 ? EDMA64_SERQ : EDMA_SERQ); + edma->regs.v2.cerq = edma->membase + (is64 ? EDMA64_CERQ : EDMA_CERQ); + edma->regs.v2.seei = edma->membase + (is64 ? EDMA64_SEEI : EDMA_SEEI); + edma->regs.v2.ceei = edma->membase + (is64 ? EDMA64_CEEI : EDMA_CEEI); + edma->regs.v2.cint = edma->membase + (is64 ? EDMA64_CINT : EDMA_CINT); + edma->regs.v2.cerr = edma->membase + (is64 ? EDMA64_CERR : EDMA_CERR); + edma->regs.v2.ssrt = edma->membase + (is64 ? EDMA64_SSRT : EDMA_SSRT); + edma->regs.v2.cdne = edma->membase + (is64 ? EDMA64_CDNE : EDMA_CDNE); + edma->regs.v2.intl = edma->membase + (is64 ? EDMA64_INTL : EDMA_INTR); + edma->regs.v2.errl = edma->membase + (is64 ? EDMA64_ERRL : EDMA_ERR); if (is64) { - edma->regs.erqh = edma->membase + EDMA64_ERQH; - edma->regs.eeih = edma->membase + EDMA64_EEIH; - edma->regs.errh = edma->membase + EDMA64_ERRH; - edma->regs.inth = edma->membase + EDMA64_INTH; + edma->regs.v2.erqh = edma->membase + EDMA64_ERQH; + edma->regs.v2.eeih = edma->membase + EDMA64_EEIH; + edma->regs.v2.errh = edma->membase + EDMA64_ERRH; + edma->regs.v2.inth = edma->membase + EDMA64_INTH; } } diff --git a/drivers/dma/fsl-edma-common.h b/drivers/dma/fsl-edma-common.h index ce37e1ee9c46..f1362daaa347 100644 --- a/drivers/dma/fsl-edma-common.h +++ b/drivers/dma/fsl-edma-common.h @@ -120,9 +120,7 @@ struct fsl_edma3_ch_reg { /* * These are iomem pointers, for both v32 and v64. */ -struct edma_regs { - void __iomem *cr; - void __iomem *es; +struct edma2_regs { void __iomem *erqh; void __iomem *erql; /* aka erq on v32 */ void __iomem *eeih; @@ -141,6 +139,12 @@ struct edma_regs { void __iomem *errl; }; +struct edma_regs { + void __iomem *cr; + void __iomem *es; + struct edma2_regs v2; +}; + struct fsl_edma_sw_tcd { dma_addr_t ptcd; void *vtcd; diff --git a/drivers/dma/fsl-edma-main.c b/drivers/dma/fsl-edma-main.c index 9873cce00c68..0b89c31bf38c 100644 --- a/drivers/dma/fsl-edma-main.c +++ b/drivers/dma/fsl-edma-main.c @@ -36,13 +36,14 @@ static irqreturn_t fsl_edma_tx_handler(int irq, void *dev_id) unsigned int intr, ch; struct edma_regs *regs = &fsl_edma->regs; - intr = edma_readl(fsl_edma, regs->intl); + intr = edma_readl(fsl_edma, regs->v2.intl); if (!intr) return IRQ_NONE; for (ch = 0; ch < fsl_edma->n_chans; ch++) { if (intr & (0x1 << ch)) { - edma_writeb(fsl_edma, EDMA_CINT_CINT(ch), regs->cint); + edma_writeb(fsl_edma, EDMA_CINT_CINT(ch), + regs->v2.cint); fsl_edma_tx_chan_handler(&fsl_edma->chans[ch]); } } @@ -78,14 +79,15 @@ static irqreturn_t fsl_edma_err_handler(int irq, void *dev_id) unsigned int err, ch; struct edma_regs *regs = &fsl_edma->regs; - err = edma_readl(fsl_edma, regs->errl); + err = edma_readl(fsl_edma, regs->v2.errl); if (!err) return IRQ_NONE; for (ch = 0; ch < fsl_edma->n_chans; ch++) { if (err & (0x1 << ch)) { fsl_edma_disable_request(&fsl_edma->chans[ch]); - edma_writeb(fsl_edma, EDMA_CERR_CERR(ch), regs->cerr); + edma_writeb(fsl_edma, EDMA_CERR_CERR(ch), + regs->v2.cerr); fsl_edma_err_chan_handler(&fsl_edma->chans[ch]); } } @@ -216,7 +218,7 @@ fsl_edma_irq_init(struct platform_device *pdev, struct fsl_edma_engine *fsl_edma { int ret; - edma_writel(fsl_edma, ~0, fsl_edma->regs.intl); + edma_writel(fsl_edma, ~0, fsl_edma->regs.v2.intl); fsl_edma->txirq = platform_get_irq_byname(pdev, "edma-tx"); if (fsl_edma->txirq < 0) @@ -281,7 +283,7 @@ fsl_edma2_irq_init(struct platform_device *pdev, int i, ret, irq; int count; - edma_writel(fsl_edma, ~0, fsl_edma->regs.intl); + edma_writel(fsl_edma, ~0, fsl_edma->regs.v2.intl); count = platform_irq_count(pdev); dev_dbg(&pdev->dev, "%s Found %d interrupts\r\n", __func__, count);