Lines Matching refs:logicvc

88 	struct logicvc_drm *logicvc = logicvc_drm(drm_dev);  in logicvc_plane_atomic_check()  local
110 if (!logicvc->caps->layer_address) { in logicvc_plane_atomic_check()
111 ret = logicvc_layer_buffer_find_setup(logicvc, layer, new_state, in logicvc_plane_atomic_check()
123 layer->index != (logicvc->config.layers_count - 1) && in logicvc_plane_atomic_check()
124 logicvc->config.layers_configurable); in logicvc_plane_atomic_check()
141 struct logicvc_drm *logicvc = logicvc_drm(drm_plane->dev); in logicvc_plane_atomic_update() local
142 struct drm_device *drm_dev = &logicvc->drm_dev; in logicvc_plane_atomic_update()
145 struct drm_crtc *drm_crtc = &logicvc->crtc->drm_crtc; in logicvc_plane_atomic_update()
154 regmap_write(logicvc->regmap, LOGICVC_LAYER_WIDTH_REG(index), in logicvc_plane_atomic_update()
156 regmap_write(logicvc->regmap, LOGICVC_LAYER_HEIGHT_REG(index), in logicvc_plane_atomic_update()
159 if (logicvc->caps->layer_address) { in logicvc_plane_atomic_update()
162 regmap_write(logicvc->regmap, LOGICVC_LAYER_ADDRESS_REG(index), in logicvc_plane_atomic_update()
167 logicvc_layer_buffer_find_setup(logicvc, layer, new_state, in logicvc_plane_atomic_update()
172 regmap_write(logicvc->regmap, LOGICVC_BUFFER_SEL_REG, in logicvc_plane_atomic_update()
174 regmap_write(logicvc->regmap, LOGICVC_LAYER_HOFFSET_REG(index), in logicvc_plane_atomic_update()
176 regmap_write(logicvc->regmap, LOGICVC_LAYER_VOFFSET_REG(index), in logicvc_plane_atomic_update()
182 regmap_write(logicvc->regmap, LOGICVC_LAYER_HPOSITION_REG(index), in logicvc_plane_atomic_update()
186 regmap_write(logicvc->regmap, LOGICVC_LAYER_VPOSITION_REG(index), in logicvc_plane_atomic_update()
218 regmap_write(logicvc->regmap, LOGICVC_LAYER_ALPHA_REG(index), in logicvc_plane_atomic_update()
231 regmap_write(logicvc->regmap, LOGICVC_LAYER_CTRL_REG(index), reg); in logicvc_plane_atomic_update()
238 struct logicvc_drm *logicvc = logicvc_drm(drm_plane->dev); in logicvc_plane_atomic_disable() local
241 regmap_write(logicvc->regmap, LOGICVC_LAYER_CTRL_REG(index), 0); in logicvc_plane_atomic_disable()
259 int logicvc_layer_buffer_find_setup(struct logicvc_drm *logicvc, in logicvc_layer_buffer_find_setup() argument
264 struct drm_device *drm_dev = &logicvc->drm_dev; in logicvc_layer_buffer_find_setup()
268 u32 layer_stride = layer_bytespp * logicvc->config.row_stride; in logicvc_layer_buffer_find_setup()
278 if (!logicvc->reserved_mem_base) { in logicvc_layer_buffer_find_setup()
284 if (fb_addr < logicvc->reserved_mem_base) { in logicvc_layer_buffer_find_setup()
290 fb_offset = (u32) (fb_addr - logicvc->reserved_mem_base); in logicvc_layer_buffer_find_setup()
310 if (gap && layer_stride && logicvc->config.layers_configurable) { in logicvc_layer_buffer_find_setup()
319 if (gap && layer_bytespp && logicvc->config.layers_configurable) { in logicvc_layer_buffer_find_setup()
382 static int logicvc_layer_config_parse(struct logicvc_drm *logicvc, in logicvc_layer_config_parse() argument
414 if (logicvc->caps->layer_address) in logicvc_layer_config_parse()
432 struct logicvc_layer *logicvc_layer_get_from_index(struct logicvc_drm *logicvc, in logicvc_layer_get_from_index() argument
437 list_for_each_entry(layer, &logicvc->layers_list, list) in logicvc_layer_get_from_index()
444 struct logicvc_layer *logicvc_layer_get_from_type(struct logicvc_drm *logicvc, in logicvc_layer_get_from_type() argument
449 list_for_each_entry(layer, &logicvc->layers_list, list) in logicvc_layer_get_from_type()
456 struct logicvc_layer *logicvc_layer_get_primary(struct logicvc_drm *logicvc) in logicvc_layer_get_primary() argument
458 return logicvc_layer_get_from_type(logicvc, DRM_PLANE_TYPE_PRIMARY); in logicvc_layer_get_primary()
461 static int logicvc_layer_init(struct logicvc_drm *logicvc, in logicvc_layer_init() argument
464 struct drm_device *drm_dev = &logicvc->drm_dev; in logicvc_layer_init()
482 ret = logicvc_layer_config_parse(logicvc, layer); in logicvc_layer_init()
500 if (logicvc->config.background_layer && in logicvc_layer_init()
501 index == (logicvc->config.layers_count - 1)) { in logicvc_layer_init()
511 regmap_write(logicvc->regmap, LOGICVC_BACKGROUND_COLOR_REG, in logicvc_layer_init()
534 zpos = logicvc->config.layers_count - index - 1; in logicvc_layer_init()
546 list_add_tail(&layer->list, &logicvc->layers_list); in logicvc_layer_init()
557 static void logicvc_layer_fini(struct logicvc_drm *logicvc, in logicvc_layer_fini() argument
560 struct device *dev = logicvc->drm_dev.dev; in logicvc_layer_fini()
566 void logicvc_layers_attach_crtc(struct logicvc_drm *logicvc) in logicvc_layers_attach_crtc() argument
568 uint32_t possible_crtcs = drm_crtc_mask(&logicvc->crtc->drm_crtc); in logicvc_layers_attach_crtc()
571 list_for_each_entry(layer, &logicvc->layers_list, list) { in logicvc_layers_attach_crtc()
579 int logicvc_layers_init(struct logicvc_drm *logicvc) in logicvc_layers_init() argument
581 struct drm_device *drm_dev = &logicvc->drm_dev; in logicvc_layers_init()
607 layer = logicvc_layer_get_from_index(logicvc, index); in logicvc_layers_init()
614 ret = logicvc_layer_init(logicvc, layer_node, index); in logicvc_layers_init()
626 list_for_each_entry_safe(layer, next, &logicvc->layers_list, list) in logicvc_layers_init()
627 logicvc_layer_fini(logicvc, layer); in logicvc_layers_init()