Commit Graph

5203 Commits

Author SHA1 Message Date
Guochun Huang
4b9ba5d213 mfd: Add support for Maxim MAX96776
The MAX96776/MAX96778 deserializers convert singleor
dual-link GMSL™ serial input to embedded DisplayPort
(eDP) v1.4a. 600MHz PCLK capability and decompression
of VESA 3:1 DSC v1.1 enable transport of 4K (UHD),
24-bit, 60fps video over a single coax or twisted pair
link. The MAX96776/MAX96778 also send and receive
sidechannel and peripheral control data to enable
full-duplex single-wire transmission of video and
bidirectional data.

Signed-off-by: Guochun Huang <hero.huang@rock-chips.com>
Change-Id: I3c07fc1053ae6080cb1cca1bfb9bca5fb38bb563
2022-08-10 10:19:27 +08:00
Wyon Bi
495e32cf39 mfd: max96745: Fix power on reset
Signed-off-by: Wyon Bi <bivvy.bi@rock-chips.com>
Change-Id: I8b325e09dff1e0e9bf2a5262d60e803986e52845
2022-08-05 08:17:17 +00:00
Wyon Bi
69882bde7f mfd: max96752f: Add support for enable GPIO
Signed-off-by: Wyon Bi <bivvy.bi@rock-chips.com>
Change-Id: I6fc6933f037d7f8cc53e3c8c49233a14c9301a1f
2022-07-25 10:27:30 +08:00
Tao Huang
c7a43f0886 Merge tag 'ASB-2022-06-05_12-5.10' of https://android.googlesource.com/kernel/common
https://source.android.com/security/bulletin/2022-01-01
CVE-2022-24958
CVE-2022-20136
CVE-2022-23960
CVE-2022-20141
CVE-2021-4154
CVE-2022-20132

* tag 'ASB-2022-06-05_12-5.10': (1188 commits)
  BACKPORT: net/sched: cls_u32: fix netns refcount changes in u32_change()
  UPSTREAM: io_uring: always use original task when preparing req identity
  FROMLIST: remoteproc: Fix dma_mem leak after rproc_shutdown
  FROMLIST: dma-mapping: Add dma_release_coherent_memory to DMA API
  ANDROID: Update QCOM symbol list for __reset_control_get
  ANDROID: vendor_hooks: Add hooks for mutex
  BACKPORT: can: ems_usb: ems_usb_start_xmit(): fix double dev_kfree_skb() in error path
  BACKPORT: can: usb_8dev: usb_8dev_start_xmit(): fix double dev_kfree_skb() in error path
  ANDROID: GKI: Update symbols to symbol list
  ANDROID: oplus: Update the ABI xml and symbol list
  UPSTREAM: remoteproc: Fix count check in rproc_coredump_write()
  BACKPORT: esp: Fix possible buffer overflow in ESP transformation
  ANDROID: Fix the drain_all_pages default condition broken by a hook
  UPSTREAM: Revert "xfrm: xfrm_state_mtu should return at least 1280 for ipv6"
  UPSTREAM: xfrm: fix MTU regression
  ANDROID: signal: Add vendor hook for memory reaping
  FROMGIT: usb: gadget: uvc: allow for application to cleanly shutdown
  FROMGIT: usb: dwc3: gadget: increase tx fifo size for ss isoc endpoints
  UPSTREAM: usb: gadget: configfs: clear deactivation flag in configfs_composite_unbind()
  FROMGIT: usb: gadget: uvc: remove pause flag use
  ...

Change-Id: Idf3eea3b21dc69c8189161c0e24744336431913a

Conflicts:
	drivers/gpu/drm/rockchip/dw_hdmi-rockchip.c
	drivers/spi/spi-rockchip.c
	drivers/usb/gadget/function/f_uvc.c
	drivers/usb/gadget/function/uvc.h
	drivers/usb/gadget/function/uvc_configfs.c
	drivers/usb/gadget/function/uvc_queue.c
	drivers/usb/gadget/function/uvc_video.c
	sound/soc/rockchip/rockchip_i2s.c
2022-07-15 17:58:38 +08:00
Tao Huang
24cbee6672 Merge tag 'ASB-2022-04-05_12-5.10' of https://android.googlesource.com/kernel/common
https://source.android.com/security/bulletin/2022-04-01
CVE-2021-0707
CVE-2021-39800
CVE-2021-39801 (4.9 only)
CVE-2021-39802

