For gic bindings, The 3rd cell of interrupts is the flags,encoded as follows: bits[3:0] trigger type and level flags. 1 = low-to-high edge triggered 2 = high-to-low edge triggered 4 = active high level-sensitive 8 = active low level-sensitive bits[15:8] PPI interrupt cpu mask.
Please refer to Documentation/devicetree/bindings/arm/gic.txt for detailed information.
In Foundation model and RTSM model's device tree, the 3rd cell of interrupts of all devices is 4, so we should use active high level-sensitive in the DSDT table too when we convert the device to ACPI.
Signed-off-by: Hanjun Guo hanjun.guo@linaro.org --- platforms/foundation-v8.acpi/dsdt.asl | 6 +++--- platforms/rtsm_ve-aemv8a.acpi/dsdt.asl | 4 ++-- 2 files changed, 5 insertions(+), 5 deletions(-)
diff --git a/platforms/foundation-v8.acpi/dsdt.asl b/platforms/foundation-v8.acpi/dsdt.asl index 39b4886..8d4657c 100644 --- a/platforms/foundation-v8.acpi/dsdt.asl +++ b/platforms/foundation-v8.acpi/dsdt.asl @@ -247,7 +247,7 @@ DefinitionBlock ( Method (_CRS, 0x0, Serialized) { Name (RBUF, ResourceTemplate () { Memory32Fixed (ReadWrite, 0x1a000000, 0x00010000) - Interrupt (ResourceConsumer, Edge, ActiveBoth, Exclusive, , , ) {0x2F} + Interrupt (ResourceConsumer, Level, ActiveHigh, Exclusive, , , ) {0x2F} }) Return (RBUF) } @@ -260,7 +260,7 @@ DefinitionBlock ( Method (_CRS, 0x0, Serialized) { Name (RBUF, ResourceTemplate() { Memory32Fixed (ReadWrite, 0x1c130000, 0x1000) - Interrupt (ResourceConsumer, Edge, ActiveBoth, Exclusive, , , ) {0x4A} + Interrupt (ResourceConsumer, Level, ActiveHigh, Exclusive, , , ) {0x4A} }) Return (RBUF) } @@ -272,7 +272,7 @@ DefinitionBlock (
Method (_CRS, 0x0, Serialized) { Name (RBUF, ResourceTemplate () { - Interrupt (ResourceConsumer, Edge, ActiveBoth, Exclusive, , , ) {92, 93, 94, 95} + Interrupt (ResourceConsumer, Level, ActiveHigh, Exclusive, , , ) {92, 93, 94, 95} }) Return (RBUF) } diff --git a/platforms/rtsm_ve-aemv8a.acpi/dsdt.asl b/platforms/rtsm_ve-aemv8a.acpi/dsdt.asl index 0bcc94d..1d51323 100644 --- a/platforms/rtsm_ve-aemv8a.acpi/dsdt.asl +++ b/platforms/rtsm_ve-aemv8a.acpi/dsdt.asl @@ -246,7 +246,7 @@ DefinitionBlock ( Method (_CRS, 0x0, Serialized) { Name (RBUF, ResourceTemplate () { Memory32Fixed (ReadWrite, 0x1a000000, 0x00010000) - Interrupt (ResourceConsumer, Edge, ActiveBoth, Exclusive, , , ) {0x2F} + Interrupt (ResourceConsumer, Level, ActiveHigh, Exclusive, , , ) {0x2F} }) Return (RBUF) } @@ -258,7 +258,7 @@ DefinitionBlock (
Method (_CRS, 0x0, Serialized) { Name (RBUF, ResourceTemplate () { - Interrupt (ResourceConsumer, Edge, ActiveBoth, Exclusive, , , ) {92, 93, 94, 95} + Interrupt (ResourceConsumer, Level, ActiveHigh, Exclusive, , , ) {92, 93, 94, 95} }) Return (RBUF) }
On 11/12/2013 11:26 PM, Hanjun Guo wrote:
For gic bindings, The 3rd cell of interrupts is the flags,encoded as follows: bits[3:0] trigger type and level flags. 1 = low-to-high edge triggered 2 = high-to-low edge triggered 4 = active high level-sensitive 8 = active low level-sensitive bits[15:8] PPI interrupt cpu mask.
Please refer to Documentation/devicetree/bindings/arm/gic.txt for detailed information.
In Foundation model and RTSM model's device tree, the 3rd cell of interrupts of all devices is 4, so we should use active high level-sensitive in the DSDT table too when we convert the device to ACPI.
Signed-off-by: Hanjun Guo hanjun.guo@linaro.org
platforms/foundation-v8.acpi/dsdt.asl | 6 +++--- platforms/rtsm_ve-aemv8a.acpi/dsdt.asl | 4 ++-- 2 files changed, 5 insertions(+), 5 deletions(-)
diff --git a/platforms/foundation-v8.acpi/dsdt.asl b/platforms/foundation-v8.acpi/dsdt.asl index 39b4886..8d4657c 100644 --- a/platforms/foundation-v8.acpi/dsdt.asl +++ b/platforms/foundation-v8.acpi/dsdt.asl @@ -247,7 +247,7 @@ DefinitionBlock ( Method (_CRS, 0x0, Serialized) { Name (RBUF, ResourceTemplate () { Memory32Fixed (ReadWrite, 0x1a000000, 0x00010000)
Interrupt (ResourceConsumer, Edge, ActiveBoth, Exclusive, , , ) {0x2F}
Interrupt (ResourceConsumer, Level, ActiveHigh, Exclusive, , , ) {0x2F} }) Return (RBUF) }
@@ -260,7 +260,7 @@ DefinitionBlock ( Method (_CRS, 0x0, Serialized) { Name (RBUF, ResourceTemplate() { Memory32Fixed (ReadWrite, 0x1c130000, 0x1000)
Interrupt (ResourceConsumer, Edge, ActiveBoth, Exclusive, , , ) {0x4A}
Interrupt (ResourceConsumer, Level, ActiveHigh, Exclusive, , , ) {0x4A} }) Return (RBUF) }
@@ -272,7 +272,7 @@ DefinitionBlock (
Method (_CRS, 0x0, Serialized) { Name (RBUF, ResourceTemplate () {
Interrupt (ResourceConsumer, Edge, ActiveBoth, Exclusive, , , ) {92, 93, 94, 95}
Interrupt (ResourceConsumer, Level, ActiveHigh, Exclusive, , , ) {92, 93, 94, 95} }) Return (RBUF) }
diff --git a/platforms/rtsm_ve-aemv8a.acpi/dsdt.asl b/platforms/rtsm_ve-aemv8a.acpi/dsdt.asl index 0bcc94d..1d51323 100644 --- a/platforms/rtsm_ve-aemv8a.acpi/dsdt.asl +++ b/platforms/rtsm_ve-aemv8a.acpi/dsdt.asl @@ -246,7 +246,7 @@ DefinitionBlock ( Method (_CRS, 0x0, Serialized) { Name (RBUF, ResourceTemplate () { Memory32Fixed (ReadWrite, 0x1a000000, 0x00010000)
Interrupt (ResourceConsumer, Edge, ActiveBoth, Exclusive, , , ) {0x2F}
Interrupt (ResourceConsumer, Level, ActiveHigh, Exclusive, , , ) {0x2F} }) Return (RBUF) }
@@ -258,7 +258,7 @@ DefinitionBlock (
Method (_CRS, 0x0, Serialized) { Name (RBUF, ResourceTemplate () {
Interrupt (ResourceConsumer, Edge, ActiveBoth, Exclusive, , , ) {92, 93, 94, 95}
Interrupt (ResourceConsumer, Level, ActiveHigh, Exclusive, , , ) {92, 93, 94, 95} }) Return (RBUF) }
Nice catch. This looks like something to be sent upstream -- have you done that? We should include it regardless.
Acked-by: Al Stone al.stone@linaro.org
On 14 November 2013 10:03, Al Stone al.stone@linaro.org wrote:
On 11/12/2013 11:26 PM, Hanjun Guo wrote:
For gic bindings, The 3rd cell of interrupts is the flags,encoded as follows: bits[3:0] trigger type and level flags. 1 = low-to-high edge triggered 2 = high-to-low edge triggered 4 = active high level-sensitive 8 = active low level-sensitive bits[15:8] PPI interrupt cpu mask.
Please refer to Documentation/devicetree/bindings/arm/gic.txt for detailed information.
In Foundation model and RTSM model's device tree, the 3rd cell of interrupts of all devices is 4, so we should use active high level-sensitive in the DSDT table too when we convert the device to ACPI.
Signed-off-by: Hanjun Guo hanjun.guo@linaro.org
platforms/foundation-v8.acpi/dsdt.asl | 6 +++--- platforms/rtsm_ve-aemv8a.acpi/dsdt.asl | 4 ++-- 2 files changed, 5 insertions(+), 5 deletions(-)
diff --git a/platforms/foundation-v8.acpi/dsdt.asl b/platforms/foundation-v8.acpi/dsdt.asl index 39b4886..8d4657c 100644 --- a/platforms/foundation-v8.acpi/dsdt.asl +++ b/platforms/foundation-v8.acpi/dsdt.asl @@ -247,7 +247,7 @@ DefinitionBlock ( Method (_CRS, 0x0, Serialized) { Name (RBUF, ResourceTemplate () { Memory32Fixed (ReadWrite, 0x1a000000, 0x00010000)
Interrupt (ResourceConsumer,
Edge, ActiveBoth, Exclusive, , , ) {0x2F}
Interrupt (ResourceConsumer,
Level, ActiveHigh, Exclusive, , , ) {0x2F} }) Return (RBUF) } @@ -260,7 +260,7 @@ DefinitionBlock ( Method (_CRS, 0x0, Serialized) { Name (RBUF, ResourceTemplate() { Memory32Fixed (ReadWrite, 0x1c130000, 0x1000)
Interrupt (ResourceConsumer,
Edge, ActiveBoth, Exclusive, , , ) {0x4A}
Interrupt (ResourceConsumer,
Level, ActiveHigh, Exclusive, , , ) {0x4A} }) Return (RBUF) } @@ -272,7 +272,7 @@ DefinitionBlock (
Method (_CRS, 0x0, Serialized) { Name (RBUF, ResourceTemplate () {
Interrupt (ResourceConsumer,
Edge, ActiveBoth, Exclusive, , , ) {92, 93, 94, 95}
Interrupt (ResourceConsumer,
Level, ActiveHigh, Exclusive, , , ) {92, 93, 94, 95} }) Return (RBUF) } diff --git a/platforms/rtsm_ve-aemv8a.acpi/dsdt.asl b/platforms/rtsm_ve-aemv8a.acpi/dsdt.asl index 0bcc94d..1d51323 100644 --- a/platforms/rtsm_ve-aemv8a.acpi/dsdt.asl +++ b/platforms/rtsm_ve-aemv8a.acpi/dsdt.asl @@ -246,7 +246,7 @@ DefinitionBlock ( Method (_CRS, 0x0, Serialized) { Name (RBUF, ResourceTemplate () { Memory32Fixed (ReadWrite, 0x1a000000, 0x00010000)
Interrupt (ResourceConsumer,
Edge, ActiveBoth, Exclusive, , , ) {0x2F}
Interrupt (ResourceConsumer,
Level, ActiveHigh, Exclusive, , , ) {0x2F} }) Return (RBUF) } @@ -258,7 +258,7 @@ DefinitionBlock (
Method (_CRS, 0x0, Serialized) { Name (RBUF, ResourceTemplate () {
Interrupt (ResourceConsumer,
Edge, ActiveBoth, Exclusive, , , ) {92, 93, 94, 95}
Interrupt (ResourceConsumer,
Level, ActiveHigh, Exclusive, , , ) {92, 93, 94, 95} }) Return (RBUF) }
Nice catch. This looks like something to be sent upstream -- have you done that? We should include it regardless.
No, it is related to the ASL code we created, not for upstream.
Acked-by: Al Stone al.stone@linaro.org
Thanks :)