Commit Graph

868812 Commits

Author SHA1 Message Date
Cai YiWei
043ff868f8 media: rockchip: isp: fix rawhist weight config error for multi deivce
rawhist weight reg will be automatically incremented by each write.

Change-Id: I531d8a03dda804039237d3400d77127b070c11e9
Signed-off-by: Cai YiWei <cyw@rock-chips.com>
2022-03-14 14:12:15 +08:00
Cai YiWei
67e2b460c0 media: rockchip: isp: fix first frame abnormal
Change-Id: Ie0046cdca76064b11642accf57b303328787536b
Signed-off-by: Cai YiWei <cyw@rock-chips.com>
2022-03-14 14:12:15 +08:00
Cai YiWei
675786af15 media: rockchip: isp: useless version return -EINVAL
fix crash for CPU_XXX no define

Change-Id: I4577c7b33823c258b0166378e96d0394b81f570e
Signed-off-by: Cai YiWei <cyw@rock-chips.com>
2022-03-14 14:12:15 +08:00
Cai YiWei
0b1fb9778f media: rockchip: isp: fix first params config two times for readback mode
Change-Id: Ia6209e60fc75a039ca06d1aa0d5d64e4c9515b9e
Signed-off-by: Cai YiWei <cyw@rock-chips.com>
2022-03-14 14:12:15 +08:00
Cai YiWei
d3dd2eea03 media: rockchip: isp: adjust params common api
Change-Id: I5d2961496ec445bea3c3592050d9ef0bd35778c1
Signed-off-by: Cai YiWei <cyw@rock-chips.com>
2022-03-14 14:12:15 +08:00
Su Yuefu
101a69d8c2 media: i2c: add sc530ai sensor driver
Signed-off-by: Su Yuefu <yuefu.su@rock-chips.com>
Change-Id: I5dc9036695137bfbf0f4c33ff3b4d14c0356795d
2022-03-11 16:05:33 +08:00
Steven Liu
3a33a3c953 mfd: rk630: update pinctrl iomux select
Signed-off-by: Steven Liu <steven.liu@rock-chips.com>
Change-Id: Ifdef9505fc74ed34fb69540a3d52765ad70538e5
2022-03-10 19:38:14 +08:00
Wang Panzhenzhuan
2ce635afa3 arm64: dts: rockchip: rk3566-evb2: enable csi2_dphy0 for gc8034
For ov5695 has been stop production, so replace
 ov5695 module config with gc8034

Signed-off-by: Wang Panzhenzhuan <randy.wang@rock-chips.com>
Change-Id: I06aa7d18a82f11a98e6c8bee40a1dd9d5ae60e66
2022-03-10 19:35:11 +08:00
Algea Cao
19f0cc15dc arm64: dts: rockchip: rk630-rk3568-ddr3-v10: Add rk630 node
Signed-off-by: Algea Cao <algea.cao@rock-chips.com>
Change-Id: Ifbf1e996886123aec8718f42388609f1373cddad
2022-03-10 15:02:27 +08:00
Algea Cao
9a215bcd12 arm64: dts: rockchip: Add dtsi file for rk630
Signed-off-by: Algea Cao <algea.cao@rock-chips.com>
Change-Id: I3474d89b48ddabe1eca93ee0236d089b1dd2e554
2022-03-10 15:01:48 +08:00
Algea Cao
cbda874920 mfd: rk630: Add rk630 ref clk
Signed-off-by: Algea Cao <algea.cao@rock-chips.com>
Change-Id: Ie3ad8834ab5d0f25eeb8bdf52445f726192c0161
2022-03-09 20:17:18 +08:00
Yanchao Hu
25f1fa27d7 arm64: dts: rockchip: add RK630 evaluation board devicetree
Signed-off-by: Yanchao Hu <yanchao.hu@rock-chips.com>
Change-Id: I9c8512b42c66fc34fa7de036ad6fe9608eaac729
2022-03-09 17:16:02 +08:00
Tao Huang
3a8585d027 scripts/gcc-wrapper.py: ignore vfs.c:1260
Signed-off-by: Tao Huang <huangtao@rock-chips.com>
Change-Id: I15cddb01a5683c758a6849954b39efd0e9eb76b9
2022-03-09 15:20:01 +08:00
Tao Huang
3c7840d001 Merge tag 'ASB-2022-03-05_4.19-stable' of https://android.googlesource.com/kernel/common
https://source.android.com/security/bulletin/2022-03-01
CVE-2020-29368
CVE-2021-39685
CVE-2021-39686
CVE-2021-39698
CVE-2021-3655

* tag 'ASB-2022-03-05_4.19-stable': (763 commits)
  Linux 4.19.232
  tty: n_gsm: fix encoding of control signal octet bit DV
  xhci: Prevent futile URB re-submissions due to incorrect return value.
  xhci: re-initialize the HC during resume if HCE was set
  usb: dwc3: gadget: Let the interrupt handler disable bottom halves.
  usb: dwc3: pci: Fix Bay Trail phy GPIO mappings
  USB: serial: option: add Telit LE910R1 compositions
  USB: serial: option: add support for DW5829e
  tracefs: Set the group ownership in apply_options() not parse_options()
  USB: gadget: validate endpoint index for xilinx udc
  usb: gadget: rndis: add spinlock for rndis response list
  Revert "USB: serial: ch341: add new Product ID for CH341A"
  ata: pata_hpt37x: disable primary channel on HPT371
  iio: adc: men_z188_adc: Fix a resource leak in an error handling path
  tracing: Have traceon and traceoff trigger honor the instance
  fget: clarify and improve __fget_files() implementation
  memblock: use kfree() to release kmalloced memblock regions
  Revert "drm/nouveau/pmu/gm200-: avoid touching PMU outside of DEVINIT/PREOS/ACR"
  gpio: tegra186: Fix chip_data type confusion
  tty: n_gsm: fix proper link termination after failed open
  ...