* tag 'ASB-2022-04-05_12-5.10': (3832 commits)
  ANDROID: GKI: Update symbols to abi_gki_aarch64_oplus
  ANDROID: vendor_hooks: Reduce pointless modversions CRC churn
  UPSTREAM: locking/lockdep: Avoid potential access of invalid memory in lock_class
  ANDROID: mm: Fix implicit declaration of function 'isolate_lru_page'
  ANDROID: GKI: Update symbols to symbol list
  ANDROID: GKI: Update symbols to symbol list
  ANDROID: GKI: Add hook symbol to symbol list
  Revert "ANDROID: dm-bow: Protect Ranges fetched and erased from the RB tree"
  ANDROID: vendor_hooks: Add hooks to for free_unref_page_commit
  ANDROID: vendor_hooks: Add hooks to for alloc_contig_range
  ANDROID: GKI: Update symbols to symbol list
  ANDROID: vendor_hooks: Add hook in shrink_node_memcgs
  ANDROID: GKI: Add symbols to symbol list
  FROMGIT: iommu/iova: Improve 32-bit free space estimate
  ANDROID: export walk_page_range and swp_swap_info
  ANDROID: vendor_hooks: export shrink_slab
  ANDROID: usb: gadget: f_accessory: add compat_ioctl support
  UPSTREAM: sr9700: sanity check for packet length
  UPSTREAM: io_uring: return back safer resurrect
  UPSTREAM: Revert "xfrm: state and policy should fail if XFRMA_IF_ID 0"
  ...

Change-Id: Ic61ead530b99b10ffd535a358a48fe9bb8c33fd4

Conflicts:
	drivers/android/Kconfig
	drivers/gpu/drm/rockchip/dw-mipi-dsi-rockchip.c
	drivers/gpu/drm/rockchip/rockchip_vop_reg.c
	drivers/i2c/busses/i2c-rk3x.c
	drivers/media/i2c/imx258.c
	drivers/net/ethernet/stmicro/stmmac/dwmac-rk.c
	drivers/usb/dwc2/gadget.c
	drivers/usb/gadget/function/uvc.h
	lib/Kconfig.debug
2022-07-15 17:40:39 +08:00
Wyon Bi
332f5e008a mfd: max96752f: Fix display error during system suspend/resume
Remove regcache function.

Signed-off-by: Wyon Bi <bivvy.bi@rock-chips.com>
Change-Id: I17c17b8f6d49a6de0248932e4d579bcd4bd623ae
2022-06-29 19:11:19 +08:00
Wyon Bi
99f9b6cc07 mfd: max96745: Enable regcache
Signed-off-by: Wyon Bi <bivvy.bi@rock-chips.com>
Change-Id: I044343b2de644e2939f014fff84cbc22cd4c29b2
2022-06-14 14:28:17 +08:00
Wyon Bi
293bc21e4e mfd: max96752f: mark 0x0050 & 0x0073 register as non-volatile
Fixes: 4f64073a92 ("mfd: MAX96752F: add stream id for each link")
Signed-off-by: Wyon Bi <bivvy.bi@rock-chips.com>
Change-Id: I8a7bbce97363120fadf3bc2d4f27be7d02cc50aa
2022-06-07 10:07:13 +08:00
Wyon Bi
2185f7dbbe mfd: max96752f: Mark regcache as dirty at power-on-reset
Signed-off-by: Wyon Bi <bivvy.bi@rock-chips.com>
Change-Id: Ifefad0dc1538188e07f33eb9621990f099f0036c
2022-05-31 16:22:40 +08:00
Guochun Huang
81e27b972c mfd: MAX96745: disable remote control-channel link on this link
there can be multiple SerDes applications on the same I2C BUS.
the serializer can attach multiple deiserializers which have
the same I2C slave device address, to avoid I2C communication
conflicts, driver should disable remote control-channel link
after accessing.

Change-Id: I099caf597835cc34f34231231fbaddf2c5d03288
Signed-off-by: Guochun Huang <hero.huang@rock-chips.com>
2022-05-30 09:36:30 +08:00
Guochun Huang
4f64073a92 mfd: MAX96752F: add stream id for each link
Signed-off-by: Guochun Huang <hero.huang@rock-chips.com>
Change-Id: I7e512351db58050c8550100c7a79c046dda5ea4e
2022-05-30 09:36:30 +08:00
Guochun Huang
b564d3921a mfd: Add support for Maxim MAX96755F
The MAX96755F convert MIPI DSI 4-lane input port
data to GMSL2 high-speed serial link protocol.
They also send and receive control channel and
peripheral control data, enabling bidirectional
transmission of video and data over cables in
excess of 15 meters in length.

Signed-off-by: Guochun Huang <hero.huang@rock-chips.com>
Change-Id: I540bd4ca61ae6b6e77cb9635567690fe3367a281
2022-05-30 09:34:37 +08:00
Wyon Bi
83451397e8 mfd: Add support for Maxim MAX96745
The MAX96745 and MAX96747 convert DP1.4 and
eDP1.4a to single or dual GMSL2 serial. They also send
and receive control channel and peripheral control data,
enabling bidirectional transmission of video and data over
cables in excess of 15 meters in length.

