From: Hanjun Guo <hanjun.guo@linaro.org>
To: Marc Zyngier <marc.zyngier@arm.com>,
Hanjun Guo <guohanjun@huawei.com>,
"Rafael J. Wysocki" <rjw@rjwysocki.net>,
Lorenzo Pieralisi <lorenzo.pieralisi@arm.com>
Cc: linux-acpi@vger.kernel.org, linux-arm-kernel@lists.infradead.org,
linux-kernel@vger.kernel.org,
Thomas Gleixner <tglx@linutronix.de>,
Bjorn Helgaas <bhelgaas@google.com>,
Greg KH <gregkh@linuxfoundation.org>,
Tomasz Nowicki <tn@semihalf.com>, Ma Jun <majun258@huawei.com>,
Kefeng Wang <wangkefeng.wang@huawei.com>,
Charles Garcia-Tobin <charles.garcia-tobin@arm.com>,
linuxarm@huawei.com
Subject: Re: [RFC PATCH v2 10/11] irqchip: mbigen: Add ACPI support
Date: Mon, 19 Sep 2016 17:28:33 +0800 [thread overview]
Message-ID: <e8611dec-ae29-af78-cfb1-7b44670fa11c@linaro.org> (raw)
In-Reply-To: <57DA6097.8060105@arm.com>
Hi Marc,
On 2016/9/15 16:49, Marc Zyngier wrote:
> On 14/09/16 15:21, Hanjun Guo wrote:
>> From: Hanjun Guo <hanjun.guo@linaro.org>
>>
>> With the preparation of platform msi support and interrupt producer
>> in DSDT, we can add mbigen ACPI support now.
>>
>> We are using _PRS methd to indicate number of irq pins instead
>> of num_pins in DT.
>>
>> For mbi-gen,
>> Device(MBI0) {
>> Name(_HID, "HISI0152")
>> Name(_UID, Zero)
>> Name(_CRS, ResourceTemplate() {
>> Memory32Fixed(ReadWrite, 0xa0080000, 0x10000)
>> })
>>
>> Name (_PRS, ResourceTemplate() {
>> Interrupt(ResourceProducer,...) {12,14,....}
>> })
>
> Since I know next to nothing about all of this, I'm going to play the
> village idiot. What makes it legal to use _PRS as a way to describe the
> interrupts that are exposed by MBI0? Looking at the 6.0 spec, I do not
> see why the interrupts would be put there instead of _CRS, and why you'd
> have a _PRS at all.
_PRS describes possible resource settings for the device, which returns
a list of a device's possible resource settings such as memory range,
interrupt descriptors, and the format of the data in a _PRS object
follows the same format as _CRS object (ACPI 6.1, section 6.2.12),
so Interrupts can be put in the _PRS.
And in ACPI 6.1, section 6.2, it describes the _PRS usage:
"Some resources, however, may be shared amongst several devices. To
describe this, devices that share a resource (resource consumers) must
use the extended resource descriptors (0x7-0xA) described in Section
6.4.3, “Large Resource Data Type.” These descriptors point to a single
device object (resource producer) that claims the shared resource in
its _PRS."
As mbigen is a interrupt producer which provide interrupt resoures
for devices, which matches the usage of _PRS in the spec.
>
> Also, are you going to exhaustively describe all the possible interrupts
> via this method? Knowing that the mbigen can expose thousands of
> interrupts, I find it slightly mad. Can't you express a range?
Yes, a little bit mad. I can't express a interrupt range in ACPI at
least in current version of spec. But that just adding more lines
of ACPI DSDT code, it's fine to me. or we need to use _DSD to present
similar property "num_pins" in ACPI which I avoid using.
Thanks
Hanjun
next prev parent reply other threads:[~2016-09-19 9:29 UTC|newest]
Thread overview: 22+ messages / expand[flat|nested] mbox.gz Atom feed top
2016-09-14 14:21 [RFC PATCH v2 00/11] ACPI platform MSI, interrupt producer/consumer and its example mbi-gen Hanjun Guo
2016-09-14 14:21 ` [RFC PATCH v2 01/11] irqchip: gicv3-its: platform-msi: refactor its_pmsi_prepare() Hanjun Guo
2016-09-14 14:21 ` [RFC PATCH v2 02/11] ACPI: platform-msi: retrieve dev id from IORT Hanjun Guo
2016-09-14 14:21 ` [RFC PATCH v2 03/11] irqchip: gicv3-its: platform-msi: refactor its_pmsi_init() to prepare for ACPI Hanjun Guo
2016-09-14 14:21 ` [RFC PATCH v2 04/11] irqchip: gicv3-its: platform-msi: scan MADT to create platform msi domain Hanjun Guo
2016-09-14 14:21 ` [RFC PATCH v2 05/11] ACPI: platform: setup MSI domain for ACPI based platform device Hanjun Guo
2016-09-14 15:45 ` Marc Zyngier
2016-09-15 14:05 ` Hanjun Guo
2016-09-15 15:18 ` Marc Zyngier
2016-09-19 9:42 ` Hanjun Guo
2016-09-14 14:21 ` [RFC PATCH v2 06/11] msi: platform: make platform_msi_create_device_domain() ACPI aware Hanjun Guo
2016-09-14 14:21 ` [RFC PATCH v2 07/11] ACPI: irq: introduce interrupt producer Hanjun Guo
2016-09-14 14:21 ` [RFC PATCH v2 08/11] irqchip: mbigen: drop module owner Hanjun Guo
2016-09-14 14:21 ` [RFC PATCH v2 09/11] irqchip: mbigen: introduce mbigen_of_create_domain() Hanjun Guo
2016-09-14 14:21 ` [RFC PATCH v2 10/11] irqchip: mbigen: Add ACPI support Hanjun Guo
2016-09-15 8:49 ` Marc Zyngier
2016-09-19 9:28 ` Hanjun Guo [this message]
2016-09-14 14:21 ` [RFC PATCH v2 11/11] irqchip: mbigen: promote mbigen init Hanjun Guo
2016-09-15 15:24 ` Marc Zyngier
2016-09-19 9:49 ` Hanjun Guo
2016-09-19 10:12 ` Marc Zyngier
2016-09-20 2:43 ` Hanjun Guo
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=e8611dec-ae29-af78-cfb1-7b44670fa11c@linaro.org \
--to=hanjun.guo@linaro.org \
--cc=bhelgaas@google.com \
--cc=charles.garcia-tobin@arm.com \
--cc=gregkh@linuxfoundation.org \
--cc=guohanjun@huawei.com \
--cc=linux-acpi@vger.kernel.org \
--cc=linux-arm-kernel@lists.infradead.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linuxarm@huawei.com \
--cc=lorenzo.pieralisi@arm.com \
--cc=majun258@huawei.com \
--cc=marc.zyngier@arm.com \
--cc=rjw@rjwysocki.net \
--cc=tglx@linutronix.de \
--cc=tn@semihalf.com \
--cc=wangkefeng.wang@huawei.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox
all inboxes | Powered by JetHome®