Change-Id: I11cf0e2c1fd1318f0985f4783cce8dd4b7c8ae1d
2022-03-08 16:51:11 +08:00
Zorro Liu
d7767e63b4 drm/rockchip: ebc_dev: release version v3.03
overlay start only when overlay is enabled

Signed-off-by: Zorro Liu <lyx@rock-chips.com>
Change-Id: Ic498d4df85f8f490a42a432ab40b780f54257d85
2022-03-08 16:13:35 +08:00
Algea Cao
1646103d4f mfd: rk630: add efuse regmap
Signed-off-by: Algea Cao <algea.cao@rock-chips.com>
Change-Id: Ia1c654c47c7f3b98aba4fef1defb13edc05f6d88
2022-03-08 16:12:16 +08:00
Algea Cao
8bf9e48dfd nvmem: rk628-efuse: Support rk630 efuse
Signed-off-by: Algea Cao <algea.cao@rock-chips.com>
Change-Id: I49e3b890d9fa98f569c36050c8ce830e85924923
2022-03-08 16:12:16 +08:00
Weixin Zhou
2f84e14244 nvmem: rk628-efuse: add rk628 efuse driver
Change-Id: I1b379fb75ba65f5628653ce114d1d440e9a95ec9
Signed-off-by: Weixin Zhou <zwx@rock-chips.com>
2022-03-08 16:12:16 +08:00
Elaine Zhang
02bfca0689 clk: rockchip: px30: mark clk_rtc32k_pmu as critical
Signed-off-by: Elaine Zhang <zhangqing@rock-chips.com>
Change-Id: I6f85ebd3bea1918b6938276295780f41a4ac197e
2022-03-08 11:50:15 +08:00
Sandy Huang
09145f10d9 drm/rockchip: vop: init win axi read id for px30
Signed-off-by: Sandy Huang <hjc@rock-chips.com>
Change-Id: Ic2752ad9472b2b5658a24c18525947da621f367c
2022-03-07 17:22:19 +08:00
Liang Chen
93df7b6fa9 clk: scmi: initialize driver earlier when CONFIG_ARCH_ROCKCHIP=y
Make sure scmi_clk_cpu is ready when initialize cpufreq driver.

Change-Id: I8c0d0f59480127b4c98d9bdeb8be6080a1fc3dfd
Signed-off-by: Liang Chen <cl@rock-chips.com>
2022-03-04 18:36:06 +08:00
Lin Jinhan
70fd22cb4b crypto: rockchip: fix dma_map_sg/dma_unmap_sg not paired when using dma_fd
dma_fd buffer has been mapped by cryptodev and does not need to
 be mapped again.

Signed-off-by: Lin Jinhan <troy.lin@rock-chips.com>
Change-Id: Ic28bebe3b169dfc4cb1fde4457122277f32294bf
2022-03-04 11:45:28 +08:00
Lin Jinhan
51e2a8f069 crypto: rockchip: cryptodev_linux: added non-multithreaded protection
CRYPTO V1/V2 do not support multi-threading, so it is necessary
 to add a hold mechanism in Cryptodev to prevent abnormal consequences
 caused by multi-threading calls.

Signed-off-by: Lin Jinhan <troy.lin@rock-chips.com>
Change-Id: Ifd5ff6b102c81c8ac44c16f9689d5219c7fa5a56
2022-03-04 10:28:03 +08:00
Yu Qiaowei
dd7f647865 video: rockchip: rga3: Remove iommu_api that does not support GKI
Signed-off-by: Yu Qiaowei <cerf.yu@rock-chips.com>
Change-Id: Ie90b87aa84758644a4696e59a63c48d2fbb8e7b2
2022-03-03 21:03:53 +08:00
Yu Qiaowei
4c3a12c9c4 video: rockchip: rga3: Fix hardware support format
1. RGA3 support ARGB/ABGR8888 input.
2. RGA3 support YUV420 packed output.

Signed-off-by: Yu Qiaowei <cerf.yu@rock-chips.com>
Change-Id: I7680ed7b0218998f67e0d1ed40cc2ad3690b8572
2022-03-03 21:03:53 +08:00
Yu Qiaowei
16e812f5a2 video: rockchip: rga3: update rga_debugger
1. Add 'debug' mode in debug node.
2. Fix compilation error when procfs is enabled.

Signed-off-by: Yu Qiaowei <cerf.yu@rock-chips.com>
Change-Id: I88bdcad127a726a6b2618d54c2c3958a663bc6d7
2022-03-03 21:03:53 +08:00
Zou Wei
1258f08695 UPSTREAM: drm/bridge: lt9611: Add missing MODULE_DEVICE_TABLE
This patch adds missing MODULE_DEVICE_TABLE definition which generates
correct modalias for automatic loading of this driver when it is built
as an external module.