Signed-off-by: Wyon Bi <bivvy.bi@rock-chips.com>
Change-Id: I59a338b0ef092bde1d1a444600acd92348cc9443
2022-05-18 19:18:35 +08:00
Wyon Bi
ad3d90b0ba mfd: Add support for Maxim MAX96752F
The MAX96752F/MAX96754F deserializers convert a
single- or dual-link GMSL2 serial input to single or dual
OLDI. They also send and receive side-channel and
peripheral control data, enabling full-duplex, single wire,
bidirectional transmission of video and data over 15
meter cables.

Signed-off-by: Wyon Bi <bivvy.bi@rock-chips.com>
Change-Id: Ibac9f881bd832e96a8606b9f6492e80f8d2494c6
2022-05-18 19:18:35 +08:00
shengfei Xu
85c6fda3fc mfd: rk806: add powerkey on time config
Signed-off-by: shengfei Xu <xsf@rock-chips.com>
Change-Id: Ib7f37252f26be6e717140ab048e2ba6758eadb1d
2022-05-05 14:37:30 +08:00
Miaoqian Lin
8513c93ead mfd: asic3: Add missing iounmap() on error asic3_mfd_probe
[ Upstream commit e84ee1a75f ]

Add the missing iounmap() before return from asic3_mfd_probe
in the error handling case.

Fixes: 64e8867ba8 ("mfd: tmio_mmc hardware abstraction for CNF area")
Signed-off-by: Miaoqian Lin <linmq006@gmail.com>
Signed-off-by: Lee Jones <lee.jones@linaro.org>
Link: https://lore.kernel.org/r/20220307072947.5369-1-linmq006@gmail.com
Signed-off-by: Sasha Levin <sashal@kernel.org>
2022-04-08 14:40:23 +02:00
Jiasheng Jiang
6fa8edfc90 mfd: mc13xxx: Add check for mc13xxx_irq_request
[ Upstream commit e477e51a41 ]

As the potential failure of the devm_request_threaded_irq(),
it should be better to check the return value of the
mc13xxx_irq_request() and return error if fails.

Fixes: 8e00593557 ("mfd: Add mc13892 support to mc13xxx")
Signed-off-by: Jiasheng Jiang <jiasheng@iscas.ac.cn>
Signed-off-by: Lee Jones <lee.jones@linaro.org>
Link: https://lore.kernel.org/r/20220224022331.3208275-1-jiasheng@iscas.ac.cn
Signed-off-by: Sasha Levin <sashal@kernel.org>
2022-04-08 14:40:20 +02:00
shengfei Xu
e32911345c mfd: rk806: add sysfs debug node
debug node:
	"sys/rk806master/debug" and
	"sys/rk806slave/debug"

Signed-off-by: shengfei Xu <xsf@rock-chips.com>
Change-Id: I845ab17a74586cce181c9e7f093e4492422abb48
2022-04-06 15:02:42 +08:00
shengfei Xu
3b7f60deed mfd: rk806: update rk806 volatile reg range
Signed-off-by: shengfei Xu <xsf@rock-chips.com>
Change-Id: I1f73137e033a5eacebbd3e2f5000527efd874160
2022-04-01 10:42:07 +08:00
David Wu
f5f864ab51 driver: rk630: Add RK630 MAC PHY support
Support RK630 ethernet PHY currently, this is a RMII PHY.

Signed-off-by: David Wu <david.wu@rock-chips.com>
Change-Id: I444f9c5abd1dc5fe8067b79ddee93a801d7a28b9
2022-03-02 19:55:02 +08:00
shengfei Xu
56213b16f7 mfd: rk806: digital output 2MHz clock force enable
Signed-off-by: shengfei Xu <xsf@rock-chips.com>
Change-Id: I19c3b55fcd8030d817c231db4eba9663f5a550d6
2022-02-10 15:17:10 +08:00
Claudiu Beznea
ad52b9890b mfd: atmel-flexcom: Use .resume_noirq
[ Upstream commit 5d051cf94f ]

Flexcom IP embeds 3 other IPs: usart, i2c, spi and selects the operation
mode (usart, i2c, spi) via mode register (FLEX_MR). On i2c bus there might
be connected critical devices (like PMIC) which on suspend/resume should
be suspended/resumed at the end/beginning. i2c uses
.suspend_noirq/.resume_noirq for this kind of purposes. Align flexcom
to use .resume_noirq as it should be resumed before the embedded IPs.
Otherwise the embedded devices might behave badly.

