2018-12-29 01:33:28

by Paweł Chmiel

[permalink] [raw]
Subject: [PATCH v2 0/3] drm/exynos: rotator: Add support for s5pv210

This patchset adds support for s5pv210 soc, into
Samsung DRM Rotator driver. Currently only NV12 and XRGB8888 formats
are supported.

It was tested by using simple tool from
https://www.spinics.net/lists/linux-samsung-soc/msg60498.html

Changes from v1:
- fixed order of chipsets in documentation and removed ordering
from it

Paweł Chmiel (3):
drm/exynos: rotator: Add support for s5pv210
dt-bindings: gpu: samsung-rotator: Document s5pv210 support
ARM: dts: s5pv210: Add node for exynos-rotator

.../bindings/gpu/samsung-rotator.txt | 7 +++---
arch/arm/boot/dts/s5pv210.dtsi | 9 ++++++++
drivers/gpu/drm/exynos/exynos_drm_rotator.c | 23 +++++++++++++++++++
3 files changed, 36 insertions(+), 3 deletions(-)

--
2.17.1



2018-12-29 01:32:37

by Paweł Chmiel

[permalink] [raw]
Subject: [PATCH v2 1/3] drm/exynos: rotator: Add support for s5pv210

This commit adds support for s5pv210.
Currently only NV12 and XRGB8888 formats are supported.
It was tested by using tool from
https://www.spinics.net/lists/linux-samsung-soc/msg60498.html

Signed-off-by: Paweł Chmiel <[email protected]>
---
drivers/gpu/drm/exynos/exynos_drm_rotator.c | 23 +++++++++++++++++++++
1 file changed, 23 insertions(+)

diff --git a/drivers/gpu/drm/exynos/exynos_drm_rotator.c b/drivers/gpu/drm/exynos/exynos_drm_rotator.c
index 8d67b2a54be3..05abfed6f7f8 100644
--- a/drivers/gpu/drm/exynos/exynos_drm_rotator.c
+++ b/drivers/gpu/drm/exynos/exynos_drm_rotator.c
@@ -356,6 +356,11 @@ static int rotator_runtime_resume(struct device *dev)
}
#endif

