Lines Matching defs:logicvc

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