Couple of changes to gpio-gate-clock
Subsystems (2)
cover Couple of changes to gpio-gate-clock
The first was suggested by Dan Carpenter. The second is just cleaning and not affecting the functionality.
Jyri Sarha (2):
clk: gpio-gate: Stop using devres API
clk: gpio-gate: Rename the struct from clk_gpio to clk_gpio_gate
drivers/clk/clk-gpio-gate.c | 34 ++++++++++++---------------------- include/linux/clk-provider.h | 2 +- 2 files changed, 13 insertions(+), 23 deletions(-)
Signature · 1 line
1.7.9.5
PATCH 1/2 clk: gpio-gate: Stop using devres API
If some driver calls clk_register_gpio_gate() directly, then the driver needs to kfree the resulting struct clk pointer in remove function.
Signed-off-by Jyri Sarha <[email protected]>
--- drivers/clk/clk-gpio-gate.c | 16 +++------------- 1 file changed, 3 insertions(+), 13 deletions(-)
drivers/clk/clk-gpio-gate.c +3 -13
@@ -82,23 +82,14 @@ struct clk *clk_register_gpio_gate(struct device *dev, const char *name,else gpio_flags =GPIOF_OUT_INIT_LOW ; -if (dev) - err =devm_gpio_request_one (dev,desc_to_gpio (gpiod), - gpio_flags, name); -else - err =gpio_request_one (desc_to_gpio (gpiod), gpio_flags, name); - + err =gpio_request_one (desc_to_gpio (gpiod), gpio_flags, name);if (err) {pr_err ("%s: %s: Error requesting clock control gpio %u\n" , __func__, name,desc_to_gpio (gpiod));return ERR_PTR (err); } -if (dev) - clk_gpio =devm_kzalloc (dev,sizeof (struct clk_gpio ), -GFP_KERNEL ); -else - clk_gpio =kzalloc (sizeof (struct clk_gpio ),GFP_KERNEL ); + clk_gpio =kzalloc (sizeof (struct clk_gpio ),GFP_KERNEL );if (!clk_gpio) { clk =ERR_PTR (-ENOMEM );
@@ -119,8 +110,7 @@ struct clk *clk_register_gpio_gate(struct device *dev, const char *name,if (!IS_ERR (clk))return clk; -if (!dev) -kfree (clk_gpio); +kfree (clk_gpio); clk_register_gpio_gate_err:gpiod_put (gpiod);
Signature · 1 line
1.7.9.5
PATCH 2/2 clk: gpio-gate: Rename the struct from clk_gpio to clk_gpio_gate
In reply to Jyri SarhaI forgot to change this when changing the clk name from clk_gpio to clk_gpio_gate. Since I already changed the comment above the struct definition it is better to go all the way.
Signed-off-by Jyri Sarha <[email protected]>
--- drivers/clk/clk-gpio-gate.c | 22 +++++++++++----------- include/linux/clk-provider.h | 2 +- 2 files changed, 12 insertions(+), 12 deletions(-)
drivers/clk/clk-gpio-gate.c +11 -11
@@ -28,11 +28,11 @@* parent - fixed parent. No clk_set_parent support */ -#define to_clk_gpio (_hw) container_of(_hw, struct clk_gpio, hw) +#define to_clk_gpio (_hw) container_of(_hw, struct clk_gpio_gate, hw)static int clk_gpio_gate_enable (struct clk_hw *hw) { -struct clk_gpio *clk =to_clk_gpio (hw); +struct clk_gpio_gate *clk =to_clk_gpio (hw);gpiod_set_value (clk->gpiod,1 );
@@ -41,14 +41,14 @@ static int clk_gpio_gate_enable(struct clk_hw *hw)static void clk_gpio_gate_disable (struct clk_hw *hw) { -struct clk_gpio *clk =to_clk_gpio (hw); +struct clk_gpio_gate *clk =to_clk_gpio (hw);gpiod_set_value (clk->gpiod,0 ); }static int clk_gpio_gate_is_enabled (struct clk_hw *hw) { -struct clk_gpio *clk =to_clk_gpio (hw); +struct clk_gpio_gate *clk =to_clk_gpio (hw);return gpiod_get_value (clk->gpiod); }
@@ -71,7 +71,7 @@ struct clk *clk_register_gpio_gate(struct device *dev, const char *name, const char *parent_name, struct gpio_desc *gpiod, unsigned long flags) { - struct clk_gpio *clk_gpio = NULL; + struct clk_gpio_gate *clk_gpio_gate = NULL;struct clk *clk =ERR_PTR (-EINVAL );struct clk_init_data init = {NULL };unsigned long gpio_flags;
@@ -89,9 +89,9 @@ struct clk *clk_register_gpio_gate(struct device *dev, const char *name,return ERR_PTR (err); } - clk_gpio =kzalloc (sizeof (struct clk_gpio ),GFP_KERNEL ); + clk_gpio_gate =kzalloc (sizeof (struct clk_gpio_gate ),GFP_KERNEL ); -if (!clk_gpio) { +if (!clk_gpio_gate) { clk =ERR_PTR (-ENOMEM ); goto clk_register_gpio_gate_err; }
@@ -102,15 +102,15 @@ struct clk *clk_register_gpio_gate(struct device *dev, const char *name, init.parent_names = (parent_name ? &parent_name :NULL ); init.num_parents = (parent_name ?1 :0 ); - clk_gpio->gpiod = gpiod; - clk_gpio->hw.init = &init; + clk_gpio_gate->gpiod = gpiod; + clk_gpio_gate->hw.init = &init; - clk =clk_register (dev, &clk_gpio->hw); + clk =clk_register (dev, &clk_gpio_gate->hw);if (!IS_ERR (clk))return clk; -kfree (clk_gpio); +kfree (clk_gpio_gate); clk_register_gpio_gate_err:gpiod_put (gpiod);
include/linux/clk-provider.h +1 -1
@@ -498,7 +498,7 @@ struct clk *clk_register_composite(struct device *dev, const char *name,* Implements .enable, .disable and .is_enabled */ -struct clk_gpio { +struct clk_gpio_gate {struct clk_hw hw;struct gpio_desc *gpiod; };
Signature · 1 line
1.7.9.5