+static const struct drm_exynos_ipp_limit rotator_s5pv210_rbg888_limits[] = {
+ { IPP_SIZE_LIMIT(BUFFER, .h = { 8, SZ_16K }, .v = { 8, SZ_16K }) },
+ { IPP_SIZE_LIMIT(AREA, .h.align = 2, .v.align = 2) },
+};
+
static const struct drm_exynos_ipp_limit rotator_4210_rbg888_limits[] = {
{ IPP_SIZE_LIMIT(BUFFER, .h = { 8, SZ_16K }, .v = { 8, SZ_16K }) },
{ IPP_SIZE_LIMIT(AREA, .h.align = 4, .v.align = 4) },
@@ -371,6 +376,11 @@ static const struct drm_exynos_ipp_limit rotator_5250_rbg888_limits[] = {
{ IPP_SIZE_LIMIT(AREA, .h.align = 2, .v.align = 2) },
};

+static const struct drm_exynos_ipp_limit rotator_s5pv210_yuv_limits[] = {
+ { IPP_SIZE_LIMIT(BUFFER, .h = { 32, SZ_64K }, .v = { 32, SZ_64K }) },
+ { IPP_SIZE_LIMIT(AREA, .h.align = 8, .v.align = 8) },
+};
+
static const struct drm_exynos_ipp_limit rotator_4210_yuv_limits[] = {
{ IPP_SIZE_LIMIT(BUFFER, .h = { 32, SZ_64K }, .v = { 32, SZ_64K }) },
{ IPP_SIZE_LIMIT(AREA, .h.align = 8, .v.align = 8) },
@@ -381,6 +391,11 @@ static const struct drm_exynos_ipp_limit rotator_4412_yuv_limits[] = {
{ IPP_SIZE_LIMIT(AREA, .h.align = 8, .v.align = 8) },
};

+static const struct exynos_drm_ipp_formats rotator_s5pv210_formats[] = {
+ { IPP_SRCDST_FORMAT(XRGB8888, rotator_s5pv210_rbg888_limits) },
+ { IPP_SRCDST_FORMAT(NV12, rotator_s5pv210_yuv_limits) },
+};
+
static const struct exynos_drm_ipp_formats rotator_4210_formats[] = {
{ IPP_SRCDST_FORMAT(XRGB8888, rotator_4210_rbg888_limits) },
{ IPP_SRCDST_FORMAT(NV12, rotator_4210_yuv_limits) },
@@ -396,6 +411,11 @@ static const struct exynos_drm_ipp_formats rotator_5250_formats[] = {
{ IPP_SRCDST_FORMAT(NV12, rotator_4412_yuv_limits) },
};

+static const struct rot_variant rotator_s5pv210_data = {
+ .formats = rotator_s5pv210_formats,
+ .num_formats = ARRAY_SIZE(rotator_s5pv210_formats),
+};
+
static const struct rot_variant rotator_4210_data = {
.formats = rotator_4210_formats,
.num_formats = ARRAY_SIZE(rotator_4210_formats),
@@ -413,6 +433,9 @@ static const struct rot_variant rotator_5250_data = {

static const struct of_device_id exynos_rotator_match[] = {
{
+ .compatible = "samsung,s5pv210-rotator",
+ .data = &rotator_s5pv210_data,
+ }, {
.compatible = "samsung,exynos4210-rotator",
.data = &rotator_4210_data,
}, {
--
2.17.1


2018-12-29 04:15:48

by Paweł Chmiel

[permalink] [raw]
Subject: [PATCH v2 2/3] dt-bindings: gpu: samsung-rotator: Document s5pv210 support

This commit documents new compatible for s5pv210 soc,
which will be also supported by this driver.

Signed-off-by: Paweł Chmiel <[email protected]>
---
Changes from v1:
- Removed list enumeration
- Placed s5pv210 at beginning of list (it's the oldest chipset)
---
Documentation/devicetree/bindings/gpu/samsung-rotator.txt | 7 ++++---
1 file changed, 4 insertions(+), 3 deletions(-)

diff --git a/Documentation/devicetree/bindings/gpu/samsung-rotator.txt b/Documentation/devicetree/bindings/gpu/samsung-rotator.txt
index 82cd1ed0be93..3aca2578da0b 100644
--- a/Documentation/devicetree/bindings/gpu/samsung-rotator.txt
+++ b/Documentation/devicetree/bindings/gpu/samsung-rotator.txt
@@ -2,9 +2,10 @@

Required properties:
- compatible : value should be one of the following:
- (a) "samsung,exynos4210-rotator" for Rotator IP in Exynos4210
- (b) "samsung,exynos4212-rotator" for Rotator IP in Exynos4212/4412
- (c) "samsung,exynos5250-rotator" for Rotator IP in Exynos5250
+ * "samsung,s5pv210-rotator" for Rotator IP in S5PV210
+ * "samsung,exynos4210-rotator" for Rotator IP in Exynos4210
+ * "samsung,exynos4212-rotator" for Rotator IP in Exynos4212/4412
+ * "samsung,exynos5250-rotator" for Rotator IP in Exynos5250

- reg : Physical base address of the IP registers and length of memory
mapped region.
--
2.17.1


2018-12-29 04:15:48

by Paweł Chmiel

[permalink] [raw]
Subject: [PATCH v2 3/3] ARM: dts: s5pv210: Add node for exynos-rotator

This commit adds node for Exynos Rorator device,
so it can be used on all s5pv210 based devices.

Signed-off-by: Paweł Chmiel <[email protected]>
---
arch/arm/boot/dts/s5pv210.dtsi | 9 +++++++++
1 file changed, 9 insertions(+)

diff --git a/arch/arm/boot/dts/s5pv210.dtsi b/arch/arm/boot/dts/s5pv210.dtsi
index 75f454a210d6..a5463003c7f6 100644
--- a/arch/arm/boot/dts/s5pv210.dtsi
+++ b/arch/arm/boot/dts/s5pv210.dtsi
@@ -542,6 +542,15 @@
#dma-requests = <1>;
};

+ rotator: rotator@fa300000 {
+ compatible = "samsung,s5pv210-rotator";
+ reg = <0xfa300000 0x1000>;
+ interrupt-parent = <&vic2>;
+ interrupts = <4>;
+ clocks = <&clocks CLK_ROTATOR>;
+ clock-names = "rotator";
+ };
+
i2c1: i2c@fab00000 {
compatible = "samsung,s3c2440-i2c";
reg = <0xfab00000 0x1000>;
--
2.17.1


2018-12-29 10:12:16

by Rob Herring (Arm)

[permalink] [raw]
Subject: Re: [PATCH v2 2/3] dt-bindings: gpu: samsung-rotator: Document s5pv210 support

On Fri, 28 Dec 2018 16:19:03 +0100, =?UTF-8?q?Pawe=C5=82=20Chmiel?= wrote:
> This commit documents new compatible for s5pv210 soc,
> which will be also supported by this driver.
>
> Signed-off-by: Paweł Chmiel <[email protected]>
> ---
> Changes from v1:
> - Removed list enumeration
> - Placed s5pv210 at beginning of list (it's the oldest chipset)
> ---
> Documentation/devicetree/bindings/gpu/samsung-rotator.txt | 7 ++++---
> 1 file changed, 4 insertions(+), 3 deletions(-)
>

Reviewed-by: Rob Herring <[email protected]>

2018-12-29 10:31:53

by Krzysztof Kozlowski

[permalink] [raw]
Subject: Re: [PATCH v2 2/3] dt-bindings: gpu: samsung-rotator: Document s5pv210 support

On Fri, 28 Dec 2018 at 16:19, Paweł Chmiel
<[email protected]> wrote:
>
> This commit documents new compatible for s5pv210 soc,
> which will be also supported by this driver.
>
> Signed-off-by: Paweł Chmiel <[email protected]>
> ---
> Changes from v1:
> - Removed list enumeration
> - Placed s5pv210 at beginning of list (it's the oldest chipset)
> ---
> Documentation/devicetree/bindings/gpu/samsung-rotator.txt | 7 ++++---
> 1 file changed, 4 insertions(+), 3 deletions(-)

Acked-by: Krzysztof Kozlowski <[email protected]>

Best regards,
Krzysztof

2019-01-07 20:30:47

by Krzysztof Kozlowski

[permalink] [raw]
Subject: Re: [PATCH v2 3/3] ARM: dts: s5pv210: Add node for exynos-rotator

On Fri, Dec 28, 2018 at 04:19:04PM +0100, Paweł Chmiel wrote:
> This commit adds node for Exynos Rorator device,
> so it can be used on all s5pv210 based devices.
>
> Signed-off-by: Paweł Chmiel <[email protected]>
> ---
> arch/arm/boot/dts/s5pv210.dtsi | 9 +++++++++

Thanks, applied.

Best regards,
Krzysztof