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

pwm: Always allocate PWM chip base ID dynamically

Since commit 5e5da1e9fbee ("pwm: ab8500: Explicitly allocate pwm chip
base dynamically") all drivers use dynamic ID allocation explicitly. New
drivers are supposed to do the same, so remove support for driver
specified base IDs and drop all assignments in the low-level drivers.

Signed-off-by: Uwe Kleine-König <u.kleine-koenig@pengutronix.de>
Signed-off-by: Thierry Reding <thierry.reding@gmail.com>

authored by

Uwe Kleine-König and committed by
Thierry Reding
f9a8ee8c 5a43c201

+7 -72
+7 -18
drivers/pwm/core.c
··· 37 37 return radix_tree_lookup(&pwm_tree, pwm); 38 38 } 39 39 40 - static int alloc_pwms(int pwm, unsigned int count) 40 + static int alloc_pwms(unsigned int count) 41 41 { 42 - unsigned int from = 0; 43 42 unsigned int start; 44 43 45 - if (pwm >= MAX_PWMS) 46 - return -EINVAL; 47 - 48 - if (pwm >= 0) 49 - from = pwm; 50 - 51 - start = bitmap_find_next_zero_area(allocated_pwms, MAX_PWMS, from, 44 + start = bitmap_find_next_zero_area(allocated_pwms, MAX_PWMS, 0, 52 45 count, 0); 53 - 54 - if (pwm >= 0 && start != pwm) 55 - return -EEXIST; 56 46 57 47 if (start + count > MAX_PWMS) 58 48 return -ENOSPC; ··· 254 264 * @chip: the PWM chip to add 255 265 * @polarity: initial polarity of PWM channels 256 266 * 257 - * Register a new PWM chip. If chip->base < 0 then a dynamically assigned base 258 - * will be used. The initial polarity for all channels is specified by the 259 - * @polarity parameter. 267 + * Register a new PWM chip. The initial polarity for all channels is specified 268 + * by the @polarity parameter. 260 269 * 261 270 * Returns: 0 on success or a negative error code on failure. 262 271 */ ··· 274 285 275 286 mutex_lock(&pwm_lock); 276 287 277 - ret = alloc_pwms(chip->base, chip->npwm); 288 + ret = alloc_pwms(chip->npwm); 278 289 if (ret < 0) 279 290 goto out; 291 + 292 + chip->base = ret; 280 293 281 294 chip->pwms = kcalloc(chip->npwm, sizeof(*pwm), GFP_KERNEL); 282 295 if (!chip->pwms) { 283 296 ret = -ENOMEM; 284 297 goto out; 285 298 } 286 - 287 - chip->base = ret; 288 299 289 300 for (i = 0; i < chip->npwm; i++) { 290 301 pwm = &chip->pwms[i];
-1
drivers/pwm/pwm-ab8500.c
··· 98 98 99 99 ab8500->chip.dev = &pdev->dev; 100 100 ab8500->chip.ops = &ab8500_pwm_ops; 101 - ab8500->chip.base = -1; 102 101 ab8500->chip.npwm = 1; 103 102 104 103 err = pwmchip_add(&ab8500->chip);
-1
drivers/pwm/pwm-atmel-hlcdc.c
··· 265 265 chip->hlcdc = hlcdc; 266 266 chip->chip.ops = &atmel_hlcdc_pwm_ops; 267 267 chip->chip.dev = dev; 268 - chip->chip.base = -1; 269 268 chip->chip.npwm = 1; 270 269 chip->chip.of_xlate = of_pwm_xlate_with_flags; 271 270 chip->chip.of_pwm_n_cells = 3;
-1
drivers/pwm/pwm-atmel-tcb.c
··· 454 454 tcbpwm->chip.ops = &atmel_tcb_pwm_ops; 455 455 tcbpwm->chip.of_xlate = of_pwm_xlate_with_flags; 456 456 tcbpwm->chip.of_pwm_n_cells = 3; 457 - tcbpwm->chip.base = -1; 458 457 tcbpwm->chip.npwm = NPWM; 459 458 tcbpwm->channel = channel; 460 459 tcbpwm->regmap = regmap;
-1
drivers/pwm/pwm-atmel.c
··· 429 429 atmel_pwm->chip.ops = &atmel_pwm_ops; 430 430 atmel_pwm->chip.of_xlate = of_pwm_xlate_with_flags; 431 431 atmel_pwm->chip.of_pwm_n_cells = 3; 432 - atmel_pwm->chip.base = -1; 433 432 atmel_pwm->chip.npwm = 4; 434 433 435 434 ret = pwmchip_add(&atmel_pwm->chip);
-1
drivers/pwm/pwm-bcm-iproc.c
··· 209 209 210 210 ip->chip.dev = &pdev->dev; 211 211 ip->chip.ops = &iproc_pwm_ops; 212 - ip->chip.base = -1; 213 212 ip->chip.npwm = 4; 214 213 ip->chip.of_xlate = of_pwm_xlate_with_flags; 215 214 ip->chip.of_pwm_n_cells = 3;
-1
drivers/pwm/pwm-bcm-kona.c
··· 271 271 272 272 kp->chip.dev = &pdev->dev; 273 273 kp->chip.ops = &kona_pwm_ops; 274 - kp->chip.base = -1; 275 274 kp->chip.npwm = 6; 276 275 kp->chip.of_xlate = of_pwm_xlate_with_flags; 277 276 kp->chip.of_pwm_n_cells = 3;
-1
drivers/pwm/pwm-bcm2835.c
··· 158 158 159 159 pc->chip.dev = &pdev->dev; 160 160 pc->chip.ops = &bcm2835_pwm_ops; 161 - pc->chip.base = -1; 162 161 pc->chip.npwm = 2; 163 162 pc->chip.of_xlate = of_pwm_xlate_with_flags; 164 163 pc->chip.of_pwm_n_cells = 3;
-1
drivers/pwm/pwm-berlin.c
··· 206 206 207 207 pwm->chip.dev = &pdev->dev; 208 208 pwm->chip.ops = &berlin_pwm_ops; 209 - pwm->chip.base = -1; 210 209 pwm->chip.npwm = 4; 211 210 pwm->chip.of_xlate = of_pwm_xlate_with_flags; 212 211 pwm->chip.of_pwm_n_cells = 3;
-1
drivers/pwm/pwm-brcmstb.c
··· 258 258 259 259 p->chip.dev = &pdev->dev; 260 260 p->chip.ops = &brcmstb_pwm_ops; 261 - p->chip.base = -1; 262 261 p->chip.npwm = 2; 263 262 264 263 p->base = devm_platform_ioremap_resource(pdev, 0);
-1
drivers/pwm/pwm-clps711x.c
··· 128 128 129 129 priv->chip.ops = &clps711x_pwm_ops; 130 130 priv->chip.dev = &pdev->dev; 131 - priv->chip.base = -1; 132 131 priv->chip.npwm = 2; 133 132 priv->chip.of_xlate = clps711x_pwm_xlate; 134 133 priv->chip.of_pwm_n_cells = 1;
-1
drivers/pwm/pwm-crc.c
··· 168 168 169 169 pwm->chip.dev = &pdev->dev; 170 170 pwm->chip.ops = &crc_pwm_ops; 171 - pwm->chip.base = -1; 172 171 pwm->chip.npwm = 1; 173 172 174 173 /* get the PMIC regmap */
-1
drivers/pwm/pwm-cros-ec.c
··· 253 253 chip->ops = &cros_ec_pwm_ops; 254 254 chip->of_xlate = cros_ec_pwm_xlate; 255 255 chip->of_pwm_n_cells = 1; 256 - chip->base = -1; 257 256 ret = cros_ec_num_pwms(ec); 258 257 if (ret < 0) { 259 258 dev_err(dev, "Couldn't find PWMs: %d\n", ret);
-1
drivers/pwm/pwm-dwc.c
··· 233 233 dwc->chip.dev = dev; 234 234 dwc->chip.ops = &dwc_pwm_ops; 235 235 dwc->chip.npwm = DWC_TIMERS_TOTAL; 236 - dwc->chip.base = -1; 237 236 238 237 ret = pwmchip_add(&dwc->chip); 239 238 if (ret)
-1
drivers/pwm/pwm-ep93xx.c
··· 185 185 186 186 ep93xx_pwm->chip.dev = &pdev->dev; 187 187 ep93xx_pwm->chip.ops = &ep93xx_pwm_ops; 188 - ep93xx_pwm->chip.base = -1; 189 188 ep93xx_pwm->chip.npwm = 1; 190 189 191 190 ret = pwmchip_add(&ep93xx_pwm->chip);
-1
drivers/pwm/pwm-fsl-ftm.c
··· 453 453 fpc->chip.ops = &fsl_pwm_ops; 454 454 fpc->chip.of_xlate = of_pwm_xlate_with_flags; 455 455 fpc->chip.of_pwm_n_cells = 3; 456 - fpc->chip.base = -1; 457 456 fpc->chip.npwm = 8; 458 457 459 458 ret = pwmchip_add(&fpc->chip);
-1
drivers/pwm/pwm-hibvt.c
··· 205 205 206 206 pwm_chip->chip.ops = &hibvt_pwm_ops; 207 207 pwm_chip->chip.dev = &pdev->dev; 208 - pwm_chip->chip.base = -1; 209 208 pwm_chip->chip.npwm = soc->num_pwms; 210 209 pwm_chip->chip.of_xlate = of_pwm_xlate_with_flags; 211 210 pwm_chip->chip.of_pwm_n_cells = 3;
-1
drivers/pwm/pwm-img.c
··· 304 304 305 305 pwm->chip.dev = &pdev->dev; 306 306 pwm->chip.ops = &img_pwm_ops; 307 - pwm->chip.base = -1; 308 307 pwm->chip.npwm = IMG_PWM_NPWM; 309 308 310 309 ret = pwmchip_add(&pwm->chip);
-1
drivers/pwm/pwm-imx-tpm.c
··· 363 363 364 364 tpm->chip.dev = &pdev->dev; 365 365 tpm->chip.ops = &imx_tpm_pwm_ops; 366 - tpm->chip.base = -1; 367 366 tpm->chip.of_xlate = of_pwm_xlate_with_flags; 368 367 tpm->chip.of_pwm_n_cells = 3; 369 368
-1
drivers/pwm/pwm-imx1.c
··· 155 155 156 156 imx->chip.ops = &pwm_imx1_ops; 157 157 imx->chip.dev = &pdev->dev; 158 - imx->chip.base = -1; 159 158 imx->chip.npwm = 1; 160 159 161 160 imx->mmio_base = devm_platform_ioremap_resource(pdev, 0);
-1
drivers/pwm/pwm-imx27.c
··· 327 327 328 328 imx->chip.ops = &pwm_imx27_ops; 329 329 imx->chip.dev = &pdev->dev; 330 - imx->chip.base = -1; 331 330 imx->chip.npwm = 1; 332 331 333 332 imx->chip.of_xlate = of_pwm_xlate_with_flags;
-1
drivers/pwm/pwm-intel-lgm.c
··· 207 207 pc->chip.dev = dev; 208 208 pc->chip.ops = &lgm_pwm_ops; 209 209 pc->chip.npwm = 1; 210 - pc->chip.base = -1; 211 210 212 211 lgm_pwm_init(pc); 213 212
-1
drivers/pwm/pwm-iqs620a.c
··· 206 206 207 207 iqs620_pwm->chip.dev = &pdev->dev; 208 208 iqs620_pwm->chip.ops = &iqs620_pwm_ops; 209 - iqs620_pwm->chip.base = -1; 210 209 iqs620_pwm->chip.npwm = 1; 211 210 212 211 mutex_init(&iqs620_pwm->lock);
-1
drivers/pwm/pwm-jz4740.c
··· 244 244 jz4740->chip.dev = dev; 245 245 jz4740->chip.ops = &jz4740_pwm_ops; 246 246 jz4740->chip.npwm = info->num_pwms; 247 - jz4740->chip.base = -1; 248 247 jz4740->chip.of_xlate = of_pwm_xlate_with_flags; 249 248 jz4740->chip.of_pwm_n_cells = 3; 250 249
-1
drivers/pwm/pwm-keembay.c
··· 203 203 if (ret) 204 204 return ret; 205 205 206 - priv->chip.base = -1; 207 206 priv->chip.dev = dev; 208 207 priv->chip.ops = &keembay_pwm_ops; 209 208 priv->chip.npwm = KMB_TOTAL_PWM_CHANNELS;
-1
drivers/pwm/pwm-lp3943.c
··· 275 275 lp3943_pwm->chip.dev = &pdev->dev; 276 276 lp3943_pwm->chip.ops = &lp3943_pwm_ops; 277 277 lp3943_pwm->chip.npwm = LP3943_NUM_PWMS; 278 - lp3943_pwm->chip.base = -1; 279 278 280 279 platform_set_drvdata(pdev, lp3943_pwm); 281 280
-1
drivers/pwm/pwm-lpc18xx-sct.c
··· 370 370 371 371 lpc18xx_pwm->chip.dev = &pdev->dev; 372 372 lpc18xx_pwm->chip.ops = &lpc18xx_pwm_ops; 373 - lpc18xx_pwm->chip.base = -1; 374 373 lpc18xx_pwm->chip.npwm = 16; 375 374 lpc18xx_pwm->chip.of_xlate = of_pwm_xlate_with_flags; 376 375 lpc18xx_pwm->chip.of_pwm_n_cells = 3;
-1
drivers/pwm/pwm-lpc32xx.c
··· 116 116 lpc32xx->chip.dev = &pdev->dev; 117 117 lpc32xx->chip.ops = &lpc32xx_pwm_ops; 118 118 lpc32xx->chip.npwm = 1; 119 - lpc32xx->chip.base = -1; 120 119 121 120 ret = pwmchip_add(&lpc32xx->chip); 122 121 if (ret < 0) {
-1
drivers/pwm/pwm-lpss.c
··· 234 234 235 235 lpwm->chip.dev = dev; 236 236 lpwm->chip.ops = &pwm_lpss_ops; 237 - lpwm->chip.base = -1; 238 237 lpwm->chip.npwm = info->npwm; 239 238 240 239 ret = pwmchip_add(&lpwm->chip);
-1
drivers/pwm/pwm-mediatek.c
··· 263 263 264 264 pc->chip.dev = &pdev->dev; 265 265 pc->chip.ops = &pwm_mediatek_ops; 266 - pc->chip.base = -1; 267 266 pc->chip.npwm = pc->soc->num_pwms; 268 267 269 268 ret = pwmchip_add(&pc->chip);
-1
drivers/pwm/pwm-meson.c
··· 550 550 spin_lock_init(&meson->lock); 551 551 meson->chip.dev = &pdev->dev; 552 552 meson->chip.ops = &meson_pwm_ops; 553 - meson->chip.base = -1; 554 553 meson->chip.npwm = MESON_NUM_PWMS; 555 554 meson->chip.of_xlate = of_pwm_xlate_with_flags; 556 555 meson->chip.of_pwm_n_cells = 3;
-1
drivers/pwm/pwm-mtk-disp.c
··· 202 202 203 203 mdp->chip.dev = &pdev->dev; 204 204 mdp->chip.ops = &mtk_disp_pwm_ops; 205 - mdp->chip.base = -1; 206 205 mdp->chip.npwm = 1; 207 206 208 207 ret = pwmchip_add(&mdp->chip);
-1
drivers/pwm/pwm-mxs.c
··· 140 140 mxs->chip.ops = &mxs_pwm_ops; 141 141 mxs->chip.of_xlate = of_pwm_xlate_with_flags; 142 142 mxs->chip.of_pwm_n_cells = 3; 143 - mxs->chip.base = -1; 144 143 145 144 ret = of_property_read_u32(np, "fsl,pwm-number", &mxs->chip.npwm); 146 145 if (ret < 0) {
-1
drivers/pwm/pwm-omap-dmtimer.c
··· 403 403 404 404 omap->chip.dev = &pdev->dev; 405 405 omap->chip.ops = &pwm_omap_dmtimer_ops; 406 - omap->chip.base = -1; 407 406 omap->chip.npwm = 1; 408 407 omap->chip.of_xlate = of_pwm_xlate_with_flags; 409 408 omap->chip.of_pwm_n_cells = 3;
-1
drivers/pwm/pwm-pca9685.c
··· 493 493 pca->chip.npwm = PCA9685_MAXCHAN + 1; 494 494 495 495 pca->chip.dev = &client->dev; 496 - pca->chip.base = -1; 497 496 498 497 ret = pwmchip_add(&pca->chip); 499 498 if (ret < 0)
-1
drivers/pwm/pwm-pxa.c
··· 184 184 185 185 pwm->chip.dev = &pdev->dev; 186 186 pwm->chip.ops = &pxa_pwm_ops; 187 - pwm->chip.base = -1; 188 187 pwm->chip.npwm = (id->driver_data & HAS_SECONDARY_PWM) ? 2 : 1; 189 188 190 189 if (IS_ENABLED(CONFIG_OF)) {
-1
drivers/pwm/pwm-rcar.c
··· 224 224 225 225 rcar_pwm->chip.dev = &pdev->dev; 226 226 rcar_pwm->chip.ops = &rcar_pwm_ops; 227 - rcar_pwm->chip.base = -1; 228 227 rcar_pwm->chip.npwm = 1; 229 228 230 229 pm_runtime_enable(&pdev->dev);
-1
drivers/pwm/pwm-renesas-tpu.c
··· 410 410 tpu->chip.ops = &tpu_pwm_ops; 411 411 tpu->chip.of_xlate = of_pwm_xlate_with_flags; 412 412 tpu->chip.of_pwm_n_cells = 3; 413 - tpu->chip.base = -1; 414 413 tpu->chip.npwm = TPU_CHANNEL_MAX; 415 414 416 415 pm_runtime_enable(&pdev->dev);
-1
drivers/pwm/pwm-rockchip.c
··· 352 352 pc->data = id->data; 353 353 pc->chip.dev = &pdev->dev; 354 354 pc->chip.ops = &rockchip_pwm_ops; 355 - pc->chip.base = -1; 356 355 pc->chip.npwm = 1; 357 356 358 357 if (pc->data->supports_polarity) {
-1
drivers/pwm/pwm-samsung.c
··· 519 519 520 520 chip->chip.dev = &pdev->dev; 521 521 chip->chip.ops = &pwm_samsung_ops; 522 - chip->chip.base = -1; 523 522 chip->chip.npwm = SAMSUNG_PWM_NUM; 524 523 chip->inverter_mask = BIT(SAMSUNG_PWM_NUM) - 1; 525 524
-1
drivers/pwm/pwm-sifive.c
··· 244 244 chip->ops = &pwm_sifive_ops; 245 245 chip->of_xlate = of_pwm_xlate_with_flags; 246 246 chip->of_pwm_n_cells = 3; 247 - chip->base = -1; 248 247 chip->npwm = 4; 249 248 250 249 ddata->regs = devm_platform_ioremap_resource(pdev, 0);
-1
drivers/pwm/pwm-sl28cpld.c
··· 229 229 chip = &priv->pwm_chip; 230 230 chip->dev = &pdev->dev; 231 231 chip->ops = &sl28cpld_pwm_ops; 232 - chip->base = -1; 233 232 chip->npwm = 1; 234 233 235 234 platform_set_drvdata(pdev, priv);
-1
drivers/pwm/pwm-spear.c
··· 193 193 194 194 pc->chip.dev = &pdev->dev; 195 195 pc->chip.ops = &spear_pwm_ops; 196 - pc->chip.base = -1; 197 196 pc->chip.npwm = NUM_PWM; 198 197 199 198 ret = clk_prepare(pc->clk);
-1
drivers/pwm/pwm-sprd.c
··· 268 268 269 269 spc->chip.dev = &pdev->dev; 270 270 spc->chip.ops = &sprd_pwm_ops; 271 - spc->chip.base = -1; 272 271 spc->chip.npwm = spc->num_pwms; 273 272 274 273 ret = pwmchip_add(&spc->chip);
-1
drivers/pwm/pwm-sti.c
··· 619 619 620 620 pc->chip.dev = dev; 621 621 pc->chip.ops = &sti_pwm_ops; 622 - pc->chip.base = -1; 623 622 pc->chip.npwm = pc->cdata->pwm_num_devs; 624 623 625 624 ret = pwmchip_add(&pc->chip);
-1
drivers/pwm/pwm-stm32-lp.c
··· 205 205 206 206 priv->regmap = ddata->regmap; 207 207 priv->clk = ddata->clk; 208 - priv->chip.base = -1; 209 208 priv->chip.dev = &pdev->dev; 210 209 priv->chip.ops = &stm32_pwm_lp_ops; 211 210 priv->chip.npwm = 1;
-1
drivers/pwm/pwm-stm32.c
··· 633 633 634 634 stm32_pwm_detect_complementary(priv); 635 635 636 - priv->chip.base = -1; 637 636 priv->chip.dev = dev; 638 637 priv->chip.ops = &stm32pwm_ops; 639 638 priv->chip.npwm = stm32_pwm_detect_channels(priv);
-1
drivers/pwm/pwm-stmpe.c
··· 278 278 279 279 pwm->stmpe = stmpe; 280 280 pwm->chip.dev = &pdev->dev; 281 - pwm->chip.base = -1; 282 281 283 282 if (stmpe->partnum == STMPE2401 || stmpe->partnum == STMPE2403) { 284 283 pwm->chip.ops = &stmpe_24xx_pwm_ops;
-1
drivers/pwm/pwm-sun4i.c
··· 459 459 460 460 pwm->chip.dev = &pdev->dev; 461 461 pwm->chip.ops = &sun4i_pwm_ops; 462 - pwm->chip.base = -1; 463 462 pwm->chip.npwm = pwm->data->npwm; 464 463 pwm->chip.of_xlate = of_pwm_xlate_with_flags; 465 464 pwm->chip.of_pwm_n_cells = 3;
-1
drivers/pwm/pwm-tegra.c
··· 285 285 286 286 pwm->chip.dev = &pdev->dev; 287 287 pwm->chip.ops = &tegra_pwm_ops; 288 - pwm->chip.base = -1; 289 288 pwm->chip.npwm = pwm->soc->num_channels; 290 289 291 290 ret = pwmchip_add(&pwm->chip);
-1
drivers/pwm/pwm-tiecap.c
··· 226 226 pc->chip.ops = &ecap_pwm_ops; 227 227 pc->chip.of_xlate = of_pwm_xlate_with_flags; 228 228 pc->chip.of_pwm_n_cells = 3; 229 - pc->chip.base = -1; 230 229 pc->chip.npwm = 1; 231 230 232 231 pc->mmio_base = devm_platform_ioremap_resource(pdev, 0);
-1
drivers/pwm/pwm-tiehrpwm.c
··· 449 449 pc->chip.ops = &ehrpwm_pwm_ops; 450 450 pc->chip.of_xlate = of_pwm_xlate_with_flags; 451 451 pc->chip.of_pwm_n_cells = 3; 452 - pc->chip.base = -1; 453 452 pc->chip.npwm = NUM_PWM_CHANNEL; 454 453 455 454 pc->mmio_base = devm_platform_ioremap_resource(pdev, 0);
-1
drivers/pwm/pwm-twl-led.c
··· 291 291 } 292 292 293 293 twl->chip.dev = &pdev->dev; 294 - twl->chip.base = -1; 295 294 296 295 mutex_init(&twl->mutex); 297 296
-1
drivers/pwm/pwm-twl.c
··· 310 310 twl->chip.ops = &twl6030_pwm_ops; 311 311 312 312 twl->chip.dev = &pdev->dev; 313 - twl->chip.base = -1; 314 313 twl->chip.npwm = 2; 315 314 316 315 mutex_init(&twl->mutex);
-1
drivers/pwm/pwm-vt8500.c
··· 209 209 chip->chip.ops = &vt8500_pwm_ops; 210 210 chip->chip.of_xlate = of_pwm_xlate_with_flags; 211 211 chip->chip.of_pwm_n_cells = 3; 212 - chip->chip.base = -1; 213 212 chip->chip.npwm = VT8500_NR_PWMS; 214 213 215 214 chip->clk = devm_clk_get(&pdev->dev, NULL);