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

drm/panel: simple: Stop tracking prepared/enabled

As talked about in commit d2aacaf07395 ("drm/panel: Check for already
prepared/enabled in drm_panel"), we want to remove needless code from
panel drivers that was storing and double-checking the
prepared/enabled state. Even if someone was relying on the
double-check before, that double-check is now in the core and not
needed in individual drivers.

Acked-by: Linus Walleij <linus.walleij@linaro.org>
Acked-by: Maxime Ripard <mripard@kernel.org>
Acked-by: Sui Jingfeng <sui.jingfeng@linux.dev>
Signed-off-by: Douglas Anderson <dianders@chromium.org>
Link: https://patchwork.freedesktop.org/patch/msgid/20240503143327.RFT.v2.26.I865be97dd393d6ae3c3a3cd1358c95fdbca0fe83@changeid

-27
-27
drivers/gpu/drm/panel/panel-simple.c
··· 138 138 139 139 struct panel_simple { 140 140 struct drm_panel base; 141 - bool enabled; 142 - 143 - bool prepared; 144 141 145 142 ktime_t unprepared_time; 146 143 ··· 287 290 { 288 291 struct panel_simple *p = to_panel_simple(panel); 289 292 290 - if (!p->enabled) 291 - return 0; 292 - 293 293 if (p->desc->delay.disable) 294 294 msleep(p->desc->delay.disable); 295 - 296 - p->enabled = false; 297 295 298 296 return 0; 299 297 } ··· 309 317 310 318 static int panel_simple_unprepare(struct drm_panel *panel) 311 319 { 312 - struct panel_simple *p = to_panel_simple(panel); 313 320 int ret; 314 - 315 - /* Unpreparing when already unprepared is a no-op */ 316 - if (!p->prepared) 317 - return 0; 318 321 319 322 pm_runtime_mark_last_busy(panel->dev); 320 323 ret = pm_runtime_put_autosuspend(panel->dev); 321 324 if (ret < 0) 322 325 return ret; 323 - p->prepared = false; 324 326 325 327 return 0; 326 328 } ··· 342 356 343 357 static int panel_simple_prepare(struct drm_panel *panel) 344 358 { 345 - struct panel_simple *p = to_panel_simple(panel); 346 359 int ret; 347 - 348 - /* Preparing when already prepared is a no-op */ 349 - if (p->prepared) 350 - return 0; 351 360 352 361 ret = pm_runtime_get_sync(panel->dev); 353 362 if (ret < 0) { 354 363 pm_runtime_put_autosuspend(panel->dev); 355 364 return ret; 356 365 } 357 - 358 - p->prepared = true; 359 366 360 367 return 0; 361 368 } ··· 357 378 { 358 379 struct panel_simple *p = to_panel_simple(panel); 359 380 360 - if (p->enabled) 361 - return 0; 362 - 363 381 if (p->desc->delay.enable) 364 382 msleep(p->desc->delay.enable); 365 - 366 - p->enabled = true; 367 383 368 384 return 0; 369 385 } ··· 583 609 if (!panel) 584 610 return -ENOMEM; 585 611 586 - panel->enabled = false; 587 612 panel->desc = desc; 588 613 589 614 panel->supply = devm_regulator_get(dev, "power");