Fixes: 7fdec11015 ("atmel_flexcom: Support resuming after a chip reset")
Signed-off-by: Claudiu Beznea <claudiu.beznea@microchip.com>
Tested-by: Codrin Ciubotariu <codrin.ciubotariu@microchip.com>
Acked-by: Nicolas Ferre <nicolas.ferre@microchip.com>
Signed-off-by: Lee Jones <lee.jones@linaro.org>
Link: https://lore.kernel.org/r/20211028135138.3481166-3-claudiu.beznea@microchip.com
Signed-off-by: Sasha Levin <sashal@kernel.org>
2022-01-27 10:53:51 +01:00
Claudiu Beznea
46d6a23114 mfd: atmel-flexcom: Remove #ifdef CONFIG_PM_SLEEP
[ Upstream commit 8c0fad75dc ]

Remove compilation flag and use __maybe_unused and pm_ptr instead.

Signed-off-by: Claudiu Beznea <claudiu.beznea@microchip.com>
Acked-by: Nicolas Ferre <nicolas.ferre@microchip.com>
Signed-off-by: Lee Jones <lee.jones@linaro.org>
Link: https://lore.kernel.org/r/20211028135138.3481166-2-claudiu.beznea@microchip.com
Signed-off-by: Sasha Levin <sashal@kernel.org>
2022-01-27 10:53:51 +01:00
Andy Shevchenko
f68e600017 mfd: intel-lpss: Fix too early PM enablement in the ACPI ->probe()
commit c9e143084d upstream.

The runtime PM callback may be called as soon as the runtime PM facility
is enabled and activated. It means that ->suspend() may be called before
we finish probing the device in the ACPI case. Hence, NULL pointer
dereference:

  intel-lpss INT34BA:00: IRQ index 0 not found
  BUG: kernel NULL pointer dereference, address: 0000000000000030
  ...
  Workqueue: pm pm_runtime_work
  RIP: 0010:intel_lpss_suspend+0xb/0x40 [intel_lpss]

To fix this, first try to register the device and only after that enable
runtime PM facility.

Fixes: 4b45efe852 ("mfd: Add support for Intel Sunrisepoint LPSS devices")
Reported-by: Orlando Chamberlain <redecorating@protonmail.com>
Reported-by: Aditya Garg <gargaditya08@live.com>
Signed-off-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
Tested-by: Aditya Garg <gargaditya08@live.com>
Signed-off-by: Lee Jones <lee.jones@linaro.org>
Link: https://lore.kernel.org/r/20211101190008.86473-1-andriy.shevchenko@linux.intel.com
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2022-01-16 09:14:23 +01:00
Tao Huang
f6909c028f Merge tag 'ASB-2021-12-05_12-5.10' of https://android.googlesource.com/kernel/common
https://source.android.com/security/bulletin/2021-12-01
CVE-2021-33909
CVE-2021-38204
CVE-2021-0961

* tag 'ASB-2021-12-05_12-5.10': (3010 commits)
  ANDROID: workqueue: export symbol of the function wq_worker_comm()
  ANDROID: GKI: Update symbols to symbol list
  ANDROID: vendor_hooks: Add hooks for binder proc transaction
  ANDROID: GKI: Add symbols abi for USB IP kernel modules.
  ANDROID: GKI: Fix file mode on mtk abi file
  UPSTREAM: erofs: fix deadlock when shrink erofs slab
  ANDROID: init_task: Init android vendor and oem data
  UPSTREAM: sched/core: Mitigate race cpus_share_cache()/update_top_cache_domain()
  ANDROID: Update symbol list for mtk
  UPSTREAM: erofs: fix unsafe pagevec reuse of hooked pclusters
  UPSTREAM: erofs: remove the occupied parameter from z_erofs_pagevec_enqueue()
  UPSTREAM: usb: dwc3: gadget: Fix null pointer exception
  ANDROID: fips140: support "evaluation testing" builds via build.sh
  FROMGIT: sched/scs: Reset task stack state in bringup_cpu()
  ANDROID: dma-buf: heaps: fix dma-buf heap pool pages stat
  ANDROID: ABI: Add several spi_mem related symbols
  UPSTREAM: spi: spi-mem: add spi_mem_dtr_supports_op()
  ANDROID: gki_defconfig: enable CONFIG_SPI_MEM
  ANDROID: ABI: Add several iio related symbols
  ANDROID: ABI: Update symbol list for IMX
  ...

Change-Id: I09cddc92fa34553b944e62cc5cbbba94a84e5437

Conflicts:
	arch/arm/boot/dts/rk322x.dtsi
	arch/arm64/boot/dts/rockchip/rk3399.dtsi
	drivers/dma-buf/heaps/system_heap.c
	drivers/gpu/drm/rockchip/dw-mipi-dsi-rockchip.c
	drivers/gpu/drm/rockchip/rockchip_drm_vop.c
	drivers/gpu/drm/rockchip/rockchip_lvds.c
	drivers/gpu/drm/rockchip/rockchip_vop_reg.c
	drivers/mtd/nand/spi/core.c
	drivers/pci/controller/pcie-rockchip-host.c
	drivers/soc/rockchip/Kconfig
	drivers/usb/dwc3/core.c
	drivers/usb/dwc3/core.h
2021-12-14 17:09:02 +08:00
shengfei Xu
52d9400791 mfd: rk806: update rk806 IRQ table
Signed-off-by: shengfei Xu <xsf@rock-chips.com>
Change-Id: Ib00435e710946c6b510c76122ed43ce0b134fe32
2021-12-13 15:02:53 +08:00
shengfei Xu
d74ec4d675 mfd: rk806: update rk806 volatile reg range
Signed-off-by: shengfei Xu <xsf@rock-chips.com>
Change-Id: I8b0f8545ba429b33b84b0023c15b9426f979c55f
2021-12-09 14:18:30 +08:00
shengfei Xu
a5a0435814 regulator: rk806: optimize regulator code
update:
1. use gpiod_get_value() instead of gpio_get_value()
2. updtae the rk806 register offset

Signed-off-by: shengfei Xu <xsf@rock-chips.com>
Change-Id: I55b7dfdde06dabe3f8ab6285366059930f282a42
2021-12-01 16:49:07 +08:00
shengfei Xu
5a55442ff1 regulator: rk806: support shutdown/reset function
Signed-off-by: shengfei Xu <xsf@rock-chips.com>
Change-Id: I3fecda310463dd183bb85adc0671f356ff81cd1a
2021-11-23 10:28:51 +08:00
Jack Andersen
332306b1e7 mfd: dln2: Add cell for initializing DLN2 ADC
commit 313c84b5ae upstream.

This patch extends the DLN2 driver; adding cell for adc_dln2 module.

The original patch[1] fell through the cracks when the driver was added
so ADC has never actually been usable. That patch did not have ACPI
support which was added in v5.9, so the oldest supported version this
current patch can be backported to is 5.10.

[1] https://www.spinics.net/lists/linux-iio/msg33975.html

Cc: <stable@vger.kernel.org> # 5.10+
Signed-off-by: Jack Andersen <jackoalan@gmail.com>
Signed-off-by: Noralf Trønnes <noralf@tronnes.org>
Signed-off-by: Lee Jones <lee.jones@linaro.org>
Link: https://lore.kernel.org/r/20211018112541.25466-1-noralf@tronnes.org
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2021-11-18 14:04:30 +01:00
Krzysztof Kozlowski
300d874748 mfd: core: Add missing of_node_put for loop iteration
[ Upstream commit 002be81140 ]

Early exits from for_each_child_of_node() should decrement the
node reference counter.  Reported by Coccinelle:

  drivers/mfd/mfd-core.c:197:2-24: WARNING:
    Function "for_each_child_of_node" should have of_node_put() before goto around lines 209.

Fixes: c94bb233a9 ("mfd: Make MFD core code Device Tree and IRQ domain aware")
Signed-off-by: Krzysztof Kozlowski <krzysztof.kozlowski@canonical.com>
Signed-off-by: Lee Jones <lee.jones@linaro.org>
Link: https://lore.kernel.org/r/20210528115126.18370-1-krzysztof.kozlowski@canonical.com
Signed-off-by: Sasha Levin <sashal@kernel.org>
2021-11-18 14:04:26 +01:00
Wyon Bi
3b0c20212b mfd: Add rk628 mfd driver
Change-Id: Ibf4334f82f91237bff6a04b24bb390391a5c8130
Signed-off-by: Wyon Bi <bivvy.bi@rock-chips.com>
2021-10-18 14:59:34 +08:00
Joseph Chen
1df11488e9 mfd: rk808: support power off system in syscore shutdown
For PMIC that power off supplies by write register via i2c bus,
it's better to do power off at syscore shutdown.

Because when run to kernel's "pm_power_off" call, i2c may has
been stopped or PMIC may not be able to get i2c transfer while
there are too many devices are competiting.

This patch effects on PMIC: RK808/RK818/RK816, not including RK805
which power off system by pull up pmic sleep pin in ATF.

The i2c maybe stopped before pm_power_off() is called, which
results in the PMIC power off failure issue.
Moving PMIC power off operation to syscore shutdown is better.

Signed-off-by: Joseph Chen <chenjh@rock-chips.com>
Change-Id: Ib43827ebd49059719b8899f90a696b6c32a6ddd1
2021-10-18 14:47:06 +08:00
shengfei Xu
94a2726fb4 mfd: rk806: Add RK806 support
The RK806 are a Power Management IC (PMIC) for multimedia
and handheld devices. They contains the following components:
- Regulators
- Pinctrl
- PowerKey

