Skip to content

Commit c6eea4f

Browse files
committed
ASoC: adau1372: Fix error handling in adau1372_set_power()
Jihed Chaibi <[email protected]> says: adau1372_set_power() had two related error handling issues in its enable path: clk_prepare_enable() was called but its return value discarded, and adau1372_enable_pll() was a void function that silently swallowed lock failures, leaving mclk enabled and adau1372->enabled set to true despite the device being in a broken state. Patch 1 fixes the unchecked clk_prepare_enable() by making adau1372_set_power() return int and propagating the error. Patch 2 converts adau1372_enable_pll() to return int and adds a full unwind in adau1372_set_power() if PLL lock fails, reversing the regcache, GPIO power-down, and clock state.
2 parents c673efd + bfe6a26 commit c6eea4f

333 files changed

Lines changed: 3583 additions & 1508 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

.mailmap

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -327,6 +327,7 @@ Henrik Rydberg <[email protected]>
327327
Herbert Xu <[email protected]>
328328
329329
330+
330331
331332
332333

Documentation/dev-tools/kunit/run_wrapper.rst

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -336,6 +336,8 @@ command line arguments:
336336
- ``--list_tests_attr``: If set, lists all tests that will be run and all of their
337337
attributes.
338338

339+
- ``--list_suites``: If set, lists all suites that will be run.
340+
339341
Command-line completion
340342
==============================
341343

Documentation/devicetree/bindings/mtd/st,spear600-smi.yaml

Lines changed: 19 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -19,9 +19,6 @@ description:
1919
Flash sub nodes describe the memory range and optional per-flash
2020
properties.
2121

22-
allOf:
23-
- $ref: mtd.yaml#
24-
2522
properties:
2623
compatible:
2724
const: st,spear600-smi
@@ -42,14 +39,29 @@ properties:
4239
$ref: /schemas/types.yaml#/definitions/uint32
4340
description: Functional clock rate of the SMI controller in Hz.
4441

45-
st,smi-fast-mode:
46-
type: boolean
47-
description: Indicates that the attached flash supports fast read mode.
42+
patternProperties:
43+
"^flash@.*$":
44+
$ref: /schemas/mtd/mtd.yaml#
45+
46+
properties:
47+
reg:
48+
maxItems: 1
49+
50+
st,smi-fast-mode:
51+
type: boolean
52+
description: Indicates that the attached flash supports fast read mode.
53+
54+
unevaluatedProperties: false
55+
56+
required:
57+
- reg
4858

4959
required:
5060
- compatible
5161
- reg
5262
- clock-rate
63+
- "#address-cells"
64+
- "#size-cells"
5365

5466
unevaluatedProperties: false
5567