Reported-by: Hulk Robot <hulkci@huawei.com>
Signed-off-by: Zou Wei <zou_wei@huawei.com>
Reviewed-by: Robert Foss <robert.foss@linaro.org>
Signed-off-by: Robert Foss <robert.foss@linaro.org>
Link: https://patchwork.freedesktop.org/patch/msgid/1620801955-19188-1-git-send-email-zou_wei@huawei.com
Signed-off-by: Sasha Levin <sashal@kernel.org>
Signed-off-by: Guochun Huang <hero.huang@rock-chips.com>
Change-Id: I6974f900b393538e313a313e2edb66e4281cfd3a
(cherry picked from commit 8d0b1fe81e)
2022-03-03 16:31:59 +08:00
Vinod Koul
458c70122a UPSTREAM: drm/bridge: Fix the dsi remote end-points
DSI end-points are supposed to be at node 0 and node 1 as per binding.
So fix this and use node 0 and node 1 for dsi.

Reported-by: Dmitry Baryshkov <dmitry.baryshkov@linaro.org>
Fixes: 23278bf54a ("drm/bridge: Introduce LT9611 DSI to HDMI bridge")
Signed-off-by: Vinod Koul <vkoul@kernel.org>
Signed-off-by: Sam Ravnborg <sam@ravnborg.org>
Link: https://patchwork.freedesktop.org/patch/msgid/20200828074251.3788165-1-vkoul@kernel.org
Signed-off-by: Guochun Huang <hero.huang@rock-chips.com>
Change-Id: I5e97fbc5e24b6d23cdb59156b8f5a3d953fe1445
(cherry picked from commit 85a5167366)
2022-03-03 16:30:14 +08:00
Vinod Koul
815e3255b6 UPSTREAM: drm/bridge: Introduce LT9611 DSI to HDMI bridge
Lontium Lt9611 is a DSI to HDMI bridge which supports two DSI ports and
I2S port as an input and HDMI port as output

Change-Id: Iae830d6208c111f1a546c390a6ee62fd609fd701
Co-developed-by: Bjorn Andersson <bjorn.andersson@linaro.org>
Signed-off-by: Bjorn Andersson <bjorn.andersson@linaro.org>
Co-developed-by: Srinivas Kandagatla <srinivas.kandagatla@linaro.org>
Signed-off-by: Srinivas Kandagatla <srinivas.kandagatla@linaro.org>
Tested-by: John Stultz <john.stultz@linaro.org>
Signed-off-by: Vinod Koul <vkoul@kernel.org>
Signed-off-by: Sam Ravnborg <sam@ravnborg.org> # fix lt9611_bridge_mode_valid
Link: https://patchwork.freedesktop.org/patch/msgid/20200723163442.1280414-4-vkoul@kernel.org
Signed-off-by: Guochun Huang <hero.huang@rock-chips.com>
(cherry picked from commit 23278bf54a)
2022-03-03 16:17:30 +08:00
Greg Kroah-Hartman
b33f661bba Merge 4.19.232 into android-4.19-stable
Changes in 4.19.232
	cgroup/cpuset: Fix a race between cpuset_attach() and cpu hotplug
	vhost/vsock: don't check owner in vhost_vsock_stop() while releasing
	parisc/unaligned: Fix fldd and fstd unaligned handlers on 32-bit kernel
	parisc/unaligned: Fix ldw() and stw() unalignment handlers
	sr9700: sanity check for packet length
	USB: zaurus: support another broken Zaurus
	ping: remove pr_err from ping_lookup
	net: __pskb_pull_tail() & pskb_carve_frag_list() drop_monitor friends
	tipc: Fix end of loop tests for list_for_each_entry()
	gso: do not skip outer ip header in case of ipip and net_failover
	openvswitch: Fix setting ipv6 fields causing hw csum failure
	drm/edid: Always set RGB444
	net/mlx5e: Fix wrong return value on ioctl EEPROM query failure
	configfs: fix a race in configfs_{,un}register_subsystem()
	RDMA/ib_srp: Fix a deadlock
	tty: n_gsm: fix proper link termination after failed open
	gpio: tegra186: Fix chip_data type confusion
	Revert "drm/nouveau/pmu/gm200-: avoid touching PMU outside of DEVINIT/PREOS/ACR"
	memblock: use kfree() to release kmalloced memblock regions
	fget: clarify and improve __fget_files() implementation
	tracing: Have traceon and traceoff trigger honor the instance
	iio: adc: men_z188_adc: Fix a resource leak in an error handling path
	ata: pata_hpt37x: disable primary channel on HPT371
	Revert "USB: serial: ch341: add new Product ID for CH341A"
	usb: gadget: rndis: add spinlock for rndis response list
	USB: gadget: validate endpoint index for xilinx udc
	tracefs: Set the group ownership in apply_options() not parse_options()
	USB: serial: option: add support for DW5829e
	USB: serial: option: add Telit LE910R1 compositions
	usb: dwc3: pci: Fix Bay Trail phy GPIO mappings
	usb: dwc3: gadget: Let the interrupt handler disable bottom halves.
	xhci: re-initialize the HC during resume if HCE was set
	xhci: Prevent futile URB re-submissions due to incorrect return value.
	tty: n_gsm: fix encoding of control signal octet bit DV
	Linux 4.19.232

