* [PATCH] [media] exynos-gsc: Adding tiled multi-planar format to G-Scaler
@ 2012-11-07 6:37 Shaik Ameer Basha
2012-11-19 21:35 ` Sylwester Nawrocki
0 siblings, 1 reply; 3+ messages in thread
From: Shaik Ameer Basha @ 2012-11-07 6:37 UTC (permalink / raw)
To: linux-media; +Cc: s.nawrocki, kgene.kim, shaik.samsung
Adding V4L2_PIX_FMT_NV12MT_16X16 to G-Scaler supported formats.
If the output or input format is V4L2_PIX_FMT_NV12MT_16X16, configure
G-Scaler to use GSC_IN_TILE_MODE.
Signed-off-by: Shaik Ameer Basha <shaik.ameer@samsung.com>
---
drivers/media/platform/exynos-gsc/gsc-core.c | 9 +++++++++
drivers/media/platform/exynos-gsc/gsc-core.h | 5 +++++
drivers/media/platform/exynos-gsc/gsc-regs.c | 6 ++++++
3 files changed, 20 insertions(+), 0 deletions(-)
diff --git a/drivers/media/platform/exynos-gsc/gsc-core.c b/drivers/media/platform/exynos-gsc/gsc-core.c
index cc7b218..00f1013 100644
--- a/drivers/media/platform/exynos-gsc/gsc-core.c
+++ b/drivers/media/platform/exynos-gsc/gsc-core.c
@@ -185,6 +185,15 @@ static const struct gsc_fmt gsc_formats[] = {
.corder = GSC_CRCB,
.num_planes = 3,
.num_comp = 3,
+ }, {
+ .name = "YUV 4:2:0 non-contig. 2p, Y/CbCr, tiled",
+ .pixelformat = V4L2_PIX_FMT_NV12MT_16X16,
+ .depth = { 8, 4 },
+ .color = GSC_YUV420,
+ .yorder = GSC_LSB_Y,
+ .corder = GSC_CBCR,
+ .num_planes = 2,
+ .num_comp = 2,
}
};
diff --git a/drivers/media/platform/exynos-gsc/gsc-core.h b/drivers/media/platform/exynos-gsc/gsc-core.h
index 5f157ef..cc19bba 100644
--- a/drivers/media/platform/exynos-gsc/gsc-core.h
+++ b/drivers/media/platform/exynos-gsc/gsc-core.h
@@ -427,6 +427,11 @@ static inline void gsc_ctx_state_lock_clear(u32 state, struct gsc_ctx *ctx)
spin_unlock_irqrestore(&ctx->gsc_dev->slock, flags);
}
+static inline int is_tiled(const struct gsc_fmt *fmt)
+{
+ return fmt->pixelformat == V4L2_PIX_FMT_NV12MT_16X16;
+}
+
static inline void gsc_hw_enable_control(struct gsc_dev *dev, bool on)
{
u32 cfg = readl(dev->regs + GSC_ENABLE);
diff --git a/drivers/media/platform/exynos-gsc/gsc-regs.c b/drivers/media/platform/exynos-gsc/gsc-regs.c
index 0146b35..6f5b5a4 100644
--- a/drivers/media/platform/exynos-gsc/gsc-regs.c
+++ b/drivers/media/platform/exynos-gsc/gsc-regs.c
@@ -214,6 +214,9 @@ void gsc_hw_set_in_image_format(struct gsc_ctx *ctx)
break;
}
+ if (is_tiled(frame->fmt))
+ cfg |= GSC_IN_TILE_C_16x8 | GSC_IN_TILE_MODE;
+
writel(cfg, dev->regs + GSC_IN_CON);
}
@@ -334,6 +337,9 @@ void gsc_hw_set_out_image_format(struct gsc_ctx *ctx)
break;
}
+ if (is_tiled(frame->fmt))
+ cfg |= GSC_OUT_TILE_C_16x8 | GSC_OUT_TILE_MODE;
+
end_set:
writel(cfg, dev->regs + GSC_OUT_CON);
}
--
1.7.0.4
^ permalink raw reply related [flat|nested] 3+ messages in thread* Re: [PATCH] [media] exynos-gsc: Adding tiled multi-planar format to G-Scaler
2012-11-07 6:37 [PATCH] [media] exynos-gsc: Adding tiled multi-planar format to G-Scaler Shaik Ameer Basha
@ 2012-11-19 21:35 ` Sylwester Nawrocki
2012-11-20 11:42 ` Shaik Ameer Basha
0 siblings, 1 reply; 3+ messages in thread
From: Sylwester Nawrocki @ 2012-11-19 21:35 UTC (permalink / raw)
To: Shaik Ameer Basha; +Cc: linux-media, s.nawrocki, kgene.kim, shaik.samsung
Hi Shaik,
On 11/07/2012 07:37 AM, Shaik Ameer Basha wrote:
> Adding V4L2_PIX_FMT_NV12MT_16X16 to G-Scaler supported formats.
> If the output or input format is V4L2_PIX_FMT_NV12MT_16X16, configure
> G-Scaler to use GSC_IN_TILE_MODE.
>
> Signed-off-by: Shaik Ameer Basha<shaik.ameer@samsung.com>
> ---
> drivers/media/platform/exynos-gsc/gsc-core.c | 9 +++++++++
> drivers/media/platform/exynos-gsc/gsc-core.h | 5 +++++
> drivers/media/platform/exynos-gsc/gsc-regs.c | 6 ++++++
> 3 files changed, 20 insertions(+), 0 deletions(-)
>
> diff --git a/drivers/media/platform/exynos-gsc/gsc-core.c b/drivers/media/platform/exynos-gsc/gsc-core.c
> index cc7b218..00f1013 100644
> --- a/drivers/media/platform/exynos-gsc/gsc-core.c
> +++ b/drivers/media/platform/exynos-gsc/gsc-core.c
> @@ -185,6 +185,15 @@ static const struct gsc_fmt gsc_formats[] = {
> .corder = GSC_CRCB,
> .num_planes = 3,
> .num_comp = 3,
> + }, {
> + .name = "YUV 4:2:0 non-contig. 2p, Y/CbCr, tiled",
I have applied this patch to my tree for v3.8, and I've shortened this
description like this
.name = "YUV 4:2:0 n.c. 2p, Y/CbCr tiled",
so it fits in 32 char buffer.
There are some too long format descriptions in the driver already.
Please check output of VIDIOC_ENUM_FMT ioctl, for instance with
'v4l2-ctl --list-fmt'.
> + .pixelformat = V4L2_PIX_FMT_NV12MT_16X16,
> + .depth = { 8, 4 },
> + .color = GSC_YUV420,
> + .yorder = GSC_LSB_Y,
> + .corder = GSC_CBCR,
> + .num_planes = 2,
> + .num_comp = 2,
> }
> };
>
> diff --git a/drivers/media/platform/exynos-gsc/gsc-core.h b/drivers/media/platform/exynos-gsc/gsc-core.h
> index 5f157ef..cc19bba 100644
> --- a/drivers/media/platform/exynos-gsc/gsc-core.h
> +++ b/drivers/media/platform/exynos-gsc/gsc-core.h
> @@ -427,6 +427,11 @@ static inline void gsc_ctx_state_lock_clear(u32 state, struct gsc_ctx *ctx)
> spin_unlock_irqrestore(&ctx->gsc_dev->slock, flags);
> }
>
> +static inline int is_tiled(const struct gsc_fmt *fmt)
> +{
> + return fmt->pixelformat == V4L2_PIX_FMT_NV12MT_16X16;
> +}
> +
> static inline void gsc_hw_enable_control(struct gsc_dev *dev, bool on)
> {
> u32 cfg = readl(dev->regs + GSC_ENABLE);
> diff --git a/drivers/media/platform/exynos-gsc/gsc-regs.c b/drivers/media/platform/exynos-gsc/gsc-regs.c
> index 0146b35..6f5b5a4 100644
> --- a/drivers/media/platform/exynos-gsc/gsc-regs.c
> +++ b/drivers/media/platform/exynos-gsc/gsc-regs.c
> @@ -214,6 +214,9 @@ void gsc_hw_set_in_image_format(struct gsc_ctx *ctx)
> break;
> }
>
> + if (is_tiled(frame->fmt))
> + cfg |= GSC_IN_TILE_C_16x8 | GSC_IN_TILE_MODE;
> +
> writel(cfg, dev->regs + GSC_IN_CON);
> }
>
> @@ -334,6 +337,9 @@ void gsc_hw_set_out_image_format(struct gsc_ctx *ctx)
> break;
> }
>
> + if (is_tiled(frame->fmt))
> + cfg |= GSC_OUT_TILE_C_16x8 | GSC_OUT_TILE_MODE;
> +
> end_set:
> writel(cfg, dev->regs + GSC_OUT_CON);
> }
Thanks,
Sylwester
^ permalink raw reply [flat|nested] 3+ messages in thread* Re: [PATCH] [media] exynos-gsc: Adding tiled multi-planar format to G-Scaler
2012-11-19 21:35 ` Sylwester Nawrocki
@ 2012-11-20 11:42 ` Shaik Ameer Basha
0 siblings, 0 replies; 3+ messages in thread
From: Shaik Ameer Basha @ 2012-11-20 11:42 UTC (permalink / raw)
To: Sylwester Nawrocki; +Cc: Shaik Ameer Basha, linux-media, s.nawrocki, kgene.kim
Hi Sylwester,
On Tue, Nov 20, 2012 at 3:05 AM, Sylwester Nawrocki
<sylvester.nawrocki@gmail.com> wrote:
> Hi Shaik,
>
>
> On 11/07/2012 07:37 AM, Shaik Ameer Basha wrote:
>>
>> Adding V4L2_PIX_FMT_NV12MT_16X16 to G-Scaler supported formats.
>> If the output or input format is V4L2_PIX_FMT_NV12MT_16X16, configure
>> G-Scaler to use GSC_IN_TILE_MODE.
>>
>> Signed-off-by: Shaik Ameer Basha<shaik.ameer@samsung.com>
>> ---
>> drivers/media/platform/exynos-gsc/gsc-core.c | 9 +++++++++
>> drivers/media/platform/exynos-gsc/gsc-core.h | 5 +++++
>> drivers/media/platform/exynos-gsc/gsc-regs.c | 6 ++++++
>> 3 files changed, 20 insertions(+), 0 deletions(-)
>>
>> diff --git a/drivers/media/platform/exynos-gsc/gsc-core.c
>> b/drivers/media/platform/exynos-gsc/gsc-core.c
>> index cc7b218..00f1013 100644
>> --- a/drivers/media/platform/exynos-gsc/gsc-core.c
>> +++ b/drivers/media/platform/exynos-gsc/gsc-core.c
>> @@ -185,6 +185,15 @@ static const struct gsc_fmt gsc_formats[] = {
>> .corder = GSC_CRCB,
>> .num_planes = 3,
>> .num_comp = 3,
>> + }, {
>> + .name = "YUV 4:2:0 non-contig. 2p, Y/CbCr,
>> tiled",
>
>
> I have applied this patch to my tree for v3.8, and I've shortened this
> description like this
>
> .name = "YUV 4:2:0 n.c. 2p, Y/CbCr tiled",
>
> so it fits in 32 char buffer.
Thanks and that should be fine.
>
> There are some too long format descriptions in the driver already.
> Please check output of VIDIOC_ENUM_FMT ioctl, for instance with
> 'v4l2-ctl --list-fmt'.
>
>
>> + .pixelformat = V4L2_PIX_FMT_NV12MT_16X16,
>> + .depth = { 8, 4 },
>> + .color = GSC_YUV420,
>> + .yorder = GSC_LSB_Y,
>> + .corder = GSC_CBCR,
>> + .num_planes = 2,
>> + .num_comp = 2,
>> }
>> };
>>
>> diff --git a/drivers/media/platform/exynos-gsc/gsc-core.h
>> b/drivers/media/platform/exynos-gsc/gsc-core.h
>> index 5f157ef..cc19bba 100644
>> --- a/drivers/media/platform/exynos-gsc/gsc-core.h
>> +++ b/drivers/media/platform/exynos-gsc/gsc-core.h
>> @@ -427,6 +427,11 @@ static inline void gsc_ctx_state_lock_clear(u32
>> state, struct gsc_ctx *ctx)
>> spin_unlock_irqrestore(&ctx->gsc_dev->slock, flags);
>> }
>>
>> +static inline int is_tiled(const struct gsc_fmt *fmt)
>> +{
>> + return fmt->pixelformat == V4L2_PIX_FMT_NV12MT_16X16;
>> +}
>> +
>> static inline void gsc_hw_enable_control(struct gsc_dev *dev, bool on)
>> {
>> u32 cfg = readl(dev->regs + GSC_ENABLE);
>> diff --git a/drivers/media/platform/exynos-gsc/gsc-regs.c
>> b/drivers/media/platform/exynos-gsc/gsc-regs.c
>> index 0146b35..6f5b5a4 100644
>> --- a/drivers/media/platform/exynos-gsc/gsc-regs.c
>> +++ b/drivers/media/platform/exynos-gsc/gsc-regs.c
>> @@ -214,6 +214,9 @@ void gsc_hw_set_in_image_format(struct gsc_ctx *ctx)
>> break;
>> }
>>
>> + if (is_tiled(frame->fmt))
>> + cfg |= GSC_IN_TILE_C_16x8 | GSC_IN_TILE_MODE;
>> +
>> writel(cfg, dev->regs + GSC_IN_CON);
>> }
>>
>> @@ -334,6 +337,9 @@ void gsc_hw_set_out_image_format(struct gsc_ctx *ctx)
>> break;
>> }
>>
>> + if (is_tiled(frame->fmt))
>> + cfg |= GSC_OUT_TILE_C_16x8 | GSC_OUT_TILE_MODE;
>> +
>> end_set:
>> writel(cfg, dev->regs + GSC_OUT_CON);
>> }
>
>
> Thanks,
> Sylwester
^ permalink raw reply [flat|nested] 3+ messages in thread
end of thread, other threads:[~2012-11-20 11:42 UTC | newest]
Thread overview: 3+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2012-11-07 6:37 [PATCH] [media] exynos-gsc: Adding tiled multi-planar format to G-Scaler Shaik Ameer Basha
2012-11-19 21:35 ` Sylwester Nawrocki
2012-11-20 11:42 ` Shaik Ameer Basha
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox