Commit Graph

1080740 Commits

Author SHA1 Message Date
Yifeng Zhao
69325a369b mmc: sdhci-of-dwcmshc: support for rk3528
Signed-off-by: Yifeng Zhao <yifeng.zhao@rock-chips.com>
Change-Id: I1e4aee345839d02442494d0592410ee4245c4828
2022-12-21 20:00:52 +08:00
Damon Ding
4209529be5 dt-bindings: display: add rockchip tve dclk upsample mode macro
Signed-off-by: Damon Ding <damon.ding@rock-chips.com>
Change-Id: Ie887ab493f2a9c07d1552e3f400ba9ed55217029
2022-12-21 19:54:53 +08:00
XiaoDong Huang
543eefb739 soc: rockchip: support rk3528 pm config
Change-Id: If69922b071970bbefb3c0589a6dfc5b4d92fe054
Signed-off-by: XiaoDong Huang <derrick.huang@rock-chips.com>
2022-12-21 19:53:29 +08:00
XiaoDong Huang
9b678fbbbc dt-bindings: suspend: rk3528: add sleep mode config defines
Change-Id: I8b27dd9cf181e935fc0c1c6d90ef47bbf55ffc2f
Signed-off-by: XiaoDong Huang <derrick.huang@rock-chips.com>
2022-12-21 19:52:21 +08:00
Finley Xiao
2ed777fcd0 soc: rockchip: power-domain: add power domain support for rk3528
This driver is modified to support RK3528 SoCs.

Signed-off-by: Finley Xiao <finley.xiao@rock-chips.com>
Change-Id: If024916eb7b52ec86ff7533aedefc1bda457b612
2022-12-21 19:47:37 +08:00
Finley Xiao
d486f0e97d dt/bindings: power: add RK3528 SoCs header for idle-request
According to a description from TRM, add all the idle request.

Signed-off-by: Finley Xiao <finley.xiao@rock-chips.com>
Change-Id: I3c58c73a61bf88d91930f9f3464207f820965b94
2022-12-21 19:45:33 +08:00
Sandy Huang
549386c823 soc: rockchip: cpuinfo: Add support for rk3528
Signed-off-by: Sandy Huang <hjc@rock-chips.com>
Change-Id: I0c2ba1875faa224afd60065f7a17b4d247ac0ab0
2022-12-21 19:45:00 +08:00
Joseph Chen
16f512f1e1 clk: rockchip: Add clock controller for the RK3528
Add the clock tree definition for the new RK3528 SoC.

gmac1 clocks are all controlled by GRF, but CRU helps to abstract
these two clocks for gmac1 since the clock source is from CRU.

The io-in clocks are module phy output clock, gating child
clocks by disabling phy output but not CRU gate.

Add gmac0 clocks.
They are all orphans if clk_gmac0_io_i is not registered by
GMAC driver. But it's fine that GMAC driver only get it but
not to set/get rate.

Add CLK_SET_RATE_PARENT for mclk_sai_i2s0/1.
Allowed to change parent rate.

Add CLK_SET_RATE_NO_REPARENT for dclk_vop0.
dclk_vop0 is often used for HDMI, it prefers parent clock from
clk_hdmiphy_pixel_io for better clock quality and any rate.
It assigns clk_hdmiphy_pixel_io as parent in dts and hope not to
change parent any more.

Add CLK_SET_RATE_PARENT for aclk_gpu.
Allow aclk_gpu and aclk_gpu_mali to change parent rate.

Add CLK_SET_RATE_PARENT for aclk_rkvdec_pvtmux_root.
Allow aclk_rkvdec_pvtmux_root and aclk_rkvdec to change parent rate.

set aclk_m_core = core_clk/2.
aclk_m_core signoff is 550M, but we set div=2 for better
performance.

Add CLK_IS_CRITICAL for clk_32k.
Mainly for pvtpll during reboot stage.

Add CLK_IS_CRITICAL for all IOC clocks.
IOC doesn't share clock with GRF. The iomux can't be changed if they
are disabled.

Disable aclk_{vpu,vpu_l,vo}_root rate change
They are all shared by multiple modules, disable rate change
by modules.

Don't register clk_uart_jtag
It's for force jtag uart delay counter. It must be open
for box product without tf card but with uart0.

Signed-off-by: Joseph Chen <chenjh@rock-chips.com>
Signed-off-by: Elaine Zhang <zhangqing@rock-chips.com>
Change-Id: I09745b6a31484d6a27f04e608268d9738c1fe224
2022-12-21 19:21:22 +08:00
Joseph Chen
7a7e67d633 clk: rockchip: add dt-binding header for rk3528
Add the dt-bindings header for the rk3528, that gets shared between
the clock controller and the clock references in the dts.
Add softreset ID for rk3528.

Signed-off-by: Joseph Chen <chenjh@rock-chips.com>
Signed-off-by: Finley Xiao <finley.xiao@rock-chips.com>
Change-Id: I465f0a3c7fc36eee4c2ab0de38a810b8e691d41e
2022-12-21 19:05:45 +08:00
Joseph Chen
a1a02755f2 clk: rockchip: pll: Add ROCKCHIP_PLL_FIXED_MODE for pll_rk3036/rk3328 type
PLL can be normal mode only.

Signed-off-by: Joseph Chen <chenjh@rock-chips.com>
Change-Id: I331e107b561047aa6b46a6c2f7df539a77a6da2d
2022-12-21 19:00:45 +08:00
Steven Liu
ee5af82a6f pinctrl: rockchip: add rk3528 support
Signed-off-by: Steven Liu <steven.liu@rock-chips.com>
Change-Id: I2c1d32907168caf8a8afee6d1f742795b3d13536
2022-12-21 18:54:03 +08:00
Cai YiWei
7eb478dd39 media: rockchip: isp: fix 3a to ddr iommu err for isp30 two readback mode
Change-Id: I7b8911930cae4fce99b9f36fbf0d807bb55e5c07
Signed-off-by: Cai YiWei <cyw@rock-chips.com>
2022-12-21 11:34:26 +08:00
Huicong Xu
0a5d5e6024 dt-bindings: display: rockchip: inno_hdmi: add rk3128 hdmi support
Signed-off-by: Huicong Xu <xhc@rock-chips.com>
Change-Id: Id3907605ab607a784004912c12fc333c2f4391f4
2022-12-21 10:11:00 +08:00
Huicong Xu
c2322ff698 drm/rockchip: inno_hdmi: add rk3128 hdmi support
Change-Id: I929880020f4a72e61d21b7af4d73a98da337b10b
Signed-off-by: Huicong Xu <xhc@rock-chips.com>
2022-12-21 10:10:06 +08:00
Shawn Lin
370364aed7 PCI: rockchip: Activate power domain
Signed-off-by: Shawn Lin <shawn.lin@rock-chips.com>
Change-Id: I95215bbe8152c1c97eac920272b2551e1a3e2e34
2022-12-21 10:02:12 +08:00
Shawn Lin
823a0bdfec arm64: dts: rockchip: Add power domain for RK3399 PCIe node
Signed-off-by: Shawn Lin <shawn.lin@rock-chips.com>
Change-Id: I1a712e7b81bca6302ca83510bedf715f0d282c92
2022-12-21 09:49:35 +08:00
Sandy Huang
01d5ef7d1e drm/rockchip: vop2: clk init is only used at rk3588
clk init is only used at rk3588 but rk3528 version is bigger
then rk3588

Signed-off-by: Sandy Huang <hjc@rock-chips.com>
Change-Id: I0730242f223b6ab3b48765c13fe4ff1ab2803570
2022-12-21 09:47:46 +08:00
Kalesh Singh
134c1aae43 ANDROID: Make SPF aware of fast mremaps
SPF attempts page faults without taking the mmap lock, but takes the
PTL. If there is a concurrent fast mremap (at PMD/PUD level), this
can lead to a UAF as fast mremap will only take the PTL locks at the
PMD/PUD level. SPF cannot take the PTL locks at the larger subtree
granularity since this introduces much contention in the page fault
paths.

To address the race:
  1) Fast mremaps wait until there are no users of the VMA.
  2) Speculative faults detect ongoing fast mremaps and fallback
    to conventional fault handling (taking mmap read lock).

Since this race condition is very rare the performance impact is
negligible.

Bug: 263177905
Change-Id: If9755aa4261337fe180e3093a3cefaae8ac9ff1a
Signed-off-by: Kalesh Singh <kaleshsingh@google.com>
2022-12-20 17:19:30 -08:00
Farid Chahla
16c03440df ANDROID: GKI: enable mulitcolor-led
To enable newer version of DualSense driver, i.e. hid-playstation, we
need to set LEDS_CLASS_MULTICOLOR to "y".

Bug: 260685629
Change-Id: I52b0b1b6a061457e009b62a6bd6b66a91c8c37a2
Signed-off-by: Farid Chahla <farid.chahla@sony.com>
2022-12-20 19:25:39 +00:00
Roderick Colenbrander
4aa3cab588 UPSTREAM: HID: playstation: support updated DualSense rumble mode.
Newer DualSense firmware supports a revised classic rumble mode,
which feels more similar to rumble as supported on previous PlayStation
controllers. It has been made the default on PlayStation and non-PlayStation
devices now (e.g. iOS and Windows). Default to this new mode when
supported.

Signed-off-by: Roderick Colenbrander <roderick.colenbrander@sony.com>
Signed-off-by: Benjamin Tissoires <benjamin.tissoires@redhat.com>
Link: https://lore.kernel.org/r/20221010212313.78275-4-roderick.colenbrander@sony.com

Bug: 260685629
(cherry picked from commit 9fecab247e)
Change-Id: Icd330111a4d1b1e76a04cd11c623d0982ce3d66f
Signed-off-by: Farid Chahla <farid.chahla@sony.com>
2022-12-20 19:25:39 +00:00
Roderick Colenbrander
63b2567f9d UPSTREAM: HID: playstation: add initial DualSense Edge controller support
Provide initial support for the DualSense Edge controller. The brings
support up to the level of the original DualSense, but won't yet provide
support for new features (e.g. reprogrammable buttons).

Signed-off-by: Roderick Colenbrander <roderick.colenbrander@sony.com>
CC: stable@vger.kernel.org
Signed-off-by: Benjamin Tissoires <benjamin.tissoires@redhat.com>
Link: https://lore.kernel.org/r/20221010212313.78275-3-roderick.colenbrander@sony.com

Bug: 260685629
(cherry picked from commit b8a968efab)
Change-Id: I5b95de806e823085d1144f016d8cfd76e4a933ef
Signed-off-by: Farid Chahla <farid.chahla@sony.com>
2022-12-20 19:25:39 +00:00
Roderick Colenbrander
a3ea8fbc1f UPSTREAM: HID: playstation: stop DualSense output work on remove.
Ensure we don't schedule any new output work on removal and wait
for any existing work to complete. If we don't do this e.g. rumble
work can get queued during deletion and we trigger a kernel crash.

Signed-off-by: Roderick Colenbrander <roderick.colenbrander@sony.com>
CC: stable@vger.kernel.org
Signed-off-by: Benjamin Tissoires <benjamin.tissoires@redhat.com>
Link: https://lore.kernel.org/r/20221010212313.78275-2-roderick.colenbrander@sony.com

Bug: 260685629
(cherry picked from commit 182934a1e9)
Change-Id: I40cadfde5765cdabf45def929860258d6019bf10
Signed-off-by: Farid Chahla <farid.chahla@sony.com>
2022-12-20 19:25:39 +00:00
Greg Kroah-Hartman
a301358cb5 UPSTREAM: HID: playstation: convert to use dev_groups
There is no need for a driver to individually add/create device groups,
the driver core will do it automatically for you.  Convert the
hid-playstation driver to use the dev_groups pointer instead of manually
calling the driver core to create the group and have it be cleaned up
later on by the devm core.

Cc: Roderick Colenbrander <roderick.colenbrander@sony.com>
Cc: Jiri Kosina <jikos@kernel.org>
Cc: Benjamin Tissoires <benjamin.tissoires@redhat.com>
Cc: linux-input@vger.kernel.org
Cc: linux-kernel@vger.kernel.org
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Acked-by: Roderick Colenbrander <roderick.colenbrander@sony.com>
Signed-off-by: Jiri Kosina <jkosina@suse.cz>

Bug: 260685629
(cherry picked from commit b4a9af9be6)
Change-Id: I516a1b0ef7f4f8545e0c1b9485b49879dd7a3136
Signed-off-by: Farid Chahla <farid.chahla@sony.com>
2022-12-20 19:25:39 +00:00
Jiri Kosina
62964653b7 UPSTREAM: HID: playstation: fix return from dualsense_player_led_set_brightness()
brightness_set_blocking() callback expects function returning int. This fixes
the follwoing build failure:

drivers/hid/hid-playstation.c: In function ‘dualsense_player_led_set_brightness’:
drivers/hid/hid-playstation.c:885:1: error: no return statement in function returning non-void [-Werror=return-type]
 }
 ^

Signed-off-by: Jiri Kosina <jkosina@suse.cz>

Bug: 260685629
(cherry picked from commit 3c92cb4cb6)
Change-Id: Id16b960826a26ac22c1a14572444f9af29689ed6
Signed-off-by: Farid Chahla <farid.chahla@sony.com>
2022-12-20 19:25:39 +00:00
Roderick Colenbrander
f7901b46a2 UPSTREAM: HID: playstation: expose DualSense player LEDs through LED class.
The DualSense player LEDs were so far not adjustable from user-space.
This patch exposes each LED individually through the LED class. Each
LED uses the new 'player' function resulting in a name like:
'inputX:white:player-1' for the first LED.

