Re: [PATCH 02/10] dt: add img,axd.txt device tree binding document

2015-08-24 Thread Qais Yousef

On 08/24/2015 02:26 PM, Mark Rutland wrote:

On Mon, Aug 24, 2015 at 01:39:11PM +0100, Qais Yousef wrote:

Signed-off-by: Qais Yousef 
Cc: Rob Herring 
Cc: Pawel Moll 
Cc: Mark Rutland 
Cc: Ian Campbell 
Cc: Kumar Gala 
Cc: devicet...@vger.kernel.org
Cc: linux-kernel@vger.kernel.org
---
  .../devicetree/bindings/sound/img,axd.txt  | 34 ++
  1 file changed, 34 insertions(+)
  create mode 100644 Documentation/devicetree/bindings/sound/img,axd.txt

diff --git a/Documentation/devicetree/bindings/sound/img,axd.txt 
b/Documentation/devicetree/bindings/sound/img,axd.txt
new file mode 100644
index ..6a8764a79d01
--- /dev/null
+++ b/Documentation/devicetree/bindings/sound/img,axd.txt
@@ -0,0 +1,34 @@
+* AXD Audio Processing IP Binding *
+
+Required properties:
+- compatible: "img,axd"

This sounds awfully generic. Is there not a more complete name?


Shouldn't img prefix to help against this? We can sure use another name 
though like "img,axd-audio-decoder" or something like that. I'll need to 
check.





+- clocks: phandle for the clock that drives AXD.
+- interrupts: the GIC interrupt where AXD is connected
+- gic-irq: it takes two non-zero values, the first one is the host hwirq and
+   the second one is AXD's. Host's hwirq should match the value in
+   interrupts.

I don't understand what this gic-irq property is for; and it generally
doesn't look right.

Could you please describe what this is and why you thing it is
necessary?


AXD and host cores exchange interrupts using GIC interrupt controller. 
To configure AXD firmware to send and listen to the correct GIC 
interrupts we need these values, hence this property.


If there's a way to reverse the irq mappings of 'interrupts' property 
from the driver code we can get rid of that and have 2 interrupts 
properties instead. But as far as I can see there's no way to get the hw 
irq value from the mapped linux irq unless I missed something.





+
+Optional properties:
+- vpe: VPE number on which AXD should start. Must be provided if AXD is
+   running as a single VPE along Linux on the same core.
+   It can't be VPE0.
+   The VPE will be offlined before AXD is loaded.

Likewise could you please elaborate on this is?

What is a VPE number? What does it mean to start at that number?


VPE is MIPS notation of hardware thread. Instead of being a complete 
separate core AXD can run as a hardware thread (VPE) inside a Linux 
core. This number indicates which hardware thread to run AXD at.





+- inbuf-size: size of shared input buffers area. By default it's 0x7800 bytes.
+- outbuf-size: size of shared output buffers area. By default it's 0x3c000 
bytes.

Is this something the kernel dynamically allocates? Why does this need
to be in the DT?


We use CMA to allocate this buffer area. This optional property is there 
to give the user a chance to use larger/smaller buffers if they think 
they need to. This buffer area is shared between Linux and AXD to 
exchange data.


Thanks,
Qais



Thanks,
Mark.


+
+
+Example:
+
+   axdclk: axdclk@400M {
+   #clock-cells = <0>;
+   compatible = "fixed-clock";
+   clock-frequency = <4>;
+   };
+
+   axd {
+   compatible = "img,axd";
+   clocks = <>;
+   interrupts = <36 IRQ_TYPE_EDGE_RISING>;
+   gic-irq = <36 37>;
+   vpe = <1>;
+   };
--
2.1.0



--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/


Re: [PATCH 02/10] dt: add img,axd.txt device tree binding document

2015-08-24 Thread Mark Rutland
On Mon, Aug 24, 2015 at 01:39:11PM +0100, Qais Yousef wrote:
> Signed-off-by: Qais Yousef 
> Cc: Rob Herring 
> Cc: Pawel Moll 
> Cc: Mark Rutland 
> Cc: Ian Campbell 
> Cc: Kumar Gala 
> Cc: devicet...@vger.kernel.org
> Cc: linux-kernel@vger.kernel.org
> ---
>  .../devicetree/bindings/sound/img,axd.txt  | 34 
> ++
>  1 file changed, 34 insertions(+)
>  create mode 100644 Documentation/devicetree/bindings/sound/img,axd.txt
> 
> diff --git a/Documentation/devicetree/bindings/sound/img,axd.txt 
> b/Documentation/devicetree/bindings/sound/img,axd.txt
> new file mode 100644
> index ..6a8764a79d01
> --- /dev/null
> +++ b/Documentation/devicetree/bindings/sound/img,axd.txt
> @@ -0,0 +1,34 @@
> +* AXD Audio Processing IP Binding *
> +
> +Required properties:
> +- compatible: "img,axd"

