linux/drivers/mfd
Kees Cook a86854d0c5 treewide: devm_kzalloc() -> devm_kcalloc()
The devm_kzalloc() function has a 2-factor argument form, devm_kcalloc().
This patch replaces cases of:

        devm_kzalloc(handle, a * b, gfp)

with:
        devm_kcalloc(handle, a * b, gfp)

as well as handling cases of:

        devm_kzalloc(handle, a * b * c, gfp)

with:

        devm_kzalloc(handle, array3_size(a, b, c), gfp)

as it's slightly less ugly than:

        devm_kcalloc(handle, array_size(a, b), c, gfp)

This does, however, attempt to ignore constant size factors like:

        devm_kzalloc(handle, 4 * 1024, gfp)

though any constants defined via macros get caught up in the conversion.

Any factors with a sizeof() of "unsigned char", "char", and "u8" were
dropped, since they're redundant.

Some manual whitespace fixes were needed in this patch, as Coccinelle
really liked to write "=devm_kcalloc..." instead of "= devm_kcalloc...".

The Coccinelle script used for this was:

// Fix redundant parens around sizeof().
@@
expression HANDLE;
type TYPE;
expression THING, E;
@@

(
  devm_kzalloc(HANDLE,
-	(sizeof(TYPE)) * E
+	sizeof(TYPE) * E
  , ...)
|
  devm_kzalloc(HANDLE,
-	(sizeof(THING)) * E
+	sizeof(THING) * E
  , ...)
)

// Drop single-byte sizes and redundant parens.
@@
expression HANDLE;
expression COUNT;
typedef u8;
typedef __u8;
@@

(
  devm_kzalloc(HANDLE,
-	sizeof(u8) * (COUNT)
+	COUNT
  , ...)
|
  devm_kzalloc(HANDLE,
-	sizeof(__u8) * (COUNT)
+	COUNT
  , ...)
|
  devm_kzalloc(HANDLE,
-	sizeof(char) * (COUNT)
+	COUNT
  , ...)
|
  devm_kzalloc(HANDLE,
-	sizeof(unsigned char) * (COUNT)
+	COUNT
  , ...)
|
  devm_kzalloc(HANDLE,
-	sizeof(u8) * COUNT
+	COUNT
  , ...)
|
  devm_kzalloc(HANDLE,
-	sizeof(__u8) * COUNT
+	COUNT
  , ...)
|
  devm_kzalloc(HANDLE,
-	sizeof(char) * COUNT
+	COUNT
  , ...)
|
  devm_kzalloc(HANDLE,
-	sizeof(unsigned char) * COUNT
+	COUNT
  , ...)
)

// 2-factor product with sizeof(type/expression) and identifier or constant.
@@
expression HANDLE;
type TYPE;
expression THING;
identifier COUNT_ID;
constant COUNT_CONST;
@@

(
- devm_kzalloc
+ devm_kcalloc
  (HANDLE,
-	sizeof(TYPE) * (COUNT_ID)
+	COUNT_ID, sizeof(TYPE)
  , ...)
|
- devm_kzalloc
+ devm_kcalloc
  (HANDLE,
-	sizeof(TYPE) * COUNT_ID
+	COUNT_ID, sizeof(TYPE)
  , ...)
|
- devm_kzalloc
+ devm_kcalloc
  (HANDLE,
-	sizeof(TYPE) * (COUNT_CONST)
+	COUNT_CONST, sizeof(TYPE)
  , ...)
|
- devm_kzalloc
+ devm_kcalloc
  (HANDLE,
-	sizeof(TYPE) * COUNT_CONST
+	COUNT_CONST, sizeof(TYPE)
  , ...)
|
- devm_kzalloc
+ devm_kcalloc
  (HANDLE,
-	sizeof(THING) * (COUNT_ID)
+	COUNT_ID, sizeof(THING)
  , ...)
|
- devm_kzalloc
+ devm_kcalloc
  (HANDLE,
-	sizeof(THING) * COUNT_ID
+	COUNT_ID, sizeof(THING)
  , ...)
|
- devm_kzalloc
+ devm_kcalloc
  (HANDLE,
-	sizeof(THING) * (COUNT_CONST)
+	COUNT_CONST, sizeof(THING)
  , ...)
|
- devm_kzalloc
+ devm_kcalloc
  (HANDLE,
-	sizeof(THING) * COUNT_CONST
+	COUNT_CONST, sizeof(THING)
  , ...)
)