Signed-off-by: Roderick Colenbrander <roderick.colenbrander@sony.com>
Signed-off-by: Jiri Kosina <jkosina@suse.cz>

Bug: 260685629
(cherry picked from commit 8c0ab553b0)
Change-Id: I49c699a99b0b8a7bb7980560e3ea7a12faf646aa
Signed-off-by: Farid Chahla <farid.chahla@sony.com>
2022-12-20 19:25:39 +00:00
Roderick Colenbrander
a70e598cef UPSTREAM: leds: add new LED_FUNCTION_PLAYER for player LEDs for game controllers.
Player LEDs are commonly found on game controllers from Nintendo and Sony
to indicate a player ID across a number of LEDs. For example, "Player 2"
might be indicated as "-x--" on a device with 4 LEDs where "x" means on.

This patch introduces LED_FUNCTION_PLAYER1-5 defines to properly indicate
player LEDs from the kernel. Until now there was no good standard, which
resulted in inconsistent behavior across xpad, hid-sony, hid-wiimote and
other drivers. Moving forward new drivers should use LED_FUNCTION_PLAYERx.

Note: management of Player IDs is left to user space, though a kernel
driver may pick a default value.

Signed-off-by: Roderick Colenbrander <roderick.colenbrander@sony.com>
Acked-by: Pavel Machek <pavel@ucw.cz>
Signed-off-by: Jiri Kosina <jkosina@suse.cz>

Bug: 260685629
(cherry picked from commit 61177c088a)
Change-Id: Ie1de4d66304bb25fc2c9fcdb1ec9b7589ad9e7ac
Signed-off-by: Farid Chahla <farid.chahla@sony.com>
2022-12-20 19:25:39 +00:00
Roderick Colenbrander
e1cd3ffe47 UPSTREAM: HID: playstation: expose DualSense lightbar through a multi-color LED.
The DualSense lightbar has so far been supported, but it was not yet
adjustable from user space. This patch exposes it through a multi-color
LED.

Signed-off-by: Roderick Colenbrander <roderick.colenbrander@sony.com>
Signed-off-by: Jiri Kosina <jkosina@suse.cz>

Bug: 260685629
(cherry picked from commit fc97b4d6a1)
Change-Id: I48204113da804b13ad5bed2f651a5826ab5a86f7
Signed-off-by: Farid Chahla <farid.chahla@sony.com>
2022-12-20 19:25:39 +00:00
Pavel Machek
65654da06d UPSTREAM: Documentation: leds: standartizing LED names
We have a list of valid functions, but LED names in sysfs are still
far from being consistent. Create list of "well known" LED names so we
nudge people towards using same LED names (except color) for same
functionality.

Signed-off-by: Pavel Machek <pavel@ucw.cz>

Bug: 260685629
(cherry picked from commit 09f1273064)
Change-Id: Iea12a9c230d6cd072b0f4fd4e0c616348173dd53
Signed-off-by: Farid Chahla <farid.chahla@sony.com>
2022-12-20 19:25:39 +00:00
Greg Kroah-Hartman
003c389455 Merge 5.10.160 into android12-5.10-lts
Changes in 5.10.160
	x86/smpboot: Move rcu_cpu_starting() earlier
	vfs: fix copy_file_range() regression in cross-fs copies
	vfs: fix copy_file_range() averts filesystem freeze protection
	nfp: fix use-after-free in area_cache_get()
	fuse: always revalidate if exclusive create
	io_uring: add missing item types for splice request
	ASoC: fsl_micfil: explicitly clear software reset bit
	ASoC: fsl_micfil: explicitly clear CHnF flags
	ASoC: ops: Check bounds for second channel in snd_soc_put_volsw_sx()
	libbpf: Use page size as max_entries when probing ring buffer map
	pinctrl: meditatek: Startup with the IRQs disabled
	can: sja1000: fix size of OCR_MODE_MASK define
	can: mcba_usb: Fix termination command argument
	ASoC: cs42l51: Correct PGA Volume minimum value
	nvme-pci: clear the prp2 field when not used
	ASoC: ops: Correct bounds check for second channel on SX controls
	Linux 5.10.160

Change-Id: Id555b76c84a3e036cff308e47db60e7538980eb2
Signed-off-by: Greg Kroah-Hartman <gregkh@google.com>
2022-12-20 12:38:28 +00:00
Elaine Zhang
053d015d34 arm64: dts: rockchip: rk3588s: set spdif2\5 to 12M by default
Signed-off-by: Elaine Zhang <zhangqing@rock-chips.com>
Change-Id: I49eda13a3122e25eae362c943a2e1973ac1babf8
2022-12-20 18:05:11 +08:00
Elaine Zhang
f260c6e910 Revert "clk: rockchip: update the frac clk parent"
This reverts commit 7a22993077.

