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

drm: Move a few macros away from drm_crtc.h

Now that there's less stuff in there I noticed that I overlooked them.
Sprinkle some docs over them while at it.

Reviewed-by: Sean Paul <seanpaul@chromium.org>
Signed-off-by: Daniel Vetter <daniel.vetter@intel.com>
Link: http://patchwork.freedesktop.org/patch/msgid/20160831160913.12991-2-daniel.vetter@ffwll.ch

+64 -34
+22 -2
include/drm/drm_connector.h
··· 181 181 /** 182 182 * struct drm_connector_state - mutable connector state 183 183 * @connector: backpointer to the connector 184 - * @crtc: CRTC to connect connector to, NULL if disabled 185 184 * @best_encoder: can be used by helpers and drivers to select the encoder 186 185 * @state: backpointer to global drm_atomic_state 187 186 */ 188 187 struct drm_connector_state { 189 188 struct drm_connector *connector; 190 189 191 - struct drm_crtc *crtc; /* do not write directly, use drm_atomic_set_crtc_for_connector() */ 190 + /** 191 + * @crtc: CRTC to connect connector to, NULL if disabled. 192 + * 193 + * Do not change this directly, use drm_atomic_set_crtc_for_connector() 194 + * instead. 195 + */ 196 + struct drm_crtc *crtc; 192 197 193 198 struct drm_encoder *best_encoder; 194 199 ··· 749 744 int drm_mode_connector_set_tile_property(struct drm_connector *connector); 750 745 int drm_mode_connector_update_edid_property(struct drm_connector *connector, 751 746 const struct edid *edid); 747 + 748 + /** 749 + * drm_for_each_connector - iterate over all connectors 750 + * @connector: the loop cursor 751 + * @dev: the DRM device 752 + * 753 + * Iterate over all connectors of @dev. 754 + */ 755 + #define drm_for_each_connector(connector, dev) \ 756 + for (assert_drm_connector_list_read_locked(&(dev)->mode_config), \ 757 + connector = list_first_entry(&(dev)->mode_config.connector_list, \ 758 + struct drm_connector, head); \ 759 + &connector->head != (&(dev)->mode_config.connector_list); \ 760 + connector = list_next_entry(connector, head)) 761 + 752 762 #endif
-32
include/drm/drm_crtc.h
··· 2003 2003 list_for_each_entry((plane), &(dev)->mode_config.plane_list, head) \ 2004 2004 for_each_if ((plane_mask) & (1 << drm_plane_index(plane))) 2005 2005 2006 - /** 2007 - * drm_for_each_encoder_mask - iterate over encoders specified by bitmask 2008 - * @encoder: the loop cursor 2009 - * @dev: the DRM device 2010 - * @encoder_mask: bitmask of encoder indices 2011 - * 2012 - * Iterate over all encoders specified by bitmask. 2013 - */ 2014 - #define drm_for_each_encoder_mask(encoder, dev, encoder_mask) \ 2015 - list_for_each_entry((encoder), &(dev)->mode_config.encoder_list, head) \ 2016 - for_each_if ((encoder_mask) & (1 << drm_encoder_index(encoder))) 2017 - 2018 2006 #define obj_to_crtc(x) container_of(x, struct drm_crtc, base) 2019 - #define obj_to_mode(x) container_of(x, struct drm_display_mode, base) 2020 - #define obj_to_fb(x) container_of(x, struct drm_framebuffer, base) 2021 - #define obj_to_blob(x) container_of(x, struct drm_property_blob, base) 2022 2007 #define obj_to_plane(x) container_of(x, struct drm_plane, base) 2023 2008 2024 2009 extern __printf(6, 7) ··· 2170 2185 WARN_ON(!mutex_is_locked(&mode_config->mutex) && 2171 2186 !drm_modeset_is_locked(&mode_config->connection_mutex)); 2172 2187 } 2173 - 2174 - #define drm_for_each_connector(connector, dev) \ 2175 - for (assert_drm_connector_list_read_locked(&(dev)->mode_config), \ 2176 - connector = list_first_entry(&(dev)->mode_config.connector_list, \ 2177 - struct drm_connector, head); \ 2178 - &connector->head != (&(dev)->mode_config.connector_list); \ 2179 - connector = list_next_entry(connector, head)) 2180 - 2181 - #define drm_for_each_encoder(encoder, dev) \ 2182 - list_for_each_entry(encoder, &(dev)->mode_config.encoder_list, head) 2183 - 2184 - #define drm_for_each_fb(fb, dev) \ 2185 - for (WARN_ON(!mutex_is_locked(&(dev)->mode_config.fb_lock)), \ 2186 - fb = list_first_entry(&(dev)->mode_config.fb_list, \ 2187 - struct drm_framebuffer, head); \ 2188 - &fb->head != (&(dev)->mode_config.fb_list); \ 2189 - fb = list_next_entry(fb, head)) 2190 2188 2191 2189 /* drm_edid.c */ 2192 2190 bool drm_probe_ddc(struct i2c_adapter *adapter);
+22
include/drm/drm_encoder.h
··· 224 224 225 225 void drm_encoder_cleanup(struct drm_encoder *encoder); 226 226 227 + /** 228 + * drm_for_each_encoder_mask - iterate over encoders specified by bitmask 229 + * @encoder: the loop cursor 230 + * @dev: the DRM device 231 + * @encoder_mask: bitmask of encoder indices 232 + * 233 + * Iterate over all encoders specified by bitmask. 234 + */ 235 + #define drm_for_each_encoder_mask(encoder, dev, encoder_mask) \ 236 + list_for_each_entry((encoder), &(dev)->mode_config.encoder_list, head) \ 237 + for_each_if ((encoder_mask) & (1 << drm_encoder_index(encoder))) 238 + 239 + /** 240 + * drm_for_each_encoder - iterate over all encoders 241 + * @encoder: the loop cursor 242 + * @dev: the DRM device 243 + * 244 + * Iterate over all encoders of @dev. 245 + */ 246 + #define drm_for_each_encoder(encoder, dev) \ 247 + list_for_each_entry(encoder, &(dev)->mode_config.encoder_list, head) 248 + 227 249 #endif
+17
include/drm/drm_framebuffer.h
··· 206 206 struct list_head filp_head; 207 207 }; 208 208 209 + #define obj_to_fb(x) container_of(x, struct drm_framebuffer, base) 210 + 209 211 int drm_framebuffer_init(struct drm_device *dev, 210 212 struct drm_framebuffer *fb, 211 213 const struct drm_framebuffer_funcs *funcs); ··· 249 247 { 250 248 return atomic_read(&fb->base.refcount.refcount); 251 249 } 250 + 251 + /** 252 + * drm_for_each_fb - iterate over all framebuffers 253 + * @fb: the loop cursor 254 + * @dev: the DRM device 255 + * 256 + * Iterate over all framebuffers of @dev. User must hold the fb_lock from 257 + * &drm_mode_config. 258 + */ 259 + #define drm_for_each_fb(fb, dev) \ 260 + for (WARN_ON(!mutex_is_locked(&(dev)->mode_config.fb_lock)), \ 261 + fb = list_first_entry(&(dev)->mode_config.fb_list, \ 262 + struct drm_framebuffer, head); \ 263 + &fb->head != (&(dev)->mode_config.fb_list); \ 264 + fb = list_next_entry(fb, head)) 252 265 #endif
+2
include/drm/drm_modes.h
··· 403 403 enum hdmi_picture_aspect picture_aspect_ratio; 404 404 }; 405 405 406 + #define obj_to_mode(x) container_of(x, struct drm_display_mode, base) 407 + 406 408 /** 407 409 * drm_mode_is_stereo - check for stereo mode flags 408 410 * @mode: drm_display_mode to check
+1
include/drm/drm_property.h
··· 219 219 }; 220 220 221 221 #define obj_to_property(x) container_of(x, struct drm_property, base) 222 + #define obj_to_blob(x) container_of(x, struct drm_property_blob, base) 222 223 223 224 /** 224 225 * drm_property_type_is - check the type of a property