drm/radeon: Use hweight32
Subsystems (4)
PATCH 1/1 drm/radeon: Use hweight32
Use hweight32 instead of counting for each bit
Signed-off-by Akinobu Mita <[email protected]>
Cc David Airlie <[email protected]>
--- drivers/gpu/drm/radeon/r600.c | 8 +------- drivers/gpu/drm/radeon/r600_cp.c | 7 +------ 2 files changed, 2 insertions(+), 13 deletions(-)
drivers/gpu/drm/radeon/r600.c +1 -7
@@ -1424,13 +1424,7 @@ u32 r6xx_remap_render_backend(struct radeon_device *rdev,int r600_count_pipe_bits (uint32_t val) { -int i, ret =0 ; - -for (i =0 ; i <32 ; i++) { - ret += val &1 ; - val >>=1 ; - } -return ret; +return hweight32 (val); }static void r600_gpu_init (struct radeon_device *rdev)
drivers/gpu/drm/radeon/r600_cp.c +1 -6
@@ -721,12 +721,7 @@ static u32 r600_get_tile_pipe_to_backend_map(u32 num_tile_pipes,static int r600_count_pipe_bits (uint32_t val) { -int i, ret =0 ; -for (i =0 ; i <32 ; i++) { - ret += val &1 ; - val >>=1 ; - } -return ret; +return hweight32 (val); } static void r600_gfx_init(struct drm_device *dev,
Signature · 1 line
1.7.11.7
PATCH 1/1 drm: use memchr_inv()
Use memchr_inv() to check the specified memory region is filled with zero.
Signed-off-by Akinobu Mita <[email protected]>
Cc David Airlie <[email protected]>
--- drivers/gpu/drm/drm_edid.c | 7 ++----- 1 file changed, 2 insertions(+), 5 deletions(-)
drivers/gpu/drm/drm_edid.c +2 -5
@@ -307,12 +307,9 @@ drm_do_probe_ddc_edid(struct i2c_adapter *adapter, unsigned char *buf,static bool drm_edid_is_zero (u8 *in_edid,int length) { -int i; -u32 *raw_edid = (u32 *)in_edid; +if (memchr_inv (in_edid,0 , length)) +return false; -for (i =0 ; i < length /4 ; i++) -if (*(raw_edid + i) !=0 ) -return false;return true; }
Signature · 1 line
1.7.11.7
PATCH 1/1 drm/ttm: remove unneeded preempt_disable/enable
In reply to Akinobu MitaIt is unnecessary to disable preemption explicitly while calling copy_highpage(). Because copy_highpage() will do it again through kmap_atomic/kunmap_atomic.
Signed-off-by Akinobu Mita <[email protected]>
Cc David Airlie <[email protected]>
--- drivers/gpu/drm/ttm/ttm_tt.c | 4 ---- 1 file changed, 4 deletions(-)
drivers/gpu/drm/ttm/ttm_tt.c +0 -4
@@ -308,9 +308,7 @@ int ttm_tt_swapin(struct ttm_tt *ttm)if (unlikely (to_page ==NULL )) goto out_err; -preempt_disable ();copy_highpage (to_page, from_page); -preempt_enable ();page_cache_release (from_page); }
@@ -358,9 +356,7 @@ int ttm_tt_swapout(struct ttm_tt *ttm, struct file *persistent_swap_storage) ret =PTR_ERR (to_page); goto out_err; } -preempt_disable ();copy_highpage (to_page, from_page); -preempt_enable ();set_page_dirty (to_page);mark_page_accessed (to_page);page_cache_release (to_page);
Signature · 1 line
1.7.11.7
Re: [PATCH] drm/ttm: remove unneeded preempt_disable/enable
Quoted 26 lines · Akinobu Mita
It is unnecessary to disable preemption explicitly while calling
copy_highpage(). Becausecopy_highpage()will do it again through kmap_atomic/kunmap_atomic.Signed-off-by Akinobu Mita <[email protected]>Cc David Airlie <[email protected]>--- drivers/gpu/drm/ttm/ttm_tt.c | 4 ---- 1 file changed, 4 deletions(-)drivers/gpu/drm/ttm/ttm_tt.c +0
-2@@ -308,9 +308,7 @@ int ttm_tt_swapin(struct ttm_tt *ttm)if (unlikely (to_page ==NULL )) goto out_err; -preempt_disable ();copy_highpage (to_page, from_page); -preempt_enable ();page_cache_release (from_page); }
drivers/gpu/drm/ttm/ttm_tt.c int ttm_tt_swapout(struct ttm_tt *ttm, struct file *persistent_swap_storage) · line 362
Quoted 9 lines
drivers/gpu/drm/ttm/ttm_tt.c +0
-2@@ -358,9 +356,7 @@ int ttm_tt_swapout(struct ttm_tt *ttm, struct file *persistent_swap_storage) ret =PTR_ERR (to_page); goto out_err; } -preempt_disable ();copy_highpage (to_page, from_page); -preempt_enable ();set_page_dirty (to_page);mark_page_accessed (to_page);page_cache_release (to_page);
Reviewed-by Thomas Hellstrom <[email protected]>