This sounds awfully generic. Is there not a more complete name?

> +- clocks: phandle for the clock that drives AXD.
> +- interrupts: the GIC interrupt where AXD is connected
> +- gic-irq: it takes two non-zero values, the first one is the host hwirq and
> +   the second one is AXD's. Host's hwirq should match the value in
> +   interrupts.

I don't understand what this gic-irq property is for; and it generally
doesn't look right.

Could you please describe what this is and why you thing it is
necessary?

> +
> +Optional properties:
> +- vpe: VPE number on which AXD should start. Must be provided if AXD is
> +   running as a single VPE along Linux on the same core.
> +   It can't be VPE0.
> +   The VPE will be offlined before AXD is loaded.

Likewise could you please elaborate on this is?

What is a VPE number? What does it mean to start at that number?

> +- inbuf-size: size of shared input buffers area. By default it's 0x7800 
> bytes.
> +- outbuf-size: size of shared output buffers area. By default it's 0x3c000 
> bytes.

Is this something the kernel dynamically allocates? Why does this need
to be in the DT?

Thanks,
Mark.

> +
> +
> +Example:
> +
> + axdclk: axdclk@400M {
> + #clock-cells = <0>;
> + compatible = "fixed-clock";
> + clock-frequency = <4>;
> + };
> +
> + axd {
> + compatible = "img,axd";
> + clocks = <>;
> + interrupts = <36 IRQ_TYPE_EDGE_RISING>;
> + gic-irq = <36 37>;
> + vpe = <1>;
> + };
> -- 
> 2.1.0
> 
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/


Re: [PATCH 02/10] dt: add img,axd.txt device tree binding document

2015-08-24 Thread Mark Rutland
On Mon, Aug 24, 2015 at 01:39:11PM +0100, Qais Yousef wrote:
 Signed-off-by: Qais Yousef qais.you...@imgtec.com
 Cc: Rob Herring robh...@kernel.org
 Cc: Pawel Moll pawel.m...@arm.com
 Cc: Mark Rutland mark.rutl...@arm.com
 Cc: Ian Campbell ijc+devicet...@hellion.org.uk
 Cc: Kumar Gala ga...@codeaurora.org
 Cc: devicet...@vger.kernel.org
 Cc: linux-kernel@vger.kernel.org
 ---
  .../devicetree/bindings/sound/img,axd.txt  | 34 
 ++
  1 file changed, 34 insertions(+)
  create mode 100644 Documentation/devicetree/bindings/sound/img,axd.txt
 
 diff --git a/Documentation/devicetree/bindings/sound/img,axd.txt 
 b/Documentation/devicetree/bindings/sound/img,axd.txt
 new file mode 100644
 index ..6a8764a79d01
 --- /dev/null
 +++ b/Documentation/devicetree/bindings/sound/img,axd.txt
 @@ -0,0 +1,34 @@
 +* AXD Audio Processing IP Binding *
 +
 +Required properties:
 +- compatible: img,axd

This sounds awfully generic. Is there not a more complete name?

 +- clocks: phandle for the clock that drives AXD.
 +- interrupts: the GIC interrupt where AXD is connected
 +- gic-irq: it takes two non-zero values, the first one is the host hwirq and
 +   the second one is AXD's. Host's hwirq should match the value in
 +   interrupts.

I don't understand what this gic-irq property is for; and it generally
doesn't look right.

Could you please describe what this is and why you thing it is
necessary?

 +
 +Optional properties:
 +- vpe: VPE number on which AXD should start. Must be provided if AXD is
 +   running as a single VPE along Linux on the same core.
 +   It can't be VPE0.
 +   The VPE will be offlined before AXD is loaded.

Likewise could you please elaborate on this is?

What is a VPE number? What does it mean to start at that number?

 +- inbuf-size: size of shared input buffers area. By default it's 0x7800 
 bytes.
 +- outbuf-size: size of shared output buffers area. By default it's 0x3c000 
 bytes.

Is this something the kernel dynamically allocates? Why does this need
to be in the DT?

