<html><body><p>
<pre>
Hi Angelo,

Thanks for the reviews.

On Fri, 2024-01-19 at 11:53 +0100, AngeloGioacchino Del Regno wrote:
> Il 19/01/24 07:32, Jason-JH.Lin ha scritto:
> > Add mediatek,gce-props.yaml for common GCE properties that is used
> > for
> > both mailbox providers and consumers. We place the common property
> > "mediatek,gce-events" in this binding currently.
> >
> > The property "mediatek,gce-events" is used for GCE event ID
> > corresponding
> > to a hardware event signal sent by the hardware or a sofware
> > driver.
> > If the mailbox providers or consumers want to manipulate the value
> > of
> > the event ID, they need to know the specific event ID.
> >
> > Signed-off-by: Jason-JH.Lin <jason-jh.lin@mediatek.com>
> > ---
> > .../bindings/mailbox/mediatek,gce-props.yaml | 52
> > +++++++++++++++++++
> > 1 file changed, 52 insertions(+)
> > create mode 100644
> > Documentation/devicetree/bindings/mailbox/mediatek,gce-props.yaml
> >
> > diff --git
> > a/Documentation/devicetree/bindings/mailbox/mediatek,gce-props.yaml
> > b/Documentation/devicetree/bindings/mailbox/mediatek,gce-props.yaml
> > new file mode 100644
> > index 000000000000..68b519ff089f
> > --- /dev/null
> > +++ b/Documentation/devicetree/bindings/mailbox/mediatek,gce-
> > props.yaml
> > @@ -0,0 +1,52 @@
> > +# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
> > +%YAML 1.2
> > +---
> > +$id:
> > https://urldefense.com/v3/__http://devicetree.org/schemas/mailbox/mediatek,gce-props.yaml*__;Iw!!CTRNKA9wMg0ARbw!kMCkhwQ_az8HouSQgqMuDC5QpKFizQrWMlwaWPfYp1GphlueXVfPfS9FA83806_7K_qqcfHOaprqAWNOoBkzsTJNUSZpugRS_Q$
> >
> > +$schema:
> > https://urldefense.com/v3/__http://devicetree.org/meta-schemas/core.yaml*__;Iw!!CTRNKA9wMg0ARbw!kMCkhwQ_az8HouSQgqMuDC5QpKFizQrWMlwaWPfYp1GphlueXVfPfS9FA83806_7K_qqcfHOaprqAWNOoBkzsTJNUSYsot_sog$
> >
> > +
> > +title: MediaTek Global Command Engine Common Propertes
> > +
> > +maintainers:
> > + - Houlong Wei <houlong.wei@mediatek.com>
> > +
> > +description:
> > + The Global Command Engine (GCE) is an instruction based, multi-
> > threaded,
> > + single-core command dispatcher for MediaTek hardware. The
> > Command Queue
> > + (CMDQ) mailbox driver is a driver for GCE, implemented using the
> > Linux
> > + mailbox framework. It is used to receive messages from mailbox
> > consumers
> > + and configure GCE to execute the specified instruction set in
> > the message.
> > + We use mediatek,gce-mailbox.yaml to define the properties for
> > CMDQ mailbox
> > + driver. A device driver that uses the CMDQ driver to configure
> > its hardware
> > + registers is a mailbox consumer. The mailbox consumer can
> > request a mailbox
> > + channel corresponding to a GCE hardware thread to send a
> > message, specifying
> > + that the GCE thread to configure its hardware. The mailbox
> > provider can also
> > + reserved a mailbox channel to configure GCE hardware register by
> > the spcific
> > + GCE thread. This binding defines the common GCE properties for
> > both mailbox
> > + provider and consumers.
> > +
> > +properties:
> > + mediatek,gce-events:
> > + description:
> > + GCE has an event table in SRAM, consisting of 1024 event IDs
> > (0~1023).
> > + Each event ID has a boolean event value with the default
> > value 0.
> > + The property mediatek,gce-events is used to obtain the event
> > IDs.
> > + Some gce-events are hardware-bound and cannot be changed by
> > software.
> > + For instance, in MT8195, when VDO0_MUTEX is stream done,
> > VDO_MUTEX will
> > + send an event signal to GCE, setting the value of event ID
> > 597 to 1.
> > + Similarly, in MT8188, the value of event ID 574 will be set
> > to 1 when
> > + VOD0_MUTEX is stream done.
> > + On the other hand, some gce-events are not hardware-bound
> > and can be
> > + changed by software. For example, in MT8188, we can set the
> > value of
> > + event ID 855, which is not bound to any hardware, to 1 when
> > the driver
> > + in the secure world completes a task. However, in MT8195,
> > event ID 855
> > + is already bound to VDEC_LAT1, so we need to select another
> > event ID to
> > + achieve the same purpose. This event ID can be any ID that
> > is not bound
> > + to any hardware and is not yet used in any software driver.
> > + To determine if the event ID is bound to the hardware or
> > used by a
> > + software driver, refer to the GCE header
> > + include/dt-bindings/gce/<chip>-gce.h of each chip.
> > + $ref: /schemas/types.yaml#/definitions/uint32-array
> > + minItems: 1
> > + maxItems: 1024
>
> maxItems: 1024 seems to be a bit too many... this means that one
> devicetree node
> may have up to 1024 gce events, which is impossible! If a driver
> needed all of
> the 1024 events, this means that it's not an user of the GCE, but the
> GCE itself!
>
> Imagine seeing a devicetree node with 1024 array entries for
> mediatek,gce-events...
>
Yes, that's impossible to set up to 1024 array entries.
I just have used the maximum value to cover all the possible cases.

> I'd set that to a more sensible value of 32 - eventually we can
> extend it later,
> if ever needed.
>
OK, I agree with that!
I'll change the maxItems to 32.

> Besides, nice job about all this documentation of the GCE and its
> events: love it!
>
I'm appreciate you love it :)

Regards,
Jason-JH.Lin

> Cheers,
> Angelo
>
>

</pre>
</p></body></html><!--type:text--><!--{--><pre>************* MEDIATEK Confidentiality Notice ********************
The information contained in this e-mail message (including any 
attachments) may be confidential, proprietary, privileged, or otherwise
exempt from disclosure under applicable laws. It is intended to be 
conveyed only to the designated recipient(s). Any use, dissemination, 
distribution, printing, retaining or copying of this e-mail (including its 
attachments) by unintended recipient(s) is strictly prohibited and may 
be unlawful. If you are not an intended recipient of this e-mail, or believe 
that you have received this e-mail in error, please notify the sender 
immediately (by replying to this e-mail), delete any and all copies of 
this e-mail (including any attachments) from your system, and do not
disclose the content of this e-mail to any other person. Thank you!
</pre><!--}-->