Signed-off-by: shengfei Xu <xsf@rock-chips.com>
Change-Id: Iee9c521d52c53752286238c93b39afb5eb32e9b2
2021-10-12 14:50:23 +08:00
Wyon Bi
ff9626ac6c mfd: Drop unused rk610/rk616 driver
Signed-off-by: Wyon Bi <bivvy.bi@rock-chips.com>
Change-Id: I76c73d0c565b04261a099373c7a9200d6058b8ec
2021-09-26 14:26:14 +08:00
Randy Dunlap
b2f9b7455b mfd: lpc_sch: Rename GPIOBASE to prevent build error
[ Upstream commit cdff1eda69 ]

One MIPS platform (mach-rc32434) defines GPIOBASE. This macro
conflicts with one of the same name in lpc_sch.c. Rename the latter one
to prevent the build error.

../drivers/mfd/lpc_sch.c:25: error: "GPIOBASE" redefined [-Werror]
   25 | #define GPIOBASE        0x44
../arch/mips/include/asm/mach-rc32434/rb.h:32: note: this is the location of the previous definition
   32 | #define GPIOBASE        0x050000

Cc: Denis Turischev <denis@compulab.co.il>
Fixes: e82c60ae7d ("mfd: Introduce lpc_sch for Intel SCH LPC bridge")
Signed-off-by: Randy Dunlap <rdunlap@infradead.org>
Signed-off-by: Lee Jones <lee.jones@linaro.org>
Signed-off-by: Sasha Levin <sashal@kernel.org>
2021-09-22 12:28:06 +02:00
Andy Shevchenko
027c44b8c8 mfd: lpc_sch: Partially revert "Add support for Intel Quark X1000"
[ Upstream commit 922e8ce883 ]

The IRQ support for SCH GPIO is not specific to the Intel Quark SoC.
Moreover the IRQ routing is quite interesting there, so while it's
needs a special support, the driver haven't it anyway yet.

Due to above remove basically redundant code of IRQ support.

This reverts commit ec689a8a81.

Signed-off-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
Signed-off-by: Lee Jones <lee.jones@linaro.org>
Signed-off-by: Sasha Levin <sashal@kernel.org>
2021-09-22 12:28:06 +02:00
Matthias Schiffer
87479b10eb mfd: tqmx86: Clear GPIO IRQ resource when no IRQ is set
[ Upstream commit a946506c48 ]

The driver was registering IRQ 0 when no IRQ was set. This leads to
warnings with newer kernels.

Clear the resource flags, so no resource is registered at all in this
case.

Fixes: 2f17dd34ff ("mfd: tqmx86: IO controller with I2C, Wachdog and GPIO")
Signed-off-by: Matthias Schiffer <matthias.schiffer@ew.tq-group.com>
Reviewed-by: Andrew Lunn <andrew@lunn.ch>
Signed-off-by: Lee Jones <lee.jones@linaro.org>
Signed-off-by: Sasha Levin <sashal@kernel.org>
2021-09-22 12:28:03 +02:00
Hans de Goede
00303e4592 mfd: axp20x: Update AXP288 volatile ranges
[ Upstream commit f949a9ebce ]

On Cherry Trail devices with an AXP288 PMIC the external SD-card slot
used the AXP's DLDO2 as card-voltage and either DLDO3 or GPIO1LDO
(GPIO1 pin in low noise LDO mode) as signal-voltage.

These regulators are turned on/off and in case of the signal-voltage
also have their output-voltage changed by the _PS0 and _PS3 power-
management ACPI methods on the MMC-controllers ACPI fwnode as well as
by the _DSM ACPI method for changing the signal voltage.

The AML code implementing these methods is directly accessing the
PMIC through ACPI I2C OpRegion accesses, instead of using the special
PMIC OpRegion handled by drivers/acpi/pmic/intel_pmic_xpower.c .

This means that the contents of the involved PMIC registers can change
without the change being made through the regmap interface, so regmap
should not cache the contents of these registers.

Mark the regulator power on/off, the regulator voltage control and the
GPIO1 control registers as volatile, to avoid regmap caching them.

Specifically this fixes an issue on some models where the i915 driver
toggles another LDO using the same on/off register on/off through
MIPI sequences (through intel_soc_pmic_exec_mipi_pmic_seq_element())
which then writes back a cached on/off register-value where the
card-voltage is off causing the external sdcard slot to stop working
when the screen goes blank, or comes back on again.

The regulator register-range now marked volatile also includes the
buck regulator control registers. This is done on purpose these are
normally not touched by the AML code, but they are updated directly
by the SoC's PUNIT which means that they may also change without going
through regmap.

Note the AXP288 PMIC is only used on Bay- and Cherry-Trail platforms,
so even though this is an ACPI specific problem there is no need to
make the new volatile ranges conditional since these platforms always
use ACPI.

