drm/tilcdc: Clean up LCDC functional clock rate setting code
authorJyri Sarha <jsarha@ti.com>
Tue, 6 Sep 2016 13:19:54 +0000 (16:19 +0300)
committerJyri Sarha <jsarha@ti.com>
Wed, 7 Sep 2016 12:54:40 +0000 (15:54 +0300)
commit642e51677d29c9f21891b571be4473ec482acaf0
treec5ffe3c2821e677d1a8e24d446a8b9d9d97e37de
parenta6b7ebaadb5c8d869908e803e5616922a5096253
drm/tilcdc: Clean up LCDC functional clock rate setting code

Clean up LCDC functional clock rate setting code.

The LCDC functional clock is set by two functions: mode_set_nofb() and
cpufreq_transition().

When tilcdc_crtc_mode_set_nofb() is called in atomic commit phase the
drm atomic helpers have taken all the necessary drm locks and turned
off the crtc, while tilcdc_commit() is keeping LCDC powered on. For
mode_set_nofb() just a simple clock setting function without any
locking or power management code is enough. The new tilcdc_crtc_set_clk()
is implemented for that purpose.

cpufreq_transition() on the other hand is called from outside DRM and
it needs to take the necessary locks and turn off the CRTC while
keeping the LCDC powered. The reimplemented tilcdc_crtc_update_clk()
is for that purpose and it uses the new tilcdc_crtc_set_clk() to
actually set the clock.

Signed-off-by: Jyri Sarha <jsarha@ti.com>
Reviewed-by: Tomi Valkeinen <tomi.valkeinen@ti.com>
drivers/gpu/drm/tilcdc/tilcdc_crtc.c
drivers/gpu/drm/tilcdc/tilcdc_drv.c
drivers/gpu/drm/tilcdc/tilcdc_drv.h