Signed-off-by: Elaine Zhang <zhangqing@rock-chips.com>
Change-Id: I7e300cd51e7390ad63f7d3215983000be940491c
2022-12-20 18:05:06 +08:00
Zefa Chen
4bd12e6711 media: rockchip: vicap fix error state about get clk/rst
Signed-off-by: Zefa Chen <zefa.chen@rock-chips.com>
Change-Id: I4e19314f273f9d7077d9067c32d13c030b95dffc
2022-12-20 18:04:18 +08:00
Cai YiWei
62c5f6364d media: rockchip: isp: fix iommu err for stream stop
Change-Id: Ib7f02300b466e2217a88041031cf11d292337312
Signed-off-by: Cai YiWei <cyw@rock-chips.com>
2022-12-20 18:00:19 +08:00
Cai YiWei
937782ee49 media: rockchip: isp: no support rgb8888 for isp30
Change-Id: Icf3849d9919aad9eaca590936c14734c3dd795f4
Signed-off-by: Cai YiWei <cyw@rock-chips.com>
2022-12-20 18:00:19 +08:00
Elaine Zhang
307b3adba4 clk: rockchip: add branch_gate_no_set_rate
Add branch_gate_no_set_rate for gate clks not
allowed to support setting rate.

Signed-off-by: Elaine Zhang <zhangqing@rock-chips.com>
Change-Id: Ic940acbc035804a011e59b8e1a0d440168e18c26
2022-12-20 16:35:46 +08:00
Wu Liangqing
1134192ff2 arm64: dts: rockhip: rk3588-h0: disabled leds
Change-Id: I300b9ab34946ea3cddd0d994ac0b9afc1edc525d
Signed-off-by: Wu Liangqing <wlq@rock-chips.com>
2022-12-20 09:56:18 +08:00
Greg Kroah-Hartman
a2428a8dcb Linux 5.10.160
Link: https://lore.kernel.org/r/20221215172906.638553794@linuxfoundation.org
Tested-by: Pavel Machek (CIP) <pavel@denx.de>
Tested-by: Shuah Khan <skhan@linuxfoundation.org>
Tested-by: Rudi Heitbaum <rudi@heitbaum.com>
Tested-by: Allen Pais <apais@linux.microsoft.com>
Tested-by: Linux Kernel Functional Testing <lkft@linaro.org>
Tested-by: Salvatore Bonaccorso <carnil@debian.org>
Tested-by: Jon Hunter <jonathanh@nvidia.com>
Tested-by: Sudip Mukherjee <sudip.mukherjee@codethink.co.uk>
Tested-by: Florian Fainelli <f.fainelli@gmail.com>
Tested-by: Guenter Roeck <linux@roeck-us.net>
Tested-by: Hulk Robot <hulkrobot@huawei.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2022-12-19 12:27:32 +01:00
Charles Keepax
54c15f67cb ASoC: ops: Correct bounds check for second channel on SX controls
commit f33bcc5060 upstream.

Currently the check against the max value for the control is being
applied after the value has had the minimum applied and been masked. But
the max value simply indicates the number of volume levels on an SX
control, and as such should just be applied on the raw value.

Fixes: 97eea946b9 ("ASoC: ops: Check bounds for second channel in snd_soc_put_volsw_sx()")
Signed-off-by: Charles Keepax <ckeepax@opensource.cirrus.com>
Link: https://lore.kernel.org/r/20221125162348.1288005-1-ckeepax@opensource.cirrus.com
Signed-off-by: Mark Brown <broonie@kernel.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2022-12-19 12:27:32 +01:00
Lei Rao
74b139c63f nvme-pci: clear the prp2 field when not used
[ Upstream commit a56ea6147f ]

If the prp2 field is not filled in nvme_setup_prp_simple(), the prp2
field is garbage data. According to nvme spec, the prp2 is reserved if
the data transfer does not cross a memory page boundary, so clear it to
zero if it is not used.

Signed-off-by: Lei Rao <lei.rao@intel.com>
Signed-off-by: Christoph Hellwig <hch@lst.de>
Signed-off-by: Sasha Levin <sashal@kernel.org>
2022-12-19 12:27:32 +01:00
Charles Keepax
77ebf88e00 ASoC: cs42l51: Correct PGA Volume minimum value
[ Upstream commit 3d1bb6cc1a ]