Signed-off-by: Greg Kroah-Hartman <gregkh@google.com>
Change-Id: I7604e43e0d2cc019835f0508e0a0e5116d72bc85
2022-03-02 15:29:10 +01:00
Greg Kroah-Hartman
d5b90e6e03 Linux 4.19.232
Link: https://lore.kernel.org/r/20220228172207.090703467@linuxfoundation.org
Tested-by: Pavel Machek (CIP) <pavel@denx.de>
Tested-by: Shuah Khan <skhan@linuxfoundation.org>
Tested-by: Jon Hunter <jonathanh@nvidia.com>
Tested-by: Sudip Mukherjee <sudip.mukherjee@codethink.co.uk>
Tested-by: Linux Kernel Functional Testing <lkft@linaro.org>
Tested-by: Jeffrin Jose T <jeffrin@rajagiritech.edu.in>
Tested-by: Guenter Roeck <linux@roeck-us.net>
Tested-by: Slade Watkins <slade@sladewatkins.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2022-03-02 11:38:19 +01:00
daniel.starke@siemens.com
28ca082153 tty: n_gsm: fix encoding of control signal octet bit DV
commit 737b0ef3be upstream.

n_gsm is based on the 3GPP 07.010 and its newer version is the 3GPP 27.010.
See https://portal.3gpp.org/desktopmodules/Specifications/SpecificationDetails.aspx?specificationId=1516
The changes from 07.010 to 27.010 are non-functional. Therefore, I refer to
the newer 27.010 here. Chapter 5.4.6.3.7 describes the encoding of the
control signal octet used by the MSC (modem status command). The same
encoding is also used in convergence layer type 2 as described in chapter
5.5.2. Table 7 and 24 both require the DV (data valid) bit to be set 1 for
outgoing control signal octets sent by the DTE (data terminal equipment),
i.e. for the initiator side.
Currently, the DV bit is only set if CD (carrier detect) is on, regardless
of the side.

This patch fixes this behavior by setting the DV bit on the initiator side
unconditionally.

Fixes: e1eaea46bb ("tty: n_gsm line discipline")
Cc: stable@vger.kernel.org
Signed-off-by: Daniel Starke <daniel.starke@siemens.com>
Link: https://lore.kernel.org/r/20220218073123.2121-1-daniel.starke@siemens.com
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2022-03-02 11:38:19 +01:00
Hongyu Xie
4cf9a3da2b xhci: Prevent futile URB re-submissions due to incorrect return value.
commit 243a1dd7ba upstream.

The -ENODEV return value from xhci_check_args() is incorrectly changed
to -EINVAL in a couple places before propagated further.

xhci_check_args() returns 4 types of value, -ENODEV, -EINVAL, 1 and 0.
xhci_urb_enqueue and xhci_check_streams_endpoint return -EINVAL if
the return value of xhci_check_args <= 0.
This causes problems for example r8152_submit_rx, calling usb_submit_urb
in drivers/net/usb/r8152.c.
r8152_submit_rx will never get -ENODEV after submiting an urb when xHC
is halted because xhci_urb_enqueue returns -EINVAL in the very beginning.

[commit message and header edit -Mathias]

Fixes: 203a86613f ("xhci: Avoid NULL pointer deref when host dies.")
Cc: stable@vger.kernel.org
Signed-off-by: Hongyu Xie <xiehongyu1@kylinos.cn>
Signed-off-by: Mathias Nyman <mathias.nyman@linux.intel.com>
Link: https://lore.kernel.org/r/20220215123320.1253947-3-mathias.nyman@linux.intel.com
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2022-03-02 11:38:18 +01:00
Puma Hsu
792e96856d xhci: re-initialize the HC during resume if HCE was set
commit 8b328f8002 upstream.

When HCE(Host Controller Error) is set, it means an internal
error condition has been detected. Software needs to re-initialize
the HC, so add this check in xhci resume.

Cc: stable@vger.kernel.org
Signed-off-by: Puma Hsu <pumahsu@google.com>
Signed-off-by: Mathias Nyman <mathias.nyman@linux.intel.com>
Link: https://lore.kernel.org/r/20220215123320.1253947-2-mathias.nyman@linux.intel.com
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2022-03-02 11:38:18 +01:00
Sebastian Andrzej Siewior
5ad9538407 usb: dwc3: gadget: Let the interrupt handler disable bottom halves.
commit 84918a89d6 upstream.

The interrupt service routine registered for the gadget is a primary
handler which mask the interrupt source and a threaded handler which
handles the source of the interrupt. Since the threaded handler is
voluntary threaded, the IRQ-core does not disable bottom halves before
invoke the handler like it does for the forced-threaded handler.

Due to changes in networking it became visible that a network gadget's
completions handler may schedule a softirq which remains unprocessed.
The gadget's completion handler is usually invoked either in hard-IRQ or
soft-IRQ context. In this context it is enough to just raise the softirq
because the softirq itself will be handled once that context is left.
In the case of the voluntary threaded handler, there is nothing that
will process pending softirqs. Which means it remain queued until
another random interrupt (on this CPU) fires and handles it on its exit
path or another thread locks and unlocks a lock with the bh suffix.
Worst case is that the CPU goes idle and the NOHZ complains about
unhandled softirqs.

Disable bottom halves before acquiring the lock (and disabling
interrupts) and enable them after dropping the lock. This ensures that
any pending softirqs will handled right away.