@@ -64,7 +76,7 @@ examples:
6476
interrupts = <12>;
6577
clock-rate = <50000000>; /* 50 MHz */
6678
67-
flash@f8000000 {
79+
flash@fc000000 {
6880
reg = <0xfc000000 0x1000>;
6981
st,smi-fast-mode;
7082
};

Documentation/devicetree/bindings/regulator/regulator.yaml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -168,7 +168,7 @@ properties:
168168
offset from voltage set to regulator.
169169

170170
regulator-uv-protection-microvolt:
171-
description: Set over under voltage protection limit. This is a limit where
171+
description: Set under voltage protection limit. This is a limit where
172172
hardware performs emergency shutdown. Zero can be passed to disable
173173
protection and value '1' indicates that protection should be enabled but
174174
limit setting can be omitted. Limit is given as microvolt offset from
@@ -182,7 +182,7 @@ properties:
182182
is given as microvolt offset from voltage set to regulator.
183183

184184
regulator-uv-warn-microvolt:
185-
description: Set over under voltage warning limit. This is a limit where
185+
description: Set under voltage warning limit. This is a limit where
186186
hardware is assumed still to be functional but approaching limit where
187187
it gets damaged. Recovery actions should be initiated. Zero can be passed
188188
to disable detection and value '1' indicates that detection should

Documentation/driver-api/driver-model/binding.rst

Lines changed: 48 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -99,3 +99,51 @@ of the driver is decremented. All symlinks between the two are removed.
9999
When a driver is removed, the list of devices that it supports is
100100
iterated over, and the driver's remove callback is called for each
101101
one. The device is removed from that list and the symlinks removed.
102+
103+
104+
Driver Override
105+
~~~~~~~~~~~~~~~
106+
107+
Userspace may override the standard matching by writing a driver name to
108+
a device's ``driver_override`` sysfs attribute. When set, only a driver
109+
whose name matches the override will be considered during binding. This
110+
bypasses all bus-specific matching (OF, ACPI, ID tables, etc.).
111+
112+
The override may be cleared by writing an empty string, which returns
113+
the device to standard matching rules. Writing to ``driver_override``
114+
does not automatically unbind the device from its current driver or
115+
make any attempt to load the specified driver.
116+
117+
Buses opt into this mechanism by setting the ``driver_override`` flag in
118+
their ``struct bus_type``::
119+
120+
const struct bus_type example_bus_type = {
121+
...
122+
.driver_override = true,
123+
};
124+
125+
When the flag is set, the driver core automatically creates the
126+
``driver_override`` sysfs attribute for every device on that bus.
127+
128+
The bus's ``match()`` callback should check the override before performing
129+
its own matching, using ``device_match_driver_override()``::
130+
131+
static int example_match(struct device *dev, const struct device_driver *drv)
132+
{
133+
int ret;
134+
135+
ret = device_match_driver_override(dev, drv);
136+
if (ret >= 0)
137+
return ret;
138+
139+
/* Fall through to bus-specific matching... */
140+
}
141+
142+
``device_match_driver_override()`` returns > 0 if the override matches
143+
the given driver, 0 if the override is set but does not match, or < 0 if
144+
no override is set at all.
145+
146+
Additional helpers are available:
147+
148+
- ``device_set_driver_override()`` - set or clear the override from kernel code.
149+
- ``device_has_driver_override()`` - check whether an override is set.

Documentation/netlink/specs/net_shaper.yaml

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -247,8 +247,8 @@ operations:
247247
flags: [admin-perm]
248248

249249
do:
250-
pre: net-shaper-nl-pre-doit
251-
post: net-shaper-nl-post-doit
250+
pre: net-shaper-nl-pre-doit-write
251+
post: net-shaper-nl-post-doit-write
252252
request:
253253
attributes:
254254
- ifindex
@@ -278,8 +278,8 @@ operations:
278278
flags: [admin-perm]
279279

280280
do:
281-
pre: net-shaper-nl-pre-doit
282-
post: net-shaper-nl-post-doit
281+
pre: net-shaper-nl-pre-doit-write
282+
post: net-shaper-nl-post-doit-write
283283
request:
284284
attributes: *ns-binding
285285

@@ -309,8 +309,8 @@ operations:
309309
flags: [admin-perm]
310310

311311
do:
312-
pre: net-shaper-nl-pre-doit
313-
post: net-shaper-nl-post-doit
312+
pre: net-shaper-nl-pre-doit-write
313+
post: net-shaper-nl-post-doit-write
314314
request:
315315
attributes:
316316
- ifindex

MAINTAINERS

Lines changed: 8 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -4022,7 +4022,7 @@ F: drivers/hwmon/asus_wmi_sensors.c
40224022
ASYMMETRIC KEYS
40234023
M: David Howells <[email protected]>
40244024
M: Lukas Wunner <[email protected]>
4025-
M: Ignat Korchagin <ignat@cloudflare.com>
4025+
M: Ignat Korchagin <ignat@linux.win>
40264026
40274027
40284028
S: Maintained
@@ -4035,7 +4035,7 @@ F: include/linux/verification.h
40354035

40364036
ASYMMETRIC KEYS - ECDSA
40374037
M: Lukas Wunner <[email protected]>
4038-
M: Ignat Korchagin <ignat@cloudflare.com>
4038+
M: Ignat Korchagin <ignat@linux.win>
40394039
R: Stefan Berger <[email protected]>
40404040
40414041
S: Maintained
@@ -4045,14 +4045,14 @@ F: include/crypto/ecc*
40454045

40464046
ASYMMETRIC KEYS - GOST
40474047
M: Lukas Wunner <[email protected]>
4048-
M: Ignat Korchagin <ignat@cloudflare.com>
4048+
M: Ignat Korchagin <ignat@linux.win>
40494049
40504050
S: Odd fixes
40514051
F: crypto/ecrdsa*
40524052

40534053
ASYMMETRIC KEYS - RSA
40544054
M: Lukas Wunner <[email protected]>
4055-
M: Ignat Korchagin <ignat@cloudflare.com>
4055+
M: Ignat Korchagin <ignat@linux.win>
40564056
40574057
S: Maintained
40584058
F: crypto/rsa*
@@ -7998,7 +7998,9 @@ F: Documentation/devicetree/bindings/display/himax,hx8357.yaml
79987998
F: drivers/gpu/drm/tiny/hx8357d.c
79997999

80008000
DRM DRIVER FOR HYPERV SYNTHETIC VIDEO DEVICE
8001-
M: Deepak Rawat <[email protected]>
8001+
M: Dexuan Cui <[email protected]>
8002+
M: Long Li <[email protected]>
8003+
M: Saurabh Sengar <[email protected]>
80028004
80038005
80048006
S: Maintained
@@ -24900,9 +24902,9 @@ F: drivers/clk/spear/
2490024902
F: drivers/pinctrl/spear/
2490124903

2490224904
SPI NOR SUBSYSTEM
24903-
M: Tudor Ambarus <[email protected]>
2490424905
M: Pratyush Yadav <[email protected]>
2490524906
M: Michael Walle <[email protected]>
24907+
R: Takahiro Kuwano <[email protected]>
2490624908
2490724909
S: Maintained
2490824910
W: http://www.linux-mtd.infradead.org/

Makefile

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22
VERSION = 7
33
PATCHLEVEL = 0
44
SUBLEVEL = 0
5-
EXTRAVERSION = -rc4
5+
EXTRAVERSION = -rc5
66
NAME = Baby Opossum Posse
77

88
# *DOCUMENTATION*

arch/arm/configs/multi_v7_defconfig

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -279,7 +279,6 @@ CONFIG_TI_CPSW_SWITCHDEV=y
279279
CONFIG_TI_CPTS=y
280280
CONFIG_TI_KEYSTONE_NETCP=y
281281
CONFIG_TI_KEYSTONE_NETCP_ETHSS=y
282-
CONFIG_TI_PRUSS=m
283282
CONFIG_TI_PRUETH=m
284283
CONFIG_XILINX_EMACLITE=y
285284
CONFIG_SFP=m

arch/arm64/boot/dts/renesas/r8a78000.dtsi

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -698,7 +698,7 @@
698698
compatible = "renesas,scif-r8a78000",
699699
"renesas,rcar-gen5-scif", "renesas,scif";
700700
reg = <0 0xc0700000 0 0x40>;
701-
interrupts = <GIC_SPI 4074 IRQ_TYPE_LEVEL_HIGH>;
701+
interrupts = <GIC_ESPI 10 IRQ_TYPE_LEVEL_HIGH>;
702702
clocks = <&dummy_clk_sgasyncd16>, <&dummy_clk_sgasyncd16>, <&scif_clk>;
703703
clock-names = "fck", "brg_int", "scif_clk";
704704
status = "disabled";
@@ -708,7 +708,7 @@
708708
compatible = "renesas,scif-r8a78000",
709709
"renesas,rcar-gen5-scif", "renesas,scif";
710710
reg = <0 0xc0704000 0 0x40>;
711-
interrupts = <GIC_SPI 4075 IRQ_TYPE_LEVEL_HIGH>;
711+
interrupts = <GIC_ESPI 11 IRQ_TYPE_LEVEL_HIGH>;
712712
clocks = <&dummy_clk_sgasyncd16>, <&dummy_clk_sgasyncd16>, <&scif_clk>;
713713
clock-names = "fck", "brg_int", "scif_clk";
714714
status = "disabled";
@@ -718,7 +718,7 @@
718718
compatible = "renesas,scif-r8a78000",
719719
"renesas,rcar-gen5-scif", "renesas,scif";
720720
reg = <0 0xc0708000 0 0x40>;
721-
interrupts = <GIC_SPI 4076 IRQ_TYPE_LEVEL_HIGH>;
721+
interrupts = <GIC_ESPI 12 IRQ_TYPE_LEVEL_HIGH>;
722722
clocks = <&dummy_clk_sgasyncd16>, <&dummy_clk_sgasyncd16>, <&scif_clk>;
723723
clock-names = "fck", "brg_int", "scif_clk";
724724
status = "disabled";
@@ -728,7 +728,7 @@
728728
compatible = "renesas,scif-r8a78000",
729729
"renesas,rcar-gen5-scif", "renesas,scif";
730730
reg = <0 0xc070c000 0 0x40>;
731-
interrupts = <GIC_SPI 4077 IRQ_TYPE_LEVEL_HIGH>;
731+
interrupts = <GIC_ESPI 13 IRQ_TYPE_LEVEL_HIGH>;
732732
clocks = <&dummy_clk_sgasyncd16>, <&dummy_clk_sgasyncd16>, <&scif_clk>;
733733
clock-names = "fck", "brg_int", "scif_clk";
734734
status = "disabled";
@@ -738,7 +738,7 @@
738738
compatible = "renesas,hscif-r8a78000",
739739
"renesas,rcar-gen5-hscif", "renesas,hscif";
740740
reg = <0 0xc0710000 0 0x60>;
741-
interrupts = <GIC_SPI 4078 IRQ_TYPE_LEVEL_HIGH>;
741+
interrupts = <GIC_ESPI 14 IRQ_TYPE_LEVEL_HIGH>;
742742
clocks = <&dummy_clk_sgasyncd4>, <&dummy_clk_sgasyncd4>, <&scif_clk>;
743743
clock-names = "fck", "brg_int", "scif_clk";
744744
status = "disabled";
@@ -748,7 +748,7 @@
748748
compatible = "renesas,hscif-r8a78000",
749749
"renesas,rcar-gen5-hscif", "renesas,hscif";
750750
reg = <0 0xc0714000 0 0x60>;
751-
interrupts = <GIC_SPI 4079 IRQ_TYPE_LEVEL_HIGH>;
751+
interrupts = <GIC_ESPI 15 IRQ_TYPE_LEVEL_HIGH>;
752752
clocks = <&dummy_clk_sgasyncd4>, <&dummy_clk_sgasyncd4>, <&scif_clk>;
753753
clock-names = "fck", "brg_int", "scif_clk";
754754
status = "disabled";
@@ -758,7 +758,7 @@
758758
compatible = "renesas,hscif-r8a78000",
759759
"renesas,rcar-gen5-hscif", "renesas,hscif";
760760
reg = <0 0xc0718000 0 0x60>;
761-
interrupts = <GIC_SPI 4080 IRQ_TYPE_LEVEL_HIGH>;
761+
interrupts = <GIC_ESPI 16 IRQ_TYPE_LEVEL_HIGH>;
762762
clocks = <&dummy_clk_sgasyncd4>, <&dummy_clk_sgasyncd4>, <&scif_clk>;
763763
clock-names = "fck", "brg_int", "scif_clk";
764764
status = "disabled";
@@ -768,7 +768,7 @@
768768
compatible = "renesas,hscif-r8a78000",
769769
"renesas,rcar-gen5-hscif", "renesas,hscif";
770770
reg = <0 0xc071c000 0 0x60>;
771-
interrupts = <GIC_SPI 4081 IRQ_TYPE_LEVEL_HIGH>;
771+
interrupts = <GIC_ESPI 17 IRQ_TYPE_LEVEL_HIGH>;
772772
clocks = <&dummy_clk_sgasyncd4>, <&dummy_clk_sgasyncd4>, <&scif_clk>;
773773
clock-names = "fck", "brg_int", "scif_clk";
774774
status = "disabled";

0 commit comments

Comments
 (0)