lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite: Windows password security audit tool. GUI, reports in PDF.
[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Date:   Fri, 20 Oct 2023 13:38:52 +0800
From:   ming qian <ming.qian@....nxp.com>
To:     Krzysztof Kozlowski <krzysztof.kozlowski@...aro.org>,
        mirela.rabulea@....nxp.com, robh+dt@...nel.org, shawnguo@...nel.org
Cc:     krzysztof.kozlowski+dt@...aro.org, conor+dt@...nel.org,
        mchehab@...nel.org, hverkuil-cisco@...all.nl,
        s.hauer@...gutronix.de, kernel@...gutronix.de, festevam@...il.com,
        xiahong.bao@....com, eagle.zhou@....com, tao.jiang_2@....com,
        ming.qian@....com, linux-imx@....com, devicetree@...r.kernel.org,
        linux-media@...r.kernel.org, linux-kernel@...r.kernel.org,
        linux-arm-kernel@...ts.infradead.org
Subject: Re: [PATCH v5 1/3] dt-bindings: media: imx-jpeg: Assign slot for imx
 jpeg encoder/decoder

Hi Krzysztof,

> 
>>> From: Ming Qian <ming.qian@....com>
>>>
>>> This IP includes a jpeg wrapper and a jpeg engine, the wrapper is
>>> working on descriptor based manner. It supports up to 4 slots, each slot
>>> can have its own chained descriptors. Host won't configure the engine
>>> directly, but fill some descriptors to encode or decode one jpeg
>>> picture. Then configure the descriptors to certain slot register. The
>>> jpeg wrapper will schedule between different slots. When some slot is
>>> finished, the slot interrupt will be triggered. The purpose of slot is
>>> that engine can be shared across multiple VMS and os.
>>>
>>> Currently, power domains and interrupts are enabled for all 4 slots, but
>>> only one slot is used. There is no benefit in using more that one slot
>>> from within the same OS, as the slots are scheduled in round-robin
>>> manner and not executed in parallel.
>>>
>>> Use the property "nxp,slot" to assign a single slot, and just expose the
>>> parts of the h/w for the assigned slot. For example, only put slot 1's
>>> power-domains entry in the DT when slot 1 is assigned. If not specified,
>>> 0 is used by default.
>>>
>>> Signed-off-by: Ming Qian <ming.qian@....com>
>>> ---
>>> v5
>>> - improve commit message
>>> - improve property description
>>>
>>> v4
>>> - improve commit message
>>> - drop line making the property required, to avoid ABI break
>>>
>>> v3
>>> - add vender prefix, change property slot to nxp,slot
>>> - add type for property slot
>>>
>>> v2
>>> - add a new property in bindings document
>>>
>>>   .../bindings/media/nxp,imx8-jpeg.yaml         | 46 +++++++++----------
>>>   1 file changed, 22 insertions(+), 24 deletions(-)
>>>
>>> diff --git 
>>> a/Documentation/devicetree/bindings/media/nxp,imx8-jpeg.yaml 
>>> b/Documentation/devicetree/bindings/media/nxp,imx8-jpeg.yaml
>>> index 3d9d1db37040..0961856bdcab 100644
>>> --- a/Documentation/devicetree/bindings/media/nxp,imx8-jpeg.yaml
>>> +++ b/Documentation/devicetree/bindings/media/nxp,imx8-jpeg.yaml
>>> @@ -32,19 +32,27 @@ properties:
>>>       maxItems: 1
>>>     interrupts:
>>> -    description: |
>>> -      There are 4 slots available in the IP, which the driver may use
>>> -      If a certain slot is used, it should have an associated interrupt
>>> -      The interrupt with index i is assumed to be for slot i
>>> -    minItems: 1               # At least one slot is needed by the 
>>> driver
>>> -    maxItems: 4               # The IP has 4 slots available for use
>>> +    description:
>>> +      Interrupt number for slot
>>> +    maxItems: 1
>>
>> The device still has four interrupts, so we should allow up to four of
>> them. One given OS might want to use two or all four slots.
>>
>>
> Got it, I will fix it in v6 patch.
> 

We made an internal discussion about this, current approach of the
bindings implies that one dts node is for one slot only, and the slot
property is integer, not a list of slots. Whoever wants to use 2 or more
slots, should put more nodes in the dts, one for each slot. Therefor,
there is no point in allowing more than one interrupt in one node. Or,
if we do, for the sake of allowing one OS to use more slots within the
same dts node, we must also allow more power domains, in any case, we do
not have multiple slots functionality in the driver anymore.

Best regards,
Ming

>>>     power-domains:
>>>       description:
>>>         List of phandle and PM domain specifier as documented in
>>>         Documentation/devicetree/bindings/power/power_domain.txt
>>> -    minItems: 2               # Wrapper and 1 slot
>>> -    maxItems: 5               # Wrapper and 4 slots
>>> +    minItems: 1               # Mixed power domain
>>> +    maxItems: 2               # Wrapper and 1 slot
>>> +
>>> +  nxp,slot:
>>> +    $ref: /schemas/types.yaml#/definitions/uint32
>>> +    description:
>>> +      Integer number of slot index used. This IP includes a jpeg 
>>> wrapper, the
>>> +      wrapper is working on descriptor based manner. It supports up 
>>> to 4 slots,
>>> +      each slot can have its own chained descriptors. The purpose is 
>>> to share
>>> +      the jpeg engine across multiple VMS and os. We use this 
>>> property to
>>> +      assign a single slot. If not specified, 0 is used by default.
>>> +    minimum: 0
>>> +    maximum: 3
>>
>> default: 0
>>
> Got it.
> 
> Best regards,
> Ming
>>
>>
>> Best regards,
>> Krzysztof
>>

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