The table in the datasheet actually shows the volume values in the wrong
order, with the two -3dB values being reversed. This appears to have
caused the lower of the two values to be used in the driver when the
higher should have been, correct this mixup.

Signed-off-by: Charles Keepax <ckeepax@opensource.cirrus.com>
Link: https://lore.kernel.org/r/20221125162348.1288005-2-ckeepax@opensource.cirrus.com
Signed-off-by: Mark Brown <broonie@kernel.org>
Signed-off-by: Sasha Levin <sashal@kernel.org>
2022-12-19 12:27:32 +01:00
Yasushi SHOJI
4db1d19b74 can: mcba_usb: Fix termination command argument
[ Upstream commit 1a8e3bd25f ]

Microchip USB Analyzer can activate the internal termination resistors
by setting the "termination" option ON, or OFF to to deactivate them.
As I've observed, both with my oscilloscope and captured USB packets
below, you must send "0" to turn it ON, and "1" to turn it OFF.

From the schematics in the user's guide, I can confirm that you must
drive the CAN_RES signal LOW "0" to activate the resistors.

Reverse the argument value of usb_msg.termination to fix this.

These are the two commands sequence, ON then OFF.

> No.     Time           Source                Destination           Protocol Length Info
>       1 0.000000       host                  1.3.1                 USB      46     URB_BULK out
>
> Frame 1: 46 bytes on wire (368 bits), 46 bytes captured (368 bits)
> USB URB
> Leftover Capture Data: a80000000000000000000000000000000000a8
>
> No.     Time           Source                Destination           Protocol Length Info
>       2 4.372547       host                  1.3.1                 USB      46     URB_BULK out
>
> Frame 2: 46 bytes on wire (368 bits), 46 bytes captured (368 bits)
> USB URB
> Leftover Capture Data: a80100000000000000000000000000000000a9

Signed-off-by: Yasushi SHOJI <yashi@spacecubics.com>
Link: https://lore.kernel.org/all/20221124152504.125994-1-yashi@spacecubics.com
Signed-off-by: Marc Kleine-Budde <mkl@pengutronix.de>
Signed-off-by: Sasha Levin <sashal@kernel.org>
2022-12-19 12:27:32 +01:00
Heiko Schocher
683837f2f6 can: sja1000: fix size of OCR_MODE_MASK define
[ Upstream commit 26e8f6a752 ]

bitfield mode in ocr register has only 2 bits not 3, so correct
the OCR_MODE_MASK define.

Signed-off-by: Heiko Schocher <hs@denx.de>
Link: https://lore.kernel.org/all/20221123071636.2407823-1-hs@denx.de
Signed-off-by: Marc Kleine-Budde <mkl@pengutronix.de>
Signed-off-by: Sasha Levin <sashal@kernel.org>
2022-12-19 12:27:32 +01:00
Ricardo Ribalda
434b523671 pinctrl: meditatek: Startup with the IRQs disabled
[ Upstream commit 11780e3756 ]

If the system is restarted via kexec(), the peripherals do not start
with a known state.

If the previous system had enabled an IRQs we will receive unexected
IRQs that can lock the system.

[   28.109251] watchdog: BUG: soft lockup - CPU#0 stuck for 26s!
[swapper/0:0]
[   28.109263] Modules linked in:
[   28.109273] CPU: 0 PID: 0 Comm: swapper/0 Not tainted
5.15.79-14458-g4b9edf7b1ac6 #1 9f2e76613148af94acccd64c609a552fb4b4354b
[   28.109284] Hardware name: Google Elm (DT)
[   28.109290] pstate: 40400005 (nZcv daif +PAN -UAO -TCO -DIT -SSBS
		BTYPE=--)
