diff options
| author | Linus Torvalds <torvalds@linux-foundation.org> | 2026-08-24 08:46:03 -0700 |
|---|---|---|
| committer | Linus Torvalds <torvalds@linux-foundation.org> | 2026-08-24 08:46:03 -0700 |
| commit | cf9610f9116d55c5a66ef9f1faecacabd93a9322 (patch) | |
| tree | 757a3d280760c654767631cab5ad8af2d86d1848 /scripts/atomic/fallbacks | |
| download | linux-stable-cf9610f9116d55c5a66ef9f1faecacabd93a9322.tar.gz linux-stable-cf9610f9116d55c5a66ef9f1faecacabd93a9322.zip | |
Merge tag 'pinctrl-v7.3-1' of git://git.kernel.org/pub/scm/linux/kernel/git/linusw/linux-pinctrlgrafted
Pull pin control updates from Linus Walleij:
"Core changes:
- Use the non-blocking mux_state_try_select() in the generic MUX pin
control back-end
- Free pin maps on pinctrl_generic_to_map() failure in the core
helpers
New hardware pin control:
- Qualcomm Maili TLMM SoC, PMG1110 PMIC, and Eliza LPASS LPI TLMM SoC
(this is for the low power audio, LPASS = Low Power Audio SubSystem
portions)
- Upboard support on top of the Intel pin controller
- Apple T6030 and T6031 support (just compatible strings)
- Samsung Exynos 8855 SoC
- Mediatek MT6858 SoC
- Rockchip RK3308B and RV1106 SoCs
- Airoha EN7523 and AN7563 SoCs
Improvements:
- Qualcomm TLMM GPIOs are unconditionally marked as wakeup capable
- Qualcomm improvements on top of the Qualcomm PDC (power domain
controller) irqchip improvements from tglx:s tree
- Qualcomm IPQ806x and IPQ9650 non-urgent pin grop fixups
- The NPCM8xx driver has been put into shape fixing many pin and
group definitions
- Some non-urgent Tegra 264 pin assignments are fixed up
- Some non-urgent fixups to Airoha AN7581 and AN7583 registers and
pin assignments, missing features etc"
* tag 'pinctrl-v7.3-1' of git://git.kernel.org/pub/scm/linux/kernel/git/linusw/linux-pinctrl: (130 commits)
dt-bindings: pinctrl: Convert TI DA850 pupd to DT schema
pinctrl: meson: sync some modify from A4
pinctrl: meson: a4: Add input enable pin configuration
pinctrl: realtek: rtd1625: remove unused group name spdif_sel
pinctrl: realtek: rtd1625: fix base_bit for VE4 GPIO 13
dt-bindings: pinctrl: microchip,pic32mzda-pinctrl: Convert to DT schema
Revert "Merge branch 'ib-rsk7204' into devel"
pinctrl: rockchip: Add RV1106 pinctrl support
dt-bindings: pinctrl: rockchip: Add RV1106 compatible
pinctrl: rockchip: Decode drive strength in the get function
pinctrl: fix PINCTRL_GENERIC_MUX not always being selectable
pinctrl: airoha: add support of an7563 SoC
dt-bindings: pinctrl: airoha: add support of an7563 pin controller
pinctrl: airoha: try to find chip scu node by phandle first
pinctrl: airoha: add support of en7523 SoC
dt-bindings: pinctrl: airoha: add support of en7523 pin controller
pinctrl: airoha: an7583: add support for olt pinmux
pinctrl: airoha: an7583: add support for pon_alt pinmux
pinctrl: airoha: an7583: add support for npu_uart pinmux
dt-bindings: pinctrl: airoha: an7583: add missed features
...
Diffstat (limited to 'scripts/atomic/fallbacks')
| -rwxr-xr-x | scripts/atomic/fallbacks/acquire | 5 | ||||
| -rwxr-xr-x | scripts/atomic/fallbacks/add_negative | 3 | ||||
| -rwxr-xr-x | scripts/atomic/fallbacks/add_unless | 3 | ||||
| -rwxr-xr-x | scripts/atomic/fallbacks/andnot | 3 | ||||
| -rw-r--r-- | scripts/atomic/fallbacks/cmpxchg | 3 | ||||
| -rwxr-xr-x | scripts/atomic/fallbacks/dec | 3 | ||||
| -rwxr-xr-x | scripts/atomic/fallbacks/dec_and_test | 3 | ||||
| -rwxr-xr-x | scripts/atomic/fallbacks/dec_if_positive | 11 | ||||
| -rwxr-xr-x | scripts/atomic/fallbacks/dec_unless_positive | 10 | ||||
| -rwxr-xr-x | scripts/atomic/fallbacks/fence | 7 | ||||
| -rwxr-xr-x | scripts/atomic/fallbacks/fetch_add_unless | 10 | ||||
| -rwxr-xr-x | scripts/atomic/fallbacks/inc | 3 | ||||
| -rwxr-xr-x | scripts/atomic/fallbacks/inc_and_test | 3 | ||||
| -rwxr-xr-x | scripts/atomic/fallbacks/inc_not_zero | 3 | ||||
| -rwxr-xr-x | scripts/atomic/fallbacks/inc_unless_negative | 10 | ||||
| -rwxr-xr-x | scripts/atomic/fallbacks/read_acquire | 12 | ||||
| -rwxr-xr-x | scripts/atomic/fallbacks/release | 4 | ||||
| -rwxr-xr-x | scripts/atomic/fallbacks/set_release | 8 | ||||
| -rwxr-xr-x | scripts/atomic/fallbacks/sub_and_test | 3 | ||||
| -rwxr-xr-x | scripts/atomic/fallbacks/try_cmpxchg | 7 | ||||
| -rw-r--r-- | scripts/atomic/fallbacks/xchg | 3 |
21 files changed, 117 insertions, 0 deletions
diff --git a/scripts/atomic/fallbacks/acquire b/scripts/atomic/fallbacks/acquire new file mode 100755 index 000000000..4da0cab36 --- /dev/null +++ b/scripts/atomic/fallbacks/acquire @@ -0,0 +1,5 @@ +cat <<EOF + ${ret} ret = arch_${atomic}_${pfx}${name}${sfx}_relaxed(${args}); + __atomic_acquire_fence(); + return ret; +EOF diff --git a/scripts/atomic/fallbacks/add_negative b/scripts/atomic/fallbacks/add_negative new file mode 100755 index 000000000..1d3d4ab3a --- /dev/null +++ b/scripts/atomic/fallbacks/add_negative @@ -0,0 +1,3 @@ +cat <<EOF + return raw_${atomic}_add_return${order}(i, v) < 0; +EOF diff --git a/scripts/atomic/fallbacks/add_unless b/scripts/atomic/fallbacks/add_unless new file mode 100755 index 000000000..95ecb2b74 --- /dev/null +++ b/scripts/atomic/fallbacks/add_unless @@ -0,0 +1,3 @@ +cat << EOF + return raw_${atomic}_fetch_add_unless(v, a, u) != u; +EOF diff --git a/scripts/atomic/fallbacks/andnot b/scripts/atomic/fallbacks/andnot new file mode 100755 index 000000000..66760457e --- /dev/null +++ b/scripts/atomic/fallbacks/andnot @@ -0,0 +1,3 @@ +cat <<EOF + ${retstmt}raw_${atomic}_${pfx}and${sfx}${order}(~i, v); +EOF diff --git a/scripts/atomic/fallbacks/cmpxchg b/scripts/atomic/fallbacks/cmpxchg new file mode 100644 index 000000000..1c8507f62 --- /dev/null +++ b/scripts/atomic/fallbacks/cmpxchg @@ -0,0 +1,3 @@ +cat <<EOF + return raw_cmpxchg${order}(&v->counter, old, new); +EOF diff --git a/scripts/atomic/fallbacks/dec b/scripts/atomic/fallbacks/dec new file mode 100755 index 000000000..60d286d40 --- /dev/null +++ b/scripts/atomic/fallbacks/dec @@ -0,0 +1,3 @@ +cat <<EOF + ${retstmt}raw_${atomic}_${pfx}sub${sfx}${order}(1, v); +EOF diff --git a/scripts/atomic/fallbacks/dec_and_test b/scripts/atomic/fallbacks/dec_and_test new file mode 100755 index 000000000..3a0278e0d --- /dev/null +++ b/scripts/atomic/fallbacks/dec_and_test @@ -0,0 +1,3 @@ +cat <<EOF + return raw_${atomic}_dec_return(v) == 0; +EOF diff --git a/scripts/atomic/fallbacks/dec_if_positive b/scripts/atomic/fallbacks/dec_if_positive new file mode 100755 index 000000000..f65c11b4b --- /dev/null +++ b/scripts/atomic/fallbacks/dec_if_positive @@ -0,0 +1,11 @@ +cat <<EOF + ${int} dec, c = raw_${atomic}_read(v); + + do { + dec = c - 1; + if (unlikely(dec < 0)) + break; + } while (!raw_${atomic}_try_cmpxchg(v, &c, dec)); + + return dec; +EOF diff --git a/scripts/atomic/fallbacks/dec_unless_positive b/scripts/atomic/fallbacks/dec_unless_positive new file mode 100755 index 000000000..d025361d7 --- /dev/null +++ b/scripts/atomic/fallbacks/dec_unless_positive @@ -0,0 +1,10 @@ +cat <<EOF + ${int} c = raw_${atomic}_read(v); + + do { + if (unlikely(c > 0)) + return false; + } while (!raw_${atomic}_try_cmpxchg(v, &c, c - 1)); + + return true; +EOF diff --git a/scripts/atomic/fallbacks/fence b/scripts/atomic/fallbacks/fence new file mode 100755 index 000000000..40d5b3976 --- /dev/null +++ b/scripts/atomic/fallbacks/fence @@ -0,0 +1,7 @@ +cat <<EOF + ${ret} ret; + __atomic_pre_full_fence(); + ret = arch_${atomic}_${pfx}${name}${sfx}_relaxed(${args}); + __atomic_post_full_fence(); + return ret; +EOF diff --git a/scripts/atomic/fallbacks/fetch_add_unless b/scripts/atomic/fallbacks/fetch_add_unless new file mode 100755 index 000000000..8db7e9e17 --- /dev/null +++ b/scripts/atomic/fallbacks/fetch_add_unless @@ -0,0 +1,10 @@ +cat << EOF + ${int} c = raw_${atomic}_read(v); + + do { + if (unlikely(c == u)) + break; + } while (!raw_${atomic}_try_cmpxchg(v, &c, c + a)); + + return c; +EOF diff --git a/scripts/atomic/fallbacks/inc b/scripts/atomic/fallbacks/inc new file mode 100755 index 000000000..56c770f59 --- /dev/null +++ b/scripts/atomic/fallbacks/inc @@ -0,0 +1,3 @@ +cat <<EOF + ${retstmt}raw_${atomic}_${pfx}add${sfx}${order}(1, v); +EOF diff --git a/scripts/atomic/fallbacks/inc_and_test b/scripts/atomic/fallbacks/inc_and_test new file mode 100755 index 000000000..7d16a10f2 --- /dev/null +++ b/scripts/atomic/fallbacks/inc_and_test @@ -0,0 +1,3 @@ +cat <<EOF + return raw_${atomic}_inc_return(v) == 0; +EOF diff --git a/scripts/atomic/fallbacks/inc_not_zero b/scripts/atomic/fallbacks/inc_not_zero new file mode 100755 index 000000000..1fcef1e55 --- /dev/null +++ b/scripts/atomic/fallbacks/inc_not_zero @@ -0,0 +1,3 @@ +cat <<EOF + return raw_${atomic}_add_unless(v, 1, 0); +EOF diff --git a/scripts/atomic/fallbacks/inc_unless_negative b/scripts/atomic/fallbacks/inc_unless_negative new file mode 100755 index 000000000..7b4b09868 --- /dev/null +++ b/scripts/atomic/fallbacks/inc_unless_negative @@ -0,0 +1,10 @@ +cat <<EOF + ${int} c = raw_${atomic}_read(v); + + do { + if (unlikely(c < 0)) + return false; + } while (!raw_${atomic}_try_cmpxchg(v, &c, c + 1)); + + return true; +EOF diff --git a/scripts/atomic/fallbacks/read_acquire b/scripts/atomic/fallbacks/read_acquire new file mode 100755 index 000000000..e319862d2 --- /dev/null +++ b/scripts/atomic/fallbacks/read_acquire @@ -0,0 +1,12 @@ +cat <<EOF + ${int} ret; + + if (__native_word(${atomic}_t)) { + ret = smp_load_acquire(&(v)->counter); + } else { + ret = raw_${atomic}_read(v); + __atomic_acquire_fence(); + } + + return ret; +EOF diff --git a/scripts/atomic/fallbacks/release b/scripts/atomic/fallbacks/release new file mode 100755 index 000000000..1e6daf57b --- /dev/null +++ b/scripts/atomic/fallbacks/release @@ -0,0 +1,4 @@ +cat <<EOF + __atomic_release_fence(); + ${retstmt}arch_${atomic}_${pfx}${name}${sfx}_relaxed(${args}); +EOF diff --git a/scripts/atomic/fallbacks/set_release b/scripts/atomic/fallbacks/set_release new file mode 100755 index 000000000..16a374ae6 --- /dev/null +++ b/scripts/atomic/fallbacks/set_release @@ -0,0 +1,8 @@ +cat <<EOF + if (__native_word(${atomic}_t)) { + smp_store_release(&(v)->counter, i); + } else { + __atomic_release_fence(); + raw_${atomic}_set(v, i); + } +EOF diff --git a/scripts/atomic/fallbacks/sub_and_test b/scripts/atomic/fallbacks/sub_and_test new file mode 100755 index 000000000..d1f746fe0 --- /dev/null +++ b/scripts/atomic/fallbacks/sub_and_test @@ -0,0 +1,3 @@ +cat <<EOF + return raw_${atomic}_sub_return(i, v) == 0; +EOF diff --git a/scripts/atomic/fallbacks/try_cmpxchg b/scripts/atomic/fallbacks/try_cmpxchg new file mode 100755 index 000000000..d4da82092 --- /dev/null +++ b/scripts/atomic/fallbacks/try_cmpxchg @@ -0,0 +1,7 @@ +cat <<EOF + ${int} r, o = *old; + r = raw_${atomic}_cmpxchg${order}(v, o, new); + if (unlikely(r != o)) + *old = r; + return likely(r == o); +EOF diff --git a/scripts/atomic/fallbacks/xchg b/scripts/atomic/fallbacks/xchg new file mode 100644 index 000000000..e4def1e0d --- /dev/null +++ b/scripts/atomic/fallbacks/xchg @@ -0,0 +1,3 @@ +cat <<EOF + return raw_xchg${order}(&v->counter, new); +EOF |