Thanks,
Mark.

 +
 +
 +Example:
 +
 + axdclk: axdclk@400M {
 + #clock-cells = 0;
 + compatible = fixed-clock;
 + clock-frequency = 4;
 + };
 +
 + axd {
 + compatible = img,axd;
 + clocks = axdclk;
 + interrupts = 36 IRQ_TYPE_EDGE_RISING;
 + gic-irq = 36 37;
 + vpe = 1;
 + };
 -- 
 2.1.0
 
--
To unsubscribe from this list: send the line unsubscribe linux-kernel in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/


Re: [PATCH 02/10] dt: add img,axd.txt device tree binding document

2015-08-24 Thread Qais Yousef

On 08/24/2015 02:26 PM, Mark Rutland wrote:

On Mon, Aug 24, 2015 at 01:39:11PM +0100, Qais Yousef wrote:

Signed-off-by: Qais Yousef qais.you...@imgtec.com
Cc: Rob Herring robh...@kernel.org
Cc: Pawel Moll pawel.m...@arm.com
Cc: Mark Rutland mark.rutl...@arm.com
Cc: Ian Campbell ijc+devicet...@hellion.org.uk
Cc: Kumar Gala ga...@codeaurora.org
Cc: devicet...@vger.kernel.org
Cc: linux-kernel@vger.kernel.org
---
  .../devicetree/bindings/sound/img,axd.txt  | 34 ++
  1 file changed, 34 insertions(+)
  create mode 100644 Documentation/devicetree/bindings/sound/img,axd.txt

diff --git a/Documentation/devicetree/bindings/sound/img,axd.txt 
b/Documentation/devicetree/bindings/sound/img,axd.txt
new file mode 100644
index ..6a8764a79d01
--- /dev/null
+++ b/Documentation/devicetree/bindings/sound/img,axd.txt
@@ -0,0 +1,34 @@
+* AXD Audio Processing IP Binding *
+
+Required properties:
+- compatible: img,axd

This sounds awfully generic. Is there not a more complete name?


Shouldn't img prefix to help against this? We can sure use another name 
though like img,axd-audio-decoder or something like that. I'll need to 
check.





+- clocks: phandle for the clock that drives AXD.
+- interrupts: the GIC interrupt where AXD is connected
+- gic-irq: it takes two non-zero values, the first one is the host hwirq and
+   the second one is AXD's. Host's hwirq should match the value in
+   interrupts.

I don't understand what this gic-irq property is for; and it generally
doesn't look right.

Could you please describe what this is and why you thing it is
necessary?


AXD and host cores exchange interrupts using GIC interrupt controller. 
To configure AXD firmware to send and listen to the correct GIC 
interrupts we need these values, hence this property.


If there's a way to reverse the irq mappings of 'interrupts' property 
from the driver code we can get rid of that and have 2 interrupts 
properties instead. But as far as I can see there's no way to get the hw 
irq value from the mapped linux irq unless I missed something.





+
+Optional properties:
+- vpe: VPE number on which AXD should start. Must be provided if AXD is
+   running as a single VPE along Linux on the same core.
+   It can't be VPE0.
+   The VPE will be offlined before AXD is loaded.

Likewise could you please elaborate on this is?

What is a VPE number? What does it mean to start at that number?


VPE is MIPS notation of hardware thread. Instead of being a complete 
separate core AXD can run as a hardware thread (VPE) inside a Linux 
core. This number indicates which hardware thread to run AXD at.





+- inbuf-size: size of shared input buffers area. By default it's 0x7800 bytes.
+- outbuf-size: size of shared output buffers area. By default it's 0x3c000 
bytes.

Is this something the kernel dynamically allocates? Why does this need
to be in the DT?


We use CMA to allocate this buffer area. This optional property is there 
to give the user a chance to use larger/smaller buffers if they think 
they need to. This buffer area is shared between Linux and AXD to 
exchange data.


Thanks,
Qais



Thanks,
Mark.


+
+
+Example:
+
+   axdclk: axdclk@400M {
+   #clock-cells = 0;
+   compatible = fixed-clock;
+   clock-frequency = 4;
+   };
+
+   axd {
+   compatible = img,axd;
+   clocks = axdclk;
+   interrupts = 36 IRQ_TYPE_EDGE_RISING;
+   gic-irq = 36 37;
+   vpe = 1;
+   };
--
2.1.0



--
To unsubscribe from this list: send the line unsubscribe linux-kernel in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/