2020-04-26 02:32:43

by Jonathan Bakker

[permalink] [raw]
Subject: [PATCH 06/11] media: exynos4-is: Properly set JPEG options when not using CSIS

Commit ee7160e57c98 ("[media] s5p-fimc: Add support for JPEG capture")
added support for JPEG capture, but missed setting a register when the
CSIS device wasn't in use.

Signed-off-by: Jonathan Bakker <[email protected]>
---
drivers/media/platform/exynos4-is/fimc-reg.c | 7 +++++++
1 file changed, 7 insertions(+)

diff --git a/drivers/media/platform/exynos4-is/fimc-reg.c b/drivers/media/platform/exynos4-is/fimc-reg.c
index 5ce2bdebd424..269a98fca1e8 100644
--- a/drivers/media/platform/exynos4-is/fimc-reg.c
+++ b/drivers/media/platform/exynos4-is/fimc-reg.c
@@ -606,6 +606,11 @@ int fimc_hw_set_camera_source(struct fimc_dev *fimc,
switch (source->fimc_bus_type) {
case FIMC_BUS_TYPE_ITU_601:
case FIMC_BUS_TYPE_ITU_656:
+ if (fimc_fmt_is_user_defined(f->fmt->color)) {
+ cfg |= FIMC_REG_CISRCFMT_ITU601_8BIT;
+ break;
+ }
+
for (i = 0; i < ARRAY_SIZE(pix_desc); i++) {
if (vc->ci_fmt.code == pix_desc[i].pixelcode) {
cfg = pix_desc[i].cisrcfmt;
@@ -707,6 +712,8 @@ int fimc_hw_set_camera_type(struct fimc_dev *fimc,
case FIMC_BUS_TYPE_ITU_601...FIMC_BUS_TYPE_ITU_656:
if (source->mux_id == 0) /* ITU-A, ITU-B: 0, 1 */
cfg |= FIMC_REG_CIGCTRL_SELCAM_ITU_A;
+ if (vid_cap->ci_fmt.code == MEDIA_BUS_FMT_JPEG_1X8)
+ cfg |= FIMC_REG_CIGCTRL_CAM_JPEG;
break;
case FIMC_BUS_TYPE_LCD_WRITEBACK_A:
cfg |= FIMC_REG_CIGCTRL_CAMIF_SELWB;
--
2.20.1


2020-07-07 18:24:04

by Tomasz Figa

[permalink] [raw]
Subject: Re: [PATCH 06/11] media: exynos4-is: Properly set JPEG options when not using CSIS

Hi Jonathan,

On Sat, Apr 25, 2020 at 07:26:45PM -0700, Jonathan Bakker wrote:
> Commit ee7160e57c98 ("[media] s5p-fimc: Add support for JPEG capture")
> added support for JPEG capture, but missed setting a register when the
> CSIS device wasn't in use.

nit: Since this isn't really about using the CSIS device or not, but
rather about the interface that the sensor is connected with, could we
instead say "when a parallel interface is used"?

>
> Signed-off-by: Jonathan Bakker <[email protected]>
> ---
> drivers/media/platform/exynos4-is/fimc-reg.c | 7 +++++++
> 1 file changed, 7 insertions(+)
>
> diff --git a/drivers/media/platform/exynos4-is/fimc-reg.c b/drivers/media/platform/exynos4-is/fimc-reg.c
> index 5ce2bdebd424..269a98fca1e8 100644
> --- a/drivers/media/platform/exynos4-is/fimc-reg.c
> +++ b/drivers/media/platform/exynos4-is/fimc-reg.c
> @@ -606,6 +606,11 @@ int fimc_hw_set_camera_source(struct fimc_dev *fimc,
> switch (source->fimc_bus_type) {
> case FIMC_BUS_TYPE_ITU_601:
> case FIMC_BUS_TYPE_ITU_656:
> + if (fimc_fmt_is_user_defined(f->fmt->color)) {
> + cfg |= FIMC_REG_CISRCFMT_ITU601_8BIT;
> + break;
> + }
> +
> for (i = 0; i < ARRAY_SIZE(pix_desc); i++) {
> if (vc->ci_fmt.code == pix_desc[i].pixelcode) {
> cfg = pix_desc[i].cisrcfmt;
> @@ -707,6 +712,8 @@ int fimc_hw_set_camera_type(struct fimc_dev *fimc,
> case FIMC_BUS_TYPE_ITU_601...FIMC_BUS_TYPE_ITU_656:
> if (source->mux_id == 0) /* ITU-A, ITU-B: 0, 1 */
> cfg |= FIMC_REG_CIGCTRL_SELCAM_ITU_A;
> + if (vid_cap->ci_fmt.code == MEDIA_BUS_FMT_JPEG_1X8)
> + cfg |= FIMC_REG_CIGCTRL_CAM_JPEG;

Should we also handle MEDIA_BUS_FMT_S5C_UYVY_JPEG_1X8 as in the CSI
case? The S5C73M3 sensor supports the parallel interface as well.

Best regards,
Tomasz

2020-07-08 15:48:59

by Sylwester Nawrocki

[permalink] [raw]
Subject: Re: [PATCH 06/11] media: exynos4-is: Properly set JPEG options when not using CSIS

Hi,

On 07.07.2020 20:23, Tomasz Figa wrote:
> On Sat, Apr 25, 2020 at 07:26:45PM -0700, Jonathan Bakker wrote:
>> Commit ee7160e57c98 ("[media] s5p-fimc: Add support for JPEG capture")
>> added support for JPEG capture, but missed setting a register when the
>> CSIS device wasn't in use.

> nit: Since this isn't really about using the CSIS device or not, but
> rather about the interface that the sensor is connected with, could we
> instead say "when a parallel interface is used"?

>> Signed-off-by: Jonathan Bakker <[email protected]>
>> ---
>> drivers/media/platform/exynos4-is/fimc-reg.c | 7 +++++++
>> 1 file changed, 7 insertions(+)
>>
>> diff --git a/drivers/media/platform/exynos4-is/fimc-reg.c b/drivers/media/platform/exynos4-is/fimc-reg.c
>> index 5ce2bdebd424..269a98fca1e8 100644
>> --- a/drivers/media/platform/exynos4-is/fimc-reg.c
>> +++ b/drivers/media/platform/exynos4-is/fimc-reg.c
>> @@ -606,6 +606,11 @@ int fimc_hw_set_camera_source(struct fimc_dev *fimc,
>> switch (source->fimc_bus_type) {
>> case FIMC_BUS_TYPE_ITU_601:
>> case FIMC_BUS_TYPE_ITU_656:
>> + if (fimc_fmt_is_user_defined(f->fmt->color)) {
>> + cfg |= FIMC_REG_CISRCFMT_ITU601_8BIT;
>> + break;
>> + }
>> +
>> for (i = 0; i < ARRAY_SIZE(pix_desc); i++) {
>> if (vc->ci_fmt.code == pix_desc[i].pixelcode) {
>> cfg = pix_desc[i].cisrcfmt;
>> @@ -707,6 +712,8 @@ int fimc_hw_set_camera_type(struct fimc_dev *fimc,
>> case FIMC_BUS_TYPE_ITU_601...FIMC_BUS_TYPE_ITU_656:
>> if (source->mux_id == 0) /* ITU-A, ITU-B: 0, 1 */
>> cfg |= FIMC_REG_CIGCTRL_SELCAM_ITU_A;
>> + if (vid_cap->ci_fmt.code == MEDIA_BUS_FMT_JPEG_1X8)
>> + cfg |= FIMC_REG_CIGCTRL_CAM_JPEG;
>
> Should we also handle MEDIA_BUS_FMT_S5C_UYVY_JPEG_1X8 as in the CSI
> case? The S5C73M3 sensor supports the parallel interface as well.

The parallel interface has too low bandwidth to transfer image data
with the maximum supported resolution and frame rate, I doubt anyone would
ever use S5C73MC in such a configuration.

--
Regards,
Sylwester

2020-07-08 15:49:08

by Sylwester Nawrocki

[permalink] [raw]
Subject: Re: [PATCH 06/11] media: exynos4-is: Properly set JPEG options when not using CSIS

On 26.04.2020 04:26, Jonathan Bakker wrote:
> Commit ee7160e57c98 ("[media] s5p-fimc: Add support for JPEG capture")
> added support for JPEG capture, but missed setting a register when the
> CSIS device wasn't in use.
>
> Signed-off-by: Jonathan Bakker <[email protected]>

Reviewed-by: Sylwester Nawrocki <[email protected]>

2020-07-11 16:46:52

by Jonathan Bakker

[permalink] [raw]
Subject: Re: [PATCH 06/11] media: exynos4-is: Properly set JPEG options when not using CSIS

Hi Sylwester and Tomasz,

On 2020-07-08 8:45 a.m., Sylwester Nawrocki wrote:
> Hi,
>
> On 07.07.2020 20:23, Tomasz Figa wrote:
>> On Sat, Apr 25, 2020 at 07:26:45PM -0700, Jonathan Bakker wrote:
>>> Commit ee7160e57c98 ("[media] s5p-fimc: Add support for JPEG capture")
>>> added support for JPEG capture, but missed setting a register when the
>>> CSIS device wasn't in use.
>
>> nit: Since this isn't really about using the CSIS device or not, but
>> rather about the interface that the sensor is connected with, could we
>> instead say "when a parallel interface is used"?

Yes, that's a better way of stating it. I'll reword the commit message.

>
>>> Signed-off-by: Jonathan Bakker <[email protected]>
>>> ---
>>> drivers/media/platform/exynos4-is/fimc-reg.c | 7 +++++++
>>> 1 file changed, 7 insertions(+)
>>>
>>> diff --git a/drivers/media/platform/exynos4-is/fimc-reg.c b/drivers/media/platform/exynos4-is/fimc-reg.c
>>> index 5ce2bdebd424..269a98fca1e8 100644
>>> --- a/drivers/media/platform/exynos4-is/fimc-reg.c
>>> +++ b/drivers/media/platform/exynos4-is/fimc-reg.c
>>> @@ -606,6 +606,11 @@ int fimc_hw_set_camera_source(struct fimc_dev *fimc,
>>> switch (source->fimc_bus_type) {
>>> case FIMC_BUS_TYPE_ITU_601:
>>> case FIMC_BUS_TYPE_ITU_656:
>>> + if (fimc_fmt_is_user_defined(f->fmt->color)) {
>>> + cfg |= FIMC_REG_CISRCFMT_ITU601_8BIT;
>>> + break;
>>> + }
>>> +
>>> for (i = 0; i < ARRAY_SIZE(pix_desc); i++) {
>>> if (vc->ci_fmt.code == pix_desc[i].pixelcode) {
>>> cfg = pix_desc[i].cisrcfmt;
>>> @@ -707,6 +712,8 @@ int fimc_hw_set_camera_type(struct fimc_dev *fimc,
>>> case FIMC_BUS_TYPE_ITU_601...FIMC_BUS_TYPE_ITU_656:
>>> if (source->mux_id == 0) /* ITU-A, ITU-B: 0, 1 */
>>> cfg |= FIMC_REG_CIGCTRL_SELCAM_ITU_A;
>>> + if (vid_cap->ci_fmt.code == MEDIA_BUS_FMT_JPEG_1X8)
>>> + cfg |= FIMC_REG_CIGCTRL_CAM_JPEG;
>>
>> Should we also handle MEDIA_BUS_FMT_S5C_UYVY_JPEG_1X8 as in the CSI
>> case? The S5C73M3 sensor supports the parallel interface as well.
>
> The parallel interface has too low bandwidth to transfer image data
> with the maximum supported resolution and frame rate, I doubt anyone would
> ever use S5C73MC in such a configuration.
>

Ok, good to know. I'll leave it as-is then.

Thanks,
Jonathan