Fixes: dc91c3b6fe ("mfd: axp20x: Mark AXP20X_VBUS_IPSOUT_MGMT as volatile")
Fixes: cd53216625 ("mfd: axp20x: Fix axp288 volatile ranges")
Reported-and-tested-by: Clamshell <clamfly@163.com>
Signed-off-by: Hans de Goede <hdegoede@redhat.com>
Reviewed-by: Chen-Yu Tsai <wens@csie.org>
Signed-off-by: Lee Jones <lee.jones@linaro.org>
Signed-off-by: Sasha Levin <sashal@kernel.org>
2021-09-22 12:28:02 +02:00
Marc Zyngier
b6352e2e27 mfd: Don't use irq_create_mapping() to resolve a mapping
[ Upstream commit 9ff80e2de3 ]

Although irq_create_mapping() is able to deal with duplicate
mappings, it really isn't supposed to be a substitute for
irq_find_mapping(), and can result in allocations that take place
in atomic context if the mapping didn't exist.

Fix the handful of MFD drivers that use irq_create_mapping() in
interrupt context by using irq_find_mapping() instead.

Cc: Linus Walleij <linus.walleij@linaro.org>
Cc: Lee Jones <lee.jones@linaro.org>
Cc: Maxime Coquelin <mcoquelin.stm32@gmail.com>
Cc: Alexandre Torgue <alexandre.torgue@foss.st.com>
Signed-off-by: Marc Zyngier <maz@kernel.org>
Signed-off-by: Lee Jones <lee.jones@linaro.org>
Signed-off-by: Sasha Levin <sashal@kernel.org>
2021-09-22 12:28:00 +02:00
Linus Walleij
7a44361a1f mfd: db8500-prcmu: Adjust map to reality
[ Upstream commit ec343111c0 ]

These are the actual frequencies reported by the PLL, so let's
report these. The roundoffs are inappropriate, we should round
to the frequency that the clock will later report.

Drop some whitespace at the same time.

Cc: phone-devel@vger.kernel.org
Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
Signed-off-by: Lee Jones <lee.jones@linaro.org>
Signed-off-by: Sasha Levin <sashal@kernel.org>
2021-09-22 12:28:00 +02:00
William Wu
9af4aab053 Revert "mfd: add driver for fusb302 Type-C PD"
This reverts commit a3cab91402.

The mfd fusb302 driver previously used for Type-C port
of rockchip platforms, but it's not compatible with the
new Type-C framework, and there's a new fusb302 driver
in the driver usb typec framework, so remove this driver.

Signed-off-by: William Wu <william.wu@rock-chips.com>
Change-Id: I1665d765bbd928541e7528ed6de86c378a02f16b
2021-09-03 18:03:08 +08:00
Joseph Chen
5187691184 mfd: rk808: remove duplicate content
Change-Id: Ie2de3186579213c565c3b38a2c68955f2a7fd227
Signed-off-by: Joseph Chen <chenjh@rock-chips.com>
2021-09-01 11:28:18 +08:00
Tao Huang
8a8168e343 Merge remote branch 'android12-5.10-2021-08' of https://android.googlesource.com/kernel/common
* android12-5.10-2021-08: (429 commits)
  ANDROID: Update symbol list for mtk
  ANDROID: scheduler: export task_sched_runtime
  FROMLIST: mm: slub: fix slub_debug disabling for list of slabs
  FROMLIST: mm/madvise: add MADV_WILLNEED to process_madvise()
  ANDROID: Update the exynos symbol list
  FROMGIT: firmware: arm_scmi: Free mailbox channels if probe fails
  ANDROID: GKI: gki_defconfig: Enable CONFIG_NFC
  ANDROID: sched: Make uclamp changes depend on CAP_SYS_NICE
  ANDROID: GKI: update xiaomi symbol list and ABI XML
  ANDROID: ABI: update generic symbol list
  ANDROID: scsi: ufs: Enable CONFIG_SCSI_UFS_HPB
  ANDROID: scsi: ufs: Make CONFIG_SCSI_UFS_HPB compatible with the GKI
  UPSTREAM: arm64: vdso: Avoid ISB after reading from cntvct_el0
  ANDROID: GKI: Disable X86_MCE drivers
  ANDROID: GKI: Update symbols to symbol list
  ANDROID: ABI: update allowed list for exynos
  FROMGIT: sched: Skip priority checks with SCHED_FLAG_KEEP_PARAMS
  FROMGIT: sched: Don't report SCHED_FLAG_SUGOV in sched_getattr()
  FROMGIT: sched/deadline: Fix reset_on_fork reporting of DL tasks
  BACKPORT: FROMGIT: sched: Fix UCLAMP_FLAG_IDLE setting
  ...

Change-Id: I5e0600bb4ccd0333366b016b42332e1e79e56b61

Conflicts:
	drivers/usb/gadget/configfs.c
	include/linux/usb/gadget.h
