mbox series

[v6,00/10] clk: clkdev/of_clk - add managed lookup and provider registrations

Message ID cover.1543922403.git.matti.vaittinen@fi.rohmeurope.com (mailing list archive)
Headers show
Series clk: clkdev/of_clk - add managed lookup and provider registrations | expand

Message

Vaittinen, Matti Dec. 4, 2018, 11:31 a.m. UTC
Series add bd71837/bd71837 PMIC clock support + managed interfaces

Few clk drivers appear to be leaking clkdev lookup registrations at
driver remove. The patch series adds devm versions of lookup
registrations and cleans up few drivers. Driver clean-up patches have
not been tested as I lack the HW. All testing and comments if
driver/device removal is even possible for changed drivers is highly
appreciated. If removal is not possible I will gladly drop the patches
from series - although leaking lookups may serve as bad example for new
developers =)

Patch 10 adds support for clock gate in ROHM bd71837 and bd71847 PMICs.
This change is included in the series because it depends on new managed
interfaces introduced in this series.

bd718x7 driver and devm interfaces are tested on BeagleBoneBlack and 
bd71837 break-out board. Clk area register interface of bd71847 is
identical to bd71837.

Changed drivers are:
clk-max77686, clk-st, clk-hi655x, rk808, clk-twl6040
and apcs-msm8916. New driver is clk-bd718x7

This series has been discussed for a while now. For those who want to
see whole discussion:

The bd71837 driver was originally proposed here
https://lore.kernel.org/lkml/d99c8762b0fbbcb18ec4f4d104191364c0ea798c.1528117485.git.matti.vaittinen@fi.rohmeurope.com/

clk portion was separated from that series and devm variants were
proposed here
https://lore.kernel.org/linux-clk/cover.1535630942.git.matti.vaittinen@fi.rohmeurope.com/

Cleanup to other drivers was initiated in this series while waiting for
MFD portions of bd718x7 to be applied. And now when MFD dependencies are in-tree
the patch version (4) combined bd718x7 driver back to this series.

Changelog (for this series) v6
- Drop 'devm_of_clk_add_parent_hw_provider'. Change
  'devm_of_clk_add_hw_provider' to look the parent device node for
  provider information if device's own node does not contain
  #clock-cells - property.
- Add kerneldoc in own patch.
- Remove NULL checks from devres match function for clkdev releasing
- Clean styling issues from clkdev.c

Changelog (for this series) v5
- Split v4 patch 1. Place clkdev stuff to patch 1 and clk provider to patch 2
- Remove devm_clk_release_clkdev from devres.txt
- Added kerneldoc for managed provider registrations.
- Cleaned styling issues.

Changelog (for this series) v4
- Add support for ROHM bd718x7 PMIC clock gate. Included in this patch
  series because it depends on managed interfaces added in patch 1.

Changelog (for this series) v3
Address issues spotted by Krzysztof Kozlowski
- Drop patch 3 for clk-s3c2410-dclk as this device can never be removed
- Fix indentiation for clk-max77686
- Rest  of the patches are unchanged.

Changelog (for this series) v2
Issue spotted by 0-Day test suite
- Add a stub function 'devm_of_clk_add_parent_hw_provider' for no OF config.
- patches 2-8 are unchanged.

This patch series is based on clk-next

---

Matti Vaittinen (10):
  clkdev: add managed clkdev lookup registration
  clk: Add kerneldoc to managed of-provider interfaces
  clk: of-provider: look at parent if registered device has no provider
    info
  clk: clk-max77686: Clean clkdev lookup leak and use devm
  clk: clk-st: avoid clkdev lookup leak at remove
  clk: clk-hi655x: Free of_provider at remove
  clk: rk808: use managed version of of_provider registration
  clk: clk-twl6040: Free of_provider at remove
  clk: apcs-msm8916: simplify probe cleanup by using devm
  clk: bd718x7: Initial support for ROHM bd71837/bd71847 PMIC clock

 Documentation/driver-model/devres.txt |   1 +
 drivers/clk/Kconfig                   |   7 ++
 drivers/clk/Makefile                  |   1 +
 drivers/clk/clk-bd718x7.c             | 131 ++++++++++++++++++++++++++++++++++
 drivers/clk/clk-hi655x.c              |   4 +-
 drivers/clk/clk-max77686.c            |  28 ++------
 drivers/clk/clk-rk808.c               |  15 +---
 drivers/clk/clk-twl6040.c             |   5 +-
 drivers/clk/clk.c                     |  38 +++++++++-
 drivers/clk/clkdev.c                  | 111 ++++++++++++++++++++++------
 drivers/clk/qcom/apcs-msm8916.c       |   5 +-
 drivers/clk/x86/clk-st.c              |   3 +-
 include/linux/clkdev.h                |   4 ++
 13 files changed, 284 insertions(+), 69 deletions(-)
 create mode 100644 drivers/clk/clk-bd718x7.c

Comments

Vaittinen, Matti Dec. 4, 2018, 11:45 a.m. UTC | #1
On Tue, Dec 04, 2018 at 01:31:43PM +0200, Matti Vaittinen wrote:
> Series add bd71837/bd71837 PMIC clock support + managed interfaces

> Changed drivers are:
> clk-max77686, clk-st, clk-hi655x, rk808, clk-twl6040
> and apcs-msm8916. New driver is clk-bd718x7
> 
> Changelog (for this series) v6
> - Drop 'devm_of_clk_add_parent_hw_provider'. Change
>   'devm_of_clk_add_hw_provider' to look the parent device node for
>   provider information if device's own node does not contain
>   #clock-cells - property.
 
Forgot to mention the obvious - I did also convert the call to
devm_of_clk_add_parent_hw_provider to call to devm_of_clk_add_hw_provider
from all drivers where I had this new call added.

I kept Reviewed-by and Acked-by tags from Peter Ujfalusi and Krzysztof
Kozlowski as the devm_of_clk_add_hw_provider should now do same thing
as devm_of_clk_add_parent_hw_provider did. Please let me know if this
is not Ok.

Br,
	Matti Vaittinen