[   28.109298] pc : __do_softirq+0xa0/0x388
[   28.109309] lr : __do_softirq+0x70/0x388
[   28.109316] sp : ffffffc008003ee0
[   28.109321] x29: ffffffc008003f00 x28: 000000000000000a x27:
0000000000000080
[   28.109334] x26: 0000000000000001 x25: ffffffefa7b350c0 x24:
ffffffefa7b47480
[   28.109346] x23: ffffffefa7b3d000 x22: 0000000000000000 x21:
ffffffefa7b0fa40
[   28.109358] x20: ffffffefa7b005b0 x19: ffffffefa7b47480 x18:
0000000000065b6b
[   28.109370] x17: ffffffefa749c8b0 x16: 000000000000018c x15:
00000000000001b8
[   28.109382] x14: 00000000000d3b6b x13: 0000000000000006 x12:
0000000000057e91
[   28.109394] x11: 0000000000000000 x10: 0000000000000000 x9 :
ffffffefa7b47480
[   28.109406] x8 : 00000000000000e0 x7 : 000000000f424000 x6 :
0000000000000000
[   28.109418] x5 : ffffffefa7dfaca0 x4 : ffffffefa7dfadf0 x3 :
000000000000000f
[   28.109429] x2 : 0000000000000000 x1 : 0000000000000100 x0 :
0000000001ac65c5
[   28.109441] Call trace:
[   28.109447]  __do_softirq+0xa0/0x388
[   28.109454]  irq_exit+0xc0/0xe0
[   28.109464]  handle_domain_irq+0x68/0x90
[   28.109473]  gic_handle_irq+0xac/0xf0
[   28.109480]  call_on_irq_stack+0x28/0x50
[   28.109488]  do_interrupt_handler+0x44/0x58
[   28.109496]  el1_interrupt+0x30/0x58
[   28.109506]  el1h_64_irq_handler+0x18/0x24
[   28.109512]  el1h_64_irq+0x7c/0x80
[   28.109519]  arch_local_irq_enable+0xc/0x18
[   28.109529]  default_idle_call+0x40/0x140
[   28.109539]  do_idle+0x108/0x290
[   28.109547]  cpu_startup_entry+0x2c/0x30
[   28.109554]  rest_init+0xe8/0xf8
[   28.109562]  arch_call_rest_init+0x18/0x24
[   28.109571]  start_kernel+0x338/0x42c
[   28.109578]  __primary_switched+0xbc/0xc4
[   28.109588] Kernel panic - not syncing: softlockup: hung tasks

Signed-off-by: Ricardo Ribalda <ribalda@chromium.org>
Link: https://lore.kernel.org/r/20221122-mtk-pinctrl-v1-1-bedf5655a3d2@chromium.org
Reviewed-by: AngeloGioacchino Del Regno <angelogioacchino.delregno@collabora.com>
Reviewed-by: Matthias Brugger <matthias.bgg@gmail.com>
Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
Signed-off-by: Sasha Levin <sashal@kernel.org>
2022-12-19 12:27:31 +01:00
Hou Tao
5cb4abb0ca libbpf: Use page size as max_entries when probing ring buffer map
[ Upstream commit 689eb2f1ba ]

Using page size as max_entries when probing ring buffer map, else the
probe may fail on host with 64KB page size (e.g., an ARM64 host).

After the fix, the output of "bpftool feature" on above host will be
correct.

Before :
    eBPF map_type ringbuf is NOT available
    eBPF map_type user_ringbuf is NOT available

After :
    eBPF map_type ringbuf is available
    eBPF map_type user_ringbuf is available

Signed-off-by: Hou Tao <houtao1@huawei.com>
Signed-off-by: Andrii Nakryiko <andrii@kernel.org>
Link: https://lore.kernel.org/bpf/20221116072351.1168938-2-houtao@huaweicloud.com
Signed-off-by: Sasha Levin <sashal@kernel.org>
2022-12-19 12:27:31 +01:00
Mark Brown
50b5f6d4d9 ASoC: ops: Check bounds for second channel in snd_soc_put_volsw_sx()
[ Upstream commit 97eea946b9 ]

The bounds checks in snd_soc_put_volsw_sx() are only being applied to the
first channel, meaning it is possible to write out of bounds values to the
second channel in stereo controls. Add appropriate checks.

Signed-off-by: Mark Brown <broonie@kernel.org>
Link: https://lore.kernel.org/r/20220511134137.169575-2-broonie@kernel.org
Signed-off-by: Mark Brown <broonie@kernel.org>
Signed-off-by: Sasha Levin <sashal@kernel.org>
2022-12-19 12:27:31 +01:00
Shengjiu Wang
344739dc56 ASoC: fsl_micfil: explicitly clear CHnF flags
[ Upstream commit b776c4a461 ]

There may be failure when start 1 channel recording after
8 channels recording. The reason is that the CHnF
flags are not cleared successfully by software reset.

This issue is triggerred by the change of clearing
software reset bit.

CHnF flags are write 1 clear bits. Clear them by force
write.

Signed-off-by: Shengjiu Wang <shengjiu.wang@nxp.com>
Link: https://lore.kernel.org/r/1651925654-32060-2-git-send-email-shengjiu.wang@nxp.com
Signed-off-by: Mark Brown <broonie@kernel.org>
Signed-off-by: Sasha Levin <sashal@kernel.org>
2022-12-19 12:27:31 +01:00
Shengjiu Wang
a49c1a7307 ASoC: fsl_micfil: explicitly clear software reset bit
[ Upstream commit 292709b9cf ]

