[PATCH v3 0/6] drm/tilcdc: Fix cpufreq transition related race + cleanu

2016-09-07 Thread Tomi Valkeinen
On 07/09/16 11:59, Jyri Sarha wrote:
> Changes since v2:
> - Fix typo from "drm/tilcdc: Clean up LCDC functional clock rate setting code"
>   description
> - Split "drm/tilcdc: Take CRTC lock when calling tilcdc_crtc_disable()" out
>   of "drm/tilcdc: WARN if CRTC is touched without CRTC lock"
> 
> Changes since v1:
> - Use drm_modeset_lock/unlock_crtc() instead of taking mode config mutex
> - Rewrote decsription for old "drm/tilcdc: Add tilcdc_crtc_set_clk() and
>   cleanup cpufreq_transition()" which now called "drm/tilcdc: Clean up LCDC
>   functional clock rate setting code"
> - Dropped "drm/tilcdc: Add mutex to protect crtc enable and disable routines"
> - Added "drm/tilcdc: Flush flip-work workqueue before drm_flip_work_cleanup()"
> - Added "drm/tilcdc: Remove unnecessary tilcdc_crtc_disable() from
>  tilcdc_unload()"
> - Added "drm/tilcdc: WARN if CRTC is touched without CRTC lock"
> 
> There was a race between mode_set_nofb() and cpufreq_transition()
> calling tilcdc_crtc_update_clk() without locking.
> 
> The first patch fixes the race in with a minimal change by taking
> the drm CRTC lock for the duration of the clock update.
> 
> The second patch goes a step forward and cleans up the clock setting
> code a bit.
> 
> BR,
> Jyri
> 
> 
> Jyri Sarha (6):
>   drm/tilcdc: Take crtc modeset lock while updating the crtc clock rate
>   drm/tilcdc: Clean up LCDC functional clock rate setting code
>   drm/tilcdc: Flush flip-work workqueue before drm_flip_work_cleanup()
>   drm/tilcdc: Remove unnecessary tilcdc_crtc_disable() from
> tilcdc_unload()
>   drm/tilcdc: Take CRTC lock when calling tilcdc_crtc_disable()
>   drm/tilcdc: WARN if CRTC is touched without CRTC lock
> 
>  drivers/gpu/drm/tilcdc/tilcdc_crtc.c | 91 
> +++-
>  drivers/gpu/drm/tilcdc/tilcdc_drv.c  | 12 ++---
>  drivers/gpu/drm/tilcdc/tilcdc_drv.h  |  1 -
>  3 files changed, 62 insertions(+), 42 deletions(-)
> 

Reviewed-by: Tomi Valkeinen 

 Tomi

-- next part --
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 819 bytes
Desc: OpenPGP digital signature
URL: 



[PATCH v3 0/6] drm/tilcdc: Fix cpufreq transition related race + cleanu

2016-09-07 Thread Jyri Sarha
Changes since v2:
- Fix typo from "drm/tilcdc: Clean up LCDC functional clock rate setting code"
  description
- Split "drm/tilcdc: Take CRTC lock when calling tilcdc_crtc_disable()" out
  of "drm/tilcdc: WARN if CRTC is touched without CRTC lock"

Changes since v1:
- Use drm_modeset_lock/unlock_crtc() instead of taking mode config mutex
- Rewrote decsription for old "drm/tilcdc: Add tilcdc_crtc_set_clk() and
  cleanup cpufreq_transition()" which now called "drm/tilcdc: Clean up LCDC
  functional clock rate setting code"
- Dropped "drm/tilcdc: Add mutex to protect crtc enable and disable routines"
- Added "drm/tilcdc: Flush flip-work workqueue before drm_flip_work_cleanup()"
- Added "drm/tilcdc: Remove unnecessary tilcdc_crtc_disable() from
 tilcdc_unload()"
- Added "drm/tilcdc: WARN if CRTC is touched without CRTC lock"

There was a race between mode_set_nofb() and cpufreq_transition()
calling tilcdc_crtc_update_clk() without locking.

The first patch fixes the race in with a minimal change by taking
the drm CRTC lock for the duration of the clock update.

The second patch goes a step forward and cleans up the clock setting
code a bit.

BR,
Jyri


Jyri Sarha (6):
  drm/tilcdc: Take crtc modeset lock while updating the crtc clock rate
  drm/tilcdc: Clean up LCDC functional clock rate setting code
  drm/tilcdc: Flush flip-work workqueue before drm_flip_work_cleanup()
  drm/tilcdc: Remove unnecessary tilcdc_crtc_disable() from
tilcdc_unload()
  drm/tilcdc: Take CRTC lock when calling tilcdc_crtc_disable()
  drm/tilcdc: WARN if CRTC is touched without CRTC lock

 drivers/gpu/drm/tilcdc/tilcdc_crtc.c | 91 +++-
 drivers/gpu/drm/tilcdc/tilcdc_drv.c  | 12 ++---
 drivers/gpu/drm/tilcdc/tilcdc_drv.h  |  1 -
 3 files changed, 62 insertions(+), 42 deletions(-)

-- 
1.9.1