Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1753100AbbLKG6A (ORCPT ); Fri, 11 Dec 2015 01:58:00 -0500 Received: from mail-bn1bon0086.outbound.protection.outlook.com ([157.56.111.86]:6752 "EHLO na01-bn1-obe.outbound.protection.outlook.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S1750724AbbLKG55 convert rfc822-to-8bit (ORCPT ); Fri, 11 Dec 2015 01:57:57 -0500 From: "Wang, Annie" To: Graeme Gregory CC: Vinod Koul , Mika Westerberg , Joerg Roedel , "Greg Kroah-Hartman" , "Rafael J. Wysocki" , "linux-acpi@vger.kernel.org" , "linux-kernel@vger.kernel.org" , "linux-serial@vger.kernel.org" , "dmaengine@vger.kernel.org" , "iommu@lists.linux-foundation.org" , Borislav Petkov , "Huang, Ray" , "Wan, Vincent" , "Xue, Ken" , "Li, Tony" Subject: RE: [PATCH 3/9] ACPI: add struct acpi_amba_quirk for AMD pl330 specific device config Thread-Topic: [PATCH 3/9] ACPI: add struct acpi_amba_quirk for AMD pl330 specific device config Thread-Index: AQHRLkN8sjlEjdfWw0q7EImG2WGCa566z2WAgAqTbEA= Date: Fri, 11 Dec 2015 06:57:51 +0000 Message-ID: References: <1449199466-6081-1-git-send-email-annie.wang@amd.com> <1449199466-6081-4-git-send-email-annie.wang@amd.com> <20151204131619.GC11655@xora-haswell.xora.org.uk> In-Reply-To: <20151204131619.GC11655@xora-haswell.xora.org.uk> Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: authentication-results: spf=none (sender IP is ) smtp.mailfrom=Annie.Wang@amd.com; x-originating-ip: [210.13.97.168] x-microsoft-exchange-diagnostics: 1;DM2PR12MB0346;5:J717BX9qv7P+BqXuqgIw4wfpfkLDHYgNPJSRrN6Q+IOuJGCDWESflX6PP76c306/Z/FiWsAOVTuAjvL/FwVxSXGdEWVfNZnC5I4unpXEuonyD24StwxDbciW4KXSEkgrrdHNil6WPLB8pu338Q/cMA==;24:74Q6kugyQ/GEDat91qgXltsLeQ/FIFunRv8GcF5/XAYoewrbybM6f5A6ybQtUwAOb0KtmuosuUeQiCKpv1UV3Qsdu27mBWeUQMXq/OjCf20=;20:JTZTbYht8w+naS2cidv/CmDTcj1heNKEv8jxMh98/p2FQDBu5wHWdVgG1UIJwjO3M2tlgv5iTJAipNvd0SW1rFIJEXYH/1kfg/wRpLfchAai1HHU3Q3TdQ/VSsIpGe76Q7/HDp4opr2dPfQpM5DvFEjSdXbBDCPJRVOOJW0CTWh6FyER+SoENCJqqJIFDYcnTMJg4iTR2xNXro5cwjvhCCplwqfAAXSppPJRYhb43NBqOqasgSI2wKfHBOA7S/EU x-microsoft-antispam: UriScan:;BCL:0;PCL:0;RULEID:;SRVR:DM2PR12MB0346; 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)(8121501046)(5005006)(10201501046)(3002001);SRVR:DM2PR12MB0346;BCL:0;PCL:0;RULEID:;SRVR:DM2PR12MB0346; x-forefront-prvs: 0787459938 x-forefront-antispam-report: SFV:NSPM;SFS:(10009020)(6009001)(24454002)(13464003)(164054003)(189002)(377454003)(199003)(81156007)(99286002)(33656002)(5890100001)(101416001)(122556002)(54356999)(86362001)(19580395003)(19580405001)(50986999)(5001960100002)(87936001)(97736004)(66066001)(5003600100002)(110136002)(76176999)(92566002)(189998001)(10400500002)(2900100001)(1220700001)(2950100001)(106356001)(1096002)(5004730100002)(106116001)(5008740100001)(586003)(76576001)(6116002)(40100003)(74316001)(105586002)(3846002)(11100500001)(5002640100001)(102836003)(77096005);DIR:OUT;SFP:1101;SCL:1;SRVR:DM2PR12MB0346;H:BLUPR12MB0433.namprd12.prod.outlook.com;FPR:;SPF:None;PTR:InfoNoRecords;MX:1;A:1;LANG:en; Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 8BIT MIME-Version: 1.0 X-OriginatorOrg: amd.com X-MS-Exchange-CrossTenant-originalarrivaltime: 11 Dec 2015 06:57:51.6497 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: 3dd8961f-e488-4e60-8e11-a82d994e183d X-MS-Exchange-Transport-CrossTenantHeadersStamped: DM2PR12MB0346 Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Length: 4270 Lines: 113 >-----Original Message----- >From: Graeme Gregory [mailto:gg@slimlogic.co.uk] >Sent: Friday, December 04, 2015 9:16 PM >To: Wang, Annie >Cc: Vinod Koul; Mika Westerberg; Joerg Roedel; Greg Kroah-Hartman; Rafael J. >Wysocki; linux-acpi@vger.kernel.org; linux-kernel@vger.kernel.org; linux- >serial@vger.kernel.org; dmaengine@vger.kernel.org; iommu@lists.linux- >foundation.org; Borislav Petkov; Huang, Ray; Wan, Vincent; Xue, Ken; Li, Tony >Subject: Re: [PATCH 3/9] ACPI: add struct acpi_amba_quirk for AMD pl330 >specific device config > >On Fri, Dec 04, 2015 at 11:24:20AM +0800, Wang Hongcheng wrote: >> AMD pl330 is a UART DMA device, it shares one ACPI item with UART. So >> a platform device and an acpi device will be created according to >> AMD0020 ACPI dev. And its mem base address must have an offset. As a >> result, MULTI_ATTACHED_QUIRK and MULTI_ATTACHED_QUIRK are used. >> >> Signed-off-by: Wang Hongcheng >> --- >> drivers/acpi/acpi_amba.c | 31 +++++++++++++++++++++++---- >> drivers/acpi/acpi_apd.c | 56 +++++++++++++++++++++++++++++++++++++------ >----- >> include/linux/acpi.h | 13 +++++++++-- >> 3 files changed, 81 insertions(+), 19 deletions(-) >> >> diff --git a/drivers/acpi/acpi_amba.c b/drivers/acpi/acpi_amba.c index >> 4f0366a..8a5269c 100644 >> --- a/drivers/acpi/acpi_amba.c >> +++ b/drivers/acpi/acpi_amba.c >> @@ -31,6 +31,8 @@ ACPI_MODULE_NAME("amba"); >> * @periphid: AMBA device periphid. >> * @fixed_rate: Clock frequency. >> * @pdata: Platform data specific to the device. >> + * @quirk: Specific device config, including device multiattach. >> + * and mem base offset. >> * >> * Check if the given @adev can be represented as an AMBA device and, if >> * that's the case, create and register an AMBA device, populate its >> @@ -42,7 +44,8 @@ ACPI_MODULE_NAME("amba"); struct amba_device >> *acpi_create_amba_device(struct acpi_device *adev, >> unsigned int periphid, >> unsigned long fixed_rate, >> - void *pdata) >> + void *pdata, >> + struct acpi_amba_quirk *quirk) >> { >> struct amba_device *amba_dev = NULL; >> struct device *parent; >> @@ -54,12 +57,14 @@ struct amba_device *acpi_create_amba_device(struct >acpi_device *adev, >> unsigned int i; >> unsigned int irq[AMBA_NR_IRQS]; >> struct clk *clk = ERR_PTR(-ENODEV); >> + char amba_devname[100]; >> >> /* >> * If the ACPI node already has a physical device attached, >> - * skip it. >> + * skip it. Except some special devices such as AMD0020 which >> + * needs attach physical devices two times. >> */ >> - if (adev->physical_node_count) >> + if (adev->physical_node_count && !(quirk->quirk & >> +MULTI_ATTACHED_QUIRK)) >> return NULL; >> >> INIT_LIST_HEAD(&resource_list); >> @@ -85,7 +90,24 @@ struct amba_device *acpi_create_amba_device(struct >acpi_device *adev, >> memcpy(resource, rentry->res, sizeof(struct resource)); >> } >> >> - amba_dev = amba_device_alloc(dev_name(&adev->dev), >> + /* >> + * The memory address of AMD pl330 has an offset of ACPI >> + * mem resource. >> + */ >> + if (quirk->quirk & BASE_OFFSET_QUIRK) >> + resource->start += quirk->base_offset; >> + >> + /* >> + * If the ACPI device already has a node attached. It must be >> + * renamed. >> + */ >> + if (quirk->quirk & MULTI_ATTACHED_QUIRK) >> + sprintf(amba_devname, "%s%s", dev_name(&adev->dev), >"DMA"); >> + else >> + memcpy(amba_devname, dev_name(&adev->dev), >> + strlen(dev_name(&adev->dev))); >> + >> + amba_dev = amba_device_alloc(amba_devname, >> resource->start, >> resource_size(resource)); >> > >Isn't this basially an MFD in a rather odd fashion? > >I would have though having a device which just splits the resources then creates 2 >children would be a whole lot simpler? > >Graeme It seems more complex, if I trans an ACPI device to pdev, then attach 2 platform child nodes, and create an amba device refer to one of the childs. Too many trans. Thanks, Hongcheng(Annie) -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/