* [PATCH 0/2] change fields of uapi struct rkisp1_cif_isp_ctk_config
@ 2020-07-07 17:08 Dafna Hirschfeld
2020-07-07 17:08 ` [PATCH 1/2] media: staging: rkisp1: replace 9 coeff* fields with a 3x3 array Dafna Hirschfeld
2020-07-07 17:08 ` [PATCH 2/2] media: staging: rkisp1: replace 3 fields 'ct_offset_*' with one array Dafna Hirschfeld
0 siblings, 2 replies; 7+ messages in thread
From: Dafna Hirschfeld @ 2020-07-07 17:08 UTC (permalink / raw)
To: linux-media, laurent.pinchart
Cc: dafna.hirschfeld, helen.koike, ezequiel, hverkuil, kernel,
dafna3, sakari.ailus, linux-rockchip, mchehab, tfiga
The struct rkisp1_cif_isp_ctk_config represents a 3x3 matrix
and an offset vector for the color correction. It is nicer
to represent those with a 3x3 array and a 3-array fields.
- First patch repalces 9 fields 'coeff*' with one field coeff[3][3]
- Second patch replaces 3 fields 'ct_offset_{rgb}' with one field 'ct_offset[3]'
Dafna Hirschfeld (2):
media: staging: rkisp1:: replace 9 coeff* fields with a 3x3 array
media: staging: rkisp1: replace 3 fields 'ct_offset_*' with one array
drivers/staging/media/rkisp1/rkisp1-params.c | 24 +++++++------------
.../staging/media/rkisp1/uapi/rkisp1-config.h | 20 +++++-----------
2 files changed, 15 insertions(+), 29 deletions(-)
--
2.17.1
^ permalink raw reply [flat|nested] 7+ messages in thread
* [PATCH 1/2] media: staging: rkisp1: replace 9 coeff* fields with a 3x3 array
2020-07-07 17:08 [PATCH 0/2] change fields of uapi struct rkisp1_cif_isp_ctk_config Dafna Hirschfeld
@ 2020-07-07 17:08 ` Dafna Hirschfeld
2020-07-27 17:50 ` Helen Koike
2020-07-07 17:08 ` [PATCH 2/2] media: staging: rkisp1: replace 3 fields 'ct_offset_*' with one array Dafna Hirschfeld
1 sibling, 1 reply; 7+ messages in thread
From: Dafna Hirschfeld @ 2020-07-07 17:08 UTC (permalink / raw)
To: linux-media, laurent.pinchart
Cc: dafna.hirschfeld, helen.koike, ezequiel, hverkuil, kernel,
dafna3, sakari.ailus, linux-rockchip, mchehab, tfiga
The struct rkisp1_cif_isp_ctk_config has 9 fields 'coeff*' for the
3x3 color correction matrix. Replace these fields with one 3x3
array coeff[3][3] and document the field.
Signed-off-by: Dafna Hirschfeld <dafna.hirschfeld@collabora.com>
---
drivers/staging/media/rkisp1/rkisp1-params.c | 15 ++++++---------
drivers/staging/media/rkisp1/uapi/rkisp1-config.h | 14 ++++----------
2 files changed, 10 insertions(+), 19 deletions(-)
diff --git a/drivers/staging/media/rkisp1/rkisp1-params.c b/drivers/staging/media/rkisp1/rkisp1-params.c
index 797e79de659c..00b102eb67b6 100644
--- a/drivers/staging/media/rkisp1/rkisp1-params.c
+++ b/drivers/staging/media/rkisp1/rkisp1-params.c
@@ -402,15 +402,12 @@ static void rkisp1_goc_config(struct rkisp1_params *params,
static void rkisp1_ctk_config(struct rkisp1_params *params,
const struct rkisp1_cif_isp_ctk_config *arg)
{
- rkisp1_write(params->rkisp1, arg->coeff0, RKISP1_CIF_ISP_CT_COEFF_0);
- rkisp1_write(params->rkisp1, arg->coeff1, RKISP1_CIF_ISP_CT_COEFF_1);
- rkisp1_write(params->rkisp1, arg->coeff2, RKISP1_CIF_ISP_CT_COEFF_2);
- rkisp1_write(params->rkisp1, arg->coeff3, RKISP1_CIF_ISP_CT_COEFF_3);
- rkisp1_write(params->rkisp1, arg->coeff4, RKISP1_CIF_ISP_CT_COEFF_4);
- rkisp1_write(params->rkisp1, arg->coeff5, RKISP1_CIF_ISP_CT_COEFF_5);
- rkisp1_write(params->rkisp1, arg->coeff6, RKISP1_CIF_ISP_CT_COEFF_6);
- rkisp1_write(params->rkisp1, arg->coeff7, RKISP1_CIF_ISP_CT_COEFF_7);
- rkisp1_write(params->rkisp1, arg->coeff8, RKISP1_CIF_ISP_CT_COEFF_8);
+ unsigned int i, j, k = 0;
+
+ for (i = 0; i < 3; i++)
+ for (j = 0; j < 3; j++)
+ rkisp1_write(params->rkisp1, arg->coeff[i][j],
+ RKISP1_CIF_ISP_CT_COEFF_0 + 4 * k++);
rkisp1_write(params->rkisp1, arg->ct_offset_r,
RKISP1_CIF_ISP_CT_OFFSET_R);
rkisp1_write(params->rkisp1, arg->ct_offset_g,
diff --git a/drivers/staging/media/rkisp1/uapi/rkisp1-config.h b/drivers/staging/media/rkisp1/uapi/rkisp1-config.h
index ca0d031b14ac..a01711a668da 100644
--- a/drivers/staging/media/rkisp1/uapi/rkisp1-config.h
+++ b/drivers/staging/media/rkisp1/uapi/rkisp1-config.h
@@ -417,19 +417,13 @@ struct rkisp1_cif_isp_bdm_config {
/**
* struct rkisp1_cif_isp_ctk_config - Configuration used by Cross Talk correction
*
- * @coeff: color correction matrix
+ * @coeff: color correction matrix. Values are 11-bit signed fixed-point numbers with 4 bit integer
+ * and 7 bit fractional part, ranging from -8 (0x400) to +7.992 (0x3FF). 0 is
+ * represented by 0x000 and a coefficient value of 1 as 0x080.
* @ct_offset_b: offset for the crosstalk correction matrix
*/
struct rkisp1_cif_isp_ctk_config {
- __u16 coeff0;
- __u16 coeff1;
- __u16 coeff2;
- __u16 coeff3;
- __u16 coeff4;
- __u16 coeff5;
- __u16 coeff6;
- __u16 coeff7;
- __u16 coeff8;
+ __u16 coeff[3][3];
__u16 ct_offset_r;
__u16 ct_offset_g;
__u16 ct_offset_b;
--
2.17.1
^ permalink raw reply related [flat|nested] 7+ messages in thread
* [PATCH 2/2] media: staging: rkisp1: replace 3 fields 'ct_offset_*' with one array
2020-07-07 17:08 [PATCH 0/2] change fields of uapi struct rkisp1_cif_isp_ctk_config Dafna Hirschfeld
2020-07-07 17:08 ` [PATCH 1/2] media: staging: rkisp1: replace 9 coeff* fields with a 3x3 array Dafna Hirschfeld
@ 2020-07-07 17:08 ` Dafna Hirschfeld
2020-08-03 19:38 ` Helen Koike
1 sibling, 1 reply; 7+ messages in thread
From: Dafna Hirschfeld @ 2020-07-07 17:08 UTC (permalink / raw)
To: linux-media, laurent.pinchart
Cc: dafna.hirschfeld, helen.koike, ezequiel, hverkuil, kernel,
dafna3, sakari.ailus, linux-rockchip, mchehab, tfiga
The struct rkisp1_cif_isp_ctk_config contains 3 fields
ct_offset_{rgb}. Replace them with one array field 'ct_offset[3].
Signed-off-by: Dafna Hirschfeld <dafna.hirschfeld@collabora.com>
---
drivers/staging/media/rkisp1/rkisp1-params.c | 9 +++------
drivers/staging/media/rkisp1/uapi/rkisp1-config.h | 6 ++----
2 files changed, 5 insertions(+), 10 deletions(-)
diff --git a/drivers/staging/media/rkisp1/rkisp1-params.c b/drivers/staging/media/rkisp1/rkisp1-params.c
index 00b102eb67b6..8596ad87a860 100644
--- a/drivers/staging/media/rkisp1/rkisp1-params.c
+++ b/drivers/staging/media/rkisp1/rkisp1-params.c
@@ -408,12 +408,9 @@ static void rkisp1_ctk_config(struct rkisp1_params *params,
for (j = 0; j < 3; j++)
rkisp1_write(params->rkisp1, arg->coeff[i][j],
RKISP1_CIF_ISP_CT_COEFF_0 + 4 * k++);
- rkisp1_write(params->rkisp1, arg->ct_offset_r,
- RKISP1_CIF_ISP_CT_OFFSET_R);
- rkisp1_write(params->rkisp1, arg->ct_offset_g,
- RKISP1_CIF_ISP_CT_OFFSET_G);
- rkisp1_write(params->rkisp1, arg->ct_offset_b,
- RKISP1_CIF_ISP_CT_OFFSET_B);
+ for (i = 0; i < 3; i++)
+ rkisp1_write(params->rkisp1, arg->ct_offset[i],
+ RKISP1_CIF_ISP_CT_OFFSET_R + i * 4);
}
static void rkisp1_ctk_enable(struct rkisp1_params *params, bool en)
diff --git a/drivers/staging/media/rkisp1/uapi/rkisp1-config.h b/drivers/staging/media/rkisp1/uapi/rkisp1-config.h
index a01711a668da..ec624f2579cd 100644
--- a/drivers/staging/media/rkisp1/uapi/rkisp1-config.h
+++ b/drivers/staging/media/rkisp1/uapi/rkisp1-config.h
@@ -420,13 +420,11 @@ struct rkisp1_cif_isp_bdm_config {
* @coeff: color correction matrix. Values are 11-bit signed fixed-point numbers with 4 bit integer
* and 7 bit fractional part, ranging from -8 (0x400) to +7.992 (0x3FF). 0 is
* represented by 0x000 and a coefficient value of 1 as 0x080.
- * @ct_offset_b: offset for the crosstalk correction matrix
+ * @ct_offset: Red, Green, Blue offsets for the crosstalk correction matrix
*/
struct rkisp1_cif_isp_ctk_config {
__u16 coeff[3][3];
- __u16 ct_offset_r;
- __u16 ct_offset_g;
- __u16 ct_offset_b;
+ __u16 ct_offset[3];
} __packed;
enum rkisp1_cif_isp_goc_mode {
--
2.17.1
^ permalink raw reply related [flat|nested] 7+ messages in thread
* Re: [PATCH 1/2] media: staging: rkisp1: replace 9 coeff* fields with a 3x3 array
2020-07-07 17:08 ` [PATCH 1/2] media: staging: rkisp1: replace 9 coeff* fields with a 3x3 array Dafna Hirschfeld
@ 2020-07-27 17:50 ` Helen Koike
2020-07-31 9:33 ` Dafna Hirschfeld
0 siblings, 1 reply; 7+ messages in thread
From: Helen Koike @ 2020-07-27 17:50 UTC (permalink / raw)
To: Dafna Hirschfeld, linux-media, laurent.pinchart
Cc: ezequiel, hverkuil, kernel, dafna3, sakari.ailus, linux-rockchip,
mchehab, tfiga
Hi Dafna,
On 7/7/20 2:08 PM, Dafna Hirschfeld wrote:
> The struct rkisp1_cif_isp_ctk_config has 9 fields 'coeff*' for the
> 3x3 color correction matrix. Replace these fields with one 3x3
> array coeff[3][3] and document the field.
>
> Signed-off-by: Dafna Hirschfeld <dafna.hirschfeld@collabora.com>
> ---
> drivers/staging/media/rkisp1/rkisp1-params.c | 15 ++++++---------
> drivers/staging/media/rkisp1/uapi/rkisp1-config.h | 14 ++++----------
> 2 files changed, 10 insertions(+), 19 deletions(-)
>
> diff --git a/drivers/staging/media/rkisp1/rkisp1-params.c b/drivers/staging/media/rkisp1/rkisp1-params.c
> index 797e79de659c..00b102eb67b6 100644
> --- a/drivers/staging/media/rkisp1/rkisp1-params.c
> +++ b/drivers/staging/media/rkisp1/rkisp1-params.c
> @@ -402,15 +402,12 @@ static void rkisp1_goc_config(struct rkisp1_params *params,
> static void rkisp1_ctk_config(struct rkisp1_params *params,
> const struct rkisp1_cif_isp_ctk_config *arg)
> {
> - rkisp1_write(params->rkisp1, arg->coeff0, RKISP1_CIF_ISP_CT_COEFF_0);
> - rkisp1_write(params->rkisp1, arg->coeff1, RKISP1_CIF_ISP_CT_COEFF_1);
> - rkisp1_write(params->rkisp1, arg->coeff2, RKISP1_CIF_ISP_CT_COEFF_2);
> - rkisp1_write(params->rkisp1, arg->coeff3, RKISP1_CIF_ISP_CT_COEFF_3);
> - rkisp1_write(params->rkisp1, arg->coeff4, RKISP1_CIF_ISP_CT_COEFF_4);
> - rkisp1_write(params->rkisp1, arg->coeff5, RKISP1_CIF_ISP_CT_COEFF_5);
> - rkisp1_write(params->rkisp1, arg->coeff6, RKISP1_CIF_ISP_CT_COEFF_6);
> - rkisp1_write(params->rkisp1, arg->coeff7, RKISP1_CIF_ISP_CT_COEFF_7);
> - rkisp1_write(params->rkisp1, arg->coeff8, RKISP1_CIF_ISP_CT_COEFF_8);
> + unsigned int i, j, k = 0;
> +
> + for (i = 0; i < 3; i++)
> + for (j = 0; j < 3; j++)
> + rkisp1_write(params->rkisp1, arg->coeff[i][j],
> + RKISP1_CIF_ISP_CT_COEFF_0 + 4 * k++);
> rkisp1_write(params->rkisp1, arg->ct_offset_r,
> RKISP1_CIF_ISP_CT_OFFSET_R);
> rkisp1_write(params->rkisp1, arg->ct_offset_g,
> diff --git a/drivers/staging/media/rkisp1/uapi/rkisp1-config.h b/drivers/staging/media/rkisp1/uapi/rkisp1-config.h
> index ca0d031b14ac..a01711a668da 100644
> --- a/drivers/staging/media/rkisp1/uapi/rkisp1-config.h
> +++ b/drivers/staging/media/rkisp1/uapi/rkisp1-config.h
> @@ -417,19 +417,13 @@ struct rkisp1_cif_isp_bdm_config {
> /**
> * struct rkisp1_cif_isp_ctk_config - Configuration used by Cross Talk correction
> *
> - * @coeff: color correction matrix
> + * @coeff: color correction matrix. Values are 11-bit signed fixed-point numbers with 4 bit integer
> + * and 7 bit fractional part, ranging from -8 (0x400) to +7.992 (0x3FF). 0 is
> + * represented by 0x000 and a coefficient value of 1 as 0x080.
> * @ct_offset_b: offset for the crosstalk correction matrix
> */
> struct rkisp1_cif_isp_ctk_config {
> - __u16 coeff0;
> - __u16 coeff1;
> - __u16 coeff2;
> - __u16 coeff3;
> - __u16 coeff4;
> - __u16 coeff5;
> - __u16 coeff6;
> - __u16 coeff7;
> - __u16 coeff8;
> + __u16 coeff[3][3];
Why not:
__u16 coeff[9];
?
Thanks,
Helen
> __u16 ct_offset_r;
> __u16 ct_offset_g;
> __u16 ct_offset_b;
>
^ permalink raw reply [flat|nested] 7+ messages in thread
* Re: [PATCH 1/2] media: staging: rkisp1: replace 9 coeff* fields with a 3x3 array
2020-07-27 17:50 ` Helen Koike
@ 2020-07-31 9:33 ` Dafna Hirschfeld
2020-08-03 19:38 ` Helen Koike
0 siblings, 1 reply; 7+ messages in thread
From: Dafna Hirschfeld @ 2020-07-31 9:33 UTC (permalink / raw)
To: Helen Koike, linux-media, laurent.pinchart
Cc: ezequiel, hverkuil, kernel, dafna3, sakari.ailus, linux-rockchip,
mchehab, tfiga
On 27.07.20 19:50, Helen Koike wrote:
> Hi Dafna,
>
> On 7/7/20 2:08 PM, Dafna Hirschfeld wrote:
>> The struct rkisp1_cif_isp_ctk_config has 9 fields 'coeff*' for the
>> 3x3 color correction matrix. Replace these fields with one 3x3
>> array coeff[3][3] and document the field.
>>
>> Signed-off-by: Dafna Hirschfeld <dafna.hirschfeld@collabora.com>
>> ---
>> drivers/staging/media/rkisp1/rkisp1-params.c | 15 ++++++---------
>> drivers/staging/media/rkisp1/uapi/rkisp1-config.h | 14 ++++----------
>> 2 files changed, 10 insertions(+), 19 deletions(-)
>>
>> diff --git a/drivers/staging/media/rkisp1/rkisp1-params.c b/drivers/staging/media/rkisp1/rkisp1-params.c
>> index 797e79de659c..00b102eb67b6 100644
>> --- a/drivers/staging/media/rkisp1/rkisp1-params.c
>> +++ b/drivers/staging/media/rkisp1/rkisp1-params.c
>> @@ -402,15 +402,12 @@ static void rkisp1_goc_config(struct rkisp1_params *params,
>> static void rkisp1_ctk_config(struct rkisp1_params *params,
>> const struct rkisp1_cif_isp_ctk_config *arg)
>> {
>> - rkisp1_write(params->rkisp1, arg->coeff0, RKISP1_CIF_ISP_CT_COEFF_0);
>> - rkisp1_write(params->rkisp1, arg->coeff1, RKISP1_CIF_ISP_CT_COEFF_1);
>> - rkisp1_write(params->rkisp1, arg->coeff2, RKISP1_CIF_ISP_CT_COEFF_2);
>> - rkisp1_write(params->rkisp1, arg->coeff3, RKISP1_CIF_ISP_CT_COEFF_3);
>> - rkisp1_write(params->rkisp1, arg->coeff4, RKISP1_CIF_ISP_CT_COEFF_4);
>> - rkisp1_write(params->rkisp1, arg->coeff5, RKISP1_CIF_ISP_CT_COEFF_5);
>> - rkisp1_write(params->rkisp1, arg->coeff6, RKISP1_CIF_ISP_CT_COEFF_6);
>> - rkisp1_write(params->rkisp1, arg->coeff7, RKISP1_CIF_ISP_CT_COEFF_7);
>> - rkisp1_write(params->rkisp1, arg->coeff8, RKISP1_CIF_ISP_CT_COEFF_8);
>> + unsigned int i, j, k = 0;
>> +
>> + for (i = 0; i < 3; i++)
>> + for (j = 0; j < 3; j++)
>> + rkisp1_write(params->rkisp1, arg->coeff[i][j],
>> + RKISP1_CIF_ISP_CT_COEFF_0 + 4 * k++);
>> rkisp1_write(params->rkisp1, arg->ct_offset_r,
>> RKISP1_CIF_ISP_CT_OFFSET_R);
>> rkisp1_write(params->rkisp1, arg->ct_offset_g,
>> diff --git a/drivers/staging/media/rkisp1/uapi/rkisp1-config.h b/drivers/staging/media/rkisp1/uapi/rkisp1-config.h
>> index ca0d031b14ac..a01711a668da 100644
>> --- a/drivers/staging/media/rkisp1/uapi/rkisp1-config.h
>> +++ b/drivers/staging/media/rkisp1/uapi/rkisp1-config.h
>> @@ -417,19 +417,13 @@ struct rkisp1_cif_isp_bdm_config {
>> /**
>> * struct rkisp1_cif_isp_ctk_config - Configuration used by Cross Talk correction
>> *
>> - * @coeff: color correction matrix
>> + * @coeff: color correction matrix. Values are 11-bit signed fixed-point numbers with 4 bit integer
>> + * and 7 bit fractional part, ranging from -8 (0x400) to +7.992 (0x3FF). 0 is
>> + * represented by 0x000 and a coefficient value of 1 as 0x080.
>> * @ct_offset_b: offset for the crosstalk correction matrix
>> */
>> struct rkisp1_cif_isp_ctk_config {
>> - __u16 coeff0;
>> - __u16 coeff1;
>> - __u16 coeff2;
>> - __u16 coeff3;
>> - __u16 coeff4;
>> - __u16 coeff5;
>> - __u16 coeff6;
>> - __u16 coeff7;
>> - __u16 coeff8;
>> + __u16 coeff[3][3];
>
> Why not:
>
> __u16 coeff[9];
Hi, since it represents a 3x3 matrix I think it is nicer as a 3x3 array.
Thanks,
Dafna
>
> ?
>
> Thanks,
> Helen
>
>> __u16 ct_offset_r;
>> __u16 ct_offset_g;
>> __u16 ct_offset_b;
>>
^ permalink raw reply [flat|nested] 7+ messages in thread
* Re: [PATCH 1/2] media: staging: rkisp1: replace 9 coeff* fields with a 3x3 array
2020-07-31 9:33 ` Dafna Hirschfeld
@ 2020-08-03 19:38 ` Helen Koike
0 siblings, 0 replies; 7+ messages in thread
From: Helen Koike @ 2020-08-03 19:38 UTC (permalink / raw)
To: Dafna Hirschfeld, linux-media, laurent.pinchart
Cc: ezequiel, hverkuil, kernel, dafna3, sakari.ailus, linux-rockchip,
mchehab, tfiga
On 7/31/20 6:33 AM, Dafna Hirschfeld wrote:
>
>
> On 27.07.20 19:50, Helen Koike wrote:
>> Hi Dafna,
>>
>> On 7/7/20 2:08 PM, Dafna Hirschfeld wrote:
>>> The struct rkisp1_cif_isp_ctk_config has 9 fields 'coeff*' for the
>>> 3x3 color correction matrix. Replace these fields with one 3x3
>>> array coeff[3][3] and document the field.
>>>
>>> Signed-off-by: Dafna Hirschfeld <dafna.hirschfeld@collabora.com>
>>> ---
>>> drivers/staging/media/rkisp1/rkisp1-params.c | 15 ++++++---------
>>> drivers/staging/media/rkisp1/uapi/rkisp1-config.h | 14 ++++----------
>>> 2 files changed, 10 insertions(+), 19 deletions(-)
>>>
>>> diff --git a/drivers/staging/media/rkisp1/rkisp1-params.c b/drivers/staging/media/rkisp1/rkisp1-params.c
>>> index 797e79de659c..00b102eb67b6 100644
>>> --- a/drivers/staging/media/rkisp1/rkisp1-params.c
>>> +++ b/drivers/staging/media/rkisp1/rkisp1-params.c
>>> @@ -402,15 +402,12 @@ static void rkisp1_goc_config(struct rkisp1_params *params,
>>> static void rkisp1_ctk_config(struct rkisp1_params *params,
>>> const struct rkisp1_cif_isp_ctk_config *arg)
>>> {
>>> - rkisp1_write(params->rkisp1, arg->coeff0, RKISP1_CIF_ISP_CT_COEFF_0);
>>> - rkisp1_write(params->rkisp1, arg->coeff1, RKISP1_CIF_ISP_CT_COEFF_1);
>>> - rkisp1_write(params->rkisp1, arg->coeff2, RKISP1_CIF_ISP_CT_COEFF_2);
>>> - rkisp1_write(params->rkisp1, arg->coeff3, RKISP1_CIF_ISP_CT_COEFF_3);
>>> - rkisp1_write(params->rkisp1, arg->coeff4, RKISP1_CIF_ISP_CT_COEFF_4);
>>> - rkisp1_write(params->rkisp1, arg->coeff5, RKISP1_CIF_ISP_CT_COEFF_5);
>>> - rkisp1_write(params->rkisp1, arg->coeff6, RKISP1_CIF_ISP_CT_COEFF_6);
>>> - rkisp1_write(params->rkisp1, arg->coeff7, RKISP1_CIF_ISP_CT_COEFF_7);
>>> - rkisp1_write(params->rkisp1, arg->coeff8, RKISP1_CIF_ISP_CT_COEFF_8);
>>> + unsigned int i, j, k = 0;
>>> +
>>> + for (i = 0; i < 3; i++)
>>> + for (j = 0; j < 3; j++)
>>> + rkisp1_write(params->rkisp1, arg->coeff[i][j],
>>> + RKISP1_CIF_ISP_CT_COEFF_0 + 4 * k++);
>>> rkisp1_write(params->rkisp1, arg->ct_offset_r,
>>> RKISP1_CIF_ISP_CT_OFFSET_R);
>>> rkisp1_write(params->rkisp1, arg->ct_offset_g,
>>> diff --git a/drivers/staging/media/rkisp1/uapi/rkisp1-config.h b/drivers/staging/media/rkisp1/uapi/rkisp1-config.h
>>> index ca0d031b14ac..a01711a668da 100644
>>> --- a/drivers/staging/media/rkisp1/uapi/rkisp1-config.h
>>> +++ b/drivers/staging/media/rkisp1/uapi/rkisp1-config.h
>>> @@ -417,19 +417,13 @@ struct rkisp1_cif_isp_bdm_config {
>>> /**
>>> * struct rkisp1_cif_isp_ctk_config - Configuration used by Cross Talk correction
>>> *
>>> - * @coeff: color correction matrix
>>> + * @coeff: color correction matrix. Values are 11-bit signed fixed-point numbers with 4 bit integer
>>> + * and 7 bit fractional part, ranging from -8 (0x400) to +7.992 (0x3FF). 0 is
>>> + * represented by 0x000 and a coefficient value of 1 as 0x080.
>>> * @ct_offset_b: offset for the crosstalk correction matrix
>>> */
>>> struct rkisp1_cif_isp_ctk_config {
>>> - __u16 coeff0;
>>> - __u16 coeff1;
>>> - __u16 coeff2;
>>> - __u16 coeff3;
>>> - __u16 coeff4;
>>> - __u16 coeff5;
>>> - __u16 coeff6;
>>> - __u16 coeff7;
>>> - __u16 coeff8;
>>> + __u16 coeff[3][3];
>>
>> Why not:
>>
>> __u16 coeff[9];
>
> Hi, since it represents a 3x3 matrix I think it is nicer as a 3x3 array.
Fair enough, let's make this clear in the uAPI then.
Acked-by: Helen Koike <helen.koike@collabora.com>
Regards,
Helen
>
> Thanks,
> Dafna
>
>>
>> ?
>>
>> Thanks,
>> Helen
>>
>>> __u16 ct_offset_r;
>>> __u16 ct_offset_g;
>>> __u16 ct_offset_b;
>>>
>
^ permalink raw reply [flat|nested] 7+ messages in thread
* Re: [PATCH 2/2] media: staging: rkisp1: replace 3 fields 'ct_offset_*' with one array
2020-07-07 17:08 ` [PATCH 2/2] media: staging: rkisp1: replace 3 fields 'ct_offset_*' with one array Dafna Hirschfeld
@ 2020-08-03 19:38 ` Helen Koike
0 siblings, 0 replies; 7+ messages in thread
From: Helen Koike @ 2020-08-03 19:38 UTC (permalink / raw)
To: Dafna Hirschfeld, linux-media, laurent.pinchart
Cc: ezequiel, hverkuil, kernel, dafna3, sakari.ailus, linux-rockchip,
mchehab, tfiga
On 7/7/20 2:08 PM, Dafna Hirschfeld wrote:
> The struct rkisp1_cif_isp_ctk_config contains 3 fields
> ct_offset_{rgb}. Replace them with one array field 'ct_offset[3].
>
> Signed-off-by: Dafna Hirschfeld <dafna.hirschfeld@collabora.com>
Acked-by: Helen Koike <helen.koike@collabora.com>
Thanks
Helen
> ---
> drivers/staging/media/rkisp1/rkisp1-params.c | 9 +++------
> drivers/staging/media/rkisp1/uapi/rkisp1-config.h | 6 ++----
> 2 files changed, 5 insertions(+), 10 deletions(-)
>
> diff --git a/drivers/staging/media/rkisp1/rkisp1-params.c b/drivers/staging/media/rkisp1/rkisp1-params.c
> index 00b102eb67b6..8596ad87a860 100644
> --- a/drivers/staging/media/rkisp1/rkisp1-params.c
> +++ b/drivers/staging/media/rkisp1/rkisp1-params.c
> @@ -408,12 +408,9 @@ static void rkisp1_ctk_config(struct rkisp1_params *params,
> for (j = 0; j < 3; j++)
> rkisp1_write(params->rkisp1, arg->coeff[i][j],
> RKISP1_CIF_ISP_CT_COEFF_0 + 4 * k++);
> - rkisp1_write(params->rkisp1, arg->ct_offset_r,
> - RKISP1_CIF_ISP_CT_OFFSET_R);
> - rkisp1_write(params->rkisp1, arg->ct_offset_g,
> - RKISP1_CIF_ISP_CT_OFFSET_G);
> - rkisp1_write(params->rkisp1, arg->ct_offset_b,
> - RKISP1_CIF_ISP_CT_OFFSET_B);
> + for (i = 0; i < 3; i++)
> + rkisp1_write(params->rkisp1, arg->ct_offset[i],
> + RKISP1_CIF_ISP_CT_OFFSET_R + i * 4);
> }
>
> static void rkisp1_ctk_enable(struct rkisp1_params *params, bool en)
> diff --git a/drivers/staging/media/rkisp1/uapi/rkisp1-config.h b/drivers/staging/media/rkisp1/uapi/rkisp1-config.h
> index a01711a668da..ec624f2579cd 100644
> --- a/drivers/staging/media/rkisp1/uapi/rkisp1-config.h
> +++ b/drivers/staging/media/rkisp1/uapi/rkisp1-config.h
> @@ -420,13 +420,11 @@ struct rkisp1_cif_isp_bdm_config {
> * @coeff: color correction matrix. Values are 11-bit signed fixed-point numbers with 4 bit integer
> * and 7 bit fractional part, ranging from -8 (0x400) to +7.992 (0x3FF). 0 is
> * represented by 0x000 and a coefficient value of 1 as 0x080.
> - * @ct_offset_b: offset for the crosstalk correction matrix
> + * @ct_offset: Red, Green, Blue offsets for the crosstalk correction matrix
> */
> struct rkisp1_cif_isp_ctk_config {
> __u16 coeff[3][3];
> - __u16 ct_offset_r;
> - __u16 ct_offset_g;
> - __u16 ct_offset_b;
> + __u16 ct_offset[3];
> } __packed;
>
> enum rkisp1_cif_isp_goc_mode {
>
^ permalink raw reply [flat|nested] 7+ messages in thread
end of thread, other threads:[~2020-08-03 19:39 UTC | newest]
Thread overview: 7+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2020-07-07 17:08 [PATCH 0/2] change fields of uapi struct rkisp1_cif_isp_ctk_config Dafna Hirschfeld
2020-07-07 17:08 ` [PATCH 1/2] media: staging: rkisp1: replace 9 coeff* fields with a 3x3 array Dafna Hirschfeld
2020-07-27 17:50 ` Helen Koike
2020-07-31 9:33 ` Dafna Hirschfeld
2020-08-03 19:38 ` Helen Koike
2020-07-07 17:08 ` [PATCH 2/2] media: staging: rkisp1: replace 3 fields 'ct_offset_*' with one array Dafna Hirschfeld
2020-08-03 19:38 ` Helen Koike
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.