All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH v2 0/2] drivers: clk: zynqmp: Update fraction clock check from custom type flags
@ 2020-03-12 21:31 ` Jolly Shah
  0 siblings, 0 replies; 22+ messages in thread
From: Jolly Shah @ 2020-03-12 21:31 UTC (permalink / raw)
  To: olof, mturquette, sboyd, michal.simek, arm, linux-clk
  Cc: rajanv, linux-arm-kernel, linux-kernel, Jolly Shah

This patch series adds support for custom type flags passed from
firmware. It also update  fraction clock check from custom type
flags since new firmware pass CLK_FRAC flag as a part of custom flags
instead of clkflags as CLK_FRAC is not common clock framework flag.

This patch series maintains backward compatibility with older version
of firmware.
v2:
 -PATCH[2/2] Correct BIT index of CLK_FRAC in custom_type_flag

Rajan Vaja (1):
  drivers: clk: zynqmp: Add support for custom type flags

Tejas Patel (1):
  drivers: clk: zynqmp: Update fraction clock check from custom type
    flags

 drivers/clk/zynqmp/clk-zynqmp.h | 1 +
 drivers/clk/zynqmp/clkc.c       | 4 ++++
 drivers/clk/zynqmp/divider.c    | 6 ++++--
 3 files changed, 9 insertions(+), 2 deletions(-)

-- 
2.7.4


^ permalink raw reply	[flat|nested] 22+ messages in thread

* [PATCH v2 0/2] drivers: clk: zynqmp: Update fraction clock check from custom type flags
@ 2020-03-12 21:31 ` Jolly Shah
  0 siblings, 0 replies; 22+ messages in thread
From: Jolly Shah @ 2020-03-12 21:31 UTC (permalink / raw)
  To: olof, mturquette, sboyd, michal.simek, arm, linux-clk
  Cc: Jolly Shah, rajanv, linux-kernel, linux-arm-kernel

This patch series adds support for custom type flags passed from
firmware. It also update  fraction clock check from custom type
flags since new firmware pass CLK_FRAC flag as a part of custom flags
instead of clkflags as CLK_FRAC is not common clock framework flag.

This patch series maintains backward compatibility with older version
of firmware.
v2:
 -PATCH[2/2] Correct BIT index of CLK_FRAC in custom_type_flag

Rajan Vaja (1):
  drivers: clk: zynqmp: Add support for custom type flags

Tejas Patel (1):
  drivers: clk: zynqmp: Update fraction clock check from custom type
    flags

 drivers/clk/zynqmp/clk-zynqmp.h | 1 +
 drivers/clk/zynqmp/clkc.c       | 4 ++++
 drivers/clk/zynqmp/divider.c    | 6 ++++--
 3 files changed, 9 insertions(+), 2 deletions(-)

-- 
2.7.4


_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel

^ permalink raw reply	[flat|nested] 22+ messages in thread

* [PATCH v2 1/2] drivers: clk: zynqmp: Add support for custom type flags
  2020-03-12 21:31 ` Jolly Shah
@ 2020-03-12 21:31   ` Jolly Shah
  -1 siblings, 0 replies; 22+ messages in thread
From: Jolly Shah @ 2020-03-12 21:31 UTC (permalink / raw)
  To: olof, mturquette, sboyd, michal.simek, arm, linux-clk
  Cc: rajanv, linux-arm-kernel, linux-kernel, Rajan Vaja, Tejas Patel,
	Jolly Shah

From: Rajan Vaja <rajan.vaja@xilinx.com>

Store extra custom type flags received from firmware.

Signed-off-by: Rajan Vaja <rajan.vaja@xilinx.com>
Signed-off-by: Tejas Patel <tejas.patel@xilinx.com>
Signed-off-by: Jolly Shah <jolly.shah@xilinx.com>
---
 drivers/clk/zynqmp/clk-zynqmp.h | 1 +
 drivers/clk/zynqmp/clkc.c       | 4 ++++
 2 files changed, 5 insertions(+)