SRES is self-cleared bit, but REG_MICFIL_CTRL1 is defined as
non volatile register, it still remain in regmap cache after set,
then every update of REG_MICFIL_CTRL1, software reset happens.
to avoid this, clear it explicitly.

Signed-off-by: Shengjiu Wang <shengjiu.wang@nxp.com>
Link: https://lore.kernel.org/r/1651925654-32060-1-git-send-email-shengjiu.wang@nxp.com
Signed-off-by: Mark Brown <broonie@kernel.org>
Signed-off-by: Sasha Levin <sashal@kernel.org>
2022-12-19 12:27:31 +01:00
Bing-Jhong Billy Jheng
75454b4bbf io_uring: add missing item types for splice request
Splice is like read/write and should grab current->nsproxy, denoted by
IO_WQ_WORK_FILES as it refers to current->files as well

Signed-off-by: Bing-Jhong Billy Jheng <billy@starlabs.sg>
Reviewed-by: Jens Axboe <axboe@kernel.dk>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2022-12-19 12:27:31 +01:00
Miklos Szeredi
17f386e6b7 fuse: always revalidate if exclusive create
commit df8629af29 upstream.

Failure to do so may result in EEXIST even if the file only exists in the
cache and not in the filesystem.

The atomic nature of O_EXCL mandates that the cached state should be
ignored and existence verified anew.

Reported-by: Ken Schalk <kschalk@nvidia.com>
Signed-off-by: Miklos Szeredi <mszeredi@redhat.com>
Signed-off-by: Wu Bo <bo.wu@vivo.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2022-12-19 12:27:31 +01:00
Jialiang Wang
eb6313c129 nfp: fix use-after-free in area_cache_get()
commit 02e1a114fd upstream.

area_cache_get() is used to distribute cache->area and set cache->id,
 and if cache->id is not 0 and cache->area->kref refcount is 0, it will
 release the cache->area by nfp_cpp_area_release(). area_cache_get()
 set cache->id before cpp->op->area_init() and nfp_cpp_area_acquire().

But if area_init() or nfp_cpp_area_acquire() fails, the cache->id is
 is already set but the refcount is not increased as expected. At this
 time, calling the nfp_cpp_area_release() will cause use-after-free.

To avoid the use-after-free, set cache->id after area_init() and
 nfp_cpp_area_acquire() complete successfully.

Note: This vulnerability is triggerable by providing emulated device
 equipped with specified configuration.

 BUG: KASAN: use-after-free in nfp6000_area_init (drivers/net/ethernet/netronome/nfp/nfpcore/nfp6000_pcie.c:760)
  Write of size 4 at addr ffff888005b7f4a0 by task swapper/0/1

 Call Trace:
  <TASK>
 nfp6000_area_init (drivers/net/ethernet/netronome/nfp/nfpcore/nfp6000_pcie.c:760)
 area_cache_get.constprop.8 (drivers/net/ethernet/netronome/nfp/nfpcore/nfp_cppcore.c:884)

 Allocated by task 1:
 nfp_cpp_area_alloc_with_name (drivers/net/ethernet/netronome/nfp/nfpcore/nfp_cppcore.c:303)
 nfp_cpp_area_cache_add (drivers/net/ethernet/netronome/nfp/nfpcore/nfp_cppcore.c:802)
 nfp6000_init (drivers/net/ethernet/netronome/nfp/nfpcore/nfp6000_pcie.c:1230)
 nfp_cpp_from_operations (drivers/net/ethernet/netronome/nfp/nfpcore/nfp_cppcore.c:1215)
 nfp_pci_probe (drivers/net/ethernet/netronome/nfp/nfp_main.c:744)

 Freed by task 1:
 kfree (mm/slub.c:4562)
 area_cache_get.constprop.8 (drivers/net/ethernet/netronome/nfp/nfpcore/nfp_cppcore.c:873)
 nfp_cpp_read (drivers/net/ethernet/netronome/nfp/nfpcore/nfp_cppcore.c:924 drivers/net/ethernet/netronome/nfp/nfpcore/nfp_cppcore.c:973)
 nfp_cpp_readl (drivers/net/ethernet/netronome/nfp/nfpcore/nfp_cpplib.c:48)

Signed-off-by: Jialiang Wang <wangjialiang0806@163.com>
Reviewed-by: Yinjun Zhang <yinjun.zhang@corigine.com>
Acked-by: Simon Horman <simon.horman@corigine.com>
Link: https://lore.kernel.org/r/20220810073057.4032-1-wangjialiang0806@163.com
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2022-12-19 12:27:30 +01:00