linux-stable/drivers
Paul Davey c1013a5ba4 bus: mhi: Fix MHI DMA structure endianness
commit ed2d980503 upstream.

The MHI driver does not work on big endian architectures.  The
controller never transitions into mission mode.  This appears to be due
to the modem device expecting the various contexts and transfer rings to
have fields in little endian order in memory, but the driver constructs
them in native endianness.

Fix MHI event, channel and command contexts and TRE handling macros to
use explicit conversion to little endian.  Mark fields in relevant
structures as little endian to document this requirement.

Fixes: a6e2e3522f ("bus: mhi: core: Add support for PM state transitions")
Fixes: 6cd330ae76 ("bus: mhi: core: Add support for ringing channel/event ring doorbells")
Cc: stable@vger.kernel.org
Reviewed-by: Manivannan Sadhasivam <manivannan.sadhasivam@linaro.org>
Reviewed-by: Alex Elder <elder@linaro.org>
Signed-off-by: Paul Davey <paul.davey@alliedtelesis.co.nz>
Signed-off-by: Manivannan Sadhasivam <manivannan.sadhasivam@linaro.org>
Link: https://lore.kernel.org/r/20220301160308.107452-4-manivannan.sadhasivam@linaro.org
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2022-04-08 14:22:49 +02:00
..
accessibility speakup-dectlk: Restore pitch setting 2022-02-16 12:56:37 +01:00
acpi ACPI: video: Force backlight native for Clevo NL5xRU and NL5xNU 2022-03-28 09:58:45 +02:00
amba
android
ata ata: pata_hpt37x: fix PCI clock detection 2022-03-08 19:12:33 +01:00
atm atm: eni: Add check for dma_map_single 2022-03-23 09:16:41 +01:00
auxdisplay auxdisplay: lcd2s: Use proper API to free the instance of charlcd object 2022-03-08 19:12:47 +01:00
base driver core: Free DMA range map when device is released 2022-03-02 11:48:07 +01:00
bcma
block virtio-blk: Use blk_validate_block_size() to validate block size 2022-04-08 14:22:48 +02:00
bluetooth Bluetooth: btusb: Add one more Bluetooth part for the Realtek RTL8852AE 2022-03-28 09:58:45 +02:00
bus bus: mhi: Fix MHI DMA structure endianness 2022-04-08 14:22:49 +02:00
cdrom
char tpm: fix reference counting for struct tpm_chip 2022-04-08 14:22:48 +02:00
clk clk: qcom: dispcc: Update the transition delay for MDSS GDSC 2022-03-16 14:23:35 +01:00
clocksource ARM: dts: Use 32KiHz oscillator on devkit8000 2022-03-08 19:12:49 +01:00
comedi
connector
counter
cpufreq cpufreq: Fix initialization of min and max frequency QoS requests 2022-01-27 11:04:44 +01:00
cpuidle
crypto crypto: qat - disable registration of algorithms 2022-03-28 09:58:45 +02:00
cxl
dax
dca
devfreq
dio
dma dmaengine: shdma: Fix runtime PM imbalance on error 2022-03-08 19:12:31 +01:00
dma-buf dma-buf: cma_heap: Fix mutex locking section 2022-03-08 19:12:37 +01:00
edac EDAC: Fix calculation of returned address and next offset in edac_align_ptr() 2022-02-23 12:03:20 +01:00
eisa
extcon
firewire
firmware efi: fix return value of __setup handlers 2022-03-23 09:16:41 +01:00
fpga
fsi
gnss
gpio Revert "gpio: Revert regression in sysfs-gpio (gpiolib.c)" 2022-04-08 14:22:47 +02:00
gpu drm/amdgpu: only check for _PR3 on dGPUs 2022-04-08 14:22:48 +02:00
greybus
hid HID: Add support for open wheel and no attachment to T300 2022-04-08 14:22:46 +02:00
hsi HSI: core: Fix return freed object in hsi_new_client 2022-01-27 11:04:31 +01:00
hv hv: utils: add PTP_1588_CLOCK to Kconfig to fix build 2022-04-08 14:22:46 +02:00
hwmon hwmon: (pmbus) Clear pmbus fault/warning bits after read 2022-03-16 14:23:41 +01:00
hwspinlock
hwtracing
i2c i2c: qup: allow COMPILE_TEST 2022-03-08 19:12:31 +01:00
i3c i3c: master: dw: check return of dw_i3c_master_get_free_pos() 2022-03-08 19:12:37 +01:00
idle
iio iio: Fix error handling for PM 2022-03-02 11:48:04 +01:00
infiniband IB/qib: Fix duplicate sysfs directory name 2022-03-02 11:48:08 +01:00
input Input: zinitix - do not report shadow fingers 2022-04-08 14:22:47 +02:00
interconnect interconnect: qcom: rpm: Prevent integer overflow in rate 2022-01-27 11:05:00 +01:00
iommu iommu/iova: Improve 32-bit free space estimate 2022-04-08 14:22:48 +02:00
ipack
irqchip irqchip/sifive-plic: Add missing thead,c900-plic match string 2022-02-23 12:03:17 +01:00
isdn isdn: hfcpci: check the return value of dma_set_mask() in setup_hw() 2022-03-16 14:23:36 +01:00
leds leds: lp55xx: initialise output direction from dts 2022-01-27 11:04:21 +01:00
macintosh
mailbox mailbox: change mailbox-mpfs compatible string 2022-01-27 11:05:05 +01:00
mcb
md block: drop unused includes in <linux/genhd.h> 2022-03-16 14:23:46 +01:00
media media: correct MEDIA_TEST_SUPPORT help text 2022-01-27 11:05:20 +01:00
memory
memstick
message
mfd mfd: tps65910: Set PWR_OFF bit during driver probe 2022-01-27 11:05:07 +01:00
misc mei: avoid iterator usage outside of list_for_each_entry 2022-04-08 14:22:49 +02:00
mmc mmc: meson: Fix usage of meson_mmc_post_req() 2022-03-16 14:23:42 +01:00
most
mtd mtd: spi-nor: Fix mtd size for s3an flashes 2022-03-08 19:12:33 +01:00
mux
net net: dsa: microchip: add spi_device_id tables 2022-04-08 14:22:48 +02:00
nfc nfc: st21nfca: Fix potential buffer overflows in EVT_TRANSACTION 2022-03-28 09:58:42 +02:00
ntb ntb: intel: fix port config status offset for SPR 2022-03-08 19:12:44 +01:00
nubus
nvdimm
nvme nvme: also mark passthrough-only namespaces ready in nvme_update_ns_info 2022-03-02 11:47:56 +01:00
nvmem nvmem: core: Fix a conflict between MTD and NVMEM on wp-gpios property 2022-03-02 11:48:06 +01:00
of of: net: move of_net under net/ 2022-03-08 19:12:41 +01:00
opp
parisc parisc: Fix sglist access in ccio-dma.c 2022-02-23 12:03:03 +01:00
parport
pci PCI: Mark all AMD Navi10 and Navi14 GPU ATS as broken 2022-03-16 14:23:41 +01:00
pcmcia
perf
phy phy: phy-mtk-tphy: Fix duplicated argument in phy-mtk-tphy 2022-02-23 12:03:17 +01:00
pinctrl pinctrl: tigerlake: Revert "Add Alder Lake-M ACPI ID" 2022-03-16 14:23:40 +01:00
platform surface: surface3_power: Fix battery readings on batteries without a serial number 2022-03-02 11:47:59 +01:00
pnp
power
powercap
pps
ps3
ptp
pwm
rapidio
ras
regulator regulator: core: fix false positive in regulator_late_cleanup() 2022-03-08 19:12:29 +01:00
remoteproc remoteproc: imx_rproc: Fix a resource leak in the remove function 2022-01-27 11:05:10 +01:00
reset
rpmsg rpmsg: char: Fix race between the release of rpmsg_eptdev and cdev 2022-02-01 17:27:07 +01:00
rtc rtc: cmos: Evaluate century appropriate 2022-02-08 18:34:12 +01:00
s390 block: drop unused includes in <linux/genhd.h> 2022-03-16 14:23:46 +01:00
sbus
scsi scsi: mpt3sas: Page fault in reply q processing 2022-03-23 09:16:43 +01:00
sh
siox
slimbus
soc soc: fsl: qe: Check of ioremap return value 2022-03-08 19:12:49 +01:00
soundwire
spi spi: Fix erroneous sgs value with min_t() 2022-04-08 14:22:47 +02:00
spmi
ssb
staging staging: gdm724x: fix use after free in gdm_lte_rx() 2022-03-16 14:23:42 +01:00
target scsi: target: iscsi: Make sure the np under each tpg is unique 2022-02-16 12:56:12 +01:00
tc
tee optee: use driver internal tee_context for some rpc 2022-03-02 11:47:51 +01:00
thermal thermal: core: Fix TZ_GET_TRIP NULL pointer dereference 2022-03-08 19:12:43 +01:00
thunderbolt thunderbolt: Runtime PM activate both ends of the device link 2022-01-27 11:04:36 +01:00
tty serial: stm32: prevent TDR register overwrite when sending x_char 2022-03-08 19:12:32 +01:00
uio
usb xhci: fix uninitialized string returned by xhci_decode_ctrl_ctx() 2022-04-08 14:22:49 +02:00
vdpa vdpa/mlx5: should verify CTRL_VQ feature exists for MQ 2022-04-08 14:22:46 +02:00
vfio
vhost vsock: each transport cycles only on its own sockets 2022-03-23 09:16:41 +01:00
video fbcon: Avoid 'cap' set but not used warning 2022-02-16 12:56:27 +01:00
virt
virtio virtio: acknowledge all features before access 2022-03-16 14:23:43 +01:00
visorbus
vlynq
vme
w1 w1: Misuse of get_user()/put_user() reported by sparse 2022-01-27 11:04:59 +01:00
watchdog
xen xen/gnttab: fix gnttab_end_foreign_access() without page specified 2022-03-11 12:22:37 +01:00
zorro
Kconfig
Makefile