From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1752859AbcADFdm (ORCPT ); Mon, 4 Jan 2016 00:33:42 -0500 Received: from mail-bn1on0063.outbound.protection.outlook.com ([157.56.110.63]:19280 "EHLO na01-bn1-obe.outbound.protection.outlook.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S1752781AbcADFd0 (ORCPT ); Mon, 4 Jan 2016 00:33:26 -0500 Authentication-Results: spf=none (sender IP is 165.204.84.222) smtp.mailfrom=amd.com; alien8.de; dkim=none (message not signed) header.d=none;alien8.de; dmarc=permerror action=none header.from=amd.com; X-WSS-ID: 0O0EY3J-08-6AT-02 X-M-MSG: From: Wang Hongcheng To: Andy Shevchenko , Vinod Koul , Mika Westerberg , Greg Kroah-Hartman , "Rafael J. Wysocki" CC: , , , , Borislav Petkov , Huang Rui , Wan Zongshun , Ken Xue , Robin Murphy , Graeme Gregory , Tony Li , Xiangliang Yu , Wang Hongcheng Subject: [PATCH 4/6] dmaengine: pl330: add new items for pl330 private data Date: Mon, 4 Jan 2016 13:31:39 +0800 Message-ID: <1451885501-2710-5-git-send-email-annie.wang@amd.com> X-Mailer: git-send-email 1.9.1 In-Reply-To: <1451885501-2710-1-git-send-email-annie.wang@amd.com> References: <1451885501-2710-1-git-send-email-annie.wang@amd.com> MIME-Version: 1.0 Content-Type: text/plain X-EOPAttributedMessage: 0 X-Forefront-Antispam-Report: CIP:165.204.84.222;CTRY:US;IPV:NLI;EFV:NLI;SFV:NSPM;SFS:(10009020)(6009001)(2980300002)(428002)(199003)(189002)(53416004)(48376002)(229853001)(5001770100001)(76176999)(33646002)(106466001)(47776003)(77096005)(50226001)(105586002)(1096002)(86362001)(5008740100001)(5003600100002)(11100500001)(97736004)(36756003)(19580405001)(5003940100001)(586003)(19580395003)(2950100001)(1220700001)(189998001)(101416001)(50986999)(50466002)(4326007)(87936001)(92566002);DIR:OUT;SFP:1101;SCL:1;SRVR:DM3PR12MB0860;H:atltwp02.amd.com;FPR:;SPF:None;PTR:InfoDomainNonexistent;A:1;MX:1;LANG:en; X-Microsoft-Exchange-Diagnostics: 1;DM3PR12MB0860;2:2lbm7tEM1+AYFLnmEnPGWWeOLAGI5heqSa2fMmx4/tuz6EjnMz4Ljx3IVOTRlrGCRzKETRBVeKIKQVx+veT8mEtECiZ5nGcgtSxTBux50rl54yr6Znbg/hCX+lc3XsXf+AoN9ptb1Y/Eed0lgNAobQ==;3:AqbprL/AncIkc0xmck7Mibok3VtvfNvXhLr+nYsujNBYtjxYkcXMX6MuRzk72PLnjPkHrXrmFpkFOtnajtBXWKlRwHr5Xg9GSwGC8G31ssOnGXeS5bvGYozJwC0/StHBLoX+YSGS2vaNynM5CdHfSmGBFMhIwePbvJOx9SBJh0y+q9kMmFleEYtvhdLOxl6EUphlLyGkhUO2hq2FHCqE6T/vcYPNnRdOeg/TFnz5d3k=;25:SRTP9oYatTNQFahWpHGxmBC/yFhIjLOeBg2foM2hBUCuqYkKGy/gmWUCL3YYl3p0CWLWE+yhVL53z72wbOkQ3SPLRnZZ/DSjNDOOuCLVJxJbdH/Jt/aWpVL0fOO21qTRZo0VFz/kz8f3/fjOtGhhVu9aXJCeJSJdwdTa0XZerxNP78L8f4OgDzEUUyOcPO/BnnyoP+nuOSY9Y4H7qy9epl7Y1XvFukzW+c2E0ZEOo/HRuUaAgO8unTPbVDSnDevBWFAGHIXsrkSnCl1I/hTHNw== X-Microsoft-Antispam: UriScan:;BCL:0;PCL:0;RULEID:;SRVR:DM3PR12MB0860; X-Microsoft-Exchange-Diagnostics: 1;DM3PR12MB0860;20:C8KZccAqzSSW9CofW6KFhtVjPERf3P992BIc4QZ+S4joIZ3P+6qpTqMBKTKFIpgzwjYjsvIbdlfamzaCOiU3cvOWKUAJ83YvoiOPdZkdAinvx6TbvkKnl3IsXJumL1ZEocgL8NIq1Lb0zMhCkOT1y7Hb5Ub/qkfyRRf2agUc6nlPl/Qc+OWPrQM2BBMozbWI5rX5vEJW4wogmzHAW6jtFZr0+HONTeJ9pDh13pSReay1tWE96ClpetfTVVljEQ3moefrJQDpnYaO79UCmaZeJxn+oBqISf+DtP14CvHz4KvD9Dijn5bMUT+8LzhO2b7DA8N5Tn9sr1PbWbnm/qczULXSDR/N5Zwp7eIYf+AVTufTEqmMgr3xibUTKwfFClrl2oAKbjh0TTjDjrQbMpbMN+m7o2JHZjkQH5C5VsUZlc4IY+ADiUtifj4Tm/6i1xPKrT523lrcD3bI0IfDp8qtBkXi8ZG8Dg+zuNV7D7ZMykjtCYIWyK47ycCPAZQvYuPJ;4:UL8DjAZKT756LJE+/DK63fujJOdZ96OhnQv1OUNiU5vkeqd+mdhGKAm7DmjnmzAHNL732s1qWe7Xrm7d00jcWcpLlEFMJQMvP+es4ljgArHQNWUtRBSAcmox6jpm/ARlDxmSY4bpdnoFiq6XU796u8RrPFSJcfsR8znrv5j2RwTyhOx/u4pqXwr819A0KLTEDLRAaB02qFBhBWAAgsCymMco8Y3d1dnvAkiYMvQ5wGoWBvcfaQX5A3Zligsh1rt/xvQe/0bm0AbuqOT/Lzmy9Bew6OtIPUz+NbwA6LV0OFkVmULEF8CFojCR2fqpw7N+K4ucFx0iXL7BYNM5yGEhn7/qgAKjw9WQzov088kkXsbVJ5r8YljRpifn9oSTMSMd1Vs9CQOnNRe0pyFVGYTPeoZkNueo7AYAuWw6erkeWDU= X-Microsoft-Antispam-PRVS: X-Exchange-Antispam-Report-Test: UriScan:(767451399110); X-Exchange-Antispam-Report-CFA-Test: BCL:0;PCL:0;RULEID:(601004)(2401047)(520078)(5005006)(8121501046)(10201501046)(3002001);SRVR:DM3PR12MB0860;BCL:0;PCL:0;RULEID:;SRVR:DM3PR12MB0860; X-Forefront-PRVS: 08118EFC2B X-Microsoft-Exchange-Diagnostics: =?us-ascii?Q?1;DM3PR12MB0860;23:O3mrxm+bppzN4cYvfzFD3HekeolHxW69I8G+iM8fE?= =?us-ascii?Q?WywB4zdJLNn1i6sHeEq/VSm6xt9Ls8k2H7Djb7JS2+KV2ZSX4AuIGBxEFb/q?= =?us-ascii?Q?zJO4nOSim+vLhs3qJCv+PmLqm2O5O9tsy3Ix6akjDRV8zWquz9a0R1uXcMhX?= =?us-ascii?Q?Z5Cr1/KyopHuJn/g+4HQNl8rjvAuYWMWrUoxTYzzSA7mtKydTsiIrQXzDLl9?= =?us-ascii?Q?SAEa1xVcSjmluqsoDVNxM34AchlkgkcnK0B6HKQF61EGfUfNClrd8IBxm3e6?= =?us-ascii?Q?ttYr6t98eg7OE4hnz2KFj7jRVLPiIydeMhWEf5+nS2r5UPZ7zw6To8QhKNJ0?= =?us-ascii?Q?xkEj/w76wpwAbCiH8Sj3WizeL7yLqYFC0matRg6ACtoayPzQZow7sXezUJmV?= =?us-ascii?Q?z5jmNt55nwfStMb025QXlI7bqKXiIECgC8c/xLjaWjpOyhLeHOJgcT+aYMJ8?= =?us-ascii?Q?RBXey+bLuHax51d28q3mgVRSydA7h+V+VO7qdaDsvVUKsmoRfbL109uM3cSh?= =?us-ascii?Q?aPiZRXF4CXT7EueocKE+sF2bZcpe58v/Q8KWVumLLqu5GnsUWoNFQ5Cn4cxD?= =?us-ascii?Q?ZjttM9oMMcTDND440eBq0XRbGaUrdANaH2YYLKuFo8RdhJmo2tb0e8j1jMrp?= =?us-ascii?Q?MtL9LJNmPIyYsqS7zMC/lVt0w91hedaoOPksmVCjEfIT8zYZQL1E4MCqMhMV?= =?us-ascii?Q?BhbpScUmiWILRc6pcPBj1T2ieDjHEAOKLpo5AdJOXGv7fyvS/xDO6lPcJzPW?= =?us-ascii?Q?0R9qQL5zgX70wAKm+UMd+qak7fob43tvfD9g6wZ6pXIRdHvL1Dvzu6i27URG?= =?us-ascii?Q?+lSZ79R6qoeyUD8nPKKRtgBgLoB3yLaeW4h5y/S43vYq99EpMw2n401EHzZD?= =?us-ascii?Q?dgQW+/ufRXaUc5NMhPd0ccvzSHWL2aXgeCps8sx59KkizKhWOmK+cmdA6rsq?= =?us-ascii?Q?QWvL29vVDBSI03smQ483GcZ7cIcus9IM/r8ETftNCroBosQKfs1NzwOqZAhn?= =?us-ascii?Q?E4=3D?= X-Microsoft-Exchange-Diagnostics: 1;DM3PR12MB0860;5:+4p1C9gwOremGGAFrrw/s+9WWPKfmCHgQUJdA1pBsfThkFJt1/fA7QQAkdHMfU3z4sIDg0pREKIMsYZ6hqJT5CHIDmxz/hRTW2eDD0i7U+2a+rL+T8mJkex8mUNu+oZY2nZ1vNcHQY/xMkvFKYRlkg==;24:8x7qR+HtzYYhUHJM1GCmcG5j5t+5jBwCPeDv4StM5zD/numDgQ/Uj07F9eH21V/8YvHtra8EClbJ98Es1JB0R0FyJuSRjV5eu6Uu8DzQI+I=;20:eYqTBYXW+6TlksZXzUcuLceY5qiITGvIpuJWL7Yyw0+YenEbBf6546mLXEHMkdkVszLllEY9dNls6h3pHAhmmu8c/hzd2JMAIwJLRYUmg4gazx//JAlt5kbTNA0F21uwRqLS3H5b1X7wlhoRmFfLx/mdupvNpNwRUwiYUb/fV3YOStgXOptVIGwXFzWQJyX6c+tjlYXzYBHbYLKzA4BQ0gAtJs0a45+GbcWFDs2tX5YG7ZfFEMNSrp5rTyHiKndm SpamDiagnosticOutput: 1:23 SpamDiagnosticMetadata: NSPM X-OriginatorOrg: amd.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 04 Jan 2016 05:33:21.7274 (UTC) X-MS-Exchange-CrossTenant-Id: 3dd8961f-e488-4e60-8e11-a82d994e183d X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=3dd8961f-e488-4e60-8e11-a82d994e183d;Ip=[165.204.84.222];Helo=[atltwp02.amd.com] X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: DM3PR12MB0860 Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org mcbuf_sz means bytes to allocate for MicroCode buffer. flags is for irq sharing, default is non-shared, in AMD Carrizo, pl330 shares IRQ with its corresponding UART device. Signed-off-by: Wang Hongcheng --- drivers/acpi/acpi_apd.c | 17 +++++++++++++++++ drivers/dma/pl330.c | 9 ++++++++- include/linux/amba/pl330.h | 2 ++ 3 files changed, 27 insertions(+), 1 deletion(-) diff --git a/drivers/acpi/acpi_apd.c b/drivers/acpi/acpi_apd.c index 9520daf..4d71a65 100644 --- a/drivers/acpi/acpi_apd.c +++ b/drivers/acpi/acpi_apd.c @@ -20,6 +20,9 @@ #include #include #include +#include +#include +#include #include "internal.h" @@ -33,6 +36,14 @@ struct apd_private_data; #define ACPI_APD_SYSFS BIT(0) #define ACPI_APD_PM BIT(1) +static u8 peri_id[2] = { 0, 1 }; + +static struct dma_pl330_platdata amd_pl330 = { + .nr_valid_peri = 2, + .peri_id = peri_id, + .mcbuf_sz = 0, + .flags = IRQF_SHARED, +}; /** * struct apd_device_desc - a descriptor for apd device * @flags: device flags like %ACPI_APD_SYSFS, %ACPI_APD_PM @@ -150,6 +161,12 @@ static int acpi_apd_setup_quirks(struct apd_private_data *pdata) goto amba_register_err; kfree(resource); + + dma_cap_set(DMA_MEMCPY, amd_pl330.cap_mask); + dma_cap_set(DMA_SLAVE, amd_pl330.cap_mask); + dma_cap_set(DMA_CYCLIC, amd_pl330.cap_mask); + dma_cap_set(DMA_PRIVATE, amd_pl330.cap_mask); + return 0; amba_register_err: diff --git a/drivers/dma/pl330.c b/drivers/dma/pl330.c index 17ee758..5e5fb46 100644 --- a/drivers/dma/pl330.c +++ b/drivers/dma/pl330.c @@ -26,6 +26,8 @@ #include #include #include +#include +#include #include #include @@ -488,6 +490,9 @@ struct pl330_dmac { /* Peripheral channels connected to this DMAC */ unsigned int num_peripherals; struct dma_pl330_chan *peripherals; /* keep at end */ + + /*IRQ register flags */ + unsigned int flags; }; struct dma_pl330_desc { @@ -2800,6 +2805,8 @@ pl330_probe(struct amba_device *adev, const struct amba_id *id) pl330->mcbufsz = pdat ? pdat->mcbuf_sz : 0; + pl330->flags = pdat ? pdat->flags : IRQF_TRIGGER_NONE; + res = &adev->res; pl330->base = devm_ioremap_resource(&adev->dev, res); if (IS_ERR(pl330->base)) @@ -2811,7 +2818,7 @@ pl330_probe(struct amba_device *adev, const struct amba_id *id) irq = adev->irq[i]; if (irq) { ret = devm_request_irq(&adev->dev, irq, - pl330_irq_handler, 0, + pl330_irq_handler, pl330->flags, dev_name(&adev->dev), pl330); if (ret) return ret; diff --git a/include/linux/amba/pl330.h b/include/linux/amba/pl330.h index fe93758..cdc80f0 100644 --- a/include/linux/amba/pl330.h +++ b/include/linux/amba/pl330.h @@ -29,6 +29,8 @@ struct dma_pl330_platdata { dma_cap_mask_t cap_mask; /* Bytes to allocate for MC buffer */ unsigned mcbuf_sz; + /*flags for irq sharing, default is non-shared*/ + unsigned flags; }; extern bool pl330_filter(struct dma_chan *chan, void *param); -- 1.9.1