Lines Matching full:cursor

31 /* Cursor formats */
60 * MAX(-1 * <Cursor vertical size from CUR_CTL base on cursor mode in intel_cursor_position()
118 "Arbitrary cursor panning not supported\n"); in intel_cursor_check_surface()
155 drm_dbg_kms(&i915->drm, "cursor cannot be tiled\n"); in intel_check_cursor()
244 /* if we want to turn off the cursor ignore width and height */ in i845_check_cursor()
248 /* Check for which cursor types we support */ in i845_check_cursor()
251 "Cursor dimension %dx%d not supported\n", in i845_check_cursor()
267 drm_dbg_kms(&i915->drm, "Invalid cursor stride (%u)\n", in i845_check_cursor()
300 * whilst the cursor is disabled. in i845_cursor_update_arm()
302 if (plane->cursor.base != base || in i845_cursor_update_arm()
303 plane->cursor.size != size || in i845_cursor_update_arm()
304 plane->cursor.cntl != cntl) { in i845_cursor_update_arm()
311 plane->cursor.base = base; in i845_cursor_update_arm()
312 plane->cursor.size = size; in i845_cursor_update_arm()
313 plane->cursor.cntl = cntl; in i845_cursor_update_arm()
360 /* "AlmadorM Errata – Requires 32-bpp cursor data to be 16KB aligned." */ in i830_cursor_min_alignment()
444 /* Cursor width is limited to a few power-of-two sizes */ in i9xx_cursor_size_ok()
455 * IVB+ have CUR_FBC_CTL which allows an arbitrary cursor in i9xx_cursor_size_ok()
456 * height from 8 lines up to the cursor width, when the in i9xx_cursor_size_ok()
457 * cursor is not rotated. Everything else requires square in i9xx_cursor_size_ok()
485 /* if we want to turn off the cursor ignore width and height */ in i9xx_check_cursor()
489 /* Check for which cursor types we support */ in i9xx_check_cursor()
492 "Cursor dimension %dx%d not supported\n", in i9xx_check_cursor()
504 "Invalid cursor stride (%u) (cursor width %d)\n", in i9xx_check_cursor()
511 * There's something wrong with the cursor on CHV pipe C. in i9xx_check_cursor()
518 * Refuse the put the cursor into that compromised position. in i9xx_check_cursor()
523 "CHV cursor C not allowed to straddle the left screen edge\n"); in i9xx_check_cursor()
684 * a write to any of the cursor register will cancel in i9xx_cursor_update_arm()
685 * an already armed cursor update. Thus leaving out in i9xx_cursor_update_arm()
687 * cursor that doesn't appear to move, or even change in i9xx_cursor_update_arm()
703 if (plane->cursor.base != base || in i9xx_cursor_update_arm()
704 plane->cursor.size != fbc_ctl || in i9xx_cursor_update_arm()
705 plane->cursor.cntl != cntl) { in i9xx_cursor_update_arm()
712 plane->cursor.base = base; in i9xx_cursor_update_arm()
713 plane->cursor.size = fbc_ctl; in i9xx_cursor_update_arm()
714 plane->cursor.cntl = cntl; in i9xx_cursor_update_arm()
888 * planes atomically. If the cursor was part of the atomic update then in intel_legacy_cursor_update()
987 struct intel_plane *cursor; in intel_cursor_plane_create() local
991 cursor = intel_plane_alloc(); in intel_cursor_plane_create()
992 if (IS_ERR(cursor)) in intel_cursor_plane_create()
993 return cursor; in intel_cursor_plane_create()
995 cursor->pipe = pipe; in intel_cursor_plane_create()
996 cursor->i9xx_plane = (enum i9xx_plane_id) pipe; in intel_cursor_plane_create()
997 cursor->id = PLANE_CURSOR; in intel_cursor_plane_create()
998 cursor->frontbuffer_bit = INTEL_FRONTBUFFER(pipe, cursor->id); in intel_cursor_plane_create()
1001 cursor->max_stride = i845_cursor_max_stride; in intel_cursor_plane_create()
1002 cursor->min_alignment = i845_cursor_min_alignment; in intel_cursor_plane_create()
1003 cursor->update_arm = i845_cursor_update_arm; in intel_cursor_plane_create()
1004 cursor->disable_arm = i845_cursor_disable_arm; in intel_cursor_plane_create()
1005 cursor->get_hw_state = i845_cursor_get_hw_state; in intel_cursor_plane_create()
1006 cursor->check_plane = i845_check_cursor; in intel_cursor_plane_create()
1008 cursor->max_stride = i9xx_cursor_max_stride; in intel_cursor_plane_create()
1011 cursor->min_alignment = i830_cursor_min_alignment; in intel_cursor_plane_create()
1013 cursor->min_alignment = i85x_cursor_min_alignment; in intel_cursor_plane_create()
1015 cursor->min_alignment = i9xx_cursor_min_alignment; in intel_cursor_plane_create()
1017 cursor->update_arm = i9xx_cursor_update_arm; in intel_cursor_plane_create()
1018 cursor->disable_arm = i9xx_cursor_disable_arm; in intel_cursor_plane_create()
1019 cursor->get_hw_state = i9xx_cursor_get_hw_state; in intel_cursor_plane_create()
1020 cursor->check_plane = i9xx_check_cursor; in intel_cursor_plane_create()
1023 cursor->cursor.base = ~0; in intel_cursor_plane_create()
1024 cursor->cursor.cntl = ~0; in intel_cursor_plane_create()
1027 cursor->cursor.size = ~0; in intel_cursor_plane_create()
1031 ret = drm_universal_plane_init(&dev_priv->drm, &cursor->base, in intel_cursor_plane_create()
1037 "cursor %c", pipe_name(pipe)); in intel_cursor_plane_create()
1045 drm_plane_create_rotation_property(&cursor->base, in intel_cursor_plane_create()
1050 intel_cursor_add_size_hints_property(cursor); in intel_cursor_plane_create()
1053 drm_plane_create_zpos_immutable_property(&cursor->base, zpos); in intel_cursor_plane_create()
1056 drm_plane_enable_fb_damage_clips(&cursor->base); in intel_cursor_plane_create()
1058 intel_plane_helper_add(cursor); in intel_cursor_plane_create()
1060 return cursor; in intel_cursor_plane_create()
1063 intel_plane_free(cursor); in intel_cursor_plane_create()