• H
    irqchip/mbigen: Add ACPI support · f907c515
    Hanjun Guo 提交于
    With the preparation of platform msi support and interrupt producer
    in commit d44fa3d4 ("ACPI: Add support for ResourceSource/IRQ
    domain mapping"), we can add mbigen ACPI support now.
    
    Now that the major framework changes are ready, we just need to add
    the ACPI probe code which creates the irqdomain for devices connecting
    to it.
    
    In order to create the irqdomain, we need to know the number of hw
    irqs as input which is provided by mbigen. In DT case, we are using
    "num-pins" property to describe it, and we will take advantage of
    that too using _DSD in ACPI as there is no standard way of describe
    it in ACPI way, also according to the _DSD rule described in
    Documentation/acpi/DSD-properties-rules.txt, it doesn't break
    the rules.
    
    The DSDT is represented as below:
    
    For mbigen,
      Device(MBI0) {
              Name(_HID, "HISI0152")
              Name(_UID, Zero)
              Name(_CRS, ResourceTemplate() {
                      Memory32Fixed(ReadWrite, 0xa0080000, 0x10000)
              })
    
             Name(_DSD, Package () {
                     ToUUID("daffd814-6eba-4d8c-8a91-bc9bbf4aa301"),
                     Package () {
                             Package () {"num-pins", 378}
                     }
            })
     }
    
    For devices,
     Device(SAS0) {
             Name(_HID, "HISIxxxx")
             Name(_UID, Zero)
             Name(_CRS, ResourceTemplate() {
                     Memory32Fixed(ReadWrite, 0xb0030000, 0x10000)
    		 Interrupt(ResourceConsumer,..., "\_SB.MBI0") {12, ...}
             })
     }
    
    So for the devices connected to the mbigen, as we clearly say that
    it refers to a specific interrupt controller (mbigen), we can get
    the virq from mbigen's irqdomain once it's created successfully.
    Signed-off-by: NHanjun Guo <hanjun.guo@linaro.org>
    Signed-off-by: NMaJun <majun258@huawei.com>
    Cc: Al Stone <ahs3@redhat.com>
    Cc: Darren Hart <dvhart@infradead.org>
    Cc: Lorenzo Pieralisi <lorenzo.pieralisi@arm.com>
    Signed-off-by: NMarc Zyngier <marc.zyngier@arm.com>
    f907c515
irq-mbigen.c 9.5 KB