From: "Ming Qian (OSS)" <ming.qian@oss.nxp.com>
To: mirela.rabulea@oss.nxp.com, robh+dt@kernel.org, shawnguo@kernel.org
Cc: krzysztof.kozlowski+dt@linaro.org, conor+dt@kernel.org,
mchehab@kernel.org, hverkuil-cisco@xs4all.nl,
s.hauer@pengutronix.de, kernel@pengutronix.de,
festevam@gmail.com, xiahong.bao@nxp.com, eagle.zhou@nxp.com,
tao.jiang_2@nxp.com, ming.qian@nxp.com, linux-imx@nxp.com,
devicetree@vger.kernel.org, linux-media@vger.kernel.org,
linux-kernel@vger.kernel.org,
linux-arm-kernel@lists.infradead.org
Subject: [PATCH v5 1/3] dt-bindings: media: imx-jpeg: Assign slot for imx jpeg encoder/decoder
Date: Thu, 19 Oct 2023 10:48:00 +0800 [thread overview]
Message-ID: <c7995af1f91733626ff4e86f0575dea5d2ff0bb8.1697597713.git.ming.qian@nxp.com> (raw)
In-Reply-To: <cover.1697597713.git.ming.qian@nxp.com>
From: Ming Qian <ming.qian@nxp.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@nxp.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
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
required:
- compatible
@@ -62,28 +70,18 @@ examples:
jpegdec: jpegdec@58400000 {
compatible = "nxp,imx8qxp-jpgdec";
reg = <0x58400000 0x00050000 >;
- interrupts = <GIC_SPI 309 IRQ_TYPE_LEVEL_HIGH>,
- <GIC_SPI 310 IRQ_TYPE_LEVEL_HIGH>,
- <GIC_SPI 311 IRQ_TYPE_LEVEL_HIGH>,
- <GIC_SPI 312 IRQ_TYPE_LEVEL_HIGH>;
+ interrupts = <GIC_SPI 309 IRQ_TYPE_LEVEL_HIGH>;
power-domains = <&pd IMX_SC_R_MJPEG_DEC_MP>,
- <&pd IMX_SC_R_MJPEG_DEC_S0>,
- <&pd IMX_SC_R_MJPEG_DEC_S1>,
- <&pd IMX_SC_R_MJPEG_DEC_S2>,
- <&pd IMX_SC_R_MJPEG_DEC_S3>;
+ <&pd IMX_SC_R_MJPEG_DEC_S0>;
+ nxp,slot = <0>;
};
jpegenc: jpegenc@58450000 {
compatible = "nxp,imx8qm-jpgenc", "nxp,imx8qxp-jpgenc";
reg = <0x58450000 0x00050000 >;
- interrupts = <GIC_SPI 305 IRQ_TYPE_LEVEL_HIGH>,
- <GIC_SPI 306 IRQ_TYPE_LEVEL_HIGH>,
- <GIC_SPI 307 IRQ_TYPE_LEVEL_HIGH>,
- <GIC_SPI 308 IRQ_TYPE_LEVEL_HIGH>;
+ interrupts = <GIC_SPI 305 IRQ_TYPE_LEVEL_HIGH>;
power-domains = <&pd IMX_SC_R_MJPEG_ENC_MP>,
- <&pd IMX_SC_R_MJPEG_ENC_S0>,
- <&pd IMX_SC_R_MJPEG_ENC_S1>,
- <&pd IMX_SC_R_MJPEG_ENC_S2>,
- <&pd IMX_SC_R_MJPEG_ENC_S3>;
+ <&pd IMX_SC_R_MJPEG_ENC_S0>;
+ nxp,slot = <0>;
};
...
--
2.38.1
next prev parent reply other threads:[~2023-10-19 2:48 UTC|newest]
Thread overview: 11+ messages / expand[flat|nested] mbox.gz Atom feed top
2023-10-19 2:47 [PATCH v5 0/3] media: imx-jpeg: Assign a single slot Ming Qian (OSS)
2023-10-19 2:48 ` Ming Qian (OSS) [this message]
2023-10-19 7:19 ` [PATCH v5 1/3] dt-bindings: media: imx-jpeg: Assign slot for imx jpeg encoder/decoder Krzysztof Kozlowski
2023-10-19 7:47 ` ming qian
2023-10-20 5:38 ` ming qian
2023-10-20 11:14 ` Krzysztof Kozlowski
2023-10-19 2:48 ` [PATCH v5 2/3] arm64: dts: imx8-ss-img: Add vendor prefix in slot property Ming Qian (OSS)
2023-10-19 2:48 ` [PATCH v5 3/3] media: imx-jpeg: " Ming Qian (OSS)
2023-10-19 7:14 ` Krzysztof Kozlowski
2023-10-19 7:41 ` ming qian
2023-10-20 11:12 ` Krzysztof Kozlowski
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=c7995af1f91733626ff4e86f0575dea5d2ff0bb8.1697597713.git.ming.qian@nxp.com \
--to=ming.qian@oss.nxp.com \
--cc=conor+dt@kernel.org \
--cc=devicetree@vger.kernel.org \
--cc=eagle.zhou@nxp.com \
--cc=festevam@gmail.com \
--cc=hverkuil-cisco@xs4all.nl \
--cc=kernel@pengutronix.de \
--cc=krzysztof.kozlowski+dt@linaro.org \
--cc=linux-arm-kernel@lists.infradead.org \
--cc=linux-imx@nxp.com \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-media@vger.kernel.org \
--cc=mchehab@kernel.org \
--cc=ming.qian@nxp.com \
--cc=mirela.rabulea@oss.nxp.com \
--cc=robh+dt@kernel.org \
--cc=s.hauer@pengutronix.de \
--cc=shawnguo@kernel.org \
--cc=tao.jiang_2@nxp.com \
--cc=xiahong.bao@nxp.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox
all inboxes | Powered by JetHome®