linux/drivers/mfd
Colin Foster f0484d2f80 mfd: ocelot-spi: Fix unsupported bulk read
Ocelot chips (VSC7511, VSC7512, VSC7513, VSC7514) don't support bulk read
operations over SPI.

Many SPI buses have hardware that can optimize consecutive reads.
Essentially an address is written to the chip, and if the SPI controller
continues to toggle the clock, subsequent register values are reported.
This can lead to significant optimizations, because the time between
"address is written to the chip" and "chip starts to report data" can often
take a fixed amount of time.

When support for Ocelot chips were added in commit f3e893626a ("mfd:
ocelot: Add support for the vsc7512 chip via spi") it was believed that
this optimization was supported. However it is not.

Most register transactions with the Ocelot chips are not done in bulk, so
this bug could go unnoticed. The one scenario where bulk register
operations _are_ performed is when polling port statistics counters, which
was added in commit d87b1c08f3 ("net: mscc: ocelot: use bulk reads for
stats").

Things get slightly more complicated here...

A bug was introduced in commit d4c3676507 ("net: mscc: ocelot: keep
ocelot_stat_layout by reg address, not offset") that broke the optimization
of bulk reads. This means that when Ethernet support for the VSC7512 chip
was added in commit 3d7316ac81 ("net: dsa: ocelot: add external ocelot
switch control") things were actually working "as expected".

The bulk read opmtimization was discovered, and fixed in commit
6acc72a43e ("net: mscc: ocelot: fix stats region batching") and the
timing optimizations for SPI were noticed. A bulk read went from ~14ms to
~2ms. But this timing improvement came at the cost of every register
reading zero due the fact that bulk reads don't work.

The read timings increase back to 13-14ms, but that's a price worth paying
in order to receive valid data. This is verified in a DSA setup (cpsw-new
switch tied to port 0 on the VSC7512, after having been running overnight)

     Rx Octets: 16222055 # Counters from CPSW switch
     Tx Octets: 12034702
     Net Octets: 28256757
     p00_rx_octets: 12034702 # Counters from Ocelot switch
     p00_rx_frames_below_65_octets: 0
     p00_rx_frames_65_to_127_octets: 88188
     p00_rx_frames_128_to_255_octets: 13
     p00_rx_frames_256_to_511_octets: 0
     p00_rx_frames_512_to_1023_octets: 0
     p00_rx_frames_over_1526_octets: 3306
     p00_tx_octets: 16222055

Fixes: f3e893626a ("mfd: ocelot: Add support for the vsc7512 chip via spi")
Signed-off-by: Colin Foster <colin.foster@in-advantage.com>
Signed-off-by: Lee Jones <lee@kernel.org>
Link: https://lore.kernel.org/r/20230322141130.2531256-1-colin.foster@in-advantage.com
2023-04-26 11:40:33 +01:00
..
88pm80x.c mfd: 88pm80x: Remove #ifdef guards for PM related functions 2022-12-07 13:28:10 +00:00
88pm800.c mfd: 88pm800: Replace irqchip mask_invert with unmask_base 2022-12-07 13:28:13 +00:00
88pm805.c mfd: 88pm80x: Remove #ifdef guards for PM related functions 2022-12-07 13:28:10 +00:00
88pm860x-core.c mfd: various: Use of_property_read_bool() for boolean properties 2023-04-26 11:40:32 +01:00
88pm860x-i2c.c
aat2870-core.c mfd: aat2870: Remove #ifdef guards for PM related functions 2022-12-07 13:28:10 +00:00
ab8500-core.c mfd: Use platform_get_irq() to get the interrupt 2022-03-23 14:51:51 +00:00
ab8500-sysctrl.c
abx500-core.c
ac100.c
acer-ec-a500.c i2c: Make remove callback return void 2022-08-16 12:46:26 +02:00
act8945a.c mfd: act8945a: Convert to i2c's .probe_new() 2022-12-07 13:27:20 +00:00
adp5520.c mfd: adp5520: Remove #ifdef guards for PM related functions 2022-12-07 13:28:10 +00:00
altera-a10sr.c mfd: altera-a10sr: Include linux/module.h 2021-11-05 14:40:26 +00:00
altera-sysmgr.c mfd: altera-sysmgr: Fix a mistake caused by resource_size conversion 2021-11-05 14:40:26 +00:00
arizona-core.c mfd: arizona: Use pm_runtime_resume_and_get() to prevent refcnt leak 2023-02-22 08:25:53 +00:00
arizona-i2c.c mfd: arizona-i2c: Add the missing device table IDs for OF 2023-04-26 11:40:33 +01:00
arizona-irq.c mfd: arizona: Fix rumtime PM imbalance on error 2021-04-14 16:06:40 +01:00
arizona-spi.c mfd: arizona: Remove #ifdef guards for PM related functions 2022-12-07 13:28:12 +00:00
arizona.h mfd: arizona: Split of_match table into I2C and SPI versions 2021-11-05 14:40:26 +00:00
as3711.c mfd: as3711: Convert to i2c's .probe_new() 2022-12-07 13:27:20 +00:00
as3722.c mfd: as3722: Convert to i2c's .probe_new() 2022-12-07 13:27:20 +00:00
at91-usart.c
atc260x-core.c mfd: atc260x: Replace irqchip mask_invert with unmask_base 2022-12-07 13:28:13 +00:00
atc260x-i2c.c mfd: atc260x-i2c: Drop of_match_ptr for ID table 2023-04-26 11:40:32 +01:00
atmel-flexcom.c mfd: atmel-flexcom: Use devm_platform_get_and_ioremap_resource() 2023-04-26 11:40:27 +01:00
atmel-hlcdc.c
atmel-smc.c mfd: atmel-smc: Mark OF related data as maybe unused 2023-04-26 11:40:32 +01:00
axp20x-i2c.c mfd: axp20x-i2c: Convert to i2c's .probe_new() 2022-12-07 13:27:20 +00:00
axp20x-rsb.c
axp20x.c mfd: axp20x: Switch to the sys-off handler API 2023-02-22 08:25:52 +00:00
bcm590xx.c mfd: bcm590xx: Convert to i2c's .probe_new() 2022-12-07 13:27:20 +00:00
bcm2835-pm.c mfd: various: Use of_property_present() for testing DT property presence 2023-04-26 11:40:32 +01:00
bd9571mwv.c mfd: bd9571mwv: Convert to i2c's .probe_new() 2022-12-07 13:27:20 +00:00
cros_ec_dev.c Revert "mfd: cros_ec: Add SCP Core-1 as a new CrOS EC MCU" 2023-01-09 20:32:52 +00:00
cs47l15-tables.c
cs47l24-tables.c
cs47l35-tables.c
cs47l85-tables.c
cs47l90-tables.c
cs47l92-tables.c
cs5535-mfd.c
da903x.c mfd: da903x: Remove MODULE_LICENSE in non-modules 2023-04-26 11:40:32 +01:00
da9052-core.c mfd: da9052: Remove MODULE_LICENSE in non-modules 2023-04-26 11:40:32 +01:00
da9052-i2c.c mfd: da9052-i2c: Remove MODULE_LICENSE in non-modules 2023-04-26 11:40:32 +01:00
da9052-irq.c
da9052-spi.c mfd: da9052-spi: Remove MODULE_LICENSE in non-modules 2023-04-26 11:40:32 +01:00
da9055-core.c mfd: da9055: Remove MODULE_LICENSE in non-modules 2023-04-26 11:40:31 +01:00
da9055-i2c.c mfd: da9055-i2c: Remove MODULE_LICENSE in non-modules 2023-04-26 11:40:31 +01:00
da9062-core.c mfd: da9062: Remove IRQ requirement 2023-04-26 11:40:30 +01:00
da9063-core.c
da9063-i2c.c mfd: da9063-i2c: Convert to i2c's .probe_new() 2022-12-07 13:27:21 +00:00
da9063-irq.c
da9150-core.c mfd: da9150-core: Convert to i2c's .probe_new() 2022-12-07 13:27:21 +00:00
db8500-prcmu-regs.h mfd: db8500-prcmu: Rename register header 2021-08-05 14:19:59 +01:00
db8500-prcmu.c mfd: db8500-prcmu: Drop duplicated word "the" in the comments 2022-07-19 10:54:41 +01:00
dln2.c mfd: dln2: Automatically detect and fill endpoint pointers 2022-07-19 10:54:40 +01:00
ene-kb3930.c i2c: Make remove callback return void 2022-08-16 12:46:26 +02:00
exynos-lpass.c mfd: exynos-lpass: Drop unneeded syscon.h include 2022-03-08 09:44:06 +00:00
ezx-pcap.c mfd: ezx-pcap: Remove MODULE_LICENSE in non-modules 2023-04-26 11:40:31 +01:00
fsl-imx25-tsadc.c mfd: fsl-imx25-tsadc: Use devm_platform_get_and_ioremap_resource() 2022-12-08 12:20:58 +00:00
gateworks-gsc.c mfd: gateworks-gsc: Replace irqchip mask_invert with unmask_base 2022-12-07 13:28:14 +00:00
hi655x-pmic.c mfd: hi655x-pmic: Replace legacy gpio interface for gpiod interface 2022-04-26 15:10:29 +01:00
hi6421-pmic-core.c mfd: hi6421-pmic: Use devm_platform_get_and_ioremap_resource() 2023-04-26 11:40:26 +01:00
hi6421-spmi-pmic.c mfd: hi6421-spmi-pmic: Cleanup drvdata to only include regmap 2021-10-05 08:56:08 +01:00
intel_pmc_bxt.c
intel_quark_i2c_gpio.c mfd: intel_quark_i2c_gpio: Convert GPIO to use software nodes 2021-08-11 16:00:53 +03:00
intel_soc_pmic_bxtwc.c mfd: intel_soc_pmic_bxtwc: Fix spelling in the comment 2022-07-19 10:54:42 +01:00
intel_soc_pmic_chtdc_ti.c mfd: intel_soc_pmic_chtdc_ti: Switch from __maybe_unused to pm_sleep_ptr() etc 2022-09-28 16:17:41 +01:00
intel_soc_pmic_chtwc.c mfd: intel_soc_pmic_chtwc: Add Lenovo Yoga Book X90F to intel_cht_wc_models 2023-04-26 11:40:26 +01:00
intel_soc_pmic_crc.c mfd: intel_soc_pmic_crc: Remove MODULE_LICENSE in non-modules 2023-04-26 11:40:28 +01:00
intel_soc_pmic_mrfld.c
intel-lpss-acpi.c mfd: intel-lpss: Provide an SSP type to the driver 2022-03-23 14:51:44 +00:00
intel-lpss-pci.c mfd: intel-lpss: Provide an SSP type to the SPI driver 2022-09-28 16:09:48 +01:00
intel-lpss.c mfd: intel-lpss: Fix I2C4 not being available on the Microsoft Surface Go & Go 2 2021-12-29 13:17:01 +00:00
intel-lpss.h mfd: intel-lpss: Fix I2C4 not being available on the Microsoft Surface Go & Go 2 2021-12-29 13:17:01 +00:00
intel-m10-bmc-core.c mfd: intel-m10-bmc: Prefix register defines with M10BMC_N3000 2023-01-27 10:37:51 +00:00
intel-m10-bmc-pmci.c fpga: m10bmc-sec: Add support for N6000 2023-01-30 08:14:02 +00:00
intel-m10-bmc-spi.c mfd: intel-m10-bmc: Prefix register defines with M10BMC_N3000 2023-01-27 10:37:51 +00:00
ioc3.c mfd: Bulk conversion to generic_handle_domain_irq() 2021-08-12 11:39:39 +01:00
ipaq-micro.c mfd: ipaq-micro: Use devm_platform_get_and_ioremap_resource() 2023-04-26 11:40:27 +01:00
iqs62x.c i2c: Make remove callback return void 2022-08-16 12:46:26 +02:00
janz-cmodio.c mfd: janz-cmoio: Replace snprintf in show functions with sysfs_emit 2021-11-05 14:40:27 +00:00
Kconfig mfd: da9055: Do not cite as modular 2023-04-26 11:40:30 +01:00
kempld-core.c mfd: Use sysfs_emit() to instead of scnprintf() 2023-02-22 08:25:51 +00:00
khadas-mcu.c mfd: various: Use of_property_present() for testing DT property presence 2023-04-26 11:40:32 +01:00
lm3533-core.c mfd: Use sysfs_emit() to instead of scnprintf() 2023-02-22 08:25:51 +00:00
lm3533-ctrlbank.c
lochnagar-i2c.c
lp873x.c mfd: lp873x: Convert to i2c's .probe_new() 2022-12-07 13:27:22 +00:00
lp3943.c mfd: lp3943: Convert to i2c's .probe_new() 2022-12-07 13:27:21 +00:00
lp8788-irq.c mfd: lp8788: Fix an error handling path in lp8788_irq_init() and lp8788_irq_init() 2022-09-28 16:09:50 +01:00
lp8788.c mfd: lp8788: Remove MODULE_LICENSE in non-modules 2023-04-26 11:40:30 +01:00
lp87565.c mfd: lp87565: Convert to i2c's .probe_new() 2022-12-07 13:27:22 +00:00
lpc_ich.c mfd: Move from strlcpy with unused retval to strscpy 2022-09-28 16:17:39 +01:00
lpc_sch.c mfd: lpc_sch: Rename GPIOBASE to prevent build error 2021-09-07 08:44:07 +01:00
madera-core.c mfd: madera: Include correct gpio API 2022-12-07 13:28:07 +00:00
madera-i2c.c mfd: madera-i2c: Convert to i2c's .probe_new() 2022-12-07 13:27:22 +00:00
madera-spi.c spi: make remove callback a void function 2022-02-09 13:00:45 +00:00
madera.h
Makefile - Core Frameworks 2023-02-23 15:03:05 -08:00
max8907.c mfd: max8907: Convert to i2c's .probe_new() 2022-12-07 13:27:22 +00:00
max8925-core.c mfd: max8925: Remove the unused function irq_to_max8925() 2023-02-22 08:25:52 +00:00
max8925-i2c.c mfd: max8925-i2c: Remove #ifdef guards for PM related functions 2022-12-07 13:28:10 +00:00
max8997-irq.c
max8997.c mfd: max8997: Convert to i2c's .probe_new() 2022-12-07 13:27:23 +00:00
max8998-irq.c
max8998.c mfd: max8998: Convert to i2c's .probe_new() 2022-12-07 13:27:23 +00:00
max14577.c mfd: max14577: Replace irqchip mask_invert with unmask_base 2022-12-07 13:28:14 +00:00
max77620.c mfd: max77620: Remove #ifdef guards for PM related functions 2022-12-07 13:28:12 +00:00
max77650.c mfd: max77650: Remove useless type_invert flag 2022-12-07 13:28:14 +00:00
max77686.c mfd: max77686: Remove #ifdef guards for PM related functions 2022-12-07 13:28:12 +00:00
max77693.c mfd: max77693: Replace irqchip mask_invert with unmask_base 2022-12-07 13:28:14 +00:00
max77714.c mfd: max77714: Update Luca Ceresoli's e-mail address 2022-07-19 10:54:38 +01:00
max77843.c mfd: max77843: Drop useless mask_invert flag on irqchip 2022-12-07 13:28:14 +00:00
mc13xxx-core.c mfd: mc13xxx: Add check for mc13xxx_irq_request 2022-03-07 14:00:27 +00:00
mc13xxx-i2c.c mfd: mc13xxx: Stop including of_gpio.h 2022-12-07 13:28:07 +00:00
mc13xxx-spi.c mfd: mc13xxx-spi: Fix typo ("transfert") 2022-12-07 13:28:10 +00:00
mc13xxx.h mfd: mc13xxx: Make mc13xxx_common_exit() return void 2021-11-05 14:40:26 +00:00
mcp-core.c bus: Make remove callback return void 2021-07-21 11:53:42 +02:00
mcp-sa11x0.c mfd: mcp-sa11x0: Remove #ifdef guards for PM related functions 2022-12-07 13:28:11 +00:00
menelaus.c mfd: menelaus: Convert to i2c's .probe_new() 2022-12-07 13:27:23 +00:00
menf21bmc.c mfd: menf21bmc: Convert to i2c's .probe_new() 2022-12-07 13:27:23 +00:00
mfd-core.c mfd: core: Remove .enable() and .disable() callbacks 2023-04-26 11:40:29 +01:00
motorola-cpcap.c mfd: Drop obsolete dependencies on COMPILE_TEST 2022-12-08 13:15:46 +00:00
mp2629.c
mt6358-irq.c mfd: mt6358-irq: Add MT6357 PMIC support 2022-07-19 10:54:39 +01:00
mt6360-core.c mfd: mt6360: Add bounds checking in Regmap read/write call-backs 2022-12-07 13:28:08 +00:00
mt6370.c mfd: mt6370: Add MediaTek MT6370 support 2022-09-28 16:09:50 +01:00
mt6370.h mfd: mt6370: Add MediaTek MT6370 support 2022-09-28 16:09:50 +01:00
mt6397-core.c mfd: mt6397: Add basic support for MT6331+MT6332 PMIC 2022-07-19 10:54:41 +01:00
mt6397-irq.c mfd: mt6397-irq: Remove #ifdef guards for PM related functions 2022-12-07 13:28:10 +00:00
mxs-lradc.c
ntxec.c mfd: ntxec: Add version number for EC in Tolino Vision 2023-02-22 11:42:29 +00:00
ocelot-core.c net: mscc: ocelot: fix duplicate driver name error 2023-02-26 18:31:37 +00:00
ocelot-spi.c mfd: ocelot-spi: Fix unsupported bulk read 2023-04-26 11:40:33 +01:00
ocelot.h mfd: ocelot: Add support for the vsc7512 chip via spi 2022-09-09 07:54:47 +01:00
omap-usb-host.c mfd: omap-usb-host: Remove MODULE_LICENSE in non-modules 2023-04-26 11:40:31 +01:00
omap-usb-tll.c mfd: omap-usb-tll: Remove unused usbtll_readb() function 2023-04-26 11:40:33 +01:00
omap-usb.h
palmas.c mfd: palmas: Use device_get_match_data() to simplify the code 2022-12-07 13:28:16 +00:00
pcf50633-adc.c mfd: pcf50633-adc: Fix potential memleak in pcf50633_adc_async_read() 2023-02-22 08:25:51 +00:00
pcf50633-core.c mfd: pcf50633: Remove #ifdef guards for PM related functions 2022-12-07 13:28:11 +00:00
pcf50633-gpio.c
pcf50633-irq.c mfd: pcf50633: Remove #ifdef guards for PM related functions 2022-12-07 13:28:11 +00:00
qcom_rpm.c mfd: qcom_rpm: Use devm_platform_get_and_ioremap_resource() 2023-04-26 11:40:27 +01:00
qcom-pm8xxx.c mfd: qcom-pm8xxx: Remove set but unused variable 'rev' 2023-02-22 08:25:52 +00:00
qcom-pm8008.c mfd: qcom-pm8008: Remove workaround for a regmap-irq quirk 2023-04-26 11:40:28 +01:00
qcom-spmi-pmic.c mfd: qcom-spmi-pmic: Add support for PMP8074 2022-09-28 16:17:40 +01:00
rave-sp.c
rc5t583-irq.c mfd: rc5t583-irq: Remove #ifdef guards for PM related functions 2022-12-07 13:28:11 +00:00
rc5t583.c mfd: rc5t583: Convert to i2c's .probe_new() 2022-12-07 13:27:23 +00:00
rdc321x-southbridge.c
retu-mfd.c mfd: retu-mfd: Convert to i2c's .probe_new() 2022-12-07 13:27:23 +00:00
rk808.c mfd: rk808: Re-add rk808-clkout to RK818 2023-02-22 08:25:51 +00:00
rn5t618.c mfd: rn5t618: Replace irqchip mask_invert with unmask_base 2022-12-07 13:28:14 +00:00
rohm-bd718x7.c mfd: rohm: Use dev_err_probe() 2022-12-08 13:52:58 +00:00
rohm-bd9576.c mfd: rohm: Use dev_err_probe() 2022-12-08 13:52:58 +00:00
rohm-bd71828.c mfd: rohm: Use dev_err_probe() 2022-12-08 13:52:58 +00:00
rsmu_core.c mfd: Add Renesas Synchronization Management Unit (SMU) support 2021-07-13 12:20:44 +01:00
rsmu_i2c.c mfd: rsmu_i2c: Convert to i2c's .probe_new() 2022-12-07 13:27:24 +00:00
rsmu_spi.c mfd: rsmu_spi: Remove unneeded casts of void * 2023-04-26 11:40:32 +01:00
rsmu.h mfd: Add Renesas Synchronization Management Unit (SMU) support 2021-07-13 12:20:44 +01:00
rt4831.c i2c: Make remove callback return void 2022-08-16 12:46:26 +02:00
rt5033.c mfd: rt5033: Replace irqchip mask_invert with unmask_base 2022-12-07 13:28:14 +00:00
rt5120.c mfd: rt5120: Replace irqchip mask_invert with unmask_base 2022-12-07 13:28:15 +00:00
sec-core.c mfd: sec: Remove PMICs without compatibles 2023-04-26 11:40:26 +01:00
sec-irq.c mfd: sec: Remove PMICs without compatibles 2023-04-26 11:40:26 +01:00
si476x-cmd.c mfd: si476x-cmd: Fix several issues reported by codespell 2023-04-26 11:40:26 +01:00
si476x-i2c.c mfd: si476x-i2c: Convert to i2c's .probe_new() 2022-12-07 13:27:24 +00:00
si476x-prop.c
simple-mfd-i2c.c mfd: max597x: Add support for MAX5970 and MAX5978 2023-04-26 11:40:29 +01:00
simple-mfd-i2c.h mfd: simple-mfd-i2c: Add support for registering devices via MFD cells 2021-08-16 13:45:34 +01:00
sky81452.c mfd: sky81452: Convert to i2c's .probe_new() 2022-12-07 13:27:24 +00:00
sm501.c mfd: sm501: Remove #ifdef guards for PM related functions 2022-12-07 13:28:11 +00:00
smpro-core.c mfd: Add Ampere's Altra SMpro MFD driver 2022-12-07 13:28:07 +00:00
sprd-sc27xx-spi.c mfd: sprd-sc27xx-spi: Replace irqchip mask_invert with unmask_base 2022-12-07 13:28:15 +00:00
ssbi.c mfd: ssbi: Use devm_platform_get_and_ioremap_resource() 2023-04-26 11:40:27 +01:00
sta2x11-mfd.c mfd: sta2x11: Use GFP_KERNEL instead of GFP_ATOMIC 2022-03-08 09:44:05 +00:00
stm32-lptimer.c mfd: stm32-lptimer: Use devm_platform_get_and_ioremap_resource() 2022-12-08 12:38:47 +00:00
stm32-timers.c mfd: stm32-timers: Avoid clearing auto reload register 2021-04-14 16:06:26 +01:00
stmfx.c mfd: stmfx: Remove #ifdef guards for PM related functions 2022-12-07 13:28:13 +00:00
stmpe-i2c.c mfd: stmpe-i2c: Remove MODULE_LICENSE in non-modules 2023-04-26 11:40:31 +01:00
stmpe-spi.c mfd: stmpe-spi: Remove MODULE_LICENSE in non-modules 2023-04-26 11:40:31 +01:00
stmpe.c mfd: various: Use of_property_present() for testing DT property presence 2023-04-26 11:40:32 +01:00
stmpe.h mfd: stmpe: Make stmpe_remove() return void 2021-11-05 14:40:26 +00:00
stpmic1.c mfd: stpmic1: Fix swapped mask/unmask in irq chip 2022-12-07 13:28:15 +00:00
stw481x.c mfd: stw481x: Convert to i2c's .probe_new() 2022-12-07 13:27:25 +00:00
sun4i-gpadc.c mfd: sun4i-gpadc: Use devm_platform_get_and_ioremap_resource() 2023-04-26 11:40:27 +01:00
sun6i-prcm.c mfd: sun6i-prcm: Use DEFINE_RES_MEM() to simplify code 2021-06-02 10:51:19 +01:00
syscon.c mfd: syscon: Allow reset control for syscon devices 2023-02-22 08:25:53 +00:00
tc3589x.c mfd: tc3589x: Remove MODULE_LICENSE in non-modules 2023-04-26 11:40:31 +01:00
ti_am335x_tscadc.c mfd: ti_am335x_tscadc: Fix spelling mistake "atleast" -> "at least" 2021-11-05 14:40:02 +00:00
ti-lmu.c mfd: ti-lmu: Convert to i2c's .probe_new() 2022-12-07 13:27:25 +00:00
timberdale.c mfd: timberdale: Remove linux/msi.h include 2022-12-07 13:28:13 +00:00
timberdale.h
tps6105x.c mfd: tps6105x: Convert to i2c's .probe_new() 2022-12-07 13:27:25 +00:00
tps6507x.c mfd: tps6507x: Convert to i2c's .probe_new() 2022-12-07 13:27:25 +00:00
tps6586x.c mfd: tps6586x: Remove MODULE_LICENSE in non-modules 2023-04-26 11:40:30 +01:00
tps65010.c mfd: tps65010: Convert to i2c's .probe_new() 2022-12-07 13:27:25 +00:00
tps65086.c mfd: tps65086: Convert to i2c's .probe_new() 2022-12-07 13:27:25 +00:00
tps65090.c mfd: tps65090: Replace irqchip mask_invert with unmask_base 2022-12-07 13:28:15 +00:00
tps65217.c i2c: Make remove callback return void 2022-08-16 12:46:26 +02:00
tps65218.c mfd: tps65218: Convert to i2c's .probe_new() 2022-12-07 13:27:26 +00:00
tps65219.c mfd: tps65219: Add driver for TI TPS65219 PMIC 2022-12-07 13:28:15 +00:00
tps65910.c mfd: tps65910: Convert to i2c's .probe_new() 2022-12-07 13:27:26 +00:00
tps65911-comparator.c
tps65912-core.c treewide: Replace GPLv2 boilerplate/reference with SPDX - gpl-2.0_319.RULE 2022-06-10 14:51:36 +02:00
tps65912-i2c.c mfd: tps65912-i2c: Convert to i2c's .probe_new() 2022-12-07 13:27:26 +00:00
tps65912-spi.c treewide: Replace GPLv2 boilerplate/reference with SPDX - gpl-2.0_319.RULE 2022-06-10 14:51:36 +02:00
tqmx86.c mfd: tqmx86: Correct board names for TQMxE39x 2023-04-26 11:40:28 +01:00
twl4030-audio.c mfd: twl4030-audio: Remove MODULE_LICENSE in non-modules 2023-04-26 11:40:30 +01:00
twl4030-irq.c mfd: twl4030: Add missed linux/device.h header 2022-09-28 16:17:41 +01:00
twl4030-power.c mfd: twl4030-power: Drop empty platform remove function 2023-02-22 08:25:52 +00:00
twl6030-irq.c mfd: twl6030: Make twl6030_exit_irq() return void 2022-04-28 17:24:10 +01:00
twl6040.c mfd: twl6040: Remove MODULE_LICENSE in non-modules 2023-04-26 11:40:30 +01:00
twl-core.c mfd: twl-core: Remove unused add_child() and add_numbered_child() functions 2023-04-26 11:40:33 +01:00
twl-core.h mfd: twl4030: Make twl4030_exit_irq() return void 2022-04-28 17:24:40 +01:00
ucb1x00-assabet.c mfd: ucb1x00-assabet: Use DEVICE_ATTR_RO macro 2021-06-15 13:02:01 +01:00
ucb1x00-core.c mfd: ucb1x00: Remove #ifdef guards for PM related functions 2022-12-07 13:28:11 +00:00
ucb1x00-ts.c
vexpress-sysreg.c mfd: vexpress-sysreg: Fix resource compound literal assignments 2022-11-14 10:01:39 +01:00
viperboard.c
vx855.c
wcd934x.c mfd: wcd934x: Convert irq chip to config regs 2022-12-07 13:28:15 +00:00
wl1273-core.c mfd: wl1273-core: Convert to i2c's .probe_new() 2022-12-07 13:27:26 +00:00
wm97xx-core.c ALSA: ac97: make remove callback of ac97 driver void returned 2023-01-25 09:34:20 +01:00
wm831x-auxadc.c mfd: wm831x-auxadc: Prevent use after free in wm831x_auxadc_read_irq() 2021-02-08 13:54:40 +00:00
wm831x-core.c mfd: wm831x: Use DEFINE_RES_IRQ_NAMED() and DEFINE_RES_IRQ() to simplify code 2021-06-15 12:53:38 +01:00
wm831x-i2c.c mfd: wm831x-i2c: Convert to i2c's .probe_new() 2022-12-07 13:27:26 +00:00
wm831x-irq.c
wm831x-otp.c mfd: wm831x: Use DEVICE_ATTR_RO macro 2021-06-15 13:01:45 +01:00
wm831x-spi.c
wm5102-tables.c
wm5110-tables.c
wm8350-core.c
wm8350-gpio.c
wm8350-i2c.c mfd: wm8350-i2c: Convert to i2c's .probe_new() 2022-12-07 13:27:26 +00:00
wm8350-irq.c
wm8350-regmap.c
wm8400-core.c mfd: wm8400-core: Convert to i2c's .probe_new() 2022-12-07 13:27:27 +00:00
wm8994-core.c mfd: various: Use of_property_read_bool() for boolean properties 2023-04-26 11:40:32 +01:00
wm8994-irq.c mfd: Don't use irq_create_mapping() to resolve a mapping 2021-08-05 12:41:06 +01:00
wm8994-regmap.c
wm8994.h
wm8997-tables.c
wm8998-tables.c