// 2-factor product, only identifiers.
@@
expression HANDLE;
identifier SIZE, COUNT;
@@

- devm_kzalloc
+ devm_kcalloc
  (HANDLE,
-	SIZE * COUNT
+	COUNT, SIZE
  , ...)

// 3-factor product with 1 sizeof(type) or sizeof(expression), with
// redundant parens removed.
@@
expression HANDLE;
expression THING;
identifier STRIDE, COUNT;
type TYPE;
@@

(
  devm_kzalloc(HANDLE,
-	sizeof(TYPE) * (COUNT) * (STRIDE)
+	array3_size(COUNT, STRIDE, sizeof(TYPE))
  , ...)
|
  devm_kzalloc(HANDLE,
-	sizeof(TYPE) * (COUNT) * STRIDE
+	array3_size(COUNT, STRIDE, sizeof(TYPE))
  , ...)
|
  devm_kzalloc(HANDLE,
-	sizeof(TYPE) * COUNT * (STRIDE)
+	array3_size(COUNT, STRIDE, sizeof(TYPE))
  , ...)
|
  devm_kzalloc(HANDLE,
-	sizeof(TYPE) * COUNT * STRIDE
+	array3_size(COUNT, STRIDE, sizeof(TYPE))
  , ...)
|
  devm_kzalloc(HANDLE,
-	sizeof(THING) * (COUNT) * (STRIDE)
+	array3_size(COUNT, STRIDE, sizeof(THING))
  , ...)
|
  devm_kzalloc(HANDLE,
-	sizeof(THING) * (COUNT) * STRIDE
+	array3_size(COUNT, STRIDE, sizeof(THING))
  , ...)
|
  devm_kzalloc(HANDLE,
-	sizeof(THING) * COUNT * (STRIDE)
+	array3_size(COUNT, STRIDE, sizeof(THING))
  , ...)
|
  devm_kzalloc(HANDLE,
-	sizeof(THING) * COUNT * STRIDE
+	array3_size(COUNT, STRIDE, sizeof(THING))
  , ...)
)

// 3-factor product with 2 sizeof(variable), with redundant parens removed.
@@
expression HANDLE;
expression THING1, THING2;
identifier COUNT;
type TYPE1, TYPE2;
@@

(
  devm_kzalloc(HANDLE,
-	sizeof(TYPE1) * sizeof(TYPE2) * COUNT
+	array3_size(COUNT, sizeof(TYPE1), sizeof(TYPE2))
  , ...)
|
  devm_kzalloc(HANDLE,
-	sizeof(TYPE1) * sizeof(THING2) * (COUNT)
+	array3_size(COUNT, sizeof(TYPE1), sizeof(TYPE2))
  , ...)
|
  devm_kzalloc(HANDLE,
-	sizeof(THING1) * sizeof(THING2) * COUNT
+	array3_size(COUNT, sizeof(THING1), sizeof(THING2))
  , ...)
|
  devm_kzalloc(HANDLE,
-	sizeof(THING1) * sizeof(THING2) * (COUNT)
+	array3_size(COUNT, sizeof(THING1), sizeof(THING2))
  , ...)
|
  devm_kzalloc(HANDLE,
-	sizeof(TYPE1) * sizeof(THING2) * COUNT
+	array3_size(COUNT, sizeof(TYPE1), sizeof(THING2))
  , ...)
|
  devm_kzalloc(HANDLE,
-	sizeof(TYPE1) * sizeof(THING2) * (COUNT)
+	array3_size(COUNT, sizeof(TYPE1), sizeof(THING2))
  , ...)
)

// 3-factor product, only identifiers, with redundant parens removed.
@@
expression HANDLE;
identifier STRIDE, SIZE, COUNT;
@@