Link: https://lkml.kernel.org/r/c2a64979-73d1-2c22-e048-c275c9f81558@samsung.com
Fixes: e5f68b4a3e ("Revert "usb: dwc3: gadget: remove unnecessary _irqsave()"")
Cc: stable <stable@kernel.org>
Reported-by: Marek Szyprowski <m.szyprowski@samsung.com>
Tested-by: Marek Szyprowski <m.szyprowski@samsung.com>
Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
Link: https://lore.kernel.org/r/Yg/YPejVQH3KkRVd@linutronix.de
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2022-03-02 11:38:18 +01:00
Hans de Goede
a033ee7ff7 usb: dwc3: pci: Fix Bay Trail phy GPIO mappings
commit 62e3f0afe2 upstream.

When the Bay Trail phy GPIO mappings where added cs and reset were swapped,
this did not cause any issues sofar, because sofar they were always driven
high/low at the same time.

Note the new mapping has been verified both in /sys/kernel/debug/gpio
output on Android factory images on multiple devices, as well as in
the schematics for some devices.

Fixes: 5741022cbd ("usb: dwc3: pci: Add GPIO lookup table on platforms without ACPI GPIO resources")
Cc: stable <stable@vger.kernel.org>
Signed-off-by: Hans de Goede <hdegoede@redhat.com>
Link: https://lore.kernel.org/r/20220213130524.18748-3-hdegoede@redhat.com
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2022-03-02 11:38:18 +01:00
Daniele Palmas
dec8dbd86f USB: serial: option: add Telit LE910R1 compositions
commit cfc4442c64 upstream.

Add support for the following Telit LE910R1 compositions:

0x701a: rndis, tty, tty, tty
0x701b: ecm, tty, tty, tty
0x9201: tty

Signed-off-by: Daniele Palmas <dnlplm@gmail.com>
Link: https://lore.kernel.org/r/20220218134552.4051-1-dnlplm@gmail.com
Cc: stable@vger.kernel.org
Signed-off-by: Johan Hovold <johan@kernel.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2022-03-02 11:38:17 +01:00
Slark Xiao
2981cd9815 USB: serial: option: add support for DW5829e
commit 6ecb3f0b18 upstream.

Dell DW5829e same as DW5821e except CAT level.
DW5821e supports CAT16 but DW5829e supports CAT9.
There are 2 types product of DW5829e: normal and eSIM.
So we will add 2 PID for DW5829e.
And for each PID, it support MBIM or RMNET.
Let's see test evidence as below:

DW5829e MBIM mode:
T:  Bus=04 Lev=01 Prnt=01 Port=01 Cnt=01 Dev#=  4 Spd=5000 MxCh= 0
D:  Ver= 3.10 Cls=ef(misc ) Sub=02 Prot=01 MxPS= 9 #Cfgs=  2
P:  Vendor=413c ProdID=81e6 Rev=03.18
S:  Manufacturer=Dell Inc.
S:  Product=DW5829e Snapdragon X20 LTE
S:  SerialNumber=0123456789ABCDEF
C:  #Ifs= 7 Cfg#= 2 Atr=a0 MxPwr=896mA
I:  If#=0x0 Alt= 0 #EPs= 1 Cls=02(commc) Sub=0e Prot=00 Driver=cdc_mbim
I:  If#=0x1 Alt= 1 #EPs= 2 Cls=0a(data ) Sub=00 Prot=02 Driver=cdc_mbim
I:  If#=0x2 Alt= 0 #EPs= 3 Cls=ff(vend.) Sub=00 Prot=00 Driver=option
I:  If#=0x3 Alt= 0 #EPs= 3 Cls=ff(vend.) Sub=00 Prot=00 Driver=option
I:  If#=0x4 Alt= 0 #EPs= 3 Cls=ff(vend.) Sub=00 Prot=00 Driver=option
I:  If#=0x5 Alt= 0 #EPs= 2 Cls=ff(vend.) Sub=ff Prot=ff Driver=option
I:  If#=0x6 Alt= 0 #EPs= 1 Cls=ff(vend.) Sub=ff Prot=ff Driver=(none)

DW5829e RMNET mode:
T:  Bus=04 Lev=01 Prnt=01 Port=01 Cnt=01 Dev#=  5 Spd=5000 MxCh= 0
D:  Ver= 3.10 Cls=ef(misc ) Sub=02 Prot=01 MxPS= 9 #Cfgs=  1
P:  Vendor=413c ProdID=81e6 Rev=03.18
S:  Manufacturer=Dell Inc.
S:  Product=DW5829e Snapdragon X20 LTE
S:  SerialNumber=0123456789ABCDEF
C:  #Ifs= 6 Cfg#= 1 Atr=a0 MxPwr=896mA
I:  If#=0x0 Alt= 0 #EPs= 3 Cls=ff(vend.) Sub=ff Prot=ff Driver=qmi_wwan
I:  If#=0x1 Alt= 0 #EPs= 1 Cls=03(HID  ) Sub=00 Prot=00 Driver=usbhid
I:  If#=0x2 Alt= 0 #EPs= 3 Cls=ff(vend.) Sub=00 Prot=00 Driver=option
I:  If#=0x3 Alt= 0 #EPs= 3 Cls=ff(vend.) Sub=00 Prot=00 Driver=option
I:  If#=0x4 Alt= 0 #EPs= 3 Cls=ff(vend.) Sub=00 Prot=00 Driver=option
I:  If#=0x5 Alt= 0 #EPs= 2 Cls=ff(vend.) Sub=ff Prot=ff Driver=option

