No description
Find a file
Jinjie Ruan 0c0044a01c iio: frequency: adf4350: Use device managed functions and fix power down issue.
[ Upstream commit 9979cc6485 ]

The devm_clk_get_enabled() helper:
    - calls devm_clk_get()
    - calls clk_prepare_enable() and registers what is needed in order to
      call clk_disable_unprepare() when needed, as a managed resource.

Also replace devm_regulator_get() and regulator_enable() with
devm_regulator_get_enable() helper and remove regulator_disable().

Replace iio_device_register() with devm_iio_device_register() and remove
iio_device_unregister().

And st->reg is not used anymore, so remove it.

As Jonathan pointed out, couple of things that are wrong:

1) The device is powered down 'before' we unregister it with the
   subsystem and as such userspace interfaces are still exposed which
   probably won't do the right thing if the chip is powered down.

2) This isn't done in the error paths in probe.

To solve this problem, register a new callback adf4350_power_down()
with devm_add_action_or_reset(), to enable software power down in both
error and device detach path. So the remove function can be removed.

Remove spi_set_drvdata() from the probe function, since spi_get_drvdata()
is not used anymore.

Fixes: e31166f0fd ("iio: frequency: New driver for Analog Devices ADF4350/ADF4351 Wideband Synthesizers")
Signed-off-by: Jinjie Ruan <ruanjinjie@huawei.com>
Link: https://lore.kernel.org/r/20230828062717.2310219-1-ruanjinjie@huawei.com
Signed-off-by: Jonathan Cameron <Jonathan.Cameron@huawei.com>
Signed-off-by: Sasha Levin <sashal@kernel.org>
2023-11-20 11:57:12 +01:00
arch sh: bios: Revive earlyprintk support 2023-11-20 11:57:10 +01:00
block blk-throttle: check for overflow in calculate_bytes_allowed 2023-11-02 09:36:56 +01:00
certs KEYS: Add missing function documentation 2023-04-24 16:15:52 +03:00
crypto certs: Break circular dependency when selftest is modular 2023-11-20 11:57:11 +01:00
Documentation dt-bindings: mfd: mt6397: Split out compatible for MediaTek MT6366 PMIC 2023-11-20 11:57:11 +01:00
drivers iio: frequency: adf4350: Use device managed functions and fix power down issue. 2023-11-20 11:57:12 +01:00
fs erofs: fix erofs_insert_workgroup() lockref usage 2023-11-20 11:57:11 +01:00
include mfd: core: Un-constify mfd_cell.of_reg 2023-11-20 11:57:11 +01:00
init sched/psi: Select KERNFS as needed 2023-09-13 09:52:59 +02:00
io_uring io_uring/kbuf: Allow the full buffer id space for provided buffers 2023-11-20 11:57:01 +01:00
ipc Merge branch 'work.namespace' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs 2023-02-24 19:20:07 -08:00
kernel padata: Fix refcnt handling in padata_free_shell() 2023-11-20 11:57:11 +01:00
lib kunit: Fix missed memory release in kunit_free_suite_set() 2023-11-20 11:57:04 +01:00
LICENSES LICENSES: Add the copyleft-next-0.3.1 license 2022-11-08 15:44:01 +01:00
mm vfs: fix readahead(2) on block devices 2023-11-20 11:56:43 +01:00
net ipv6: avoid atomic fragment on GSO packets 2023-11-20 11:56:54 +01:00
rust rust: types: make Opaque be !Unpin 2023-11-08 14:09:04 +01:00
samples samples/hw_breakpoint: fix building without module unloading 2023-09-23 11:14:33 +02:00
scripts scripts/gdb: fix usage of MOD_TEXT not defined when CONFIG_MODULES=n 2023-11-20 11:57:12 +01:00
security apparmor: fix invalid reference on profile->disconnected 2023-11-20 11:57:12 +01:00
sound ASoC: ams-delta.c: use component after check 2023-11-20 11:57:11 +01:00
tools perf stat: Fix aggr mode initialization 2023-11-20 11:57:12 +01:00
usr initramfs: Encode dependency on KBUILD_BUILD_TIMESTAMP 2023-06-06 17:54:49 +09:00
virt kvm/vfio: ensure kvg instance stays around in kvm_vfio_group_add() 2023-09-13 09:53:29 +02:00
.clang-format iommu: Add for_each_group_device() 2023-05-23 08:15:51 +02:00
.cocciconfig
.get_maintainer.ignore get_maintainer: add Alan to .get_maintainer.ignore 2022-08-20 15:17:44 -07:00
.gitattributes .gitattributes: set diff driver for Rust source code files 2023-05-31 17:48:25 +02:00
.gitignore Revert ".gitignore: ignore *.cover and *.mbx" 2023-07-04 15:05:12 -07:00
.mailmap mailmap: add entries for Simon Horman 2023-08-16 09:53:10 +01:00
.rustfmt.toml rust: add .rustfmt.toml 2022-09-28 09:02:20 +02:00
COPYING COPYING: state that all contributions really are covered by this file 2020-02-10 13:32:20 -08:00
CREDITS - Address -Wmissing-prototype warnings 2023-06-26 16:43:54 -07:00
Kbuild Kbuild updates for v6.1 2022-10-10 12:00:45 -07:00
Kconfig kbuild: ensure full rebuild when the compiler is updated 2020-05-12 13:28:33 +09:00
MAINTAINERS sound fixes for 6.5 2023-08-25 08:48:14 -07:00
Makefile Linux 6.5.11 2023-11-08 14:09:07 +01:00
README Drop all 00-INDEX files from Documentation/ 2018-09-09 15:08:58 -06:00

Linux kernel
============

There are several guides for kernel developers and users. These guides can
be rendered in a number of formats, like HTML and PDF. Please read
Documentation/admin-guide/README.rst first.

In order to build the documentation, use ``make htmldocs`` or
``make pdfdocs``.  The formatted documentation can also be read online at:

    https://www.kernel.org/doc/html/latest/

There are various text files in the Documentation/ subdirectory,
several of them using the Restructured Text markup notation.

Please read the Documentation/process/changes.rst file, as it contains the
requirements for building and running the kernel, and information about
the problems which may result by upgrading your kernel.