(
  devm_kzalloc(HANDLE,
-	(COUNT) * STRIDE * SIZE
+	array3_size(COUNT, STRIDE, SIZE)
  , ...)
|
  devm_kzalloc(HANDLE,
-	COUNT * (STRIDE) * SIZE
+	array3_size(COUNT, STRIDE, SIZE)
  , ...)
|
  devm_kzalloc(HANDLE,
-	COUNT * STRIDE * (SIZE)
+	array3_size(COUNT, STRIDE, SIZE)
  , ...)
|
  devm_kzalloc(HANDLE,
-	(COUNT) * (STRIDE) * SIZE
+	array3_size(COUNT, STRIDE, SIZE)
  , ...)
|
  devm_kzalloc(HANDLE,
-	COUNT * (STRIDE) * (SIZE)
+	array3_size(COUNT, STRIDE, SIZE)
  , ...)
|
  devm_kzalloc(HANDLE,
-	(COUNT) * STRIDE * (SIZE)
+	array3_size(COUNT, STRIDE, SIZE)
  , ...)
|
  devm_kzalloc(HANDLE,
-	(COUNT) * (STRIDE) * (SIZE)
+	array3_size(COUNT, STRIDE, SIZE)
  , ...)
|
  devm_kzalloc(HANDLE,
-	COUNT * STRIDE * SIZE
+	array3_size(COUNT, STRIDE, SIZE)
  , ...)
)

// Any remaining multi-factor products, first at least 3-factor products,
// when they're not all constants...
@@
expression HANDLE;
expression E1, E2, E3;
constant C1, C2, C3;
@@

(
  devm_kzalloc(HANDLE, C1 * C2 * C3, ...)
|
  devm_kzalloc(HANDLE,
-	(E1) * E2 * E3
+	array3_size(E1, E2, E3)
  , ...)
|
  devm_kzalloc(HANDLE,
-	(E1) * (E2) * E3
+	array3_size(E1, E2, E3)
  , ...)
|
  devm_kzalloc(HANDLE,
-	(E1) * (E2) * (E3)
+	array3_size(E1, E2, E3)
  , ...)
|
  devm_kzalloc(HANDLE,
-	E1 * E2 * E3
+	array3_size(E1, E2, E3)
  , ...)
)

// And then all remaining 2 factors products when they're not all constants,
// keeping sizeof() as the second factor argument.
@@
expression HANDLE;
expression THING, E1, E2;
type TYPE;
constant C1, C2, C3;
@@

(
  devm_kzalloc(HANDLE, sizeof(THING) * C2, ...)
|
  devm_kzalloc(HANDLE, sizeof(TYPE) * C2, ...)
|
  devm_kzalloc(HANDLE, C1 * C2 * C3, ...)
|
  devm_kzalloc(HANDLE, C1 * C2, ...)
|
- devm_kzalloc
+ devm_kcalloc
  (HANDLE,
-	sizeof(TYPE) * (E2)
+	E2, sizeof(TYPE)
  , ...)
|
- devm_kzalloc
+ devm_kcalloc
  (HANDLE,
-	sizeof(TYPE) * E2
+	E2, sizeof(TYPE)
  , ...)
|
- devm_kzalloc
+ devm_kcalloc
  (HANDLE,
-	sizeof(THING) * (E2)
+	E2, sizeof(THING)
  , ...)
|
- devm_kzalloc
+ devm_kcalloc
  (HANDLE,
-	sizeof(THING) * E2
+	E2, sizeof(THING)
  , ...)
|
- devm_kzalloc
+ devm_kcalloc
  (HANDLE,
-	(E1) * E2
+	E1, E2
  , ...)
|
- devm_kzalloc
+ devm_kcalloc
  (HANDLE,
-	(E1) * (E2)
+	E1, E2
  , ...)
|
- devm_kzalloc
+ devm_kcalloc
  (HANDLE,
-	E1 * E2
+	E1, E2
  , ...)
)

