Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

regulator: Set PROBE_PREFER_ASYNCHRONOUS for drivers that existed in 4.14

Probing of regulators can be a slow operation and can contribute to
slower boot times. This is especially true if a regulator is turned on
at probe time (with regulator-boot-on or regulator-always-on) and the
regulator requires delays (off-on-time, ramp time, etc).

While the overall kernel is not ready to switch to async probe by
default, as per the discussion on the mailing lists [1] it is believed
that the regulator subsystem is in good shape and we can move
regulator drivers over wholesale. There is no way to just magically
opt in all regulators (regulators are just normal drivers like
platform_driver), so we set PROBE_PREFER_ASYNCHRONOUS for all
regulators found in 'drivers/regulator' individually.

Given the number of drivers touched and the impossibility to test this
ahead of time, it wouldn't be shocking at all if this caused a
regression for someone. If there is a regression caused by this patch,
it's likely to be one of the cases talked about in [1]. As a "quick
fix", drivers involved in the regression could be fixed by changing
them to PROBE_FORCE_SYNCHRONOUS. That being said, the correct fix
would be to directly fix the problem that caused the issue with async
probe.

The approach here follows a similar approach that was used for the mmc
subsystem several years ago [2]. In fact, I ran nearly the same python
script to auto-generate the changes. The only thing I changed was to
search for "i2c_driver", "spmi_driver", and "spi_driver" in addition
to "platform_driver".

[1] https://lore.kernel.org/r/06db017f-e985-4434-8d1d-02ca2100cca0@sirena.org.uk
[2] https://lore.kernel.org/r/20200903232441.2694866-1-dianders@chromium.org/

Signed-off-by: Douglas Anderson <dianders@chromium.org>
Link: https://lore.kernel.org/r/20230316125351.1.I2a4677392a38db5758dee0788b2cea5872562a82@changeid
Signed-off-by: Mark Brown <broonie@kernel.org>

authored by

Douglas Anderson and committed by
Mark Brown
259b93b2 691c1fcd