2021-08-24 20:07:38 +08:00
Algea Cao
c929c6a749 mfd: rk630: Avoid build fail when building as module
ERROR: modpost: "rk630_tve_regmap_config" [drivers/mfd/rk630-i2c.ko] undefined!
ERROR: modpost: "rk630_cru_regmap_config" [drivers/mfd/rk630-i2c.ko] undefined!

Signed-off-by: Algea Cao <algea.cao@rock-chips.com>
Change-Id: Ida6b17db91c97a2749f2e59629353a89e5303e10
2021-08-24 18:02:13 +08:00
Algea Cao
4c61ce641f mfd: rk1000: Add rk1000 core driver to kbuild
RK1000's control register block need mclk for i2c communication.
So mclk should be enabled in advance.
RK1000's control register block should be registered before RK1000
TVE.

Change-Id: Iba9a2a410fe927666072f8d246995462a860ec3a
Signed-off-by: Algea Cao <algea.cao@rock-chips.com>
2021-08-24 14:52:46 +08:00
Algea Cao
ba120ad91d mfd: Add RK630 mfd driver
Change-Id: I03c127df4ec2ad80cbaf4b0d4ad540cb5b32a245
Signed-off-by: Algea Cao <algea.cao@rock-chips.com>
2021-08-24 14:33:27 +08:00
Allen Chiu
a669748346 UPSTREAM: mfd: syscon: Free the allocated name field of struct regmap_config
The commit 529a1101212a("mfd: syscon: Don't free allocated name
for regmap_config") doesn't free the allocated name field of struct
regmap_config, but introduce a memory leak. There is another
commit 94cc89eb8fa5("regmap: debugfs: Fix handling of name string
for debugfs init delays") fixing this debugfs init issue from root
cause. With this fixing, the name field in struct regmap_debugfs_node
is removed. When initialize debugfs for syscon driver, the name
field of struct regmap_config is not used anymore. So, the allocated
name field of struct regmap_config is need to be freed directly after
regmap initialization to avoid memory leak.

Cc: stable@vger.kernel.org
Fixes: 529a1101212a("mfd: syscon: Don't free allocated name for regmap_config")
Signed-off-by: Meng Li <Meng.Li@windriver.com>
Signed-off-by: Lee Jones <lee.jones@linaro.org>
Link: https://lore.kernel.org/patchwork/patch/1408873/
Bug: 193747648

Signed-off-by: Allen Chiu <allen.chiu@mediatek.com>
Change-Id: Iadc628aae889f306afb6eefbf66fdd9143a91278
(cherry picked from commit 56a1188159)
2021-07-20 23:53:31 +00:00
Tony Lindgren
af8b891cd3 mfd: cpcap: Fix cpcap dmamask not set warnings
[ Upstream commit 0b7cbe811c ]

We have started to get a bunch of pointless dmamask not set warnings
that makes the output of dmesg -l err,warn hard to read with many
extra warnings:

cpcap-regulator cpcap-regulator.0: DMA mask not set
cpcap_adc cpcap_adc.0: DMA mask not set
cpcap_battery cpcap_battery.0: DMA mask not set
cpcap-charger cpcap-charger.0: DMA mask not set
cpcap-pwrbutton cpcap-pwrbutton.0: DMA mask not set
cpcap-led cpcap-led.0: DMA mask not set
cpcap-led cpcap-led.1: DMA mask not set
cpcap-led cpcap-led.2: DMA mask not set
cpcap-led cpcap-led.3: DMA mask not set
cpcap-led cpcap-led.4: DMA mask not set
cpcap-rtc cpcap-rtc.0: DMA mask not set
cpcap-usb-phy cpcap-usb-phy.0: DMA mask not set

This seems to have started with commit 4d8bde883b ("OF: Don't set
default coherent DMA mask"). We have the parent SPI controller use
DMA, while CPCAP driver and it's children do not. For audio, the
DMA is handled over I2S bus with the McBSP driver.

Cc: Carl Philipp Klemm <philipp@uvos.xyz>
Cc: Ivan Jelincic <parazyd@dyne.org>
Cc: Merlijn Wajer <merlijn@wizzup.org>
Cc: Pavel Machek <pavel@ucw.cz>
Cc: Sebastian Reichel <sre@kernel.org>
Cc: Sicelo A. Mhlongo <absicsz@gmail.com>
Signed-off-by: Tony Lindgren <tony@atomide.com>
Signed-off-by: Lee Jones <lee.jones@linaro.org>
Signed-off-by: Sasha Levin <sashal@kernel.org>
2021-07-20 16:05:42 +02:00
Zou Wei
d339f6a0d1 mfd: da9052/stmpe: Add and modify MODULE_DEVICE_TABLE
[ Upstream commit 4700ef3265 ]

This patch adds/modifies 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>
Signed-off-by: Lee Jones <lee.jones@linaro.org>
Signed-off-by: Sasha Levin <sashal@kernel.org>
2021-07-20 16:05:41 +02:00