RE: [PATCH V7 5/7] ACPI: Delay the enumeration on the devices whose dependency has not met
From: Gabriele Paoloni <hidden>
Date: 2017-03-14 08:15:29
Also in:
linux-acpi, linux-arm-kernel, linux-pci, linux-serial, lkml
Hi Rafael Many thanks for your review
-----Original Message----- From: Rafael J. Wysocki [mailto:rjw@rjwysocki.net] Sent: 13 March 2017 21:25 To: Yuanzhichang Cc: catalin.marinas@arm.com; will.deacon@arm.com; robh+dt@kernel.org; frowand.list@gmail.com; bhelgaas@google.com; rafael@kernel.org; mark.rutland@arm.com; arnd@arndb.de; linux-arm- kernel@lists.infradead.org; linux-acpi@vger.kernel.org; lorenzo.pieralisi@arm.com; benh@kernel.crashing.org; linux- kernel@vger.kernel.org; Linuxarm; devicetree@vger.kernel.org; linux- pci@vger.kernel.org; linux-serial@vger.kernel.org; minyard@acm.org; liviu.dudau@arm.com; zourongrong@gmail.com; John Garry; Gabriele Paoloni; zhichang.yuan02@gmail.com; kantyzc@163.com; xuwei (O) Subject: Re: [PATCH V7 5/7] ACPI: Delay the enumeration on the devices whose dependency has not met On Monday, March 13, 2017 10:42:41 AM zhichang.yuan wrote:quoted
In commit 40e7fcb1929(ACPI: Add _DEP support to fix battery issue onAsusquoted
T100TA), the '_DEP' was supported to solve the dependency of Asusbattery. Butquoted
this patch is specific to Asus battery device. In the real world, there are other devices which need the dependencyto play thequoted
role on the enumeration order. For example, all the Hip06 LPC periperals(IPMI-BT, uart, etc) must be scanned after the LPC hostdriverquoted
finished the probing. So, it makes sense to add a checking whetherthe ACPIquoted
device meet all the dependencies during its enumeration slot, if not,thequoted
enumeration will be delayed till all dependency master finish theirwork.quoted
This patch adds the dependency checking in ACPI enumeration, also the corresponding handling to retrigger the Hip06 LPC peripherals'scanning. AFAICS, _DEP is generally abused in the wild and cannot be made generic. Sorry.
Another option here would be to revert this patch and add a dependency check in the probe functions of the LPC possible children nodes (e.g. in the IPMI driver: http://elixir.free-electrons.com/source/drivers/char/ipmi/ipmi_si_intf.c?v=4.10#L2683 ) we could add if (device->dep_unmet) return -EPROBE_DEFER; as we now have in acpi/battery.c... I think this should not make any difference for current shipped FW that has got no DEP method... What do you think? Many Thanks Gab
Thanks, Rafael