+121 -1
+1
drivers/regulator/88pm800-regulator.c
··· 274 274 static struct platform_driver pm800_regulator_driver = { 275 275 .driver = { 276 276 .name = "88pm80x-regulator", 277 + .probe_type = PROBE_PREFER_ASYNCHRONOUS, 277 278 }, 278 279 .probe = pm800_regulator_probe, 279 280 };
+1
drivers/regulator/88pm8607.c
··· 383 383 static struct platform_driver pm8607_regulator_driver = { 384 384 .driver = { 385 385 .name = "88pm860x-regulator", 386 + .probe_type = PROBE_PREFER_ASYNCHRONOUS, 386 387 }, 387 388 .probe = pm8607_regulator_probe, 388 389 .id_table = pm8607_regulator_driver_ids,
+1
drivers/regulator/aat2870-regulator.c
··· 178 178 static struct platform_driver aat2870_regulator_driver = { 179 179 .driver = { 180 180 .name = "aat2870-regulator", 181 + .probe_type = PROBE_PREFER_ASYNCHRONOUS, 181 182 }, 182 183 .probe = aat2870_regulator_probe, 183 184 };
+1
drivers/regulator/ab8500-ext.c
··· 446 446 .probe = ab8500_ext_regulator_probe, 447 447 .driver = { 448 448 .name = "ab8500-ext-regulator", 449 + .probe_type = PROBE_PREFER_ASYNCHRONOUS, 449 450 }, 450 451 }; 451 452
+1
drivers/regulator/ab8500.c
··· 1737 1737 .probe = ab8500_regulator_probe, 1738 1738 .driver = { 1739 1739 .name = "ab8500-regulator", 1740 + .probe_type = PROBE_PREFER_ASYNCHRONOUS, 1740 1741 }, 1741 1742 }; 1742 1743
+1
drivers/regulator/act8865-regulator.c
··· 789 789 static struct i2c_driver act8865_pmic_driver = { 790 790 .driver = { 791 791 .name = "act8865", 792 + .probe_type = PROBE_PREFER_ASYNCHRONOUS, 792 793 }, 793 794 .probe_new = act8865_pmic_probe, 794 795 .id_table = act8865_ids,
+1
drivers/regulator/act8945a-regulator.c
··· 348 348 static struct platform_driver act8945a_pmic_driver = { 349 349 .driver = { 350 350 .name = "act8945a-regulator", 351 + .probe_type = PROBE_PREFER_ASYNCHRONOUS, 351 352 .pm = &act8945a_pm, 352 353 }, 353 354 .probe = act8945a_pmic_probe,
+1
drivers/regulator/ad5398.c
··· 257 257 .probe_new = ad5398_probe, 258 258 .driver = { 259 259 .name = "ad5398", 260 + .probe_type = PROBE_PREFER_ASYNCHRONOUS, 260 261 }, 261 262 .id_table = ad5398_id, 262 263 };
+1
drivers/regulator/anatop-regulator.c
··· 328 328 static struct platform_driver anatop_regulator_driver = { 329 329 .driver = { 330 330 .name = "anatop_regulator", 331 + .probe_type = PROBE_PREFER_ASYNCHRONOUS, 331 332 .of_match_table = of_anatop_regulator_match_tbl, 332 333 }, 333 334 .probe = anatop_regulator_probe,
+1
drivers/regulator/arizona-ldo1.c
··· 380 380 .remove = arizona_ldo1_remove, 381 381 .driver = { 382 382 .name = "arizona-ldo1", 383 + .probe_type = PROBE_PREFER_ASYNCHRONOUS, 383 384 }, 384 385 }; 385 386
+1
drivers/regulator/arizona-micsupp.c
··· 365 365 .probe = arizona_micsupp_probe, 366 366 .driver = { 367 367 .name = "arizona-micsupp", 368 + .probe_type = PROBE_PREFER_ASYNCHRONOUS, 368 369 }, 369 370 }; 370 371
+1
drivers/regulator/as3711-regulator.c
··· 243 243 static struct platform_driver as3711_regulator_driver = { 244 244 .driver = { 245 245 .name = "as3711-regulator", 246 + .probe_type = PROBE_PREFER_ASYNCHRONOUS, 246 247 }, 247 248 .probe = as3711_regulator_probe, 248 249 };
+1
drivers/regulator/as3722-regulator.c
··· 831 831 static struct platform_driver as3722_regulator_driver = { 832 832 .driver = { 833 833 .name = "as3722-regulator", 834 + .probe_type = PROBE_PREFER_ASYNCHRONOUS, 834 835 .of_match_table = of_as3722_regulator_match, 835 836 }, 836 837 .probe = as3722_regulator_probe,
+1
drivers/regulator/axp20x-regulator.c
··· 1364 1364 .probe = axp20x_regulator_probe, 1365 1365 .driver = { 1366 1366 .name = "axp20x-regulator", 1367 + .probe_type = PROBE_PREFER_ASYNCHRONOUS, 1367 1368 }, 1368 1369 }; 1369 1370
+1
drivers/regulator/bcm590xx-regulator.c
··· 354 354 static struct platform_driver bcm590xx_regulator_driver = { 355 355 .driver = { 356 356 .name = "bcm590xx-vregs", 357 + .probe_type = PROBE_PREFER_ASYNCHRONOUS, 357 358 }, 358 359 .probe = bcm590xx_probe, 359 360 };
+1
drivers/regulator/bd9571mwv-regulator.c
··· 353 353 static struct platform_driver bd9571mwv_regulator_driver = { 354 354 .driver = { 355 355 .name = "bd9571mwv-regulator", 356 + .probe_type = PROBE_PREFER_ASYNCHRONOUS, 356 357 .pm = DEV_PM_OPS, 357 358 }, 358 359 .probe = bd9571mwv_regulator_probe,
+1
drivers/regulator/cpcap-regulator.c
··· 553 553 .probe = cpcap_regulator_probe, 554 554 .driver = { 555 555 .name = "cpcap-regulator", 556 + .probe_type = PROBE_PREFER_ASYNCHRONOUS, 556 557 .of_match_table = of_match_ptr(cpcap_regulator_id_table), 557 558 }, 558 559 };
+1
drivers/regulator/da903x-regulator.c
··· 471 471 static struct platform_driver da903x_regulator_driver = { 472 472 .driver = { 473 473 .name = "da903x-regulator", 474 + .probe_type = PROBE_PREFER_ASYNCHRONOUS, 474 475 }, 475 476 .probe = da903x_regulator_probe, 476 477 };
+1
drivers/regulator/da9052-regulator.c
··· 438 438 .probe = da9052_regulator_probe, 439 439 .driver = { 440 440 .name = "da9052-regulator", 441 + .probe_type = PROBE_PREFER_ASYNCHRONOUS, 441 442 }, 442 443 }; 443 444
+1
drivers/regulator/da9055-regulator.c
··· 576 576 .probe = da9055_regulator_probe, 577 577 .driver = { 578 578 .name = "da9055-regulator", 579 + .probe_type = PROBE_PREFER_ASYNCHRONOUS, 579 580 }, 580 581 }; 581 582
+1
drivers/regulator/da9062-regulator.c
··· 1033 1033 static struct platform_driver da9062_regulator_driver = { 1034 1034 .driver = { 1035 1035 .name = "da9062-regulators", 1036 + .probe_type = PROBE_PREFER_ASYNCHRONOUS, 1036 1037 }, 1037 1038 .probe = da9062_regulator_probe, 1038 1039 };
+1
drivers/regulator/da9063-regulator.c
··· 971 971 static struct platform_driver da9063_regulator_driver = { 972 972 .driver = { 973 973 .name = DA9063_DRVNAME_REGULATORS, 974 + .probe_type = PROBE_PREFER_ASYNCHRONOUS, 974 975 }, 975 976 .probe = da9063_regulator_probe, 976 977 };
+1
drivers/regulator/da9210-regulator.c
··· 221 221 static struct i2c_driver da9210_regulator_driver = { 222 222 .driver = { 223 223 .name = "da9210", 224 + .probe_type = PROBE_PREFER_ASYNCHRONOUS, 224 225 .of_match_table = of_match_ptr(da9210_dt_ids), 225 226 }, 226 227 .probe_new = da9210_i2c_probe,
+1
drivers/regulator/da9211-regulator.c
··· 552 552 static struct i2c_driver da9211_regulator_driver = { 553 553 .driver = { 554 554 .name = "da9211", 555 + .probe_type = PROBE_PREFER_ASYNCHRONOUS, 555 556 .of_match_table = of_match_ptr(da9211_dt_ids), 556 557 }, 557 558 .probe_new = da9211_i2c_probe,
+1
drivers/regulator/db8500-prcmu.c
··· 479 479 static struct platform_driver db8500_regulator_driver = { 480 480 .driver = { 481 481 .name = "db8500-prcmu-regulators", 482 + .probe_type = PROBE_PREFER_ASYNCHRONOUS, 482 483 }, 483 484 .probe = db8500_regulator_probe, 484 485 .remove = db8500_regulator_remove,
+1
drivers/regulator/dummy.c
··· 60 60 .probe = dummy_regulator_probe, 61 61 .driver = { 62 62 .name = "reg-dummy", 63 + .probe_type = PROBE_PREFER_ASYNCHRONOUS, 63 64 }, 64 65 }; 65 66
+1
drivers/regulator/fan53555.c
··· 663 663 static struct i2c_driver fan53555_regulator_driver = { 664 664 .driver = { 665 665 .name = "fan53555-regulator", 666 + .probe_type = PROBE_PREFER_ASYNCHRONOUS, 666 667 .of_match_table = of_match_ptr(fan53555_dt_ids), 667 668 }, 668 669 .probe_new = fan53555_regulator_probe,
+1
drivers/regulator/fixed.c
··· 334 334 .probe = reg_fixed_voltage_probe, 335 335 .driver = { 336 336 .name = "reg-fixed-voltage", 337 + .probe_type = PROBE_PREFER_ASYNCHRONOUS, 337 338 .of_match_table = of_match_ptr(fixed_of_match), 338 339 }, 339 340 };
+1
drivers/regulator/gpio-regulator.c
··· 368 368 .probe = gpio_regulator_probe, 369 369 .driver = { 370 370 .name = "gpio-regulator", 371 + .probe_type = PROBE_PREFER_ASYNCHRONOUS, 371 372 .of_match_table = of_match_ptr(regulator_gpio_of_match), 372 373 }, 373 374 };
+1
drivers/regulator/hi6421-regulator.c
··· 579 579 .id_table = hi6421_regulator_table, 580 580 .driver = { 581 581 .name = "hi6421-regulator", 582 + .probe_type = PROBE_PREFER_ASYNCHRONOUS, 582 583 }, 583 584 .probe = hi6421_regulator_probe, 584 585 };
+1
drivers/regulator/hi6421v530-regulator.c
··· 200 200 .id_table = hi6421v530_regulator_table, 201 201 .driver = { 202 202 .name = "hi6421v530-regulator", 203 + .probe_type = PROBE_PREFER_ASYNCHRONOUS, 203 204 }, 204 205 .probe = hi6421v530_regulator_probe, 205 206 };
+1
drivers/regulator/hi655x-regulator.c
··· 206 206 .id_table = hi655x_regulator_table, 207 207 .driver = { 208 208 .name = "hi655x-regulator", 209 + .probe_type = PROBE_PREFER_ASYNCHRONOUS, 209 210 }, 210 211 .probe = hi655x_regulator_probe, 211 212 };
+1
drivers/regulator/isl6271a-regulator.c
··· 147 147 static struct i2c_driver isl6271a_i2c_driver = { 148 148 .driver = { 149 149 .name = "isl6271a", 150 + .probe_type = PROBE_PREFER_ASYNCHRONOUS, 150 151 }, 151 152 .probe_new = isl6271a_probe, 152 153 .id_table = isl6271a_id,
+1
drivers/regulator/isl9305.c
··· 195 195 static struct i2c_driver isl9305_regulator_driver = { 196 196 .driver = { 197 197 .name = "isl9305", 198 + .probe_type = PROBE_PREFER_ASYNCHRONOUS, 198 199 .of_match_table = of_match_ptr(isl9305_dt_ids), 199 200 }, 200 201 .probe_new = isl9305_i2c_probe,
+1
drivers/regulator/lm363x-regulator.c
··· 355 355 .probe = lm363x_regulator_probe, 356 356 .driver = { 357 357 .name = "lm363x-regulator", 358 + .probe_type = PROBE_PREFER_ASYNCHRONOUS, 358 359 }, 359 360 }; 360 361
+1
drivers/regulator/lp3971.c
··· 447 447 static struct i2c_driver lp3971_i2c_driver = { 448 448 .driver = { 449 449 .name = "LP3971", 450 + .probe_type = PROBE_PREFER_ASYNCHRONOUS, 450 451 }, 451 452 .probe_new = lp3971_i2c_probe, 452 453 .id_table = lp3971_i2c_id,
+1
drivers/regulator/lp3972.c
··· 545 545 static struct i2c_driver lp3972_i2c_driver = { 546 546 .driver = { 547 547 .name = "lp3972", 548 + .probe_type = PROBE_PREFER_ASYNCHRONOUS, 548 549 }, 549 550 .probe_new = lp3972_i2c_probe, 550 551 .id_table = lp3972_i2c_id,
+1
drivers/regulator/lp872x.c
··· 944 944 static struct i2c_driver lp872x_driver = { 945 945 .driver = { 946 946 .name = "lp872x", 947 + .probe_type = PROBE_PREFER_ASYNCHRONOUS, 947 948 .of_match_table = of_match_ptr(lp872x_dt_ids), 948 949 }, 949 950 .probe_new = lp872x_probe,
+1
drivers/regulator/lp873x-regulator.c
··· 187 187 static struct platform_driver lp873x_regulator_driver = { 188 188 .driver = { 189 189 .name = "lp873x-pmic", 190 + .probe_type = PROBE_PREFER_ASYNCHRONOUS, 190 191 }, 191 192 .probe = lp873x_regulator_probe, 192 193 .id_table = lp873x_regulator_id_table,
+1
drivers/regulator/lp8755.c
··· 440 440 static struct i2c_driver lp8755_i2c_driver = { 441 441 .driver = { 442 442 .name = LP8755_NAME, 443 + .probe_type = PROBE_PREFER_ASYNCHRONOUS, 443 444 }, 444 445 .probe_new = lp8755_probe, 445 446 .remove = lp8755_remove,
+1
drivers/regulator/lp87565-regulator.c
··· 237 237 static struct platform_driver lp87565_regulator_driver = { 238 238 .driver = { 239 239 .name = "lp87565-pmic", 240 + .probe_type = PROBE_PREFER_ASYNCHRONOUS, 240 241 }, 241 242 .probe = lp87565_regulator_probe, 242 243 .id_table = lp87565_regulator_id_table,
+1
drivers/regulator/lp8788-buck.c
··· 531 531 .probe = lp8788_buck_probe, 532 532 .driver = { 533 533 .name = LP8788_DEV_BUCK, 534 + .probe_type = PROBE_PREFER_ASYNCHRONOUS, 534 535 }, 535 536 }; 536 537
+2
drivers/regulator/lp8788-ldo.c
··· 564 564 .probe = lp8788_dldo_probe, 565 565 .driver = { 566 566 .name = LP8788_DEV_DLDO, 567 + .probe_type = PROBE_PREFER_ASYNCHRONOUS, 567 568 }, 568 569 }; 569 570 ··· 612 611 .probe = lp8788_aldo_probe, 613 612 .driver = { 614 613 .name = LP8788_DEV_ALDO, 614 + .probe_type = PROBE_PREFER_ASYNCHRONOUS, 615 615 }, 616 616 }; 617 617
+1
drivers/regulator/ltc3589.c
··· 474 474 static struct i2c_driver ltc3589_driver = { 475 475 .driver = { 476 476 .name = DRIVER_NAME, 477 + .probe_type = PROBE_PREFER_ASYNCHRONOUS, 477 478 .of_match_table = of_match_ptr(ltc3589_of_match), 478 479 }, 479 480 .probe_new = ltc3589_probe,
+1
drivers/regulator/ltc3676.c
··· 371 371 static struct i2c_driver ltc3676_driver = { 372 372 .driver = { 373 373 .name = DRIVER_NAME, 374 + .probe_type = PROBE_PREFER_ASYNCHRONOUS, 374 375 .of_match_table = of_match_ptr(ltc3676_of_match), 375 376 }, 376 377 .probe_new = ltc3676_regulator_probe,
+1
drivers/regulator/max14577-regulator.c
··· 241 241 static struct platform_driver max14577_regulator_driver = { 242 242 .driver = { 243 243 .name = "max14577-regulator", 244 + .probe_type = PROBE_PREFER_ASYNCHRONOUS, 244 245 }, 245 246 .probe = max14577_regulator_probe, 246 247 .id_table = max14577_regulator_id,
+1
drivers/regulator/max1586.c
··· 292 292 .probe_new = max1586_pmic_probe, 293 293 .driver = { 294 294 .name = "max1586", 295 + .probe_type = PROBE_PREFER_ASYNCHRONOUS, 295 296 .of_match_table = of_match_ptr(max1586_of_match), 296 297 }, 297 298 .id_table = max1586_id,
+1
drivers/regulator/max77620-regulator.c
··· 916 916 .id_table = max77620_regulator_devtype, 917 917 .driver = { 918 918 .name = "max77620-pmic", 919 + .probe_type = PROBE_PREFER_ASYNCHRONOUS, 919 920 .pm = &max77620_regulator_pm_ops, 920 921 }, 921 922 };
+1
drivers/regulator/max77686-regulator.c
··· 525 525 static struct platform_driver max77686_pmic_driver = { 526 526 .driver = { 527 527 .name = "max77686-pmic", 528 + .probe_type = PROBE_PREFER_ASYNCHRONOUS, 528 529 }, 529 530 .probe = max77686_pmic_probe, 530 531 .id_table = max77686_pmic_id,
+1
drivers/regulator/max77693-regulator.c
··· 281 281 static struct platform_driver max77693_pmic_driver = { 282 282 .driver = { 283 283 .name = "max77693-pmic", 284 + .probe_type = PROBE_PREFER_ASYNCHRONOUS, 284 285 }, 285 286 .probe = max77693_pmic_probe, 286 287 .id_table = max77693_pmic_id,
+1
drivers/regulator/max77802-regulator.c
··· 554 554 static struct platform_driver max77802_pmic_driver = { 555 555 .driver = { 556 556 .name = "max77802-pmic", 557 + .probe_type = PROBE_PREFER_ASYNCHRONOUS, 557 558 }, 558 559 .probe = max77802_pmic_probe, 559 560 .id_table = max77802_pmic_id,
+1
drivers/regulator/max8649.c
··· 249 249 .probe_new = max8649_regulator_probe, 250 250 .driver = { 251 251 .name = "max8649", 252 + .probe_type = PROBE_PREFER_ASYNCHRONOUS, 252 253 }, 253 254 .id_table = max8649_id, 254 255 };
+1
drivers/regulator/max8660.c
··· 506 506 .probe_new = max8660_probe, 507 507 .driver = { 508 508 .name = "max8660", 509 + .probe_type = PROBE_PREFER_ASYNCHRONOUS, 509 510 }, 510 511 .id_table = max8660_id, 511 512 };
+1
drivers/regulator/max8907-regulator.c
··· 372 372 static struct platform_driver max8907_regulator_driver = { 373 373 .driver = { 374 374 .name = "max8907-regulator", 375 + .probe_type = PROBE_PREFER_ASYNCHRONOUS, 375 376 }, 376 377 .probe = max8907_regulator_probe, 377 378 };
+1
drivers/regulator/max8925-regulator.c
··· 263 263 static struct platform_driver max8925_regulator_driver = { 264 264 .driver = { 265 265 .name = "max8925-regulator", 266 + .probe_type = PROBE_PREFER_ASYNCHRONOUS, 266 267 }, 267 268 .probe = max8925_regulator_probe, 268 269 };
+1
drivers/regulator/max8952.c
··· 316 316 .probe_new = max8952_pmic_probe, 317 317 .driver = { 318 318 .name = "max8952", 319 + .probe_type = PROBE_PREFER_ASYNCHRONOUS, 319 320 .of_match_table = of_match_ptr(max8952_dt_match), 320 321 }, 321 322 .id_table = max8952_ids,
+1
drivers/regulator/max8973-regulator.c
··· 804 804 static struct i2c_driver max8973_i2c_driver = { 805 805 .driver = { 806 806 .name = "max8973", 807 + .probe_type = PROBE_PREFER_ASYNCHRONOUS, 807 808 .of_match_table = of_max8973_match_tbl, 808 809 }, 809 810 .probe_new = max8973_probe,
+1
drivers/regulator/max8997-regulator.c
··· 1197 1197 static struct platform_driver max8997_pmic_driver = { 1198 1198 .driver = { 1199 1199 .name = "max8997-pmic", 1200 + .probe_type = PROBE_PREFER_ASYNCHRONOUS, 1200 1201 }, 1201 1202 .probe = max8997_pmic_probe, 1202 1203 .id_table = max8997_pmic_id,
+1
drivers/regulator/max8998.c
··· 803 803 static struct platform_driver max8998_pmic_driver = { 804 804 .driver = { 805 805 .name = "max8998-pmic", 806 + .probe_type = PROBE_PREFER_ASYNCHRONOUS, 806 807 }, 807 808 .probe = max8998_pmic_probe, 808 809 .id_table = max8998_pmic_id,
+1
drivers/regulator/mc13783-regulator.c
··· 455 455 static struct platform_driver mc13783_regulator_driver = { 456 456 .driver = { 457 457 .name = "mc13783-regulator", 458 + .probe_type = PROBE_PREFER_ASYNCHRONOUS, 458 459 }, 459 460 .probe = mc13783_regulator_probe, 460 461 };
+1
drivers/regulator/mc13892-regulator.c
··· 629 629 static struct platform_driver mc13892_regulator_driver = { 630 630 .driver = { 631 631 .name = "mc13892-regulator", 632 + .probe_type = PROBE_PREFER_ASYNCHRONOUS, 632 633 }, 633 634 .probe = mc13892_regulator_probe, 634 635 };
+1
drivers/regulator/mt6311-regulator.c
··· 151 151 static struct i2c_driver mt6311_regulator_driver = { 152 152 .driver = { 153 153 .name = "mt6311", 154 + .probe_type = PROBE_PREFER_ASYNCHRONOUS, 154 155 .of_match_table = of_match_ptr(mt6311_dt_ids), 155 156 }, 156 157 .probe_new = mt6311_i2c_probe,
+1
drivers/regulator/mt6323-regulator.c
··· 409 409 static struct platform_driver mt6323_regulator_driver = { 410 410 .driver = { 411 411 .name = "mt6323-regulator", 412 + .probe_type = PROBE_PREFER_ASYNCHRONOUS, 412 413 }, 413 414 .probe = mt6323_regulator_probe, 414 415 .id_table = mt6323_platform_ids,
+1
drivers/regulator/mt6380-regulator.c
··· 328 328 static struct platform_driver mt6380_regulator_driver = { 329 329 .driver = { 330 330 .name = "mt6380-regulator", 331 + .probe_type = PROBE_PREFER_ASYNCHRONOUS, 331 332 .of_match_table = of_match_ptr(mt6380_of_match), 332 333 }, 333 334 .probe = mt6380_regulator_probe,
+1
drivers/regulator/mt6397-regulator.c
··· 406 406 static struct platform_driver mt6397_regulator_driver = { 407 407 .driver = { 408 408 .name = "mt6397-regulator", 409 + .probe_type = PROBE_PREFER_ASYNCHRONOUS, 409 410 .of_match_table = of_match_ptr(mt6397_of_match), 410 411 }, 411 412 .probe = mt6397_regulator_probe,
+1
drivers/regulator/palmas-regulator.c
··· 1666 1666 static struct platform_driver palmas_driver = { 1667 1667 .driver = { 1668 1668 .name = "palmas-pmic", 1669 + .probe_type = PROBE_PREFER_ASYNCHRONOUS, 1669 1670 .of_match_table = of_palmas_match_tbl, 1670 1671 }, 1671 1672 .probe = palmas_regulators_probe,
+1
drivers/regulator/pbias-regulator.c
··· 231 231 .probe = pbias_regulator_probe, 232 232 .driver = { 233 233 .name = "pbias-regulator", 234 + .probe_type = PROBE_PREFER_ASYNCHRONOUS, 234 235 .of_match_table = of_match_ptr(pbias_of_match), 235 236 }, 236 237 };
+1
drivers/regulator/pcap-regulator.c
··· 251 251 static struct platform_driver pcap_regulator_driver = { 252 252 .driver = { 253 253 .name = "pcap-regulator", 254 + .probe_type = PROBE_PREFER_ASYNCHRONOUS, 254 255 }, 255 256 .probe = pcap_regulator_probe, 256 257 };
+1
drivers/regulator/pcf50633-regulator.c
··· 101 101 static struct platform_driver pcf50633_regulator_driver = { 102 102 .driver = { 103 103 .name = "pcf50633-regulator", 104 + .probe_type = PROBE_PREFER_ASYNCHRONOUS, 104 105 }, 105 106 .probe = pcf50633_regulator_probe, 106 107 };
+1
drivers/regulator/pfuze100-regulator.c
··· 845 845 static struct i2c_driver pfuze_driver = { 846 846 .driver = { 847 847 .name = "pfuze100-regulator", 848 + .probe_type = PROBE_PREFER_ASYNCHRONOUS, 848 849 .of_match_table = pfuze_dt_ids, 849 850 }, 850 851 .probe_new = pfuze100_regulator_probe,
+1
drivers/regulator/pv88060-regulator.c
··· 376 376 static struct i2c_driver pv88060_regulator_driver = { 377 377 .driver = { 378 378 .name = "pv88060", 379 + .probe_type = PROBE_PREFER_ASYNCHRONOUS, 379 380 .of_match_table = of_match_ptr(pv88060_dt_ids), 380 381 }, 381 382 .probe_new = pv88060_i2c_probe,
+1
drivers/regulator/pv88080-regulator.c
··· 557 557 static struct i2c_driver pv88080_regulator_driver = { 558 558 .driver = { 559 559 .name = "pv88080", 560 + .probe_type = PROBE_PREFER_ASYNCHRONOUS, 560 561 .of_match_table = of_match_ptr(pv88080_dt_ids), 561 562 }, 562 563 .probe_new = pv88080_i2c_probe,
+1
drivers/regulator/pv88090-regulator.c
··· 397 397 static struct i2c_driver pv88090_regulator_driver = { 398 398 .driver = { 399 399 .name = "pv88090", 400 + .probe_type = PROBE_PREFER_ASYNCHRONOUS, 400 401 .of_match_table = of_match_ptr(pv88090_dt_ids), 401 402 }, 402 403 .probe_new = pv88090_i2c_probe,
+1
drivers/regulator/pwm-regulator.c
··· 393 393 static struct platform_driver pwm_regulator_driver = { 394 394 .driver = { 395 395 .name = "pwm-regulator", 396 + .probe_type = PROBE_PREFER_ASYNCHRONOUS, 396 397 .of_match_table = of_match_ptr(pwm_of_match), 397 398 }, 398 399 .probe = pwm_regulator_probe,
+1
drivers/regulator/qcom_rpm-regulator.c
··· 991 991 .probe = rpm_reg_probe, 992 992 .driver = { 993 993 .name = "qcom_rpm_reg", 994 + .probe_type = PROBE_PREFER_ASYNCHRONOUS, 994 995 .of_match_table = of_match_ptr(rpm_of_match), 995 996 }, 996 997 };
+1
drivers/regulator/qcom_smd-regulator.c
··· 1440 1440 .probe = rpm_reg_probe, 1441 1441 .driver = { 1442 1442 .name = "qcom_rpm_smd_regulator", 1443 + .probe_type = PROBE_PREFER_ASYNCHRONOUS, 1443 1444 .of_match_table = rpm_of_match, 1444 1445 }, 1445 1446 };
+1
drivers/regulator/qcom_spmi-regulator.c
··· 2484 2484 static struct platform_driver qcom_spmi_regulator_driver = { 2485 2485 .driver = { 2486 2486 .name = "qcom-spmi-regulator", 2487 + .probe_type = PROBE_PREFER_ASYNCHRONOUS, 2487 2488 .of_match_table = qcom_spmi_regulator_match, 2488 2489 }, 2489 2490 .probe = qcom_spmi_regulator_probe,
+1
drivers/regulator/rc5t583-regulator.c
··· 149 149 static struct platform_driver rc5t583_regulator_driver = { 150 150 .driver = { 151 151 .name = "rc5t583-regulator", 152 + .probe_type = PROBE_PREFER_ASYNCHRONOUS, 152 153 }, 153 154 .probe = rc5t583_regulator_probe, 154 155 };
+2 -1
drivers/regulator/rk808-regulator.c
··· 1354 1354 static struct platform_driver rk808_regulator_driver = { 1355 1355 .probe = rk808_regulator_probe, 1356 1356 .driver = { 1357 - .name = "rk808-regulator" 1357 + .name = "rk808-regulator", 1358 + .probe_type = PROBE_PREFER_ASYNCHRONOUS, 1358 1359 }, 1359 1360 }; 1360 1361
+1
drivers/regulator/rn5t618-regulator.c
··· 143 143 .probe = rn5t618_regulator_probe, 144 144 .driver = { 145 145 .name = "rn5t618-regulator", 146 + .probe_type = PROBE_PREFER_ASYNCHRONOUS, 146 147 }, 147 148 }; 148 149
+1
drivers/regulator/rt5033-regulator.c
··· 124 124 static struct platform_driver rt5033_regulator_driver = { 125 125 .driver = { 126 126 .name = "rt5033-regulator", 127 + .probe_type = PROBE_PREFER_ASYNCHRONOUS, 127 128 }, 128 129 .probe = rt5033_regulator_probe, 129 130 .id_table = rt5033_regulator_id,
+1
drivers/regulator/s2mpa01.c
··· 376 376 static struct platform_driver s2mpa01_pmic_driver = { 377 377 .driver = { 378 378 .name = "s2mpa01-pmic", 379 + .probe_type = PROBE_PREFER_ASYNCHRONOUS, 379 380 }, 380 381 .probe = s2mpa01_pmic_probe, 381 382 .id_table = s2mpa01_pmic_id,
+1
drivers/regulator/s2mps11.c
··· 1238 1238 static struct platform_driver s2mps11_pmic_driver = { 1239 1239 .driver = { 1240 1240 .name = "s2mps11-pmic", 1241 + .probe_type = PROBE_PREFER_ASYNCHRONOUS, 1241 1242 }, 1242 1243 .probe = s2mps11_pmic_probe, 1243 1244 .id_table = s2mps11_pmic_id,
+1
drivers/regulator/s5m8767.c
··· 999 999 static struct platform_driver s5m8767_pmic_driver = { 1000 1000 .driver = { 1001 1001 .name = "s5m8767-pmic", 1002 + .probe_type = PROBE_PREFER_ASYNCHRONOUS, 1002 1003 }, 1003 1004 .probe = s5m8767_pmic_probe, 1004 1005 .id_table = s5m8767_pmic_id,
+1
drivers/regulator/sky81452-regulator.c
··· 79 79 static struct platform_driver sky81452_reg_driver = { 80 80 .driver = { 81 81 .name = "sky81452-regulator", 82 + .probe_type = PROBE_PREFER_ASYNCHRONOUS, 82 83 }, 83 84 .probe = sky81452_reg_probe, 84 85 };
+1
drivers/regulator/stm32-vrefbuf.c
··· 285 285 .remove = stm32_vrefbuf_remove, 286 286 .driver = { 287 287 .name = "stm32-vrefbuf", 288 + .probe_type = PROBE_PREFER_ASYNCHRONOUS, 288 289 .of_match_table = of_match_ptr(stm32_vrefbuf_of_match), 289 290 .pm = &stm32_vrefbuf_pm_ops, 290 291 },
+1
drivers/regulator/stw481x-vmmc.c
··· 95 95 static struct platform_driver stw481x_vmmc_regulator_driver = { 96 96 .driver = { 97 97 .name = "stw481x-vmmc-regulator", 98 + .probe_type = PROBE_PREFER_ASYNCHRONOUS, 98 99 .of_match_table = stw481x_vmmc_match, 99 100 }, 100 101 .probe = stw481x_vmmc_regulator_probe,
+1
drivers/regulator/ti-abb-regulator.c
··· 865 865 .probe = ti_abb_probe, 866 866 .driver = { 867 867 .name = "ti_abb", 868 + .probe_type = PROBE_PREFER_ASYNCHRONOUS, 868 869 .of_match_table = of_match_ptr(ti_abb_of_match), 869 870 }, 870 871 };
+1
drivers/regulator/tps51632-regulator.c
··· 351 351 static struct i2c_driver tps51632_i2c_driver = { 352 352 .driver = { 353 353 .name = "tps51632", 354 + .probe_type = PROBE_PREFER_ASYNCHRONOUS, 354 355 .of_match_table = of_match_ptr(tps51632_of_match), 355 356 }, 356 357 .probe_new = tps51632_probe,
+1
drivers/regulator/tps6105x-regulator.c
··· 93 93 static struct platform_driver tps6105x_regulator_driver = { 94 94 .driver = { 95 95 .name = "tps6105x-regulator", 96 + .probe_type = PROBE_PREFER_ASYNCHRONOUS, 96 97 }, 97 98 .probe = tps6105x_regulator_probe, 98 99 };
+1
drivers/regulator/tps62360-regulator.c
··· 488 488 static struct i2c_driver tps62360_i2c_driver = { 489 489 .driver = { 490 490 .name = "tps62360", 491 + .probe_type = PROBE_PREFER_ASYNCHRONOUS, 491 492 .of_match_table = of_match_ptr(tps62360_of_match), 492 493 }, 493 494 .probe_new = tps62360_probe,
+1
drivers/regulator/tps65023-regulator.c
··· 334 334 static struct i2c_driver tps_65023_i2c_driver = { 335 335 .driver = { 336 336 .name = "tps65023", 337 + .probe_type = PROBE_PREFER_ASYNCHRONOUS, 337 338 .of_match_table = of_match_ptr(tps65023_of_match), 338 339 }, 339 340 .probe_new = tps_65023_probe,
+1
drivers/regulator/tps6507x-regulator.c
··· 438 438 static struct platform_driver tps6507x_pmic_driver = { 439 439 .driver = { 440 440 .name = "tps6507x-pmic", 441 + .probe_type = PROBE_PREFER_ASYNCHRONOUS, 441 442 }, 442 443 .probe = tps6507x_pmic_probe, 443 444 };
+1
drivers/regulator/tps65086-regulator.c
··· 235 235 static struct platform_driver tps65086_regulator_driver = { 236 236 .driver = { 237 237 .name = "tps65086-regulator", 238 + .probe_type = PROBE_PREFER_ASYNCHRONOUS, 238 239 }, 239 240 .probe = tps65086_regulator_probe, 240 241 .id_table = tps65086_regulator_id_table,
+1
drivers/regulator/tps65090-regulator.c
··· 511 511 static struct platform_driver tps65090_regulator_driver = { 512 512 .driver = { 513 513 .name = "tps65090-pmic", 514 + .probe_type = PROBE_PREFER_ASYNCHRONOUS, 514 515 }, 515 516 .probe = tps65090_regulator_probe, 516 517 };
+1
drivers/regulator/tps65132-regulator.c
··· 270 270 static struct i2c_driver tps65132_i2c_driver = { 271 271 .driver = { 272 272 .name = "tps65132", 273 + .probe_type = PROBE_PREFER_ASYNCHRONOUS, 273 274 }, 274 275 .probe_new = tps65132_probe, 275 276 .id_table = tps65132_id,
+1
drivers/regulator/tps65217-regulator.c
··· 258 258 static struct platform_driver tps65217_regulator_driver = { 259 259 .driver = { 260 260 .name = "tps65217-pmic", 261 + .probe_type = PROBE_PREFER_ASYNCHRONOUS, 261 262 }, 262 263 .probe = tps65217_regulator_probe, 263 264 };
+1
drivers/regulator/tps65218-regulator.c
··· 349 349 static struct platform_driver tps65218_regulator_driver = { 350 350 .driver = { 351 351 .name = "tps65218-pmic", 352 + .probe_type = PROBE_PREFER_ASYNCHRONOUS, 352 353 }, 353 354 .probe = tps65218_regulator_probe, 354 355 .id_table = tps65218_regulator_id_table,
+1
drivers/regulator/tps6524x-regulator.c
··· 628 628 .probe = pmic_probe, 629 629 .driver = { 630 630 .name = "tps6524x", 631 + .probe_type = PROBE_PREFER_ASYNCHRONOUS, 631 632 }, 632 633 }; 633 634
+1
drivers/regulator/tps6586x-regulator.c
··· 520 520 static struct platform_driver tps6586x_regulator_driver = { 521 521 .driver = { 522 522 .name = "tps6586x-regulator", 523 + .probe_type = PROBE_PREFER_ASYNCHRONOUS, 523 524 }, 524 525 .probe = tps6586x_regulator_probe, 525 526 };
+1
drivers/regulator/tps65910-regulator.c
··· 1255 1255 static struct platform_driver tps65910_driver = { 1256 1256 .driver = { 1257 1257 .name = "tps65910-pmic", 1258 + .probe_type = PROBE_PREFER_ASYNCHRONOUS, 1258 1259 }, 1259 1260 .probe = tps65910_probe, 1260 1261 .shutdown = tps65910_shutdown,
+1
drivers/regulator/tps65912-regulator.c
··· 150 150 static struct platform_driver tps65912_regulator_driver = { 151 151 .driver = { 152 152 .name = "tps65912-regulator", 153 + .probe_type = PROBE_PREFER_ASYNCHRONOUS, 153 154 }, 154 155 .probe = tps65912_regulator_probe, 155 156 .id_table = tps65912_regulator_id_table,
+1
drivers/regulator/twl-regulator.c
··· 656 656 */ 657 657 .driver = { 658 658 .name = "twl4030_reg", 659 + .probe_type = PROBE_PREFER_ASYNCHRONOUS, 659 660 .of_match_table = of_match_ptr(twl_of_match), 660 661 }, 661 662 };
+1
drivers/regulator/twl6030-regulator.c
··· 765 765 */ 766 766 .driver = { 767 767 .name = "twl6030_reg", 768 + .probe_type = PROBE_PREFER_ASYNCHRONOUS, 768 769 .of_match_table = of_match_ptr(twl_of_match), 769 770 }, 770 771 };
+1
drivers/regulator/userspace-consumer.c
··· 216 216 .remove = regulator_userspace_consumer_remove, 217 217 .driver = { 218 218 .name = "reg-userspace-consumer", 219 + .probe_type = PROBE_PREFER_ASYNCHRONOUS, 219 220 .of_match_table = regulator_userspace_consumer_of_match, 220 221 }, 221 222 };
+1
drivers/regulator/vctrl-regulator.c
··· 543 543 .probe = vctrl_probe, 544 544 .driver = { 545 545 .name = "vctrl-regulator", 546 + .probe_type = PROBE_PREFER_ASYNCHRONOUS, 546 547 .of_match_table = of_match_ptr(vctrl_of_match), 547 548 }, 548 549 };
+1
drivers/regulator/vexpress-regulator.c
··· 88 88 .probe = vexpress_regulator_probe, 89 89 .driver = { 90 90 .name = DRVNAME, 91 + .probe_type = PROBE_PREFER_ASYNCHRONOUS, 91 92 .of_match_table = vexpress_regulator_of_match, 92 93 }, 93 94 };
+1
drivers/regulator/virtual.c
··· 362 362 .remove = regulator_virtual_remove, 363 363 .driver = { 364 364 .name = "reg-virt-consumer", 365 + .probe_type = PROBE_PREFER_ASYNCHRONOUS, 365 366 .of_match_table = of_match_ptr(regulator_virtual_consumer_of_match), 366 367 }, 367 368 };
+4
drivers/regulator/wm831x-dcdc.c
··· 505 505 .probe = wm831x_buckv_probe, 506 506 .driver = { 507 507 .name = "wm831x-buckv", 508 + .probe_type = PROBE_PREFER_ASYNCHRONOUS, 508 509 }, 509 510 }; 510 511 ··· 633 632 .probe = wm831x_buckp_probe, 634 633 .driver = { 635 634 .name = "wm831x-buckp", 635 + .probe_type = PROBE_PREFER_ASYNCHRONOUS, 636 636 }, 637 637 }; 638 638 ··· 749 747 .probe = wm831x_boostp_probe, 750 748 .driver = { 751 749 .name = "wm831x-boostp", 750 + .probe_type = PROBE_PREFER_ASYNCHRONOUS, 752 751 }, 753 752 }; 754 753 ··· 825 822 .probe = wm831x_epe_probe, 826 823 .driver = { 827 824 .name = "wm831x-epe", 825 + .probe_type = PROBE_PREFER_ASYNCHRONOUS, 828 826 }, 829 827 }; 830 828
+1
drivers/regulator/wm831x-isink.c
··· 189 189 .probe = wm831x_isink_probe, 190 190 .driver = { 191 191 .name = "wm831x-isink", 192 + .probe_type = PROBE_PREFER_ASYNCHRONOUS, 192 193 }, 193 194 }; 194 195
+3
drivers/regulator/wm831x-ldo.c
··· 303 303 .probe = wm831x_gp_ldo_probe, 304 304 .driver = { 305 305 .name = "wm831x-ldo", 306 + .probe_type = PROBE_PREFER_ASYNCHRONOUS, 306 307 }, 307 308 }; 308 309 ··· 513 512 .probe = wm831x_aldo_probe, 514 513 .driver = { 515 514 .name = "wm831x-aldo", 515 + .probe_type = PROBE_PREFER_ASYNCHRONOUS, 516 516 }, 517 517 }; 518 518 ··· 647 645 .probe = wm831x_alive_ldo_probe, 648 646 .driver = { 649 647 .name = "wm831x-alive-ldo", 648 + .probe_type = PROBE_PREFER_ASYNCHRONOUS, 650 649 }, 651 650 }; 652 651
+1
drivers/regulator/wm8350-regulator.c
··· 1309 1309 .remove = wm8350_regulator_remove, 1310 1310 .driver = { 1311 1311 .name = "wm8350-regulator", 1312 + .probe_type = PROBE_PREFER_ASYNCHRONOUS, 1312 1313 }, 1313 1314 }; 1314 1315
+1
drivers/regulator/wm8400-regulator.c
··· 223 223 static struct platform_driver wm8400_regulator_driver = { 224 224 .driver = { 225 225 .name = "wm8400-regulator", 226 + .probe_type = PROBE_PREFER_ASYNCHRONOUS, 226 227 }, 227 228 .probe = wm8400_regulator_probe, 228 229 };
+1
drivers/regulator/wm8994-regulator.c
··· 227 227 .probe = wm8994_ldo_probe, 228 228 .driver = { 229 229 .name = "wm8994-ldo", 230 + .probe_type = PROBE_PREFER_ASYNCHRONOUS, 230 231 }, 231 232 }; 232 233