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

Configure Feed

Select the types of activity you want to include in your feed.

drm/solomon: Move calls to drm_gem_fb_end_cpu*()

Calls to drm_gem_fb_end_cpu*() should be between the calls to
drm_dev*(), and not hidden inside some other function. This way the
critical section code is visible at a glance, keeping it short and
improving maintainability.

Reviewed-by: Javier Martinez Canillas <javierm@redhat.com>
Reviewed-by: Thomas Zimmermann <tzimmermann@suse.de>
Signed-off-by: Iker Pedrosa <ikerpedrosam@gmail.com>
Link: https://lore.kernel.org/r/20250920-improve-ssd130x-v2-1-77721e87ae08@gmail.com
Signed-off-by: Javier Martinez Canillas <javierm@redhat.com>

authored by

Iker Pedrosa and committed by
Javier Martinez Canillas
2258f039 2007e210

+18 -18
+18 -18
drivers/gpu/drm/solomon/ssd130x.c
··· 1016 1016 1017 1017 dst_pitch = DIV_ROUND_UP(drm_rect_width(rect), 8); 1018 1018 1019 - ret = drm_gem_fb_begin_cpu_access(fb, DMA_FROM_DEVICE); 1020 - if (ret) 1021 - return ret; 1022 - 1023 1019 iosys_map_set_vaddr(&dst, buf); 1024 1020 drm_fb_xrgb8888_to_mono(&dst, &dst_pitch, vmap, fb, rect, fmtcnv_state); 1025 - 1026 - drm_gem_fb_end_cpu_access(fb, DMA_FROM_DEVICE); 1027 1021 1028 1022 ssd130x_update_rect(ssd130x, rect, buf, data_array); 1029 1023 ··· 1042 1048 1043 1049 dst_pitch = drm_rect_width(rect); 1044 1050 1045 - ret = drm_gem_fb_begin_cpu_access(fb, DMA_FROM_DEVICE); 1046 - if (ret) 1047 - return ret; 1048 - 1049 1051 iosys_map_set_vaddr(&dst, buf); 1050 1052 drm_fb_xrgb8888_to_gray8(&dst, &dst_pitch, vmap, fb, rect, fmtcnv_state); 1051 - 1052 - drm_gem_fb_end_cpu_access(fb, DMA_FROM_DEVICE); 1053 1053 1054 1054 ssd132x_update_rect(ssd130x, rect, buf, data_array); 1055 1055 ··· 1066 1078 1067 1079 dst_pitch = drm_format_info_min_pitch(fi, 0, drm_rect_width(rect)); 1068 1080 1069 - ret = drm_gem_fb_begin_cpu_access(fb, DMA_FROM_DEVICE); 1070 - if (ret) 1071 - return ret; 1072 - 1073 1081 iosys_map_set_vaddr(&dst, data_array); 1074 1082 drm_fb_xrgb8888_to_rgb332(&dst, &dst_pitch, vmap, fb, rect, fmtcnv_state); 1075 - 1076 - drm_gem_fb_end_cpu_access(fb, DMA_FROM_DEVICE); 1077 1083 1078 1084 ssd133x_update_rect(ssd130x, rect, data_array, dst_pitch); 1079 1085 ··· 1214 1232 if (!drm_dev_enter(drm, &idx)) 1215 1233 return; 1216 1234 1235 + if (drm_gem_fb_begin_cpu_access(fb, DMA_FROM_DEVICE)) 1236 + goto out_drm_dev_exit; 1237 + 1217 1238 drm_atomic_helper_damage_iter_init(&iter, old_plane_state, plane_state); 1218 1239 drm_atomic_for_each_plane_damage(&iter, &damage) { 1219 1240 dst_clip = plane_state->dst; ··· 1230 1245 &shadow_plane_state->fmtcnv_state); 1231 1246 } 1232 1247 1248 + drm_gem_fb_end_cpu_access(fb, DMA_FROM_DEVICE); 1249 + 1250 + out_drm_dev_exit: 1233 1251 drm_dev_exit(idx); 1234 1252 } 1235 1253 ··· 1255 1267 if (!drm_dev_enter(drm, &idx)) 1256 1268 return; 1257 1269 1270 + if (drm_gem_fb_begin_cpu_access(fb, DMA_FROM_DEVICE)) 1271 + goto out_drm_dev_exit; 1272 + 1258 1273 drm_atomic_helper_damage_iter_init(&iter, old_plane_state, plane_state); 1259 1274 drm_atomic_for_each_plane_damage(&iter, &damage) { 1260 1275 dst_clip = plane_state->dst; ··· 1271 1280 &shadow_plane_state->fmtcnv_state); 1272 1281 } 1273 1282 1283 + drm_gem_fb_end_cpu_access(fb, DMA_FROM_DEVICE); 1284 + 1285 + out_drm_dev_exit: 1274 1286 drm_dev_exit(idx); 1275 1287 } 1276 1288 ··· 1295 1301 if (!drm_dev_enter(drm, &idx)) 1296 1302 return; 1297 1303 1304 + if (drm_gem_fb_begin_cpu_access(fb, DMA_FROM_DEVICE)) 1305 + goto out_drm_dev_exit; 1306 + 1298 1307 drm_atomic_helper_damage_iter_init(&iter, old_plane_state, plane_state); 1299 1308 drm_atomic_for_each_plane_damage(&iter, &damage) { 1300 1309 dst_clip = plane_state->dst; ··· 1310 1313 &shadow_plane_state->fmtcnv_state); 1311 1314 } 1312 1315 1316 + drm_gem_fb_end_cpu_access(fb, DMA_FROM_DEVICE); 1317 + 1318 + out_drm_dev_exit: 1313 1319 drm_dev_exit(idx); 1314 1320 } 1315 1321