diff --git a/drivers/clk/zynqmp/clk-zynqmp.h b/drivers/clk/zynqmp/clk-zynqmp.h
index fec9a15..5beeb41 100644
--- a/drivers/clk/zynqmp/clk-zynqmp.h
+++ b/drivers/clk/zynqmp/clk-zynqmp.h
@@ -30,6 +30,7 @@ struct clock_topology {
 	u32 type;
 	u32 flag;
 	u32 type_flag;
+	u8 custom_type_flag;
 };
 
 struct clk_hw *zynqmp_clk_register_pll(const char *name, u32 clk_id,
diff --git a/drivers/clk/zynqmp/clkc.c b/drivers/clk/zynqmp/clkc.c
index 5eed5ce..e12d01c 100644
--- a/drivers/clk/zynqmp/clkc.c
+++ b/drivers/clk/zynqmp/clkc.c
@@ -84,6 +84,7 @@ struct name_resp {
 
 struct topology_resp {
 #define CLK_TOPOLOGY_TYPE		GENMASK(3, 0)
+#define CLK_TOPOLOGY_CUSTOM_TYPE_FLAGS	GENMASK(7, 4)
 #define CLK_TOPOLOGY_FLAGS		GENMASK(23, 8)
 #define CLK_TOPOLOGY_TYPE_FLAGS		GENMASK(31, 24)
 	u32 topology[CLK_GET_TOPOLOGY_RESP_WORDS];
@@ -395,6 +396,9 @@ static int __zynqmp_clock_get_topology(struct clock_topology *topology,
 		topology[*nnodes].type_flag =
 				FIELD_GET(CLK_TOPOLOGY_TYPE_FLAGS,
 					  response->topology[i]);
+		topology[*nnodes].custom_type_flag =
+			FIELD_GET(CLK_TOPOLOGY_CUSTOM_TYPE_FLAGS,
+				  response->topology[i]);
 		(*nnodes)++;
 	}
 
-- 
2.7.4


^ permalink raw reply related	[flat|nested] 22+ messages in thread

* [PATCH v2 1/2] drivers: clk: zynqmp: Add support for custom type flags
@ 2020-03-12 21:31   ` Jolly Shah
  0 siblings, 0 replies; 22+ messages in thread
From: Jolly Shah @ 2020-03-12 21:31 UTC (permalink / raw)
  To: olof, mturquette, sboyd, michal.simek, arm, linux-clk
  Cc: Tejas Patel, Rajan Vaja, linux-kernel, rajanv, Jolly Shah,
	linux-arm-kernel

From: Rajan Vaja <rajan.vaja@xilinx.com>

Store extra custom type flags received from firmware.

Signed-off-by: Rajan Vaja <rajan.vaja@xilinx.com>
Signed-off-by: Tejas Patel <tejas.patel@xilinx.com>
Signed-off-by: Jolly Shah <jolly.shah@xilinx.com>
---
 drivers/clk/zynqmp/clk-zynqmp.h | 1 +
 drivers/clk/zynqmp/clkc.c       | 4 ++++
 2 files changed, 5 insertions(+)

diff --git a/drivers/clk/zynqmp/clk-zynqmp.h b/drivers/clk/zynqmp/clk-zynqmp.h
index fec9a15..5beeb41 100644
--- a/drivers/clk/zynqmp/clk-zynqmp.h
+++ b/drivers/clk/zynqmp/clk-zynqmp.h
@@ -30,6 +30,7 @@ struct clock_topology {
 	u32 type;
 	u32 flag;
 	u32 type_flag;
+	u8 custom_type_flag;
 };
 
 struct clk_hw *zynqmp_clk_register_pll(const char *name, u32 clk_id,
diff --git a/drivers/clk/zynqmp/clkc.c b/drivers/clk/zynqmp/clkc.c
index 5eed5ce..e12d01c 100644
--- a/drivers/clk/zynqmp/clkc.c
+++ b/drivers/clk/zynqmp/clkc.c
@@ -84,6 +84,7 @@ struct name_resp {
 
 struct topology_resp {
 #define CLK_TOPOLOGY_TYPE		GENMASK(3, 0)
+#define CLK_TOPOLOGY_CUSTOM_TYPE_FLAGS	GENMASK(7, 4)
 #define CLK_TOPOLOGY_FLAGS		GENMASK(23, 8)
 #define CLK_TOPOLOGY_TYPE_FLAGS		GENMASK(31, 24)
 	u32 topology[CLK_GET_TOPOLOGY_RESP_WORDS];
@@ -395,6 +396,9 @@ static int __zynqmp_clock_get_topology(struct clock_topology *topology,
 		topology[*nnodes].type_flag =
 				FIELD_GET(CLK_TOPOLOGY_TYPE_FLAGS,
 					  response->topology[i]);
+		topology[*nnodes].custom_type_flag =
+			FIELD_GET(CLK_TOPOLOGY_CUSTOM_TYPE_FLAGS,
+				  response->topology[i]);
 		(*nnodes)++;
 	}
 
-- 
2.7.4


_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel

^ permalink raw reply related	[flat|nested] 22+ messages in thread

* [PATCH v2 2/2] drivers: clk: zynqmp: Update fraction clock check from custom type flags
  2020-03-12 21:31 ` Jolly Shah
@ 2020-03-12 21:31   ` Jolly Shah
  -1 siblings, 0 replies; 22+ messages in thread
From: Jolly Shah @ 2020-03-12 21:31 UTC (permalink / raw)
  To: olof, mturquette, sboyd, michal.simek, arm, linux-clk
  Cc: rajanv, linux-arm-kernel, linux-kernel, Tejas Patel, Rajan Vaja,
	Jolly Shah

From: Tejas Patel <tejas.patel@xilinx.com>

Older firmware version sets BIT(13) in clkflag to mark a
divider as fractional divider. Updated firmware version sets BIT(4)
in type flags to mark a divider as fractional divider since
BIT(13) is defined as CLK_DUTY_CYCLE_PARENT in the common clk
framework flags.

To support both old and new firmware version, consider BIT(13) from
clkflag and BIT(4) from type_flag to check if divider is fractional
or not.

To maintain compatibility BIT(13) of clkflag in firmware will not be
used in future for any purpose and will be marked as unused.

Signed-off-by: Tejas Patel <tejas.patel@xilinx.com>
Signed-off-by: Rajan Vaja <rajan.vaja@xilinx.com>
Signed-off-by: Jolly Shah <jolly.shah@xilinx.com>
---
 drivers/clk/zynqmp/divider.c | 6 ++++--
 1 file changed, 4 insertions(+), 2 deletions(-)

diff --git a/drivers/clk/zynqmp/divider.c b/drivers/clk/zynqmp/divider.c
index 8eed715..efe2ed6 100644
--- a/drivers/clk/zynqmp/divider.c
+++ b/drivers/clk/zynqmp/divider.c
@@ -25,7 +25,8 @@
 #define to_zynqmp_clk_divider(_hw)		\
 	container_of(_hw, struct zynqmp_clk_divider, hw)
 
-#define CLK_FRAC	BIT(13) /* has a fractional parent */
+#define CLK_FRAC		BIT(13) /* has a fractional parent */
+#define CUSTOM_FLAG_CLK_FRAC	BIT(0) /* has a fractional parent in custom type flag */
 
 /**
  * struct zynqmp_clk_divider - adjustable divider clock
@@ -307,7 +308,8 @@ struct clk_hw *zynqmp_clk_register_divider(const char *name,
 	init.num_parents = 1;
 
 	/* struct clk_divider assignments */
-	div->is_frac = !!(nodes->flag & CLK_FRAC);
+	div->is_frac = !!((nodes->flag & CLK_FRAC) |
+			  (nodes->custom_type_flag & CUSTOM_FLAG_CLK_FRAC));
 	div->flags = nodes->type_flag;
 	div->hw.init = &init;
 	div->clk_id = clk_id;
-- 
2.7.4


^ permalink raw reply related	[flat|nested] 22+ messages in thread

* [PATCH v2 2/2] drivers: clk: zynqmp: Update fraction clock check from custom type flags
@ 2020-03-12 21:31   ` Jolly Shah
  0 siblings, 0 replies; 22+ messages in thread
From: Jolly Shah @ 2020-03-12 21:31 UTC (permalink / raw)
  To: olof, mturquette, sboyd, michal.simek, arm, linux-clk
  Cc: Tejas Patel, Rajan Vaja, linux-kernel, rajanv, Jolly Shah,
	linux-arm-kernel

From: Tejas Patel <tejas.patel@xilinx.com>

Older firmware version sets BIT(13) in clkflag to mark a
divider as fractional divider. Updated firmware version sets BIT(4)
in type flags to mark a divider as fractional divider since
BIT(13) is defined as CLK_DUTY_CYCLE_PARENT in the common clk
framework flags.

To support both old and new firmware version, consider BIT(13) from
clkflag and BIT(4) from type_flag to check if divider is fractional
or not.

To maintain compatibility BIT(13) of clkflag in firmware will not be
used in future for any purpose and will be marked as unused.

Signed-off-by: Tejas Patel <tejas.patel@xilinx.com>
Signed-off-by: Rajan Vaja <rajan.vaja@xilinx.com>
Signed-off-by: Jolly Shah <jolly.shah@xilinx.com>
---
 drivers/clk/zynqmp/divider.c | 6 ++++--
 1 file changed, 4 insertions(+), 2 deletions(-)

diff --git a/drivers/clk/zynqmp/divider.c b/drivers/clk/zynqmp/divider.c
index 8eed715..efe2ed6 100644
--- a/drivers/clk/zynqmp/divider.c
+++ b/drivers/clk/zynqmp/divider.c
@@ -25,7 +25,8 @@
 #define to_zynqmp_clk_divider(_hw)		\
 	container_of(_hw, struct zynqmp_clk_divider, hw)
 
-#define CLK_FRAC	BIT(13) /* has a fractional parent */
+#define CLK_FRAC		BIT(13) /* has a fractional parent */
+#define CUSTOM_FLAG_CLK_FRAC	BIT(0) /* has a fractional parent in custom type flag */
 
 /**
  * struct zynqmp_clk_divider - adjustable divider clock
@@ -307,7 +308,8 @@ struct clk_hw *zynqmp_clk_register_divider(const char *name,
 	init.num_parents = 1;
 
 	/* struct clk_divider assignments */
-	div->is_frac = !!(nodes->flag & CLK_FRAC);
+	div->is_frac = !!((nodes->flag & CLK_FRAC) |
+			  (nodes->custom_type_flag & CUSTOM_FLAG_CLK_FRAC));
 	div->flags = nodes->type_flag;
 	div->hw.init = &init;
 	div->clk_id = clk_id;
-- 
2.7.4


_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel

^ permalink raw reply related	[flat|nested] 22+ messages in thread

* Re: [PATCH v2 0/2] drivers: clk: zynqmp: Update fraction clock check from custom type flags
  2020-03-12 21:31 ` Jolly Shah
@ 2020-03-23 21:15   ` Jolly Shah
  -1 siblings, 0 replies; 22+ messages in thread
From: Jolly Shah @ 2020-03-23 21:15 UTC (permalink / raw)
  To: Jolly Shah, olof, mturquette, sboyd, Michal Simek, arm, linux-clk
  Cc: Rajan Vaja, linux-arm-kernel, linux-kernel

A gentle reminder for review.

Thanks,
Jolly Shah

On 3/12/20, 2:32 PM, "Jolly Shah" <jolly.shah@xilinx.com> wrote:

    This patch series adds support for custom type flags passed from
    firmware. It also update  fraction clock check from custom type
    flags since new firmware pass CLK_FRAC flag as a part of custom flags
    instead of clkflags as CLK_FRAC is not common clock framework flag.
    
    This patch series maintains backward compatibility with older version
    of firmware.
    v2:
     -PATCH[2/2] Correct BIT index of CLK_FRAC in custom_type_flag
    
    Rajan Vaja (1):
      drivers: clk: zynqmp: Add support for custom type flags
    
    Tejas Patel (1):
      drivers: clk: zynqmp: Update fraction clock check from custom type
        flags
    
     drivers/clk/zynqmp/clk-zynqmp.h | 1 +
     drivers/clk/zynqmp/clkc.c       | 4 ++++
     drivers/clk/zynqmp/divider.c    | 6 ++++--
     3 files changed, 9 insertions(+), 2 deletions(-)
    
    -- 
    2.7.4
    
    


^ permalink raw reply	[flat|nested] 22+ messages in thread

* Re: [PATCH v2 0/2] drivers: clk: zynqmp: Update fraction clock check from custom type flags
@ 2020-03-23 21:15   ` Jolly Shah
  0 siblings, 0 replies; 22+ messages in thread
From: Jolly Shah @ 2020-03-23 21:15 UTC (permalink / raw)
  To: Jolly Shah, olof, mturquette, sboyd, Michal Simek, arm, linux-clk
  Cc: Rajan Vaja, linux-kernel, linux-arm-kernel

A gentle reminder for review.

Thanks,
Jolly Shah

On 3/12/20, 2:32 PM, "Jolly Shah" <jolly.shah@xilinx.com> wrote:

    This patch series adds support for custom type flags passed from
    firmware. It also update  fraction clock check from custom type
    flags since new firmware pass CLK_FRAC flag as a part of custom flags
    instead of clkflags as CLK_FRAC is not common clock framework flag.
    
    This patch series maintains backward compatibility with older version
    of firmware.
    v2:
     -PATCH[2/2] Correct BIT index of CLK_FRAC in custom_type_flag
    
    Rajan Vaja (1):
      drivers: clk: zynqmp: Add support for custom type flags
    
    Tejas Patel (1):
      drivers: clk: zynqmp: Update fraction clock check from custom type
        flags
    
     drivers/clk/zynqmp/clk-zynqmp.h | 1 +
     drivers/clk/zynqmp/clkc.c       | 4 ++++
     drivers/clk/zynqmp/divider.c    | 6 ++++--
     3 files changed, 9 insertions(+), 2 deletions(-)
    
    -- 
    2.7.4
    
    

_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel

^ permalink raw reply	[flat|nested] 22+ messages in thread

* Re: [PATCH v2 0/2] drivers: clk: zynqmp: Update fraction clock check from custom type flags
  2020-03-12 21:31 ` Jolly Shah
@ 2020-04-09 20:48   ` Jolly Shah
  -1 siblings, 0 replies; 22+ messages in thread
From: Jolly Shah @ 2020-04-09 20:48 UTC (permalink / raw)
  To: Jolly Shah, olof, mturquette, sboyd, michal.simek, arm, linux-clk
  Cc: rajanv, linux-arm-kernel, linux-kernel

Hi Stephan,

Ping. Please review.

Thanks,
Jolly Shah

 > ------Original Message------
 > From: Jolly Shah <jolly.shah@xilinx.com>
 > Sent:  Thursday, March 12, 2020 2:31PM
 > To: Olof <olof@lixom.net>, Mturquette <mturquette@baylibre.com>, 
Sboyd <sboyd@kernel.org>, Michal Simek <michal.simek@xilinx.com>, Arm 
<arm@kernel.org>, Linux-clk <linux-clk@vger.kernel.org>
 > Cc: Rajan Vaja <rajanv@xilinx.com>, 
Linux-arm-kernel@lists.infradead.org 
<linux-arm-kernel@lists.infradead.org>, Linux-kernel@vger.kernel.org 
<linux-kernel@vger.kernel.org>, Jolly Shah <jolly.shah@xilinx.com>
 > Subject: [PATCH v2 0/2] drivers: clk: zynqmp: Update fraction clock 
check from custom type flags
 >
> This patch series adds support for custom type flags passed from
> firmware. It also update  fraction clock check from custom type
> flags since new firmware pass CLK_FRAC flag as a part of custom flags
> instead of clkflags as CLK_FRAC is not common clock framework flag.
> 
> This patch series maintains backward compatibility with older version
> of firmware.
> v2:
>   -PATCH[2/2] Correct BIT index of CLK_FRAC in custom_type_flag
> 
> Rajan Vaja (1):
>    drivers: clk: zynqmp: Add support for custom type flags
> 
> Tejas Patel (1):
>    drivers: clk: zynqmp: Update fraction clock check from custom type
>      flags
> 
>   drivers/clk/zynqmp/clk-zynqmp.h | 1 +
>   drivers/clk/zynqmp/clkc.c       | 4 ++++
>   drivers/clk/zynqmp/divider.c    | 6 ++++--
>   3 files changed, 9 insertions(+), 2 deletions(-)
> 

^ permalink raw reply	[flat|nested] 22+ messages in thread

* Re: [PATCH v2 0/2] drivers: clk: zynqmp: Update fraction clock check from custom type flags
@ 2020-04-09 20:48   ` Jolly Shah
  0 siblings, 0 replies; 22+ messages in thread
From: Jolly Shah @ 2020-04-09 20:48 UTC (permalink / raw)
  To: Jolly Shah, olof, mturquette, sboyd, michal.simek, arm, linux-clk
  Cc: rajanv, linux-kernel, linux-arm-kernel

Hi Stephan,

Ping. Please review.

Thanks,
Jolly Shah

 > ------Original Message------
 > From: Jolly Shah <jolly.shah@xilinx.com>
 > Sent:  Thursday, March 12, 2020 2:31PM
 > To: Olof <olof@lixom.net>, Mturquette <mturquette@baylibre.com>, 
Sboyd <sboyd@kernel.org>, Michal Simek <michal.simek@xilinx.com>, Arm 
<arm@kernel.org>, Linux-clk <linux-clk@vger.kernel.org>
 > Cc: Rajan Vaja <rajanv@xilinx.com>, 
Linux-arm-kernel@lists.infradead.org 
<linux-arm-kernel@lists.infradead.org>, Linux-kernel@vger.kernel.org 
<linux-kernel@vger.kernel.org>, Jolly Shah <jolly.shah@xilinx.com>
 > Subject: [PATCH v2 0/2] drivers: clk: zynqmp: Update fraction clock 
check from custom type flags
 >
> This patch series adds support for custom type flags passed from
> firmware. It also update  fraction clock check from custom type
> flags since new firmware pass CLK_FRAC flag as a part of custom flags
> instead of clkflags as CLK_FRAC is not common clock framework flag.
> 
> This patch series maintains backward compatibility with older version
> of firmware.
> v2:
>   -PATCH[2/2] Correct BIT index of CLK_FRAC in custom_type_flag
> 
> Rajan Vaja (1):
>    drivers: clk: zynqmp: Add support for custom type flags
> 
> Tejas Patel (1):
>    drivers: clk: zynqmp: Update fraction clock check from custom type
>      flags
> 
>   drivers/clk/zynqmp/clk-zynqmp.h | 1 +
>   drivers/clk/zynqmp/clkc.c       | 4 ++++
>   drivers/clk/zynqmp/divider.c    | 6 ++++--
>   3 files changed, 9 insertions(+), 2 deletions(-)
> 

_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel

^ permalink raw reply	[flat|nested] 22+ messages in thread

* Re: [PATCH v2 1/2] drivers: clk: zynqmp: Add support for custom type flags
  2020-03-12 21:31   ` Jolly Shah
@ 2020-05-27  1:01     ` Stephen Boyd
  -1 siblings, 0 replies; 22+ messages in thread
From: Stephen Boyd @ 2020-05-27  1:01 UTC (permalink / raw)
  To: Jolly Shah, arm, linux-clk, michal.simek, mturquette, olof
  Cc: rajanv, linux-arm-kernel, linux-kernel, Rajan Vaja, Tejas Patel,
	Jolly Shah

Quoting Jolly Shah (2020-03-12 14:31:38)
> From: Rajan Vaja <rajan.vaja@xilinx.com>
> 
> Store extra custom type flags received from firmware.
> 
> Signed-off-by: Rajan Vaja <rajan.vaja@xilinx.com>
> Signed-off-by: Tejas Patel <tejas.patel@xilinx.com>
> Signed-off-by: Jolly Shah <jolly.shah@xilinx.com>
> ---

Applied to clk-next

^ permalink raw reply	[flat|nested] 22+ messages in thread

* Re: [PATCH v2 1/2] drivers: clk: zynqmp: Add support for custom type flags
@ 2020-05-27  1:01     ` Stephen Boyd
  0 siblings, 0 replies; 22+ messages in thread
From: Stephen Boyd @ 2020-05-27  1:01 UTC (permalink / raw)
  To: Jolly Shah, arm, linux-clk, michal.simek, mturquette, olof
  Cc: Tejas Patel, Rajan Vaja, linux-kernel, rajanv, Jolly Shah,
	linux-arm-kernel

Quoting Jolly Shah (2020-03-12 14:31:38)
> From: Rajan Vaja <rajan.vaja@xilinx.com>
> 
> Store extra custom type flags received from firmware.
> 
> Signed-off-by: Rajan Vaja <rajan.vaja@xilinx.com>
> Signed-off-by: Tejas Patel <tejas.patel@xilinx.com>
> Signed-off-by: Jolly Shah <jolly.shah@xilinx.com>
> ---

Applied to clk-next

_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel

^ permalink raw reply	[flat|nested] 22+ messages in thread

* Re: [PATCH v2 2/2] drivers: clk: zynqmp: Update fraction clock check from custom type flags
  2020-03-12 21:31   ` Jolly Shah
@ 2020-05-27  1:01     ` Stephen Boyd
  -1 siblings, 0 replies; 22+ messages in thread
From: Stephen Boyd @ 2020-05-27  1:01 UTC (permalink / raw)
  To: Jolly Shah, arm, linux-clk, michal.simek, mturquette, olof
  Cc: rajanv, linux-arm-kernel, linux-kernel, Tejas Patel, Rajan Vaja,
	Jolly Shah

Quoting Jolly Shah (2020-03-12 14:31:39)
> From: Tejas Patel <tejas.patel@xilinx.com>
> 
> Older firmware version sets BIT(13) in clkflag to mark a
> divider as fractional divider. Updated firmware version sets BIT(4)
> in type flags to mark a divider as fractional divider since
> BIT(13) is defined as CLK_DUTY_CYCLE_PARENT in the common clk
> framework flags.
> 
> To support both old and new firmware version, consider BIT(13) from
> clkflag and BIT(4) from type_flag to check if divider is fractional
> or not.
> 
> To maintain compatibility BIT(13) of clkflag in firmware will not be
> used in future for any purpose and will be marked as unused.
> 
> Signed-off-by: Tejas Patel <tejas.patel@xilinx.com>
> Signed-off-by: Rajan Vaja <rajan.vaja@xilinx.com>
> Signed-off-by: Jolly Shah <jolly.shah@xilinx.com>
> ---

Applied to clk-next

^ permalink raw reply	[flat|nested] 22+ messages in thread

* Re: [PATCH v2 2/2] drivers: clk: zynqmp: Update fraction clock check from custom type flags
@ 2020-05-27  1:01     ` Stephen Boyd
  0 siblings, 0 replies; 22+ messages in thread
From: Stephen Boyd @ 2020-05-27  1:01 UTC (permalink / raw)
  To: Jolly Shah, arm, linux-clk, michal.simek, mturquette, olof
  Cc: Tejas Patel, Rajan Vaja, linux-kernel, rajanv, Jolly Shah,
	linux-arm-kernel

Quoting Jolly Shah (2020-03-12 14:31:39)
> From: Tejas Patel <tejas.patel@xilinx.com>
> 
> Older firmware version sets BIT(13) in clkflag to mark a
> divider as fractional divider. Updated firmware version sets BIT(4)
> in type flags to mark a divider as fractional divider since
> BIT(13) is defined as CLK_DUTY_CYCLE_PARENT in the common clk
> framework flags.
> 
> To support both old and new firmware version, consider BIT(13) from
> clkflag and BIT(4) from type_flag to check if divider is fractional
> or not.
> 
> To maintain compatibility BIT(13) of clkflag in firmware will not be
> used in future for any purpose and will be marked as unused.
> 
> Signed-off-by: Tejas Patel <tejas.patel@xilinx.com>
> Signed-off-by: Rajan Vaja <rajan.vaja@xilinx.com>
> Signed-off-by: Jolly Shah <jolly.shah@xilinx.com>
> ---

Applied to clk-next

_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel

^ permalink raw reply	[flat|nested] 22+ messages in thread

* Re: [PATCH v2 2/2] drivers: clk: zynqmp: Update fraction clock check from custom type flags
  2020-03-12 21:31   ` Jolly Shah
@ 2020-05-27  1:08     ` Stephen Boyd
  -1 siblings, 0 replies; 22+ messages in thread
From: Stephen Boyd @ 2020-05-27  1:08 UTC (permalink / raw)
  To: Jolly Shah, arm, linux-clk, michal.simek, mturquette, olof
  Cc: rajanv, linux-arm-kernel, linux-kernel, Tejas Patel, Rajan Vaja,
	Jolly Shah

Quoting Jolly Shah (2020-03-12 14:31:39)
> From: Tejas Patel <tejas.patel@xilinx.com>
> 
> Older firmware version sets BIT(13) in clkflag to mark a
> divider as fractional divider. Updated firmware version sets BIT(4)
> in type flags to mark a divider as fractional divider since
> BIT(13) is defined as CLK_DUTY_CYCLE_PARENT in the common clk
> framework flags.
> 
> To support both old and new firmware version, consider BIT(13) from
> clkflag and BIT(4) from type_flag to check if divider is fractional
> or not.
> 
> To maintain compatibility BIT(13) of clkflag in firmware will not be
> used in future for any purpose and will be marked as unused.

Why are we mixing the firmware flags with the ccf flags? They shouldn't
be the same. The firmware should have its own 'flag numberspace' that is
distinct from the common clk framework's 'flag numberspace'. Please fix
the code.

^ permalink raw reply	[flat|nested] 22+ messages in thread

* Re: [PATCH v2 2/2] drivers: clk: zynqmp: Update fraction clock check from custom type flags
@ 2020-05-27  1:08     ` Stephen Boyd
  0 siblings, 0 replies; 22+ messages in thread
From: Stephen Boyd @ 2020-05-27  1:08 UTC (permalink / raw)
  To: Jolly Shah, arm, linux-clk, michal.simek, mturquette, olof
  Cc: Tejas Patel, Rajan Vaja, linux-kernel, rajanv, Jolly Shah,
	linux-arm-kernel

Quoting Jolly Shah (2020-03-12 14:31:39)
> From: Tejas Patel <tejas.patel@xilinx.com>
> 
> Older firmware version sets BIT(13) in clkflag to mark a
> divider as fractional divider. Updated firmware version sets BIT(4)
> in type flags to mark a divider as fractional divider since
> BIT(13) is defined as CLK_DUTY_CYCLE_PARENT in the common clk
> framework flags.
> 
> To support both old and new firmware version, consider BIT(13) from
> clkflag and BIT(4) from type_flag to check if divider is fractional
> or not.
> 
> To maintain compatibility BIT(13) of clkflag in firmware will not be
> used in future for any purpose and will be marked as unused.

Why are we mixing the firmware flags with the ccf flags? They shouldn't
be the same. The firmware should have its own 'flag numberspace' that is
distinct from the common clk framework's 'flag numberspace'. Please fix
the code.

_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel

^ permalink raw reply	[flat|nested] 22+ messages in thread

* Re: [PATCH v2 2/2] drivers: clk: zynqmp: Update fraction clock check from custom type flags
  2020-05-27  1:08     ` Stephen Boyd
@ 2020-05-28 17:44       ` Jolly Shah
  -1 siblings, 0 replies; 22+ messages in thread
From: Jolly Shah @ 2020-05-28 17:44 UTC (permalink / raw)
  To: Stephen Boyd, Jolly Shah, arm, linux-clk, michal.simek, mturquette, olof
  Cc: rajanv, linux-arm-kernel, linux-kernel, Tejas Patel, Rajan Vaja

Hi Stephan,

Thanks for the review.

 > ------Original Message------
 > From: Stephen Boyd <sboyd@kernel.org>
 > Sent:  Tuesday, May 26, 2020 6:08PM
 > To: Jolly Shah <jolly.shah@xilinx.com>, Arm <arm@kernel.org>, 
Linux-clk <linux-clk@vger.kernel.org>, Michal Simek 
<michal.simek@xilinx.com>, Mturquette <mturquette@baylibre.com>, Olof 
<olof@lixom.net>
 > Cc: Rajan Vaja <rajanv@xilinx.com>, 
Linux-arm-kernel@lists.infradead.org 
<linux-arm-kernel@lists.infradead.org>, Linux-kernel@vger.kernel.org 
<linux-kernel@vger.kernel.org>, Tejas Patel <tejas.patel@xilinx.com>, 
Rajan Vaja <rajan.vaja@xilinx.com>, Jolly Shah <jolly.shah@xilinx.com>
 > Subject: Re: [PATCH v2 2/2] drivers: clk: zynqmp: Update fraction 
clock check from custom type flags
 >
> Quoting Jolly Shah (2020-03-12 14:31:39)
>> From: Tejas Patel <tejas.patel@xilinx.com>
>>
>> Older firmware version sets BIT(13) in clkflag to mark a
>> divider as fractional divider. Updated firmware version sets BIT(4)
>> in type flags to mark a divider as fractional divider since
>> BIT(13) is defined as CLK_DUTY_CYCLE_PARENT in the common clk
>> framework flags.
>>
>> To support both old and new firmware version, consider BIT(13) from
>> clkflag and BIT(4) from type_flag to check if divider is fractional
>> or not.
>>
>> To maintain compatibility BIT(13) of clkflag in firmware will not be
>> used in future for any purpose and will be marked as unused.
> 
> Why are we mixing the firmware flags with the ccf flags? They shouldn't
> be the same. The firmware should have its own 'flag numberspace' that is
> distinct from the common clk framework's 'flag numberspace'. Please fix
> the code.
> 

Yes firmware flags are using separate numberspace now. Firmware 
maintains CCF and firmware specific flags separately but earlier 
CLK_FRAC was mistakenly defined in ccf flagspace and hence handled here 
for backward compatibility. Driver takes care of not registering same 
with CCF. Let me know if I misunderstood.

Thanks,
Jolly Shah



^ permalink raw reply	[flat|nested] 22+ messages in thread

* Re: [PATCH v2 2/2] drivers: clk: zynqmp: Update fraction clock check from custom type flags
@ 2020-05-28 17:44       ` Jolly Shah
  0 siblings, 0 replies; 22+ messages in thread
From: Jolly Shah @ 2020-05-28 17:44 UTC (permalink / raw)
  To: Stephen Boyd, Jolly Shah, arm, linux-clk, michal.simek, mturquette, olof
  Cc: Tejas Patel, Rajan Vaja, rajanv, linux-kernel, linux-arm-kernel

Hi Stephan,

Thanks for the review.

 > ------Original Message------
 > From: Stephen Boyd <sboyd@kernel.org>
 > Sent:  Tuesday, May 26, 2020 6:08PM
 > To: Jolly Shah <jolly.shah@xilinx.com>, Arm <arm@kernel.org>, 
Linux-clk <linux-clk@vger.kernel.org>, Michal Simek 
<michal.simek@xilinx.com>, Mturquette <mturquette@baylibre.com>, Olof 
<olof@lixom.net>
 > Cc: Rajan Vaja <rajanv@xilinx.com>, 
Linux-arm-kernel@lists.infradead.org 
<linux-arm-kernel@lists.infradead.org>, Linux-kernel@vger.kernel.org 
<linux-kernel@vger.kernel.org>, Tejas Patel <tejas.patel@xilinx.com>, 
Rajan Vaja <rajan.vaja@xilinx.com>, Jolly Shah <jolly.shah@xilinx.com>
 > Subject: Re: [PATCH v2 2/2] drivers: clk: zynqmp: Update fraction 
clock check from custom type flags
 >
> Quoting Jolly Shah (2020-03-12 14:31:39)
>> From: Tejas Patel <tejas.patel@xilinx.com>
>>
>> Older firmware version sets BIT(13) in clkflag to mark a
>> divider as fractional divider. Updated firmware version sets BIT(4)
>> in type flags to mark a divider as fractional divider since
>> BIT(13) is defined as CLK_DUTY_CYCLE_PARENT in the common clk
>> framework flags.
>>
>> To support both old and new firmware version, consider BIT(13) from
>> clkflag and BIT(4) from type_flag to check if divider is fractional
>> or not.
>>
>> To maintain compatibility BIT(13) of clkflag in firmware will not be
>> used in future for any purpose and will be marked as unused.
> 
> Why are we mixing the firmware flags with the ccf flags? They shouldn't
> be the same. The firmware should have its own 'flag numberspace' that is
> distinct from the common clk framework's 'flag numberspace'. Please fix
> the code.
> 

Yes firmware flags are using separate numberspace now. Firmware 
maintains CCF and firmware specific flags separately but earlier 
CLK_FRAC was mistakenly defined in ccf flagspace and hence handled here 
for backward compatibility. Driver takes care of not registering same 
with CCF. Let me know if I misunderstood.

Thanks,
Jolly Shah



_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel

^ permalink raw reply	[flat|nested] 22+ messages in thread

* Re: [PATCH v2 2/2] drivers: clk: zynqmp: Update fraction clock check from custom type flags
  2020-05-28 17:44       ` Jolly Shah
@ 2020-05-28 23:12         ` Stephen Boyd
  -1 siblings, 0 replies; 22+ messages in thread
From: Stephen Boyd @ 2020-05-28 23:12 UTC (permalink / raw)
  To: Jolly Shah, arm, linux-clk, michal.simek, mturquette, olof
  Cc: rajanv, linux-arm-kernel, linux-kernel, Tejas Patel, Rajan Vaja

Quoting Jolly Shah (2020-05-28 10:44:01)
> Hi Stephan,
> 
> Thanks for the review.
> 
>  > ------Original Message------
>  > From: Stephen Boyd <sboyd@kernel.org>
>  > Sent:  Tuesday, May 26, 2020 6:08PM
>  > To: Jolly Shah <jolly.shah@xilinx.com>, Arm <arm@kernel.org>, 
> Linux-clk <linux-clk@vger.kernel.org>, Michal Simek 
> <michal.simek@xilinx.com>, Mturquette <mturquette@baylibre.com>, Olof 
> <olof@lixom.net>
>  > Cc: Rajan Vaja <rajanv@xilinx.com>, 
> Linux-arm-kernel@lists.infradead.org 
> <linux-arm-kernel@lists.infradead.org>, Linux-kernel@vger.kernel.org 
> <linux-kernel@vger.kernel.org>, Tejas Patel <tejas.patel@xilinx.com>, 
> Rajan Vaja <rajan.vaja@xilinx.com>, Jolly Shah <jolly.shah@xilinx.com>
>  > Subject: Re: [PATCH v2 2/2] drivers: clk: zynqmp: Update fraction 
> clock check from custom type flags
>  >
> > Quoting Jolly Shah (2020-03-12 14:31:39)
> >> From: Tejas Patel <tejas.patel@xilinx.com>
> >>
> >> Older firmware version sets BIT(13) in clkflag to mark a
> >> divider as fractional divider. Updated firmware version sets BIT(4)
> >> in type flags to mark a divider as fractional divider since
> >> BIT(13) is defined as CLK_DUTY_CYCLE_PARENT in the common clk
> >> framework flags.
> >>
> >> To support both old and new firmware version, consider BIT(13) from
> >> clkflag and BIT(4) from type_flag to check if divider is fractional
> >> or not.
> >>
> >> To maintain compatibility BIT(13) of clkflag in firmware will not be
> >> used in future for any purpose and will be marked as unused.
> > 
> > Why are we mixing the firmware flags with the ccf flags? They shouldn't
> > be the same. The firmware should have its own 'flag numberspace' that is
> > distinct from the common clk framework's 'flag numberspace'. Please fix
> > the code.
> > 
> 
> Yes firmware flags are using separate numberspace now. Firmware 
> maintains CCF and firmware specific flags separately but earlier 
> CLK_FRAC was mistakenly defined in ccf flagspace and hence handled here 
> for backward compatibility. Driver takes care of not registering same 
> with CCF. Let me know if I misunderstood.

Why is the firmware maintaining CCF specific flags? The firmware
shouldn't know about the CCF flag numbering at all. We can change the
numbers that the CCF flags are assigned to randomly and that shouldn't
mean that the firmware needs to change. Maybe I should apply this patch?

---8<----
diff --git a/include/linux/clk-provider.h b/include/linux/clk-provider.h
index bd1ee9039558..c1f36bca85b0 100644
--- a/include/linux/clk-provider.h
+++ b/include/linux/clk-provider.h
@@ -16,22 +16,22 @@
  *
  * Please update clk_flags[] in drivers/clk/clk.c when making changes here!
  */
-#define CLK_SET_RATE_GATE	BIT(0) /* must be gated across rate change */
-#define CLK_SET_PARENT_GATE	BIT(1) /* must be gated across re-parent */
-#define CLK_SET_RATE_PARENT	BIT(2) /* propagate rate change up one level */
-#define CLK_IGNORE_UNUSED	BIT(3) /* do not gate even if unused */
+#define CLK_SET_RATE_GATE	BIT(13) /* must be gated across rate change */
+#define CLK_SET_PARENT_GATE	BIT(2) /* must be gated across re-parent */
+#define CLK_SET_RATE_PARENT	BIT(3) /* propagate rate change up one level */
+#define CLK_IGNORE_UNUSED	BIT(4) /* do not gate even if unused */
 				/* unused */
 				/* unused */
-#define CLK_GET_RATE_NOCACHE	BIT(6) /* do not use the cached clk rate */
-#define CLK_SET_RATE_NO_REPARENT BIT(7) /* don't re-parent on rate change */
-#define CLK_GET_ACCURACY_NOCACHE BIT(8) /* do not use the cached clk accuracy */
-#define CLK_RECALC_NEW_RATES	BIT(9) /* recalc rates after notifications */
-#define CLK_SET_RATE_UNGATE	BIT(10) /* clock needs to run to set rate */
-#define CLK_IS_CRITICAL		BIT(11) /* do not gate, ever */
+#define CLK_GET_RATE_NOCACHE	BIT(5) /* do not use the cached clk rate */
+#define CLK_SET_RATE_NO_REPARENT BIT(6) /* don't re-parent on rate change */
+#define CLK_GET_ACCURACY_NOCACHE BIT(7) /* do not use the cached clk accuracy */
+#define CLK_RECALC_NEW_RATES	BIT(8) /* recalc rates after notifications */
+#define CLK_SET_RATE_UNGATE	BIT(9) /* clock needs to run to set rate */
+#define CLK_IS_CRITICAL		BIT(10) /* do not gate, ever */
 /* parents need enable during gate/ungate, set rate and re-parent */
-#define CLK_OPS_PARENT_ENABLE	BIT(12)
+#define CLK_OPS_PARENT_ENABLE	BIT(11)
 /* duty cycle call may be forwarded to the parent clock */
-#define CLK_DUTY_CYCLE_PARENT	BIT(13)
+#define CLK_DUTY_CYCLE_PARENT	BIT(12)
 
 struct clk;
 struct clk_hw;

^ permalink raw reply related	[flat|nested] 22+ messages in thread

* Re: [PATCH v2 2/2] drivers: clk: zynqmp: Update fraction clock check from custom type flags
@ 2020-05-28 23:12         ` Stephen Boyd
  0 siblings, 0 replies; 22+ messages in thread
From: Stephen Boyd @ 2020-05-28 23:12 UTC (permalink / raw)
  To: Jolly Shah, arm, linux-clk, michal.simek, mturquette, olof
  Cc: Tejas Patel, Rajan Vaja, rajanv, linux-kernel, linux-arm-kernel

Quoting Jolly Shah (2020-05-28 10:44:01)
> Hi Stephan,
> 
> Thanks for the review.
> 
>  > ------Original Message------
>  > From: Stephen Boyd <sboyd@kernel.org>
>  > Sent:  Tuesday, May 26, 2020 6:08PM
>  > To: Jolly Shah <jolly.shah@xilinx.com>, Arm <arm@kernel.org>, 
> Linux-clk <linux-clk@vger.kernel.org>, Michal Simek 
> <michal.simek@xilinx.com>, Mturquette <mturquette@baylibre.com>, Olof 
> <olof@lixom.net>
>  > Cc: Rajan Vaja <rajanv@xilinx.com>, 
> Linux-arm-kernel@lists.infradead.org 
> <linux-arm-kernel@lists.infradead.org>, Linux-kernel@vger.kernel.org 
> <linux-kernel@vger.kernel.org>, Tejas Patel <tejas.patel@xilinx.com>, 
> Rajan Vaja <rajan.vaja@xilinx.com>, Jolly Shah <jolly.shah@xilinx.com>
>  > Subject: Re: [PATCH v2 2/2] drivers: clk: zynqmp: Update fraction 
> clock check from custom type flags
>  >
> > Quoting Jolly Shah (2020-03-12 14:31:39)
> >> From: Tejas Patel <tejas.patel@xilinx.com>
> >>
> >> Older firmware version sets BIT(13) in clkflag to mark a
> >> divider as fractional divider. Updated firmware version sets BIT(4)
> >> in type flags to mark a divider as fractional divider since
> >> BIT(13) is defined as CLK_DUTY_CYCLE_PARENT in the common clk
> >> framework flags.
> >>
> >> To support both old and new firmware version, consider BIT(13) from
> >> clkflag and BIT(4) from type_flag to check if divider is fractional
> >> or not.
> >>
> >> To maintain compatibility BIT(13) of clkflag in firmware will not be
> >> used in future for any purpose and will be marked as unused.
> > 
> > Why are we mixing the firmware flags with the ccf flags? They shouldn't
> > be the same. The firmware should have its own 'flag numberspace' that is
> > distinct from the common clk framework's 'flag numberspace'. Please fix
> > the code.
> > 
> 
> Yes firmware flags are using separate numberspace now. Firmware 
> maintains CCF and firmware specific flags separately but earlier 
> CLK_FRAC was mistakenly defined in ccf flagspace and hence handled here 
> for backward compatibility. Driver takes care of not registering same 
> with CCF. Let me know if I misunderstood.

Why is the firmware maintaining CCF specific flags? The firmware
shouldn't know about the CCF flag numbering at all. We can change the
numbers that the CCF flags are assigned to randomly and that shouldn't
mean that the firmware needs to change. Maybe I should apply this patch?

---8<----
diff --git a/include/linux/clk-provider.h b/include/linux/clk-provider.h
index bd1ee9039558..c1f36bca85b0 100644
--- a/include/linux/clk-provider.h
+++ b/include/linux/clk-provider.h
@@ -16,22 +16,22 @@
  *
  * Please update clk_flags[] in drivers/clk/clk.c when making changes here!
  */
-#define CLK_SET_RATE_GATE	BIT(0) /* must be gated across rate change */
-#define CLK_SET_PARENT_GATE	BIT(1) /* must be gated across re-parent */
-#define CLK_SET_RATE_PARENT	BIT(2) /* propagate rate change up one level */
-#define CLK_IGNORE_UNUSED	BIT(3) /* do not gate even if unused */
+#define CLK_SET_RATE_GATE	BIT(13) /* must be gated across rate change */
+#define CLK_SET_PARENT_GATE	BIT(2) /* must be gated across re-parent */
+#define CLK_SET_RATE_PARENT	BIT(3) /* propagate rate change up one level */
+#define CLK_IGNORE_UNUSED	BIT(4) /* do not gate even if unused */
 				/* unused */
 				/* unused */
-#define CLK_GET_RATE_NOCACHE	BIT(6) /* do not use the cached clk rate */
-#define CLK_SET_RATE_NO_REPARENT BIT(7) /* don't re-parent on rate change */
-#define CLK_GET_ACCURACY_NOCACHE BIT(8) /* do not use the cached clk accuracy */
-#define CLK_RECALC_NEW_RATES	BIT(9) /* recalc rates after notifications */
-#define CLK_SET_RATE_UNGATE	BIT(10) /* clock needs to run to set rate */
-#define CLK_IS_CRITICAL		BIT(11) /* do not gate, ever */
+#define CLK_GET_RATE_NOCACHE	BIT(5) /* do not use the cached clk rate */
+#define CLK_SET_RATE_NO_REPARENT BIT(6) /* don't re-parent on rate change */
+#define CLK_GET_ACCURACY_NOCACHE BIT(7) /* do not use the cached clk accuracy */
+#define CLK_RECALC_NEW_RATES	BIT(8) /* recalc rates after notifications */
+#define CLK_SET_RATE_UNGATE	BIT(9) /* clock needs to run to set rate */
+#define CLK_IS_CRITICAL		BIT(10) /* do not gate, ever */
 /* parents need enable during gate/ungate, set rate and re-parent */
-#define CLK_OPS_PARENT_ENABLE	BIT(12)
+#define CLK_OPS_PARENT_ENABLE	BIT(11)
 /* duty cycle call may be forwarded to the parent clock */
-#define CLK_DUTY_CYCLE_PARENT	BIT(13)
+#define CLK_DUTY_CYCLE_PARENT	BIT(12)
 
 struct clk;
 struct clk_hw;

_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel

^ permalink raw reply related	[flat|nested] 22+ messages in thread

* Re: [PATCH v2 2/2] drivers: clk: zynqmp: Update fraction clock check from custom type flags
  2020-05-28 23:12         ` Stephen Boyd
@ 2020-05-29 21:20           ` Jolly Shah
  -1 siblings, 0 replies; 22+ messages in thread
From: Jolly Shah @ 2020-05-29 21:20 UTC (permalink / raw)
  To: Stephen Boyd, Jolly Shah, arm, linux-clk, michal.simek, mturquette, olof
  Cc: rajanv, linux-arm-kernel, linux-kernel, Tejas Patel, Rajan Vaja

Hi Stephan,

 > ------Original Message------
 > From: Stephen Boyd <sboyd@kernel.org>
 > Sent:  Thursday, May 28, 2020 4:12PM
 > To: Jolly Shah <jolly.shah@xilinx.com>, Arm <arm@kernel.org>, 
Linux-clk <linux-clk@vger.kernel.org>, Michal Simek 
<michal.simek@xilinx.com>, Mturquette <mturquette@baylibre.com>, Olof 
<olof@lixom.net>
 > Cc: Rajan Vaja <rajanv@xilinx.com>, 
Linux-arm-kernel@lists.infradead.org 
<linux-arm-kernel@lists.infradead.org>, Linux-kernel@vger.kernel.org 
<linux-kernel@vger.kernel.org>, Tejas Patel <tejas.patel@xilinx.com>, 
Rajan Vaja <rajan.vaja@xilinx.com>
 > Subject: Re: [PATCH v2 2/2] drivers: clk: zynqmp: Update fraction 
clock check from custom type flags
 >
> Quoting Jolly Shah (2020-05-28 10:44:01)
>> Hi Stephan,
>>
>> Thanks for the review.
>>
>>   > ------Original Message------
>>   > From: Stephen Boyd <sboyd@kernel.org>
>>   > Sent:  Tuesday, May 26, 2020 6:08PM
>>   > To: Jolly Shah <jolly.shah@xilinx.com>, Arm <arm@kernel.org>,
>> Linux-clk <linux-clk@vger.kernel.org>, Michal Simek
>> <michal.simek@xilinx.com>, Mturquette <mturquette@baylibre.com>, Olof
>> <olof@lixom.net>
>>   > Cc: Rajan Vaja <rajanv@xilinx.com>,
>> Linux-arm-kernel@lists.infradead.org
>> <linux-arm-kernel@lists.infradead.org>, Linux-kernel@vger.kernel.org
>> <linux-kernel@vger.kernel.org>, Tejas Patel <tejas.patel@xilinx.com>,
>> Rajan Vaja <rajan.vaja@xilinx.com>, Jolly Shah <jolly.shah@xilinx.com>
>>   > Subject: Re: [PATCH v2 2/2] drivers: clk: zynqmp: Update fraction
>> clock check from custom type flags
>>   >
>>> Quoting Jolly Shah (2020-03-12 14:31:39)
>>>> From: Tejas Patel <tejas.patel@xilinx.com>
>>>>
>>>> Older firmware version sets BIT(13) in clkflag to mark a
>>>> divider as fractional divider. Updated firmware version sets BIT(4)
>>>> in type flags to mark a divider as fractional divider since
>>>> BIT(13) is defined as CLK_DUTY_CYCLE_PARENT in the common clk
>>>> framework flags.
>>>>
>>>> To support both old and new firmware version, consider BIT(13) from
>>>> clkflag and BIT(4) from type_flag to check if divider is fractional
>>>> or not.
>>>>
>>>> To maintain compatibility BIT(13) of clkflag in firmware will not be
>>>> used in future for any purpose and will be marked as unused.
>>>
>>> Why are we mixing the firmware flags with the ccf flags? They shouldn't
>>> be the same. The firmware should have its own 'flag numberspace' that is
>>> distinct from the common clk framework's 'flag numberspace'. Please fix
>>> the code.
>>>
>>
>> Yes firmware flags are using separate numberspace now. Firmware
>> maintains CCF and firmware specific flags separately but earlier
>> CLK_FRAC was mistakenly defined in ccf flagspace and hence handled here
>> for backward compatibility. Driver takes care of not registering same
>> with CCF. Let me know if I misunderstood.
> 
> Why is the firmware maintaining CCF specific flags? The firmware
> shouldn't know about the CCF flag numbering at all. We can change the
> numbers that the CCF flags are assigned to randomly and that shouldn't
> mean that the firmware needs to change. Maybe I should apply this patch?

Got it. Will fix it.

Thanks,
Jolly Shah


> 
> ---8<----
> diff --git a/include/linux/clk-provider.h b/include/linux/clk-provider.h
> index bd1ee9039558..c1f36bca85b0 100644
> --- a/include/linux/clk-provider.h
> +++ b/include/linux/clk-provider.h
> @@ -16,22 +16,22 @@
>    *
>    * Please update clk_flags[] in drivers/clk/clk.c when making changes here!
>    */
> -#define CLK_SET_RATE_GATE	BIT(0) /* must be gated across rate change */
> -#define CLK_SET_PARENT_GATE	BIT(1) /* must be gated across re-parent */
> -#define CLK_SET_RATE_PARENT	BIT(2) /* propagate rate change up one level */
> -#define CLK_IGNORE_UNUSED	BIT(3) /* do not gate even if unused */
> +#define CLK_SET_RATE_GATE	BIT(13) /* must be gated across rate change */
> +#define CLK_SET_PARENT_GATE	BIT(2) /* must be gated across re-parent */
> +#define CLK_SET_RATE_PARENT	BIT(3) /* propagate rate change up one level */
> +#define CLK_IGNORE_UNUSED	BIT(4) /* do not gate even if unused */
>   				/* unused */
>   				/* unused */
> -#define CLK_GET_RATE_NOCACHE	BIT(6) /* do not use the cached clk rate */
> -#define CLK_SET_RATE_NO_REPARENT BIT(7) /* don't re-parent on rate change */
> -#define CLK_GET_ACCURACY_NOCACHE BIT(8) /* do not use the cached clk accuracy */
> -#define CLK_RECALC_NEW_RATES	BIT(9) /* recalc rates after notifications */
> -#define CLK_SET_RATE_UNGATE	BIT(10) /* clock needs to run to set rate */
> -#define CLK_IS_CRITICAL		BIT(11) /* do not gate, ever */
> +#define CLK_GET_RATE_NOCACHE	BIT(5) /* do not use the cached clk rate */
> +#define CLK_SET_RATE_NO_REPARENT BIT(6) /* don't re-parent on rate change */
> +#define CLK_GET_ACCURACY_NOCACHE BIT(7) /* do not use the cached clk accuracy */
> +#define CLK_RECALC_NEW_RATES	BIT(8) /* recalc rates after notifications */
> +#define CLK_SET_RATE_UNGATE	BIT(9) /* clock needs to run to set rate */
> +#define CLK_IS_CRITICAL		BIT(10) /* do not gate, ever */
>   /* parents need enable during gate/ungate, set rate and re-parent */
> -#define CLK_OPS_PARENT_ENABLE	BIT(12)
> +#define CLK_OPS_PARENT_ENABLE	BIT(11)
>   /* duty cycle call may be forwarded to the parent clock */
> -#define CLK_DUTY_CYCLE_PARENT	BIT(13)
> +#define CLK_DUTY_CYCLE_PARENT	BIT(12)
>   
>   struct clk;
>   struct clk_hw;
> 

^ permalink raw reply	[flat|nested] 22+ messages in thread

* Re: [PATCH v2 2/2] drivers: clk: zynqmp: Update fraction clock check from custom type flags
@ 2020-05-29 21:20           ` Jolly Shah
  0 siblings, 0 replies; 22+ messages in thread
From: Jolly Shah @ 2020-05-29 21:20 UTC (permalink / raw)
  To: Stephen Boyd, Jolly Shah, arm, linux-clk, michal.simek, mturquette, olof
  Cc: Tejas Patel, Rajan Vaja, rajanv, linux-kernel, linux-arm-kernel

Hi Stephan,

 > ------Original Message------
 > From: Stephen Boyd <sboyd@kernel.org>
 > Sent:  Thursday, May 28, 2020 4:12PM
 > To: Jolly Shah <jolly.shah@xilinx.com>, Arm <arm@kernel.org>, 
Linux-clk <linux-clk@vger.kernel.org>, Michal Simek 
<michal.simek@xilinx.com>, Mturquette <mturquette@baylibre.com>, Olof 
<olof@lixom.net>
 > Cc: Rajan Vaja <rajanv@xilinx.com>, 
Linux-arm-kernel@lists.infradead.org 
<linux-arm-kernel@lists.infradead.org>, Linux-kernel@vger.kernel.org 
<linux-kernel@vger.kernel.org>, Tejas Patel <tejas.patel@xilinx.com>, 
Rajan Vaja <rajan.vaja@xilinx.com>
 > Subject: Re: [PATCH v2 2/2] drivers: clk: zynqmp: Update fraction 
clock check from custom type flags
 >
> Quoting Jolly Shah (2020-05-28 10:44:01)
>> Hi Stephan,
>>
>> Thanks for the review.
>>
>>   > ------Original Message------
>>   > From: Stephen Boyd <sboyd@kernel.org>
>>   > Sent:  Tuesday, May 26, 2020 6:08PM
>>   > To: Jolly Shah <jolly.shah@xilinx.com>, Arm <arm@kernel.org>,
>> Linux-clk <linux-clk@vger.kernel.org>, Michal Simek
>> <michal.simek@xilinx.com>, Mturquette <mturquette@baylibre.com>, Olof
>> <olof@lixom.net>
>>   > Cc: Rajan Vaja <rajanv@xilinx.com>,
>> Linux-arm-kernel@lists.infradead.org
>> <linux-arm-kernel@lists.infradead.org>, Linux-kernel@vger.kernel.org
>> <linux-kernel@vger.kernel.org>, Tejas Patel <tejas.patel@xilinx.com>,
>> Rajan Vaja <rajan.vaja@xilinx.com>, Jolly Shah <jolly.shah@xilinx.com>
>>   > Subject: Re: [PATCH v2 2/2] drivers: clk: zynqmp: Update fraction
>> clock check from custom type flags
>>   >
>>> Quoting Jolly Shah (2020-03-12 14:31:39)
>>>> From: Tejas Patel <tejas.patel@xilinx.com>
>>>>
>>>> Older firmware version sets BIT(13) in clkflag to mark a
>>>> divider as fractional divider. Updated firmware version sets BIT(4)
>>>> in type flags to mark a divider as fractional divider since
>>>> BIT(13) is defined as CLK_DUTY_CYCLE_PARENT in the common clk
>>>> framework flags.
>>>>
>>>> To support both old and new firmware version, consider BIT(13) from
>>>> clkflag and BIT(4) from type_flag to check if divider is fractional
>>>> or not.
>>>>
>>>> To maintain compatibility BIT(13) of clkflag in firmware will not be
>>>> used in future for any purpose and will be marked as unused.
>>>
>>> Why are we mixing the firmware flags with the ccf flags? They shouldn't
>>> be the same. The firmware should have its own 'flag numberspace' that is
>>> distinct from the common clk framework's 'flag numberspace'. Please fix
>>> the code.
>>>
>>
>> Yes firmware flags are using separate numberspace now. Firmware
>> maintains CCF and firmware specific flags separately but earlier
>> CLK_FRAC was mistakenly defined in ccf flagspace and hence handled here
>> for backward compatibility. Driver takes care of not registering same
>> with CCF. Let me know if I misunderstood.
> 
> Why is the firmware maintaining CCF specific flags? The firmware
> shouldn't know about the CCF flag numbering at all. We can change the
> numbers that the CCF flags are assigned to randomly and that shouldn't
> mean that the firmware needs to change. Maybe I should apply this patch?

Got it. Will fix it.

Thanks,
Jolly Shah


> 
> ---8<----
> diff --git a/include/linux/clk-provider.h b/include/linux/clk-provider.h
> index bd1ee9039558..c1f36bca85b0 100644
> --- a/include/linux/clk-provider.h
> +++ b/include/linux/clk-provider.h
> @@ -16,22 +16,22 @@
>    *
>    * Please update clk_flags[] in drivers/clk/clk.c when making changes here!
>    */
> -#define CLK_SET_RATE_GATE	BIT(0) /* must be gated across rate change */
> -#define CLK_SET_PARENT_GATE	BIT(1) /* must be gated across re-parent */
> -#define CLK_SET_RATE_PARENT	BIT(2) /* propagate rate change up one level */
> -#define CLK_IGNORE_UNUSED	BIT(3) /* do not gate even if unused */
> +#define CLK_SET_RATE_GATE	BIT(13) /* must be gated across rate change */
> +#define CLK_SET_PARENT_GATE	BIT(2) /* must be gated across re-parent */
> +#define CLK_SET_RATE_PARENT	BIT(3) /* propagate rate change up one level */
> +#define CLK_IGNORE_UNUSED	BIT(4) /* do not gate even if unused */
>   				/* unused */
>   				/* unused */
> -#define CLK_GET_RATE_NOCACHE	BIT(6) /* do not use the cached clk rate */
> -#define CLK_SET_RATE_NO_REPARENT BIT(7) /* don't re-parent on rate change */
> -#define CLK_GET_ACCURACY_NOCACHE BIT(8) /* do not use the cached clk accuracy */
> -#define CLK_RECALC_NEW_RATES	BIT(9) /* recalc rates after notifications */
> -#define CLK_SET_RATE_UNGATE	BIT(10) /* clock needs to run to set rate */
> -#define CLK_IS_CRITICAL		BIT(11) /* do not gate, ever */
> +#define CLK_GET_RATE_NOCACHE	BIT(5) /* do not use the cached clk rate */
> +#define CLK_SET_RATE_NO_REPARENT BIT(6) /* don't re-parent on rate change */
> +#define CLK_GET_ACCURACY_NOCACHE BIT(7) /* do not use the cached clk accuracy */
> +#define CLK_RECALC_NEW_RATES	BIT(8) /* recalc rates after notifications */
> +#define CLK_SET_RATE_UNGATE	BIT(9) /* clock needs to run to set rate */
> +#define CLK_IS_CRITICAL		BIT(10) /* do not gate, ever */
>   /* parents need enable during gate/ungate, set rate and re-parent */
> -#define CLK_OPS_PARENT_ENABLE	BIT(12)
> +#define CLK_OPS_PARENT_ENABLE	BIT(11)
>   /* duty cycle call may be forwarded to the parent clock */
> -#define CLK_DUTY_CYCLE_PARENT	BIT(13)
> +#define CLK_DUTY_CYCLE_PARENT	BIT(12)
>   
>   struct clk;
>   struct clk_hw;
> 

_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel

^ permalink raw reply	[flat|nested] 22+ messages in thread

end of thread, other threads:[~2020-05-29 21:21 UTC | newest]

Thread overview: 22+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2020-03-12 21:31 [PATCH v2 0/2] drivers: clk: zynqmp: Update fraction clock check from custom type flags Jolly Shah
2020-03-12 21:31 ` Jolly Shah
2020-03-12 21:31 ` [PATCH v2 1/2] drivers: clk: zynqmp: Add support for " Jolly Shah
2020-03-12 21:31   ` Jolly Shah
2020-05-27  1:01   ` Stephen Boyd
2020-05-27  1:01     ` Stephen Boyd
2020-03-12 21:31 ` [PATCH v2 2/2] drivers: clk: zynqmp: Update fraction clock check from " Jolly Shah
2020-03-12 21:31   ` Jolly Shah
2020-05-27  1:01   ` Stephen Boyd
2020-05-27  1:01     ` Stephen Boyd
2020-05-27  1:08   ` Stephen Boyd
2020-05-27  1:08     ` Stephen Boyd
2020-05-28 17:44     ` Jolly Shah
2020-05-28 17:44       ` Jolly Shah
2020-05-28 23:12       ` Stephen Boyd
2020-05-28 23:12         ` Stephen Boyd
2020-05-29 21:20         ` Jolly Shah
2020-05-29 21:20           ` Jolly Shah
2020-03-23 21:15 ` [PATCH v2 0/2] " Jolly Shah
2020-03-23 21:15   ` Jolly Shah
2020-04-09 20:48 ` Jolly Shah
2020-04-09 20:48   ` Jolly Shah

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.