The sentence "this call will fail if the module is already being
removed" is potentially confusing and may contradict the rest of the
documentation. If one tries to get a module that has already been
removed using a stale pointer, the kernel will crash.
Signed-off-by: Marco Pagani <marpagan@redhat.com>
Signed-off-by: Luis Chamberlain <mcgrof@kernel.org>
When an afs_volume struct is put, its refcount is reduced to 0 before
the cell->volume_lock is taken and the volume removed from the
cell->volumes tree.
Unfortunately, this means that the lookup code can race and see a volume
with a zero ref in the tree, resulting in a use-after-free:
refcount_t: addition on 0; use-after-free.
WARNING: CPU: 3 PID: 130782 at lib/refcount.c:25 refcount_warn_saturate+0x7a/0xda
...
RIP: 0010:refcount_warn_saturate+0x7a/0xda
...
Call Trace:
afs_get_volume+0x3d/0x55
afs_create_volume+0x126/0x1de
afs_validate_fc+0xfe/0x130
afs_get_tree+0x20/0x2e5
vfs_get_tree+0x1d/0xc9
do_new_mount+0x13b/0x22e
do_mount+0x5d/0x8a
__do_sys_mount+0x100/0x12a
do_syscall_64+0x3a/0x94
entry_SYSCALL_64_after_hwframe+0x62/0x6a
Fix this by:
(1) When putting, use a flag to indicate if the volume has been removed
from the tree and skip the rb_erase if it has.
(2) When looking up, use a conditional ref increment and if it fails
because the refcount is 0, replace the node in the tree and set the
removal flag.
Fixes: 20325960f8 ("afs: Reorganise volume and server trees to be rooted on the cell")
Signed-off-by: David Howells <dhowells@redhat.com>
Reviewed-by: Jeffrey Altman <jaltman@auristor.com>
cc: Marc Dionne <marc.dionne@auristor.com>
cc: linux-afs@lists.infradead.org
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
The IDA usually detects double-frees, but that detection failed to
consider the case when there are no nearby IDs allocated and so we have a
NULL bitmap rather than simply having a clear bit. Add some tests to the
test-suite to be sure we don't inadvertently reintroduce this problem.
Unfortunately they're quite noisy so include a message to disregard
the warnings.
Reported-by: Zhenghan Wang <wzhmmmmm@gmail.com>
Signed-off-by: Matthew Wilcox (Oracle) <willy@infradead.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
In afs_update_cell(), ret is the result of the DNS lookup and the errors
are to be handled by a switch - however, the value gets clobbered in
between by setting it to -ENOMEM in case afs_alloc_vlserver_list()
fails.
Fix this by moving the setting of -ENOMEM into the error handling for
OOM failure. Further, only do it if we don't have an alternative error
to return.
Found by Linux Verification Center (linuxtesting.org) with SVACE. Based
on a patch from Anastasia Belova [1].
Fixes: d5c32c89b2 ("afs: Fix cell DNS lookup")
Signed-off-by: David Howells <dhowells@redhat.com>
Reviewed-by: Jeffrey Altman <jaltman@auristor.com>
cc: Anastasia Belova <abelova@astralinux.ru>
cc: Marc Dionne <marc.dionne@auristor.com>
cc: linux-afs@lists.infradead.org
cc: lvc-project@linuxtesting.org
Link: https://lore.kernel.org/r/20231221085849.1463-1-abelova@astralinux.ru/ [1]
Link: https://lore.kernel.org/r/1700862.1703168632@warthog.procyon.org.uk/ # v1
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
orangefs_dir_fill() doesn't use oi and dentry arguments at all
do_readdir() gets dentry, uses only dentry->d_inode; it also
gets oi, which is ORANGEFS_I(dentry->d_inode) (i.e. ->d_inode -
constant offset).
orangefs_dir_mode() gets dentry and oi, uses only to pass those
to do_readdir().
orangefs_dir_iterate() uses dentry and oi only to pass those to
orangefs_dir_fill() and orangefs_dir_more().
The only thing it really needs is ->d_inode; moreover, that's
better expressed as file_inode(file) - no need to go through
->f_path.dentry->d_inode.
Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
-----BEGIN PGP SIGNATURE-----
iQIzBAABCAAdFiEEqG5UsNXhtOCrfGQP+7dXa6fLC2sFAmWEVXEACgkQ+7dXa6fL
C2sxbw/+IIgTpjfXDGQoGOpcvQyHW+gMGFqrrZjKJZGQiNZ0DfHPciYcMvOOyqZp
rbt22V/WvQKOlcQ1IYQqjdB47DilFGRepRLZ/fuqq6JDmcHGx2Btj8uJTsV0He4o
rCLXVrfm/JNYECY6dO5bGizrCYL6clVo0x/U2LPlU/2mbXltY1d1yXtzE++6kBZl
w/MLJDmQxvONarhpdD0J9E/uAJ+kHX05HhlqnSxu8HEoGHMVka1N5EGAOq9cICvm
y/8NwnGtflhpJEIso2Kx7XAE8kszXyKw0PJvOaO4GG1PWMs3rIrZbHn7wCbChyMi
xOw+qZVC60BTang/vEOo5I4eFD+NIdBDoGdyuyNICXDIMQ9WvN2nF5qUdFAeR7Vi
Dgxld1WWHm6RcOjl6y9t5Na0zJmgdOyONWx6Xli/AJw2RTx5JiVzDuKP6yu+DMvn
DUPrjEQ1m+qPbTwclEzqu3grNabp7EX1vYRKDC4bf+Lg8iGNxlFp+2uyg14HsDUH
N/yqnj8MK6ADcVMfZGGUalIzsgN06vHfHhE7Tj4xSnrR1dekxBveNFJM3r+eeaLV
0VsjHW/IMKPWxO/vDzi6zr0nBeWYQgxAAg+w3LXl3qRGEXlihibmosofovhQFD6k
GhkXojmc3BeSceVfOcEHZu0xXZIy/2y+hZy95BbNLT/eiCwIf/M=
=GJNW
-----END PGP SIGNATURE-----
Merge tag 'afs-fixes-20231221' of git://git.kernel.org/pub/scm/linux/kernel/git/dhowells/linux-fs
Pull AFS fixes from David Howells:
"Improve the interaction of arbitrary lookups in the AFS dynamic root
that hit DNS lookup failures [1] where kafs behaves differently from
openafs and causes some applications to fail that aren't expecting
that. Further, negative DNS results aren't getting removed and are
causing failures to persist.
- Always delete unused (particularly negative) dentries as soon as
possible so that they don't prevent future lookups from retrying.
- Fix the handling of new-style negative DNS lookups in ->lookup() to
make them return ENOENT so that userspace doesn't get confused when
stat succeeds but the following open on the looked up file then
fails.
- Fix key handling so that DNS lookup results are reclaimed almost as
soon as they expire rather than sitting round either forever or for
an additional 5 mins beyond a set expiry time returning
EKEYEXPIRED. They persist for 1s as /bin/ls will do a second stat
call if the first fails"
Link: https://bugzilla.kernel.org/show_bug.cgi?id=216637 [1]
Reviewed-by: Jeffrey Altman <jaltman@auristor.com>
* tag 'afs-fixes-20231221' of git://git.kernel.org/pub/scm/linux/kernel/git/dhowells/linux-fs:
keys, dns: Allow key types (eg. DNS) to be reclaimed immediately on expiry
afs: Fix dynamic root lookup DNS check
afs: Fix the dynamic root's d_delete to always delete unused dentries
In all cases namelen is ->d_name.len of some dentry; moreover, a dentry
that has passed ->lookup() without triggering ENAMETOOLONG check there.
The comment next to these checks is either a rudiment of some other
check that used to be there once upon a time, or an attempt to come up
with the possible reason for that check (well, more like "why does
ext3 do it?")
Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
namelen can't be zero; neither when it's coming from dentry name,
nor when dealing with orphans (in ocfs2_orphan_add() and
__ocfs2_prepare_orphan_dir()). Rudiment of old ext2 pointless
check, long gone in ext2 itself...
Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
That bogosity goes back to the initial merge of ext3. Once upon a time
ext2 used to have a similar check; that got taken out during the switch
to page cache (June 2001). ext3 got merged into mainline 5 months later,
still using buffer cache for directories; removal of the pointless check
in ext2 should've been done as a separate patch, but it hadn't been,
so that thing got missed...
Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
- Fix another kerneldoc warning
- Fix eventfs files to inherit the ownership of its parent directory.
The dynamic creating of dentries in eventfs did not take into
account if the tracefs file system was mounted with a gid/uid,
and would still default to the gid/uid of root. This is a regression.
- Fix warning when synthetic event testing is enabled along with
startup event tracing testing is enabled
-----BEGIN PGP SIGNATURE-----
iIoEABYIADIWIQRRSw7ePDh/lE+zeZMp5XQQmuv6qgUCZYRYjhQccm9zdGVkdEBn
b29kbWlzLm9yZwAKCRAp5XQQmuv6qs0aAQCXWcBeDEWsi8VxAOBU5Q6isvXn2koM
+xSX6LJPh6hFVAD+Pc3oLgvyE5IyqNUM9RYtpwPVMhpAsyE9FIz3TWarEww=
=LY0i
-----END PGP SIGNATURE-----
Merge tag 'trace-v6.7-rc6-2' of git://git.kernel.org/pub/scm/linux/kernel/git/trace/linux-trace
Pull tracing fixes from Steven Rostedt:
- Fix another kerneldoc warning
- Fix eventfs files to inherit the ownership of its parent directory.
The dynamic creation of dentries in eventfs did not take into account
if the tracefs file system was mounted with a gid/uid, and would
still default to the gid/uid of root. This is a regression.
- Fix warning when synthetic event testing is enabled along with
startup event tracing testing is enabled
* tag 'trace-v6.7-rc6-2' of git://git.kernel.org/pub/scm/linux/kernel/git/trace/linux-trace:
tracing / synthetic: Disable events after testing in synth_event_gen_test_init()
eventfs: Have event files and directories default to parent uid and gid
tracing/synthetic: fix kernel-doc warnings
nvme_init_ctrl() resets numa_node to NUMA_NO_NODE, so be sure to set the
desired value after that function call so it won't be overwritten.
Reviewed-by: Sagi Grimberg <sagi@grimberg.me>
Reviewed-by: Jens Axboe <axboe@kernel.dk>
Reviewed-by: Christoph Hellwig <hch@lst.de>
Reviewed-by: Max Gurtovoy <mgurtovoy@nvidia.com>
Signed-off-by: Keith Busch <kbusch@kernel.org>
IOCCSZ and IORCSZ are reserved for discovery controllers. Avoid checking
their values during identify controller phase.
Fixes: 2fcd3ab398 ("nvme-fabrics: check ioccsz and iorcsz")
Reported-by: Daniel Wagner <dwagner@suse.de>
Tested-by: Daniel Wagner <dwagner@suse.de>
Signed-off-by: Max Gurtovoy <mgurtovoy@nvidia.com>
Signed-off-by: Keith Busch <kbusch@kernel.org>
Current release - regressions:
- bpf: syzkaller found null ptr deref in unix_bpf proto add
- eth: i40e: fix ST code value for clause 45
Previous releases - regressions:
- core: return error from sk_stream_wait_connect() if sk_wait_event() fails
- ipv6: revert remove expired routes with a separated list of routes
- wifi rfkill:
- set GPIO direction
- fix crash with WED rx support enabled
- bluetooth:
- fix deadlock in vhci_send_frame
- fix use-after-free in bt_sock_recvmsg
- eth: mlx5e: fix a race in command alloc flow
- eth: ice: fix PF with enabled XDP going no-carrier after reset
- eth: bnxt_en: do not map packet buffers twice
Previous releases - always broken:
- core:
- check vlan filter feature in vlan_vids_add_by_dev() and vlan_vids_del_by_dev()
- check dev->gso_max_size in gso_features_check()
- mptcp: fix inconsistent state on fastopen race
- phy: skip LED triggers on PHYs on SFP modules
- eth: mlx5e:
- fix double free of encap_header
- fix slab-out-of-bounds in mlx5_query_nic_vport_mac_list()
Signed-off-by: Paolo Abeni <pabeni@redhat.com>
-----BEGIN PGP SIGNATURE-----
iQJGBAABCAAwFiEEg1AjqC77wbdLX2LbKSR5jcyPE6QFAmWELNYSHHBhYmVuaUBy
ZWRoYXQuY29tAAoJECkkeY3MjxOkL0MQALYng9iIz5m/iX0pjRpI4HxruflMkdWa
+FMRnWp0OE5ak8l/UcffgYRNozXAcA/PSJhanZU3gT21IeJ+X78paivWyEPUhpqN
d1nhRRsnx37fTK3lbS/wSGJUN+x4g49kHQn5mw8vfi/RGHuc/vbLO23iWsawB92/
7YI0rEzZh2b1FKytvqF9t2lLtJw5ucwQtdm3d/tg4iuL44Lq8dA69dln4wZx3t28
lobsW0eQW2JRh2YwrREb1oUD0CcUNk+XGsWVyUXqs31OflkqYMEzI41Yxs/lHJs0
0Lmt3/F2Ls+H+vEYElJ0wsNPFZr4TDhAsV5KMxZdoBfWhTN8ordloBXGHre1IVSK
SQtja5IqT01dLbDoL7tLpyEsGLp1A+HPH+BVxt582srSMoXWmFYOZcRczKJ85C1W
qaohCGeEO537ExrAMHbJ0CxR3oSawyOBszjTYGdbI3xiFj5q1n48YyJSep//rgvP
PewzqtMpPPapPIiJbvRjN8Mn56Y2832TSbPOVZ2KJuBpx+i/mjXyIK97FMb+Jdvu
3ACH3BmsUfvXXpXNSZIgtc35tP03GSeV9B2vzlhjFwxB2vV4wuX9NbI5OIWi7ZM1
03jkC2wQf6jVby45IM5kMuEKL3hMXUx9t0nZg0szJ3T31+OQ6e5Hlv1Aqp4Ihn5Q
N+fxo6lpm+Aq
=sEmi
-----END PGP SIGNATURE-----
Merge tag 'net-6.7-rc7' of git://git.kernel.org/pub/scm/linux/kernel/git/netdev/net
Pull networking fixes from Paolo Abeni:
"Including fixes from WiFi and bpf.
Current release - regressions:
- bpf: syzkaller found null ptr deref in unix_bpf proto add
- eth: i40e: fix ST code value for clause 45
Previous releases - regressions:
- core: return error from sk_stream_wait_connect() if sk_wait_event()
fails
- ipv6: revert remove expired routes with a separated list of routes
- wifi rfkill:
- set GPIO direction
- fix crash with WED rx support enabled
- bluetooth:
- fix deadlock in vhci_send_frame
- fix use-after-free in bt_sock_recvmsg
- eth: mlx5e: fix a race in command alloc flow
- eth: ice: fix PF with enabled XDP going no-carrier after reset
- eth: bnxt_en: do not map packet buffers twice
Previous releases - always broken:
- core:
- check vlan filter feature in vlan_vids_add_by_dev() and
vlan_vids_del_by_dev()
- check dev->gso_max_size in gso_features_check()
- mptcp: fix inconsistent state on fastopen race
- phy: skip LED triggers on PHYs on SFP modules
- eth: mlx5e:
- fix double free of encap_header
- fix slab-out-of-bounds in mlx5_query_nic_vport_mac_list()"
* tag 'net-6.7-rc7' of git://git.kernel.org/pub/scm/linux/kernel/git/netdev/net: (69 commits)
net: check dev->gso_max_size in gso_features_check()
kselftest: rtnetlink.sh: use grep_fail when expecting the cmd fail
net/ipv6: Revert remove expired routes with a separated list of routes
net: avoid build bug in skb extension length calculation
net: ethernet: mtk_wed: fix possible NULL pointer dereference in mtk_wed_wo_queue_tx_clean()
net: stmmac: fix incorrect flag check in timestamp interrupt
selftests: add vlan hw filter tests
net: check vlan filter feature in vlan_vids_add_by_dev() and vlan_vids_del_by_dev()
net: hns3: add new maintainer for the HNS3 ethernet driver
net: mana: select PAGE_POOL
net: ks8851: Fix TX stall caused by TX buffer overrun
ice: Fix PF with enabled XDP going no-carrier after reset
ice: alter feature support check for SRIOV and LAG
ice: stop trashing VF VSI aggregator node ID information
mailmap: add entries for Geliang Tang
mptcp: fill in missing MODULE_DESCRIPTION()
mptcp: fix inconsistent state on fastopen race
selftests: mptcp: join: fix subflow_send_ack lookup
net: phy: skip LED triggers on PHYs on SFP modules
bpf: Add missing BPF_LINK_TYPE invocations
...
StarFive:
Key peripheral support for the jh7100 that depended on the non-standard
non-coherent DMA operations, namely mmc, sdcard and sdio wifi. This
platform has long been supported out of tree by Emil and Ubuntu etc ship
images for it, so having mainline support for a wider range of
peripherals (at last) is great.
Microchip:
The flash used by Auto Update support and the corresponding QSPI
controller are added. On publicly available Icicle kits this flash is
not usable (engineering sample silicon issues) but in the future Icicle
kits will be available that have production silicon.
T-Head:
Jisheng is busy with RL this cycle and hence T-Head appears here. The
Lichee Pi and BeagleV both grow eMMC and uSD support.
Sopgho:
Support for the Huashan Pi and the cv1812h SoC it uses. The cv1812h is
almost identical to the existing cv1800b SoC. These SoCs are intended
for use in IP camera type systems but also appear on SBCs, with the last
digit denoting the amount integrated DDR3 the device has. The difference
between the cv1812h and the existing cv180x devices appears to be the
addition of video output interfaces.
Signed-off-by: Conor Dooley <conor.dooley@microchip.com>
-----BEGIN PGP SIGNATURE-----
iHUEABYIAB0WIQRh246EGq/8RLhDjO14tDGHoIJi0gUCZYQ7CwAKCRB4tDGHoIJi
0p2WAQD/Hid4EDlERk34GVMj5oaIaHab9BFVdfLV9nwc9q+3sAEAo9qjd4rdJuJX
74Zjc1AjoimYxZwKZS8bphlIHe2/DQY=
=kl1G
-----END PGP SIGNATURE-----
gpgsig -----BEGIN PGP SIGNATURE-----
iQIzBAABCgAdFiEEiK/NIGsWEZVxh/FrYKtH/8kJUicFAmWEcXAACgkQYKtH/8kJ
UieE8w//QNo3i8AzC3cF1CEBRhT9+T/1MOoiNgXqaVC/j3dGp9iG4ULGCSkRFUC1
Zv62f115dcGJ4SWRuG56vr8yZFCmwwuXPEr1tm6XNUw8XS60hNwRalNa8wBSnlsA
DayR2y+fDenIQjBU0iyEQzGUhLxf29s0c0wo9h+IqYz26O6u1VIKVnDWR1mTSyx1
rKdZUc5qI63GiwK7pbAcc4BePSKwqlrQ+yEqzkzNfVIpgOcfOnEIIT9D++wTNATy
mtKmnG9BStFLR39tvaks588qotAPfJHk6vO1L6vpZ6e1thMvTfd7qPp/D0Sm1Hh8
8QK3/yqPJQ90qfxIY/UkeOkYSCxk1aMkmiuX9xnoNr872B/wI2FquhJeJJA1lSEx
fCXqjRR3rfiNYy+Tx/xfSDjknobjZBuPYI+6llFbKm6vh2ujK1tXeXd0FsMqm+w+
ZTPKdYjyFeC5zKy04jAYMjOu7PSeWaKg/o1GuKGMvhD/5qHEgbKBYm3CSmZx7rmm
Yh7FY4HkfnnnM2KbyX2Pml6gOqao0ECJ1U4WGxVavILAcHaGki3exfIhQ9RS/Z9V
OCR1FHxVBV7fxQ5lmB0sGgEsdENlN0L7SeBk1xTKjMFf9lLIKCEV4/PDDYQ4VQ4o
U0uGmYx6KJhxbS2UAy5xD1i3Oq0tHxq86Qa2VScOpIvT8iIjqqU=
=3BsX
-----END PGP SIGNATURE-----
Merge tag 'riscv-dt-for-v6.8' of https://git.kernel.org/pub/scm/linux/kernel/git/conor/linux into soc/dt
RISC-V Devicetrees for v6.8
StarFive:
Key peripheral support for the jh7100 that depended on the non-standard
non-coherent DMA operations, namely mmc, sdcard and sdio wifi. This
platform has long been supported out of tree by Emil and Ubuntu etc ship
images for it, so having mainline support for a wider range of
peripherals (at last) is great.
Microchip:
The flash used by Auto Update support and the corresponding QSPI
controller are added. On publicly available Icicle kits this flash is
not usable (engineering sample silicon issues) but in the future Icicle
kits will be available that have production silicon.
T-Head:
Jisheng is busy with RL this cycle and hence T-Head appears here. The
Lichee Pi and BeagleV both grow eMMC and uSD support.
Sopgho:
Support for the Huashan Pi and the cv1812h SoC it uses. The cv1812h is
almost identical to the existing cv1800b SoC. These SoCs are intended
for use in IP camera type systems but also appear on SBCs, with the last
digit denoting the amount integrated DDR3 the device has. The difference
between the cv1812h and the existing cv180x devices appears to be the
addition of video output interfaces.
Signed-off-by: Conor Dooley <conor.dooley@microchip.com>
* tag 'riscv-dt-for-v6.8' of https://git.kernel.org/pub/scm/linux/kernel/git/conor/linux:
riscv: dts: starfive: Enable SDIO wifi on JH7100 boards
riscv: dts: starfive: Enable SD-card on JH7100 boards
riscv: dts: starfive: Add JH7100 MMC nodes
riscv: dts: starfive: Add pool for coherent DMA memory on JH7100 boards
riscv: dts: starfive: Add JH7100 cache controller
riscv: dts: starfive: Mark the JH7100 as having non-coherent DMAs
riscv: dts: starfive: Group tuples in interrupt properties
riscv: dts: thead: Enable LicheePi 4A eMMC and microSD
riscv: dts: thead: Enable BeagleV Ahead eMMC and microSD
riscv: dts: thead: Add TH1520 mmc controllers and sdhci clock
riscv: dts: microchip: add the mpfs' system controller qspi & associated flash
riscv: dts: sophgo: add Huashan Pi board device tree
riscv: dts: sophgo: add initial CV1812H SoC device tree
riscv: dts: sophgo: cv18xx: Add gpio devices
riscv: dts: sophgo: Separate compatible specific for CV1800B soc
dt-bindings: riscv: Add SOPHGO Huashan Pi board compatibles
dt-bindings: timer: Add SOPHGO CV1812H clint
dt-bindings: interrupt-controller: Add SOPHGO CV1812H plic
Link: https://lore.kernel.org/r/20231221-skimmed-boxy-b78aed8afdc4@spud
Signed-off-by: Arnd Bergmann <arnd@arndb.de>
The X1E80100 has three copies of an USB/DP compbo PHY, add support for this
to the Qualcomm QMP PHY driver.
Signed-off-by: Abel Vesa <abel.vesa@linaro.org>
Reviewed-by: Dmitry Baryshkov <dmitry.baryshkov@linaro.org>
Link: https://lore.kernel.org/r/20231201-x1e80100-phy-combo-v1-2-6938ec41f3ac@linaro.org
Signed-off-by: Vinod Koul <vkoul@kernel.org>
this is used to be compatible with old SoCs, such as mt8195, which shares
t-phy between usb3 and pcie controller, usually, it's default mode is pcie
rc mode, and could use force mode to switch into usb3 mode, because pericfg
layer doesn't provide mode switch, also no efuse or jumper can be used;
Currently, only support switch from default pcie mode to usb3;
Note: don't use this way on new SoCs, use pericfg layer's mode switch
instead (by perperty "mediatek,syscon-type").
Signed-off-by: Chunfeng Yun <chunfeng.yun@mediatek.com>
Link: https://lore.kernel.org/r/20231211025624.28991-2-chunfeng.yun@mediatek.com
Signed-off-by: Vinod Koul <vkoul@kernel.org>
Due to some old SoCs with shared t-phy between usb3 and pcie only support
force-mode switch, and shared and non-shared t-phy may exist at the same
time on a SoC, can't use compatible to distinguish between shared and
non-shared t-phy, add a property to supported it.
Currently, only support switch from default pcie mode to usb3 mode.
But now prefer to use "mediatek,syscon-type" on new SoC as far as possible.
Signed-off-by: Chunfeng Yun <chunfeng.yun@mediatek.com>
Acked-by: Krzysztof Kozlowski <krzysztof.kozlowski@linaro.org>
Link: https://lore.kernel.org/r/20231211025624.28991-1-chunfeng.yun@mediatek.com
Signed-off-by: Vinod Koul <vkoul@kernel.org>
The registers, which are being touched in current SM8550 UFS PHY settings,
and the values being programmed are mainly the ones working for HS-G4 mode,
meanwhile, there are also a few ones somehow taken from HS-G5 PHY settings.
However, even consider HS-G4 mode only, some of them are incorrect and some
are missing. Rectify the HS-G4 PHY settings by strictly aligning with the
SM8550 UFS PHY Hardware Programming Guide suggested HS-G4 PHY settings.
Fixes: 1679bfef90 ("phy: qcom-qmp-ufs: Add SM8550 support")
Reviewed-by: Dmitry Baryshkov <dmitry.baryshkov@linaro.org>
Reviewed-by: Abel Vesa <abel.vesa@linaro.org>
Reviewed-by: Manivannan Sadhasivam <manivannan.sadhasivam@linaro.org>
Signed-off-by: Can Guo <quic_cang@quicinc.com>
Tested-by: Neil Armstrong <neil.armstrong@linaro.org> # on SM8550-QRD
Link: https://lore.kernel.org/r/1701520577-31163-10-git-send-email-quic_cang@quicinc.com
Signed-off-by: Vinod Koul <vkoul@kernel.org>
Change the last "depends on GENERIC_PHY" to use select, like the
other 170+ Kconfig users do. This can help prevent circular
dependency issues.
Signed-off-by: Randy Dunlap <rdunlap@infradead.org>
Cc: Vinod Koul <vkoul@kernel.org>
Cc: Kishon Vijay Abraham I <kishon@kernel.org>
Cc: linux-phy@lists.infradead.org
Link: https://lore.kernel.org/r/20231204234917.23509-1-rdunlap@infradead.org
Signed-off-by: Vinod Koul <vkoul@kernel.org>
Add devices tree for CN9130 and CN9131 COM Express Boards
Fix device tree for Turris Mox and for switch nodes
-----BEGIN PGP SIGNATURE-----
iF0EABECAB0WIQQYqXDMF3cvSLY+g9cLBhiOFHI71QUCZYMcVwAKCRALBhiOFHI7
1eErAJ9GBlkV0RajfdpdZyjBxu+ECMwvzgCgi/xiyDDd4Z/gkqop+BrcKKSds5g=
=Q5PI
-----END PGP SIGNATURE-----
gpgsig -----BEGIN PGP SIGNATURE-----
iQIzBAABCgAdFiEEiK/NIGsWEZVxh/FrYKtH/8kJUicFAmWEcIgACgkQYKtH/8kJ
Uienyw/9ETdLhSNPMMZA9YHd4Cym0pLG9s4vdNLpw6ywHysY3bTj4J6x5O4Q7TAM
nmXzbL0fb/npf+V9jm28cJ6g8x70BZDK/iMKP0YOgSoAIBOY3Tm+AFZPD5cagw9t
UV3mPZVhjpWcHR/QHzjhChQ6pXW5yS0DRzTaEWKiHdn9x6My+c6DYO5Fpm+DPLYq
TryGkczuXCASXc4graxB2Dbe/JX7IfXDyyoTmqSsU1ALIAYIOzzCovCQ96+8+xow
wt4cf6hFKjp5giVC7GxAH0Mn8rlm0XNlieEgMUF0rvQVo2AnJijDIMqEsmjSTxQs
yijOTz8cex63TrBZ8P5N6UrsfgGKRrY9vo6GIO8W9wiDa+xwHPyPCMv01fwZczDU
YzwrLE/zUsuV8xwhJrTMff66YyPBW5X5nvOH7qrMXXMzNQ5RLdIZMTjB+lNpBVJ1
MdzdGbkmAQfYO2VY4LOBnOhAisjOs1+xwiagtpfbO/5+R7mGBTi/P28K/0y9Azb8
bAyNnz+/qspT7GYVrvdPQM5aHSAT/A1btY/X2XCY7lGpCsQIN6CoGaN7X6Oki9er
0kqy3SNDDsDlHEPkuaswH36mzoFVoxM39Wqnm5ESooKMNiHQzfsHEvfoP4JXmglA
dPoVIaHQFXL+ycfxqcTWmzpDaRARn6mVzeBntktbovVHNBPuKe4=
=r+JP
-----END PGP SIGNATURE-----
Merge tag 'mvebu-dt64-6.8-1' of git://git.kernel.org/pub/scm/linux/kernel/git/gclement/mvebu into soc/dt
mvebu dt64 for 6.8 (part 1)
Add devices tree for CN9130 and CN9131 COM Express Boards
Fix device tree for Turris Mox and for switch nodes
* tag 'mvebu-dt64-6.8-1' of git://git.kernel.org/pub/scm/linux/kernel/git/gclement/mvebu:
arm64: dts: cn913x: add device trees for COM Express boards
dt-bindings: arm64: add Marvell COM Express boards
MAINTAINERS: add ac5 to list of maintained Marvell dts files
arm64: dts: armada-3720-turris-mox: set irq type for RTC
ARM64: dts: Add special compatibles for the Turris Mox
ARM64: dts: marvell: Fix some common switch mistakes
Link: https://lore.kernel.org/r/87le9obypx.fsf@BL-laptop
Signed-off-by: Arnd Bergmann <arnd@arndb.de>
Adds driver for the MCP48xx series of DACs.
Device uses a simplex SPI channel. To set the value of an output channel,
a 16-bit data of following format must be written:
Bit field | Description
15 [MSB] | Channel selection bit
0 -> Channel A
1 -> Channel B
13 | Output Gain Selection bit
0 -> 2x Gain (Vref = 4.096V)
1 -> 1x Gain (Vref = 2.048V)
12 | Output Shutdown Control bit
0 -> Shutdown the selected channel
1 -> Active mode operation
11-0 [LSB]| DAC Input Data bits
Value's big endian representation is taken as input for the
selected DAC channel. For devices with a resolution of less
than 12-bits, only the x most significant bits are considered
where x is the resolution of the device.
Reference: Page#22 [MCP48x2 Datasheet]
Supported devices:
+---------+--------------+-------------+
| Device | Resolution | Channels |
|---------|--------------|-------------|
| MCP4801 | 8-bit | 1 |
| MCP4802 | 8-bit | 2 |
| MCP4811 | 10-bit | 1 |
| MCP4812 | 10-bit | 2 |
| MCP4821 | 12-bit | 1 |
| MCP4822 | 12-bit | 2 |
+---------+--------------+-------------+
Devices tested:
MCP4821 [12-bit single channel]
MCP4802 [8-bit dual channel]
Tested on Raspberry Pi Zero 2W
Datasheet: https://ww1.microchip.com/downloads/en/DeviceDoc/22244B.pdf #MCP48x1
Datasheet: https://ww1.microchip.com/downloads/en/DeviceDoc/20002249B.pdf #MCP48x2
Signed-off-by: Anshul Dalal <anshulusr@gmail.com>
Link: https://lore.kernel.org/r/20231220151954.154595-2-anshulusr@gmail.com
Signed-off-by: Jonathan Cameron <Jonathan.Cameron@huawei.com>
1. Tesla FSD: Add Multi Format Codec (MFC) device nodes, for accelerated
video de/encoding.
2. Add initial Google Tensor GS101 SoC support. The GS101 SoC can be
found on Google Pixel 6 phones. Currently the DTS brings only basic
support: core clock controllers, pin controllers, serial, watchdog
and ARM core blocks.
-----BEGIN PGP SIGNATURE-----
iQJEBAABCgAuFiEE3dJiKD0RGyM7briowTdm5oaLg9cFAmWCqBUQHGtyemtAa2Vy
bmVsLm9yZwAKCRDBN2bmhouD1+s2D/sEeNzQQ8YXAhNBx0Xv0NieCY8r555vUT6D
dm7LbBcpAjWUvEubt+Czrt6bZheVHcuIxB58HkYW/N30f3rHgM85ydx0q0waHAuD
5cHyGSNB8fKMukLrLSP8Vrgrjd1Yn4qL5yIyitB/Iv/C25TWmC7ShZZ0NYuMOcyw
iQOpgbSYaeQ9mpHWh6hSTkD2PVPHYmxRJ+etSHHAUY/9Jb2LwtaYd1ZRfLy3ki1p
eLBIgHQ3HM7av94J6UsvIJm4kKRbYtCwJSx/zuGjva2wI0hHdtuigo1MeYFbDduJ
hnQ4mFwxLlhtyEwRJZRXpsmLPq/E4qWSCAusua6S9zeqCC3kMz+9jkd0GLCnlPO0
sj22qnTEU1PfJz/DAjAB1CEj+Rn52Rn1kzIOiHDlaiVcVm1coGC5J7rUuw0rwU3X
3Q3VoI70WAWrvV9fCKVdAatXS8Ir1M4zWsbWxv3KuApmlwpTXfVB3B1RIWZNfit6
bj9MC8PTih97vM16TQbXCyGLWlnVRXCKx6hTquQv+5ryxLEzZoJG8OoZsvHrZEk7
963+WwkEd+PyHEsy7dEsLmy7fVe21eVaECS/W3Q+Qse/n5BzOgKYr8jbI2WVj8Uw
33P+2/xvPxSTfhpP+VoEOff9wIFx0OIPwDEFQRKgoEsNSm0VggC6ba8Syrk6Xoqy
cI0Mf+HxOA==
=KVHV
-----END PGP SIGNATURE-----
gpgsig -----BEGIN PGP SIGNATURE-----
iQIzBAABCgAdFiEEiK/NIGsWEZVxh/FrYKtH/8kJUicFAmWEcCgACgkQYKtH/8kJ
Uify2A//b9rm0Q+79eYhTfqvupXGGmcOOzSgHJZYea+6oRLvldF3lCemQH3lsDmD
+kOmdfCkUEt34MpwoqOXu9gm7BW2/P8pa312D6dqxnncjozuoY6BfhLTdRdNOs36
RZ0mnCy4nPIpZRoel5p0THlPk49R4mXHS0BTywFh5OQMZyO8n/g6/fYbUM2CcS8I
L6l1OVif9IwNLa0MJGsrK7RYsYmpUGMFfkZurUolHXQVnlCoRTJlWULc5tMicX7j
IrUnthTtl/GfZGF1416YBT6d4ez/WYbZphu6pP7Pzj6O37RLEIAvK1rfi4NjPIvG
G2Zep66BWQY/WNL2PyVc+/UYTbspVD0DwuUX7wBvkawhhDsfT4qTlzvf8XuUWw7y
ZeZITK3JiSlAmFAj4/uFi3V8d8+McWZ/HJLpBEH4Qh17NqxUdjU9Hhg8JpmlbzYC
w00WilNYYaIX8LLZfDA4Ow10EILpSijAlgzW1lFdCkNLk/UsXMATKUHhGSSayCD3
UoYHpGa2tsNJ4y9lLbx8KvDGpPoTzi1p9ZDa4kLGrq4fPL9idnwd2TsuNStkGsBY
Hh7DKX93UA1/sWBi4b/UkMc6PdzxQze1+gtSDnP87COVkwEO0e5TTncS+yKLneKO
II5Q6r3Km6AszppG6h4ioL0BtaAa9tujQNkubfKJQpAnyRXdges=
=ooNI
-----END PGP SIGNATURE-----
Merge tag 'samsung-dt64-6.8-2' of https://git.kernel.org/pub/scm/linux/kernel/git/krzk/linux into soc/dt
Samsung DTS ARM64 changes for v6.8, part two
1. Tesla FSD: Add Multi Format Codec (MFC) device nodes, for accelerated
video de/encoding.
2. Add initial Google Tensor GS101 SoC support. The GS101 SoC can be
found on Google Pixel 6 phones. Currently the DTS brings only basic
support: core clock controllers, pin controllers, serial, watchdog
and ARM core blocks.
* tag 'samsung-dt64-6.8-2' of https://git.kernel.org/pub/scm/linux/kernel/git/krzk/linux:
MAINTAINERS: adjust file entry in GOOGLE TENSOR SoC SUPPORT
MAINTAINERS: add entry for Google Tensor SoC
arm64: dts: exynos: google: Add initial Oriole/pixel 6 board support
arm64: dts: exynos: google: Add initial Google gs101 SoC support
dt-bindings: arm: google: Add bindings for Google ARM platforms
arm64: dts: fsd: Add MFC related DT enteries
Link: https://lore.kernel.org/r/20231220084722.22149-2-krzysztof.kozlowski@linaro.org
Signed-off-by: Arnd Bergmann <arnd@arndb.de>
Support is added for HTC One Mini 2, Nokia Lumia 630, Microsoft Lumia
640, Microsoft Lumia 640 XL, Nokia Lumia 735, Nokia Lumia 830, and
Motorola Moto G 4G, all built on the MSM8226 platform.
The GPU in MSM8226 is described, and MSM8974 gains watchdog support.
The PMICs are transitioned to use interrupts-extended to properly
reference the PMIC interrupt controller, in accordance with the
DeviceTree specification.
In addition to this, a variety of stylistic and DeviceTree validation
issues are corrected.
-----BEGIN PGP SIGNATURE-----
iQJJBAABCAAzFiEEBd4DzF816k8JZtUlCx85Pw2ZrcUFAmWBGt4VHGFuZGVyc3Nv
bkBrZXJuZWwub3JnAAoJEAsfOT8Nma3FLgUQAOKauUz2YcZEBbf7bjNRQhRpuF8Y
ltfxXjIf7oTI619ykjb7lMz2rd/T+scsqmiO5xvwjai3Z1o1msn8MyAhFrHrv5rq
MaNhHJUiWD3PkQ9BoLFe5uJVn/FQxwXN5Uk5ZmnRz8UaE6PC4x2J5GzQxnlY3dsS
VMvVVwC4Sf4p0RMBD5JvzkckCQ9C3wEFAVHfl1vys8UAr4FSm2jDAI2PuJ2I1SiE
Uh5idW5f20vIr24B8gqMDI78mSs3XiCaarAcRTH1SgHoLWxihTv9eZRAgFfWw5GE
IvX5KxaFvAHRxw3+ZRlaeDGZ/8kclbfuvgpFFVC9ZyQLp/ccl8H1soOmC+YhLrHA
ZHrLoL5654yvm+4FmBm6kPYqbsjuNj6x11F8XYbK0gxN/Rd292d+hPYTujG5XWiH
/SZ1dj4ukB56aEQgg41E/ysHK1bhZxVpyRymfxIQRTpg8H5aY55LgO1M3sZGL8lN
FkgExLR9228sKbGGd9nQ9iXxCm9tF9GgXLirkCiVwAItk4bZ87pL245Eb8/bFumP
9JFzVR3RXFCqmhsctTUrS9xBO4x/nbZlKq9lEL1ygRrWTbpBik7GHpLSGedSpEpo
y3vBRU9Chh58vqfvRqTN9JgS0AyX55ADd9QcFNaDJr2l8f46mTrPT3KCH8q1ozOd
UVusGfv8XgR+iSQP
=1qgR
-----END PGP SIGNATURE-----
gpgsig -----BEGIN PGP SIGNATURE-----
iQIzBAABCgAdFiEEiK/NIGsWEZVxh/FrYKtH/8kJUicFAmWEb9AACgkQYKtH/8kJ
UieRVhAAw/8+0PlIe/9FJWku3kaq4aKZRKawhmgUz60oPiawF6Q0ASkP4E7nAs7T
oOViAqT7hMR+vb345W3w4ceaLD6/zgiOYWG6gC42SZwu+C6gt/RFD7FuzpxqNNEM
0u1VY36nC9WyrI1yb5izi34XoHgHWGresLgwh7UI5x7C1tCyRiJsii9atUWwRTQ2
X8vU5mGmTBPqljV18CE61sWtY1iOwQb01ld542fnyEiaKZsDsdzXyy1J67pntS6J
RrWsaQ+Q8+DaoqnqXqKE6sFj+xIQJG/9TaZt9tgmwpCHYDq6ZPCqvEIGySAdJeNx
st/Y8eW5LPKCThhBa/EC3uHsTQG9qTcgZyTFBuw7qAl1ltxgO/jzUAGI7SgilQH/
UKyKpN0UfoHQcW4tFK8KXwTPT/mhqBy5lYdfV/js0lJ2hIARNhHN/9RwsY1KnT+I
PorALLmj6sC5XlrLY919uWgryGxMmcF46eRV3CWSJdeo6gyvLKL1VPfjCGcuVzpI
k5v921rQuZvxqPQpMeUQ3tHyY+dkFBtgXqNrO70ZdM5CTbo52GcZpRRWYy9SJ7r0
B8mOBuj7cty8epqzjWOqcHWbNiBMJic57pfweJ/l/vK0vsi2GQhqjS7O/WxcyRLo
znyvz1p6n3mh5Ps9wIOQRAqw6GDuw/+3duzcKTVa+Tv7qlQOJvY=
=5ZpW
-----END PGP SIGNATURE-----
Merge tag 'qcom-arm32-for-6.8' of https://git.kernel.org/pub/scm/linux/kernel/git/qcom/linux into soc/dt
Qualcomm ARM32 DeviceTree updates for v6.8
Support is added for HTC One Mini 2, Nokia Lumia 630, Microsoft Lumia
640, Microsoft Lumia 640 XL, Nokia Lumia 735, Nokia Lumia 830, and
Motorola Moto G 4G, all built on the MSM8226 platform.
The GPU in MSM8226 is described, and MSM8974 gains watchdog support.
The PMICs are transitioned to use interrupts-extended to properly
reference the PMIC interrupt controller, in accordance with the
DeviceTree specification.
In addition to this, a variety of stylistic and DeviceTree validation
issues are corrected.
* tag 'qcom-arm32-for-6.8' of https://git.kernel.org/pub/scm/linux/kernel/git/qcom/linux: (60 commits)
ARM: dts: qcom: msm8974*: Re-enable remoteprocs on various boards
ARM: dts: qcom: msm8974: Remove bogus cd-gpio pinctrl
ARM: dts: qcom: msm8974-klte: Remove unused property
ARM: dts: qcom: msm8926-motorola-peregrine: Add initial device tree
ARM: dts: qcom: ipq4019: add dedicated SDHCI compatible
ARM: dts: qcom: Use "pcie" as the node name instead of "pci"
ARM: dts: qcom: msm8226: Add GPU
ARM: dts: qcom: Disable pm8941 & pm8226 smbb charger by default
ARM: dts: qcom: minor whitespace cleanup around '='
ARM: dts: qcom: sdx55: fix USB wakeup interrupt types
ARM: dts: qcom: Add support for HTC One Mini 2
ARM: dts: qcom: msm8974: Add watchdog node
ARM: dts: qcom: sdx65: correct SPMI node name
ARM: dts: qcom: sdx65: add missing GCC clocks
ARM: dts: qcom: sdx65: correct PCIe EP phy-names
ARM: dts: qcom: mdm9615: drop qcom, prefix from SSBI node name
ARM: dts: qcom: ipq8064: drop qcom, prefix from SSBI node name
ARM: dts: qcom: apq8060-dragonboard: rename mpp ADC channels to adc-channel
ARM: dts: qcom: pm8921: Disable keypad by default
ARM: dts: qcom: msm8974: move regulators to board files
...
Link: https://lore.kernel.org/r/20231219042914.732684-1-andersson@kernel.org
Signed-off-by: Arnd Bergmann <arnd@arndb.de>