Signed-off-by: Kees Cook <keescook@chromium.org>
2018-06-12 16:19:22 -07:00
..
88pm80x.c
88pm800.c
88pm805.c
88pm860x-core.c mfd: 88pm860x: Move over to new I2C device .probe() call 2016-11-17 16:10:24 +01:00
88pm860x-i2c.c
aat2870-core.c
ab3100-core.c mfd: ab3100-core: Make it explicitly non-modular 2016-11-29 08:21:29 +00:00
ab3100-otp.c
ab8500-core.c mfd: ab8500-core: Constify attribute_group structures 2017-09-05 08:46:00 +01:00
ab8500-debugfs.c treewide: devm_kzalloc() -> devm_kcalloc() 2018-06-12 16:19:22 -07:00
ab8500-gpadc.c mfd: ab8500-gpadc: Make it explicitly non-modular 2016-11-29 08:21:31 +00:00
ab8500-sysctrl.c mfd: ab8500-sysctrl: Handle probe deferral 2017-02-13 09:29:43 +00:00
abx500-core.c mfd: abx500-core: Adjust 14 checks for null pointers 2018-05-16 09:21:48 +01:00
ac100.c mfd: ac100: Add driver for X-Powers AC100 audio codec / RTC combo IC 2016-08-08 12:53:26 +01:00
act8945a.c mfd: act8945a: Add .of_compatible for act8945a-charger 2016-10-04 15:48:03 +01:00
adp5520.c
altera-a10sr.c mfd: altr_a10sr: Add Arria10 DevKit Reset Controller 2017-04-27 09:25:04 +01:00
arizona-core.c mfd: arizona: Update reset pin to use GPIOD 2018-05-16 09:21:48 +01:00
arizona-i2c.c
arizona-irq.c kernel/irq: Extend lockdep class for request mutex 2017-12-28 12:26:35 +01:00
arizona-spi.c
arizona.h mfd: arizona: Remove totally unused forward declaration 2017-02-13 09:29:40 +00:00
as3711.c mfd: as3711: Use devm_mfd_add_devices() for mfd_device registration 2016-04-19 07:54:50 +01:00
as3722.c mfd: as3722: Use devm_mfd_add_devices and devm_regmap_add_irq_chip 2016-05-09 08:24:46 +01:00
asic3.c mfd: asic3: Fix broken MMC card detection 2018-06-04 08:44:17 +01:00
atmel-flexcom.c atmel_flexcom: Support resuming after a chip reset 2018-01-08 11:03:35 +00:00
atmel-hlcdc.c mfd: atmel-hlcdc: Do not sleep in atomic context 2016-10-04 15:48:04 +01:00
atmel-smc.c mfd: syscon: atmel-smc: Include string.h 2018-05-29 09:09:29 +01:00
axp20x-i2c.c mfd: axp20x-i2c: Add i2c-ids to fix module auto-loading 2016-11-29 08:21:25 +00:00
axp20x-rsb.c mfd: axp20x: Add support for AXP813 PMIC 2017-09-05 08:46:00 +01:00
axp20x.c mfd: axp20x: Correct AXP806 POK interrupt prefix 2018-05-16 09:21:48 +01:00
bcm590xx.c mfd: bcm590xx: Simplify a test 2016-11-29 08:21:33 +00:00
bd9571mwv.c mfd: bd9571mwv: Allow DDR Backup Power register access 2018-04-23 17:53:45 +01:00
cros_ec_dev.c treewide: kzalloc() -> kcalloc() 2018-06-12 16:19:22 -07:00
cros_ec_dev.h cros_ec: Move cros_ec_dev module to drivers/mfd 2017-12-15 10:46:06 +00:00
cros_ec_i2c.c mfd: cros_ec_i2c: Moving the system sleep pm ops to late 2018-05-29 09:11:12 +01:00
cros_ec_spi.c mfd: cros_ec: Retry commands when EC is known to be busy 2018-05-23 06:59:00 +01:00
cros_ec.c - New Device Support 2018-06-11 07:20:17 -07:00
cs47l24-tables.c mfd: arizona: Mark AIFx_TX_BCLK_RATE as readable for cs47l24 2016-11-21 13:00:18 +00:00
cs5535-mfd.c
da903x.c
da9052-core.c mfd: da9052: Fix manual ADC read after timed out read 2017-09-05 08:46:00 +01:00
da9052-i2c.c
da9052-irq.c
da9052-spi.c mfd: da9052: Constify spi_device_id 2017-09-05 08:46:01 +01:00
da9055-core.c
da9055-i2c.c mfd: da9055: Constify i2c_device_id 2017-09-05 08:46:01 +01:00
da9062-core.c mfd: da9062: Use core helper regmap_reg_range macros 2018-05-16 09:21:48 +01:00
da9063-core.c mfd: da9063: Update author information to remove incorrect e-mail addresses 2016-10-04 15:48:01 +01:00
da9063-i2c.c mfd: da9063: Update author information to remove incorrect e-mail addresses 2016-10-04 15:48:01 +01:00
da9063-irq.c mfd: da9063: Update author information to remove incorrect e-mail addresses 2016-10-04 15:48:01 +01:00
da9150-core.c
davinci_voicecodec.c mfd: davinci_voicecodec: Tidyup header difinitions 2016-11-29 08:21:27 +00:00
db8500-prcmu.c mfd: db8500-prcmu: Get rid of cpufreq dependency 2017-08-22 15:49:33 +02:00
dbx500-prcmu-regs.h
dln2.c
dm355evm_msp.c mfd: dm355evm_msp: Move header file out of I2C realm 2017-08-15 08:06:14 +01:00
exynos-lpass.c mfd: exynos: Use devm_of_platform_populate() 2017-07-06 08:29:12 +01:00
ezx-pcap.c
fsl-imx25-tsadc.c mfd: fsl-imx25: Clean up irq settings during removal 2017-10-24 09:12:14 +01:00
hi655x-pmic.c mfd: hi655x: Add the clock cell to provide WiFi and Bluetooth 2017-04-27 11:54:43 +01:00
hi6421-pmic-core.c mfd: hi6421-pmic: Add support for HiSilicon Hi6421v530 2017-09-05 08:46:00 +01:00
htc-i2cpld.c treewide: devm_kzalloc() -> devm_kcalloc() 2018-06-12 16:19:22 -07:00
htc-pasic3.c
intel_msic.c mfd: intel_msic: Make it explicitly non-modular 2016-10-04 15:48:03 +01:00
intel_quark_i2c_gpio.c gpio: dwapb: Add support for 1 interrupt per port A GPIO 2018-05-16 14:35:24 +02:00
intel_soc_pmic_bxtwc.c mfd: intel_soc_pmic_bxtwc: Use chained IRQs for second level IRQ chips 2017-06-19 15:45:01 +01:00
intel_soc_pmic_chtdc_ti.c mfd: Add support for Cherry Trail Dollar Cove TI PMIC 2017-10-13 10:42:58 +01:00
intel_soc_pmic_chtwc.c mfd: Add Cherry Trail Whiskey Cove PMIC driver 2017-07-06 08:29:13 +01:00
intel_soc_pmic_core.c mfd: Remove duplicate includes 2018-01-08 11:03:35 +00:00
intel_soc_pmic_core.h mfd: intel_soc_pmic: Export separate mfd-cell configs for BYT and CHT 2017-09-05 08:46:02 +01:00
intel_soc_pmic_crc.c mfd: intel_soc_pmic: Export separate mfd-cell configs for BYT and CHT 2017-09-05 08:46:02 +01:00
intel-lpss-acpi.c mfd: intel-lpss: Remove left over variable 2017-04-27 09:25:04 +01:00
intel-lpss-pci.c mfd: intel-lpss: Fix Intel Cannon Lake LPSS I2C input clock 2018-06-04 08:44:17 +01:00
intel-lpss.c mfd: intel-lpss: Correct names of RESETS register bits 2018-06-04 06:48:22 +01:00
intel-lpss.h PM / mfd: intel-lpss: Push system sleep callbacks to late/early stages 2017-10-05 12:59:54 +02:00
ipaq-micro.c mfd: ipaq-micro: Dump debugging hexdumps 2017-07-06 08:29:11 +01:00
janz-cmodio.c mfd: janz-cmodio: Delete error message for a failed memory allocation 2018-05-16 09:21:48 +01:00
jz4740-adc.c mfd: jz4740-adc: Delete error message for a failed memory allocation 2018-05-16 09:21:48 +01:00
Kconfig mfd: pm8xxx: Make elegible for COMPILE_TEST 2018-01-08 11:03:35 +00:00
kempld-core.c mfd: kempld-core: Use resource_size function on resource object 2018-01-08 11:03:34 +00:00
lm3533-core.c
lm3533-ctrlbank.c
lp873x.c mfd: lp873x: Remove unused mutex lock from struct lp873x 2016-10-04 15:48:04 +01:00
lp3943.c mfd: lp3943: Use devm_mfd_add_devices() for mfd_device registration 2016-04-19 07:55:23 +01:00
lp8788-irq.c mfd: lp8788-irq: Uninitialized variable in irq handler 2016-04-11 13:31:40 +01:00
lp8788.c
lp87565.c mfd: lp87565: Convert to use devm_mfd_add_devices() 2017-09-05 08:46:01 +01:00
lpc_ich.c mfd: lpc_ich: Do not touch SPI-NOR write protection bit on Apollo Lake 2018-01-08 11:03:35 +00:00
lpc_sch.c
Makefile Revert "mfd: cros_ec: Add ACPI GPE handler for LID0 devices" 2018-05-16 09:21:48 +01:00
max8907.c
max8925-core.c
max8925-i2c.c mfd: max8925-i2c: Drop unnecessary static 2017-09-05 08:46:00 +01:00
max8997-irq.c mfd: max8997-irq: 'inline' should be at the beginning of the declaration 2016-10-04 15:48:05 +01:00
max8997.c mfd: max8997: Delete error message for a failed memory allocation 2018-05-16 09:21:48 +01:00
max8998-irq.c
max8998.c mfd: max8998: Fix potential NULL pointer dereference 2017-09-05 08:46:00 +01:00
max14577.c mfd: max14577: Change Krzysztof Kozlowski's email to kernel.org 2016-10-04 15:48:02 +01:00
max77620.c treewide: Fix printk() message errors 2016-12-14 10:54:27 +01:00
max77686.c mfd: max77686: Remove I2C device ID table 2017-02-13 09:29:43 +00:00
max77693.c mfd: max77693: Add muic of_compatible in mfd_cell 2017-10-13 10:42:58 +01:00
max77843.c mfd: Remove duplicate includes 2018-01-08 11:03:35 +00:00
mc13xxx-core.c hwmon: MC13783: Add uid and die temperature sensor inputs 2018-04-16 13:01:36 +01:00
mc13xxx-i2c.c
mc13xxx-spi.c
mc13xxx.h
mcp-core.c
mcp-sa11x0.c
menelaus.c mfd: menelaus: Remove obsolete local_irq_disable() and local_irq_enable() 2017-04-27 11:54:46 +01:00
menf21bmc.c mfd: menf21bmc: Use devm_mfd_add_devices() for mfd_device registration 2016-04-19 07:55:30 +01:00
mfd-core.c treewide: kzalloc() -> kcalloc() 2018-06-12 16:19:22 -07:00
motorola-cpcap.c treewide: devm_kzalloc() -> devm_kcalloc() 2018-06-12 16:19:22 -07:00
mt6397-core.c mfd: mt6397: Add PMIC keys support to MT6397 driver 2018-04-16 15:16:11 +01:00
mxs-lradc.c mfd: mxs-lradc: Fix error handling in mxs_lradc_probe() 2017-10-24 09:12:14 +01:00
omap-usb-host.c mfd: omap-usb-host: Use match_string() helper 2018-06-04 08:44:17 +01:00
omap-usb-tll.c mfd: omap-usb-tll: Allocate driver data at once 2018-05-16 09:21:48 +01:00
omap-usb.h
palmas.c mfd: palmas: Assign the right powerhold mask for tps65917 2018-01-08 11:03:34 +00:00
pcf50633-adc.c
pcf50633-core.c mfd: pcf50633: Fix some memory leaks in the error handling path of 'pcf50633_probe()' 2018-05-16 09:21:48 +01:00
pcf50633-gpio.c
pcf50633-irq.c
qcom_rpm.c mfd: qcom_rpm: Handle message RAM clock 2016-10-04 15:48:02 +01:00
qcom-pm8xxx.c treewide: Use struct_size() for devm_kmalloc() and friends 2018-06-06 11:15:43 -07:00
qcom-spmi-pmic.c mfd: qcom-spmi-pmic: Add support for pm8005, pm8998 and pmi8998 2018-06-04 06:47:52 +01:00
rave-sp.c mfd: rave-sp: Remove VLA 2018-05-16 09:21:48 +01:00
rc5t583-irq.c mfd: rc5t583: Use devm_mfd_add_devices and devm_request_threaded_irq 2016-05-09 13:27:38 +01:00
rc5t583.c mfd: rc5t583: Improve a size determination 2018-05-16 09:21:48 +01:00
rdc321x-southbridge.c mfd: rdc321x: Use devm_mfd_add_devices() for mfd_device registration 2016-04-19 07:55:52 +01:00
retu-mfd.c mfd: retu: Add OF device ID table 2017-07-18 08:27:18 +01:00
rk808.c mfd: rk808: Add RK805 power key support 2017-08-21 08:54:56 +01:00
rn5t618.c mfd: rn5t618: Unregister restart handler on remove 2017-07-06 08:29:11 +01:00
rt5033.c mfd: rt5033: Use devm_mfd_add_devices() for mfd_device registration 2016-04-19 07:56:17 +01:00
sec-core.c mfd: sec: Use devm_mfd_add_devices and devm_regmap_add_irq_chip 2016-05-09 13:27:38 +01:00
sec-irq.c mfd: sec: Use devm_mfd_add_devices and devm_regmap_add_irq_chip 2016-05-09 13:27:38 +01:00
si476x-cmd.c
si476x-i2c.c mfd: si476x-i2c: Delete an error message for a failed memory allocation in si476x_core_probe() 2018-05-16 09:21:48 +01:00
si476x-prop.c
sky81452.c mfd: sky81452: Use devm_mfd_add_devices() for mfd_device registration 2016-04-19 07:56:28 +01:00
sm501.c mfd: sm501: Adjust 12 checks for null pointers 2018-05-16 09:21:48 +01:00
smsc-ece1099.c mfd: smsc-ece1099: Improve a size determination in smsc_i2c_probe() 2018-05-16 09:21:48 +01:00
sprd-sc27xx-spi.c treewide: devm_kzalloc() -> devm_kcalloc() 2018-06-12 16:19:22 -07:00
ssbi.c mfd: ssbi: Use devm_of_platform_populate() 2017-11-01 09:32:23 +00:00
sta2x11-mfd.c mfd: Convert remaining uses of pr_warning to pr_warn 2017-04-27 09:25:05 +01:00
stm32-lptimer.c mfd: stm32: Adopt SPDX identifier 2018-01-08 11:03:35 +00:00
stm32-timers.c mfd: stm32-timers: Add support for DMAs 2018-05-16 09:10:38 +01:00
stmpe-i2c.c mfd: Add STMPE1600 support 2016-08-10 09:25:18 +01:00
stmpe-spi.c
stmpe.c mfd: stmpe: Fix bit clearing on STMPE1600 2017-04-27 09:25:07 +01:00
stmpe.h mfd: Add STMPE1600 support 2016-08-10 09:25:18 +01:00
stw481x.c mfd: stw481x: Make three arrays static const, reduces object code size 2017-10-13 10:42:58 +01:00
sun4i-gpadc.c mfd: sun4i-gpadc: Fix 'cast from pointer to integer of different size' warning 2016-11-29 08:21:26 +00:00
sun6i-prcm.c mfd: sun6i-prcm: Add codec analog controls sub-device for Allwinner A23 2017-02-13 09:29:40 +00:00
syscon.c mfd: syscon: Set name of regmap_config 2018-05-16 09:21:48 +01:00
t7l66xb.c mfd: t7l66xb: Handle return value of clk_prepare_enable 2017-09-05 08:46:01 +01:00
tc3589x.c mfd: tc3589x: Improve function-level documentation 2016-11-29 08:21:19 +00:00
tc6387xb.c
tc6393xb.c mfd: tc6393xb: Handle return value of clk_prepare_enable 2017-07-06 08:29:12 +01:00
ti_am335x_tscadc.c mfd: ti_am335x_tscadc: Delete an error message for a failed memory allocation in ti_tscadc_probe() 2018-05-16 09:21:48 +01:00
ti-lmu.c mfd: Add TI LMU driver 2017-04-27 09:25:04 +01:00
timberdale.c treewide: kzalloc() -> kcalloc() 2018-06-12 16:19:22 -07:00
timberdale.h
tmio_core.c mfd: tmio: Move register macros to tmio_core.c 2018-01-08 11:03:34 +00:00
tps6105x.c mfd: tps6105x: Add OF device ID table 2017-07-18 08:27:37 +01:00
tps6507x.c mfd: tps6507: Fix white space warnings reported by checkpatch 2016-06-29 10:14:35 +01:00
tps6586x.c mfd: tps6586x: Delete an error message for a failed memory allocation in tps6586x_parse_dt() 2018-05-16 09:21:48 +01:00
tps65010.c mfd: tps65010: Move header file out of I2C realm 2017-08-15 08:27:22 +01:00
tps65086.c mfd: tps65086: Add driver for the TPS65086 PMIC 2016-03-16 08:50:15 +00:00
tps65090.c mfd: tps65090: Delete an error message for a failed memory allocation in tps65090_i2c_probe() 2018-05-16 09:21:48 +01:00
tps65217.c mfd: tps65217: Introduce dependency on CONFIG_OF 2017-10-13 10:42:58 +01:00
tps65218.c mfd: tps65218: Introduce dependency on CONFIG_OF 2017-10-13 10:42:59 +01:00
tps65910.c mfd: tps65910: Move an assignment in tps65910_sleepinit() 2018-05-16 09:21:48 +01:00
tps65911-comparator.c mfd: tps65911-comparator: Fix an off by one bug 2018-05-16 09:21:48 +01:00
tps65912-core.c mfd: tps65912: Move regmap config into core driver 2016-11-29 08:21:21 +00:00
tps65912-i2c.c mfd: tps65912: Export OF device ID table as module aliases 2017-02-13 09:29:43 +00:00
tps65912-spi.c mfd: tps65912: Fix variable name for SPI remove 2017-04-27 09:25:04 +01:00
tps68470.c mfd: Update to SPDX license identifier 2018-05-16 09:21:48 +01:00
tps80031.c mfd: tps80031: Delete an error message for a failed memory allocation in tps80031_probe() 2018-05-16 09:21:48 +01:00
twl4030-audio.c mfd: twl4030-audio: Fix sibling-node lookup 2017-11-29 16:28:45 +00:00
twl4030-irq.c mfd: twl: Move header file out of I2C realm 2017-09-04 14:41:02 +01:00
twl4030-power.c mfd: twl: Move header file out of I2C realm 2017-09-04 14:41:02 +01:00
twl6030-irq.c mfd: twl6030-irq: Delete an error message for a failed memory allocation in twl6030_init_irq() 2018-05-16 09:21:48 +01:00
twl6040.c mfd: twl6040: Fix child-node lookup 2017-11-29 16:29:36 +00:00
twl-core.c treewide: devm_kzalloc() -> devm_kcalloc() 2018-06-12 16:19:22 -07:00
twl-core.h License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
ucb1x00-assabet.c
ucb1x00-core.c mfd: ucb1x00: Remove NO_IRQ check 2016-10-04 15:48:03 +01:00
ucb1x00-ts.c
ucb1400_core.c
vexpress-sysreg.c mfd: vexpress-sysreg: Switch to gpiochip_add_data() 2016-04-19 07:59:06 +01:00
viperboard.c mfd: viperboard: Delete an error message for a failed memory allocation in vprbrd_probe() 2018-05-16 09:21:48 +01:00
vx855.c
wl1273-core.c mfd: wl1273-core: Use devm_mfd_add_devices() for mfd_device registration 2016-05-09 13:27:39 +01:00
wm97xx-core.c mfd: wm97xx-core: Platform data can be NULL 2018-06-11 09:11:03 +01:00
wm831x-auxadc.c
wm831x-core.c mfd: wm831x: Remove redundant !pdata checks 2017-07-06 08:29:11 +01:00
wm831x-i2c.c mfd: wm831x-i2c: Add NULL check before pointer dereference 2017-07-06 08:29:11 +01:00
wm831x-irq.c mfd: wm831x: Add basic device tree binding 2017-03-23 11:45:50 +00:00
wm831x-otp.c
wm831x-spi.c mfd: wm831x-spi: Add NULL check before pointer dereference 2017-07-06 08:29:11 +01:00
wm5102-tables.c mfd: wm5102: Remove spurious trailing spaces 2016-11-29 08:21:26 +00:00
wm5110-tables.c mfd: wm5110: ARIZONA_CLOCK_CONTROL should be volatile 2016-05-09 15:41:35 +01:00
wm8350-core.c
wm8350-gpio.c
wm8350-i2c.c
wm8350-irq.c
wm8350-regmap.c
wm8400-core.c mfd: Use IS_ENABLED(CONFIG_FOO) instead of checking FOO || FOO_MODULE 2016-05-09 08:23:56 +01:00
wm8994-core.c treewide: devm_kzalloc() -> devm_kcalloc() 2018-06-12 16:19:22 -07:00
wm8994-irq.c
wm8994-regmap.c
wm8994.h
wm8997-tables.c
wm8998-tables.c mfd: wm8998: Fix defaults array based on testing 2016-03-16 08:50:22 +00:00