Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1753545AbdFMOp3 convert rfc822-to-8bit (ORCPT ); Tue, 13 Jun 2017 10:45:29 -0400 Received: from szxga02-in.huawei.com ([45.249.212.188]:7818 "EHLO szxga02-in.huawei.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1753298AbdFMOpZ (ORCPT ); Tue, 13 Jun 2017 10:45:25 -0400 From: Gabriele Paoloni To: Mika Westerberg , Lorenzo Pieralisi CC: "rafael@kernel.org" , "Rafael J. Wysocki" , "catalin.marinas@arm.com" , "will.deacon@arm.com" , "robh+dt@kernel.org" , "frowand.list@gmail.com" , "bhelgaas@google.com" , "arnd@arndb.de" , "linux-arm-kernel@lists.infradead.org" , "mark.rutland@arm.com" , "brian.starkey@arm.com" , "olof@lixom.net" , "benh@kernel.crashing.org" , "linux-kernel@vger.kernel.org" , "linux-acpi@vger.kernel.org" , Linuxarm , "linux-pci@vger.kernel.org" , "minyard@acm.org" , John Garry , "xuwei (O)" Subject: RE: [PATCH v9 5/7] ACPI: Translate the I/O range of non-MMIO devices before scanning Thread-Topic: [PATCH v9 5/7] ACPI: Translate the I/O range of non-MMIO devices before scanning Thread-Index: AQHS1UuGzbU5u381iUa+4J2CuQvNbqIMw+oAgAFaBMCACVtbgIAJ46YAgAEanYCAAILAkA== Date: Tue, 13 Jun 2017 14:38:26 +0000 Message-ID: References: <1495712248-5232-1-git-send-email-gabriele.paoloni@huawei.com> <1495712248-5232-6-git-send-email-gabriele.paoloni@huawei.com> <20170530132408.GA2556@red-moon> <20170606085553.GA20085@red-moon> <20170612155700.GA31930@red-moon> <20170613084831.GP3187@lahna.fi.intel.com> In-Reply-To: <20170613084831.GP3187@lahna.fi.intel.com> Accept-Language: en-GB, en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: x-originating-ip: [10.203.135.63] Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 8BIT MIME-Version: 1.0 X-CFilter-Loop: Reflected X-Mirapoint-Virus-RAPID-Raw: score=unknown(0), refid=str=0001.0A020206.593FF8F9.0073,ss=1,re=0.000,recu=0.000,reip=0.000,cl=1,cld=1,fgs=0, ip=169.254.1.104, so=2014-11-16 11:51:01, dmn=2013-03-21 17:37:32 X-Mirapoint-Loop-Id: cf58b1598e0526943b0be249d9bdfb9c Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Length: 3203 Lines: 102 Hi Mika > -----Original Message----- > From: Mika Westerberg [mailto:mika.westerberg@linux.intel.com] > Sent: 13 June 2017 09:49 > To: Lorenzo Pieralisi > Cc: Gabriele Paoloni; rafael@kernel.org; Rafael J. Wysocki; > catalin.marinas@arm.com; will.deacon@arm.com; robh+dt@kernel.org; > frowand.list@gmail.com; bhelgaas@google.com; arnd@arndb.de; linux-arm- > kernel@lists.infradead.org; mark.rutland@arm.com; > brian.starkey@arm.com; olof@lixom.net; benh@kernel.crashing.org; linux- > kernel@vger.kernel.org; linux-acpi@vger.kernel.org; Linuxarm; linux- > pci@vger.kernel.org; minyard@acm.org; John Garry; xuwei (O) > Subject: Re: [PATCH v9 5/7] ACPI: Translate the I/O range of non-MMIO > devices before scanning > > On Mon, Jun 12, 2017 at 04:57:00PM +0100, Lorenzo Pieralisi wrote: > > I had a more in-depth look at this series and from my understanding > > the problem are the following to manage the LPC bindings in ACPI. > > > > (1) Child devices of an LPC controller require special handling when > > filling their resources (ie they need to be translated - in DT > > that's guaranteed by the "isa" binding, in ACPI it has to be > > done by new code) > > (2) In DT systems, LPC child devices are created by the LPC bus > > controller driver through an of_platform_populate() call with > > the LPC controller node as the fwnode root. For ACPI to work > > the same way there must be a way to prevent LPC children to > > be enumerated in acpi_default_enumeration() something like > > I2C does (and then the LPC driver would enumerate its children as > > DT does) > > > > I am not sure how (1) and (2) can be managed with current ACPI > bindings > > and kernel code - I suspect it may be done by mirroring what's done > > for I2C but I am not sure, that's why I CC'ed Mika (ie the LPC > adapter > > is matched as a platform device and it takes care of enumerating its > > children - problem though is preventing enumeration from core ACPI > code). > > Is there an example ASL showing how these LPC devices are > currently presented in ACPI? Please find below the asl sketch for our LPC and IPMI // // LPC // Scope(_SB) { Device (LPC0) { Name (_HID, "HISI0191") // HiSi LPC Name (_CRS, ResourceTemplate () { Memory32Fixed (ReadWrite, 0xa01b0000, 0x1000) }) } Device (LPC0.IPMI) { Name (_HID, "IPI0001") Method (_IFT) { Return (0x03) } Name (LORS, ResourceTemplate() { QWordIO ( ResourceConsumer, MinNotFixed, // _MIF MaxNotFixed, // _MAF PosDecode, EntireRange, 0x0, // _GRA 0xe4, // _MIN 0x3fff, // _MAX 0x0, // _TRA 0x04, // _LEN , , BTIO ) }) CreateQWordField (LORS, BTIO._MIN, CMIN) CreateQWordField (LORS, BTIO._MAX, CMAX) CreateQWordField (LORS, BTIO._LEN, CLEN) Method (_PRS, 0) { Return (LORS) } Method (_CRS, 0) { Return (LORS) } Method (_SRS, 1) { CreateQWordField (Arg0, \_SB.LPC0.IPMI.BTIO._MIN, IMIN) Store (IMIN, CMIN) CreateQWordField (Arg0, \_SB.LPC0.IPMI.BTIO._MAX, IMAX) Store (IMAX, CMAX) } } [...] } Many thanks Gab