DW5829e-eSIM MBIM mode:
T:  Bus=04 Lev=01 Prnt=01 Port=01 Cnt=01 Dev#=  6 Spd=5000 MxCh= 0
D:  Ver= 3.10 Cls=ef(misc ) Sub=02 Prot=01 MxPS= 9 #Cfgs=  2
P:  Vendor=413c ProdID=81e4 Rev=03.18
S:  Manufacturer=Dell Inc.
S:  Product=DW5829e-eSIM Snapdragon X20 LTE
S:  SerialNumber=0123456789ABCDEF
C:  #Ifs= 7 Cfg#= 2 Atr=a0 MxPwr=896mA
I:  If#=0x0 Alt= 0 #EPs= 1 Cls=02(commc) Sub=0e Prot=00 Driver=cdc_mbim
I:  If#=0x1 Alt= 1 #EPs= 2 Cls=0a(data ) Sub=00 Prot=02 Driver=cdc_mbim
I:  If#=0x2 Alt= 0 #EPs= 3 Cls=ff(vend.) Sub=00 Prot=00 Driver=option
I:  If#=0x3 Alt= 0 #EPs= 3 Cls=ff(vend.) Sub=00 Prot=00 Driver=option
I:  If#=0x4 Alt= 0 #EPs= 3 Cls=ff(vend.) Sub=00 Prot=00 Driver=option
I:  If#=0x5 Alt= 0 #EPs= 2 Cls=ff(vend.) Sub=ff Prot=ff Driver=option
I:  If#=0x6 Alt= 0 #EPs= 1 Cls=ff(vend.) Sub=ff Prot=ff Driver=(none)

DW5829e-eSIM RMNET mode:
T:  Bus=04 Lev=01 Prnt=01 Port=01 Cnt=01 Dev#=  7 Spd=5000 MxCh= 0
D:  Ver= 3.10 Cls=ef(misc ) Sub=02 Prot=01 MxPS= 9 #Cfgs=  1
P:  Vendor=413c ProdID=81e4 Rev=03.18
S:  Manufacturer=Dell Inc.
S:  Product=DW5829e-eSIM Snapdragon X20 LTE
S:  SerialNumber=0123456789ABCDEF
C:  #Ifs= 6 Cfg#= 1 Atr=a0 MxPwr=896mA
I:  If#=0x0 Alt= 0 #EPs= 3 Cls=ff(vend.) Sub=ff Prot=ff Driver=qmi_wwan
I:  If#=0x1 Alt= 0 #EPs= 1 Cls=03(HID  ) Sub=00 Prot=00 Driver=usbhid
I:  If#=0x2 Alt= 0 #EPs= 3 Cls=ff(vend.) Sub=00 Prot=00 Driver=option
I:  If#=0x3 Alt= 0 #EPs= 3 Cls=ff(vend.) Sub=00 Prot=00 Driver=option
I:  If#=0x4 Alt= 0 #EPs= 3 Cls=ff(vend.) Sub=00 Prot=00 Driver=option
I:  If#=0x5 Alt= 0 #EPs= 2 Cls=ff(vend.) Sub=ff Prot=ff Driver=option

BTW, the interface 0x6 of MBIM mode is GNSS port, which not same as NMEA
port. So it's banned from serial option driver.
The remaining interfaces 0x2-0x5 are: MODEM, MODEM, NMEA, DIAG.

Signed-off-by: Slark Xiao <slark_xiao@163.com>
Link: https://lore.kernel.org/r/20220214021401.6264-1-slark_xiao@163.com
[ johan: drop unnecessary reservation of interface 1 ]
Cc: stable@vger.kernel.org
Signed-off-by: Johan Hovold <johan@kernel.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2022-03-02 11:38:17 +01:00
Steven Rostedt (Google)
be16d365f4 tracefs: Set the group ownership in apply_options() not parse_options()
commit 851e99ebee upstream.

Al Viro brought it to my attention that the dentries may not be filled
when the parse_options() is called, causing the call to set_gid() to
possibly crash. It should only be called if parse_options() succeeds
totally anyway.

He suggested the logical place to do the update is in apply_options().

Link: https://lore.kernel.org/all/20220225165219.737025658@goodmis.org/
Link: https://lkml.kernel.org/r/20220225153426.1c4cab6b@gandalf.local.home

Cc: stable@vger.kernel.org
Acked-by: Al Viro <viro@zeniv.linux.org.uk>
Reported-by: Al Viro <viro@zeniv.linux.org.uk>
Fixes: 48b27b6b51 ("tracefs: Set all files to the same group ownership as the mount option")
Signed-off-by: Steven Rostedt (Google) <rostedt@goodmis.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2022-03-02 11:38:17 +01:00
Szymon Heidrich
ebc465e894 USB: gadget: validate endpoint index for xilinx udc
commit 7f14c7227f upstream.

Assure that host may not manipulate the index to point
past endpoint array.

Signed-off-by: Szymon Heidrich <szymon.heidrich@gmail.com>
Cc: stable <stable@kernel.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2022-03-02 11:38:16 +01:00
Daehwan Jung
9f688aaded usb: gadget: rndis: add spinlock for rndis response list
commit aaaba1c86d upstream.

