#define XY_FAST_COPY_BLT_CMD (2 << 29 | 0x42 << 22)
#define XY_FAST_COPY_BLT_DEPTH_32 (3<<24)
+#define XY_FAST_COPY_BLT_D1_SRC_TILE4 REG_BIT(31)
+#define XY_FAST_COPY_BLT_D1_DST_TILE4 REG_BIT(30)
#define PVC_MEM_SET_CMD (2 << 29 | 0x5b << 22)
#define PVC_MEM_SET_CMD_LEN_DW 7
u64 src_ofs, u64 dst_ofs, unsigned int size,
unsigned int pitch)
{
+ struct xe_device *xe = gt_to_xe(gt);
+
xe_gt_assert(gt, size / pitch <= S16_MAX);
xe_gt_assert(gt, pitch / 4 <= S16_MAX);
xe_gt_assert(gt, pitch <= U16_MAX);
bb->cs[bb->len++] = XY_FAST_COPY_BLT_CMD | (10 - 2);
- bb->cs[bb->len++] = XY_FAST_COPY_BLT_DEPTH_32 | pitch;
+ if (GRAPHICS_VERx100(xe) >= 1250)
+ bb->cs[bb->len++] = XY_FAST_COPY_BLT_DEPTH_32 | pitch |
+ XY_FAST_COPY_BLT_D1_SRC_TILE4 |
+ XY_FAST_COPY_BLT_D1_DST_TILE4;
+ else
+ bb->cs[bb->len++] = XY_FAST_COPY_BLT_DEPTH_32 | pitch;
bb->cs[bb->len++] = 0;
bb->cs[bb->len++] = (size / pitch) << 16 | pitch / 4;
bb->cs[bb->len++] = lower_32_bits(dst_ofs);