There's no lock for rndis response list. It could cause list corruption
if there're two different list_add at the same time like below.
It's better to add in rndis_add_response / rndis_free_response
/ rndis_get_next_response to prevent any race condition on response list.

[  361.894299] [1:   irq/191-dwc3:16979] list_add corruption.
next->prev should be prev (ffffff80651764d0),
but was ffffff883dc36f80. (next=ffffff80651764d0).

[  361.904380] [1:   irq/191-dwc3:16979] Call trace:
[  361.904391] [1:   irq/191-dwc3:16979]  __list_add_valid+0x74/0x90
[  361.904401] [1:   irq/191-dwc3:16979]  rndis_msg_parser+0x168/0x8c0
[  361.904409] [1:   irq/191-dwc3:16979]  rndis_command_complete+0x24/0x84
[  361.904417] [1:   irq/191-dwc3:16979]  usb_gadget_giveback_request+0x20/0xe4
[  361.904426] [1:   irq/191-dwc3:16979]  dwc3_gadget_giveback+0x44/0x60
[  361.904434] [1:   irq/191-dwc3:16979]  dwc3_ep0_complete_data+0x1e8/0x3a0
[  361.904442] [1:   irq/191-dwc3:16979]  dwc3_ep0_interrupt+0x29c/0x3dc
[  361.904450] [1:   irq/191-dwc3:16979]  dwc3_process_event_entry+0x78/0x6cc
[  361.904457] [1:   irq/191-dwc3:16979]  dwc3_process_event_buf+0xa0/0x1ec
[  361.904465] [1:   irq/191-dwc3:16979]  dwc3_thread_interrupt+0x34/0x5c

Fixes: f6281af9d6 ("usb: gadget: rndis: use list_for_each_entry_safe")
Cc: stable <stable@kernel.org>
Signed-off-by: Daehwan Jung <dh10.jung@samsung.com>
Link: https://lore.kernel.org/r/1645507768-77687-1-git-send-email-dh10.jung@samsung.com
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2022-03-02 11:38:16 +01:00
Dmytro Bagrii
f717e19477 Revert "USB: serial: ch341: add new Product ID for CH341A"
commit 198a7ebd5f upstream.

This reverts commit 46ee4abb10.

CH341 has Product ID 0x5512 in EPP/MEM mode which is used for
I2C/SPI/GPIO interfaces. In asynchronous serial interface mode
CH341 has PID 0x5523 which is already in the table.

Mode is selected by corresponding jumper setting.

Signed-off-by: Dmytro Bagrii <dimich.dmb@gmail.com>
Link: https://lore.kernel.org/r/20220210164137.4376-1-dimich.dmb@gmail.com
Link: https://lore.kernel.org/r/YJ0OCS/sh+1ifD/q@hovoldconsulting.com
Cc: stable@vger.kernel.org
Signed-off-by: Johan Hovold <johan@kernel.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2022-03-02 11:38:16 +01:00
Sergey Shtylyov
92cc643567 ata: pata_hpt37x: disable primary channel on HPT371
commit 8d093e02e8 upstream.

The HPT371 chip physically has only one channel, the secondary one,
however the primary channel registers do exist! Thus we have to
manually disable the non-existing channel if the BIOS hasn't done this
already. Similarly to the pata_hpt3x2n driver, always disable the
primary channel.

Fixes: 669a5db411 ("[libata] Add a bunch of PATA drivers.")
Cc: stable@vger.kernel.org
Signed-off-by: Sergey Shtylyov <s.shtylyov@omp.ru>
Signed-off-by: Damien Le Moal <damien.lemoal@opensource.wdc.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2022-03-02 11:38:15 +01:00
Christophe JAILLET
53d43a9c8d iio: adc: men_z188_adc: Fix a resource leak in an error handling path
commit e0a2e37f30 upstream.

If iio_device_register() fails, a previous ioremap() is left unbalanced.

Update the error handling path and add the missing iounmap() call, as
already done in the remove function.

Fixes: 74aeac4da6 ("iio: adc: Add MEN 16z188 ADC driver")
Signed-off-by: Christophe JAILLET <christophe.jaillet@wanadoo.fr>
Link: https://lore.kernel.org/r/320fc777863880247c2aff4a9d1a54ba69abf080.1643445149.git.christophe.jaillet@wanadoo.fr
Cc: <Stable@vger.kernel.org>
Signed-off-by: Jonathan Cameron <Jonathan.Cameron@huawei.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2022-03-02 11:38:15 +01:00
Steven Rostedt (Google)
e6a2e27cc9 tracing: Have traceon and traceoff trigger honor the instance
commit 302e9edd54 upstream.

If a trigger is set on an event to disable or enable tracing within an
instance, then tracing should be disabled or enabled in the instance and
not at the top level, which is confusing to users.

Link: https://lkml.kernel.org/r/20220223223837.14f94ec3@rorschach.local.home

Cc: stable@vger.kernel.org
Fixes: ae63b31e4d ("tracing: Separate out trace events from global variables")
Tested-by: Daniel Bristot de Oliveira <bristot@kernel.org>
Reviewed-by: Tom Zanussi <zanussi@kernel.org>
Signed-off-by: Steven Rostedt (Google) <rostedt@goodmis.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2022-03-02 11:38:15 +01:00
Linus Torvalds
400c2f361c fget: clarify and improve __fget_files() implementation
commit e386dfc56f upstream.

Commit 054aa8d439 ("fget: check that the fd still exists after getting
a ref to it") fixed a race with getting a reference to a file just as it
was being closed.  It was a fairly minimal patch, and I didn't think
re-checking the file pointer lookup would be a measurable overhead,
since it was all right there and cached.

But I was wrong, as pointed out by the kernel test robot.

The 'poll2' case of the will-it-scale.per_thread_ops benchmark regressed
quite noticeably.  Admittedly it seems to be a very artificial test:
doing "poll()" system calls on regular files in a very tight loop in
multiple threads.

That means that basically all the time is spent just looking up file
descriptors without ever doing anything useful with them (not that doing
'poll()' on a regular file is useful to begin with).  And as a result it
shows the extra "re-check fd" cost as a sore thumb.

Happily, the regression is fixable by just writing the code to loook up
the fd to be better and clearer.  There's still a cost to verify the
file pointer, but now it's basically in the noise even for that
benchmark that does nothing else - and the code is more understandable
and has better comments too.

[ Side note: this patch is also a classic case of one that looks very
  messy with the default greedy Myers diff - it's much more legible with
  either the patience of histogram diff algorithm ]

Link: https://lore.kernel.org/lkml/20211210053743.GA36420@xsang-OptiPlex-9020/
Link: https://lore.kernel.org/lkml/20211213083154.GA20853@linux.intel.com/
Reported-by: kernel test robot <oliver.sang@intel.com>
Tested-by: Carel Si <beibei.si@intel.com>
Cc: Jann Horn <jannh@google.com>
Cc: Miklos Szeredi <mszeredi@redhat.com>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
Signed-off-by: Baokun Li <libaokun1@huawei.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2022-03-02 11:38:15 +01:00
Miaohe Lin
a6fcced73d memblock: use kfree() to release kmalloced memblock regions
commit c94afc46ca upstream.

memblock.{reserved,memory}.regions may be allocated using kmalloc() in
memblock_double_array(). Use kfree() to release these kmalloced regions
indicated by memblock_{reserved,memory}_in_slab.

Signed-off-by: Miaohe Lin <linmiaohe@huawei.com>
Fixes: 3010f87650 ("mm: discard memblock data later")
Signed-off-by: Mike Rapoport <rppt@linux.ibm.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2022-03-02 11:38:14 +01:00
Karol Herbst
9429dfe53c Revert "drm/nouveau/pmu/gm200-: avoid touching PMU outside of DEVINIT/PREOS/ACR"
This reverts commit c9ec3d85c0.

This commit causes a regression if 4cdd2450bf
is not applied as well. This was fixed for 5.16, 5.15 and 5.10.

On older stable branches backporting this commit is complicated as relevant
code changed quite a bit. Furthermore most of the affected hardware barely
works on those and users would want to use the newer kernels anyway.

Cc: stable@vger.kernel.org # 5.4 4.19 and 4.14
Cc: Ben Skeggs <bskeggs@redhat.com>
Cc: Lyude Paul <lyude@redhat.com>
Link: https://gitlab.freedesktop.org/drm/nouveau/-/issues/149
Signed-off-by: Karol Herbst <kherbst@redhat.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2022-03-02 11:38:14 +01:00
Marc Zyngier
b6090c7359 gpio: tegra186: Fix chip_data type confusion
commit d1e972ace4 upstream.

The tegra186 GPIO driver makes the assumption that the pointer
returned by irq_data_get_irq_chip_data() is a pointer to a
tegra_gpio structure. Unfortunately, it is actually a pointer
to the inner gpio_chip structure, as mandated by the gpiolib
infrastructure. Nice try.

The saving grace is that the gpio_chip is the first member of
tegra_gpio, so the bug has gone undetected since... forever.

Fix it by performing a container_of() on the pointer. This results
in no additional code, and makes it possible to understand how
the whole thing works.

Fixes: 5b2b135a87 ("gpio: Add Tegra186 support")
Signed-off-by: Marc Zyngier <maz@kernel.org>
Cc: Thierry Reding <treding@nvidia.com>
Cc: Linus Walleij <linus.walleij@linaro.org>
Cc: Bartosz Golaszewski <bgolaszewski@baylibre.com>
Link: https://lore.kernel.org/r/20220211093904.1112679-1-maz@kernel.org
Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2022-03-02 11:38:14 +01:00
daniel.starke@siemens.com
337e49675c tty: n_gsm: fix proper link termination after failed open
commit e3b7468f08 upstream.

Trying to open a DLCI by sending a SABM frame may fail with a timeout.
The link is closed on the initiator side without informing the responder
about this event. The responder assumes the link is open after sending a
UA frame to answer the SABM frame. The link gets stuck in a half open
state.

This patch fixes this by initiating the proper link termination procedure
after link setup timeout instead of silently closing it down.

Fixes: e1eaea46bb ("tty: n_gsm line discipline")
Cc: stable@vger.kernel.org
Signed-off-by: Daniel Starke <daniel.starke@siemens.com>
Link: https://lore.kernel.org/r/20220218073123.2121-3-daniel.starke@siemens.com
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2022-03-02 11:38:14 +01:00