Lines Matching full:len

211 static uint32_t remove_03 (uint8_t *bptr, uint32_t len);
561 int len, r; in amdgpu_cs_vcn_dec_create() local
576 len = 0; in amdgpu_cs_vcn_dec_create()
578 vcn_dec_cmd(session_ctx_buf.addr, 5, &len); in amdgpu_cs_vcn_dec_create()
580 vcn_dec_cmd(msg_buf.addr, 0, &len); in amdgpu_cs_vcn_dec_create()
582 ib_cpu[len++] = reg[vcn_reg_index].data0; in amdgpu_cs_vcn_dec_create()
583 ib_cpu[len++] = msg_buf.addr; in amdgpu_cs_vcn_dec_create()
584 ib_cpu[len++] = reg[vcn_reg_index].data1; in amdgpu_cs_vcn_dec_create()
585 ib_cpu[len++] = msg_buf.addr >> 32; in amdgpu_cs_vcn_dec_create()
586 ib_cpu[len++] = reg[vcn_reg_index].cmd; in amdgpu_cs_vcn_dec_create()
587 ib_cpu[len++] = 0; in amdgpu_cs_vcn_dec_create()
588 for (; len % 16; ) { in amdgpu_cs_vcn_dec_create()
589 ib_cpu[len++] = reg[vcn_reg_index].nop; in amdgpu_cs_vcn_dec_create()
590 ib_cpu[len++] = 0; in amdgpu_cs_vcn_dec_create()
595 amdgpu_cs_sq_ib_tail(ib_cpu + len); in amdgpu_cs_vcn_dec_create()
600 r = submit(len, ip); in amdgpu_cs_vcn_dec_create()
612 int size, len, i, r; in amdgpu_cs_vcn_dec_decode() local
657 len = 0; in amdgpu_cs_vcn_dec_decode()
658 vcn_dec_cmd(session_ctx_buf.addr, 0x5, &len); in amdgpu_cs_vcn_dec_decode()
659 vcn_dec_cmd(msg_addr, 0x0, &len); in amdgpu_cs_vcn_dec_decode()
660 vcn_dec_cmd(dpb_addr, 0x1, &len); in amdgpu_cs_vcn_dec_decode()
661 vcn_dec_cmd(dt_addr, 0x2, &len); in amdgpu_cs_vcn_dec_decode()
662 vcn_dec_cmd(fb_addr, 0x3, &len); in amdgpu_cs_vcn_dec_decode()
663 vcn_dec_cmd(bs_addr, 0x100, &len); in amdgpu_cs_vcn_dec_decode()
664 vcn_dec_cmd(it_addr, 0x204, &len); in amdgpu_cs_vcn_dec_decode()
665 vcn_dec_cmd(ctx_addr, 0x206, &len); in amdgpu_cs_vcn_dec_decode()
668 ib_cpu[len++] = reg[vcn_reg_index].cntl; in amdgpu_cs_vcn_dec_decode()
669 ib_cpu[len++] = 0x1; in amdgpu_cs_vcn_dec_decode()
670 for (; len % 16; ) { in amdgpu_cs_vcn_dec_decode()
671 ib_cpu[len++] = reg[vcn_reg_index].nop; in amdgpu_cs_vcn_dec_decode()
672 ib_cpu[len++] = 0; in amdgpu_cs_vcn_dec_decode()
677 amdgpu_cs_sq_ib_tail(ib_cpu + len); in amdgpu_cs_vcn_dec_decode()
682 r = submit(len, ip); in amdgpu_cs_vcn_dec_decode()
697 int len, r; in amdgpu_cs_vcn_dec_destroy() local
710 len = 0; in amdgpu_cs_vcn_dec_destroy()
711 vcn_dec_cmd(session_ctx_buf.addr, 5, &len); in amdgpu_cs_vcn_dec_destroy()
713 vcn_dec_cmd(msg_buf.addr, 0, &len); in amdgpu_cs_vcn_dec_destroy()
715 ib_cpu[len++] = reg[vcn_reg_index].data0; in amdgpu_cs_vcn_dec_destroy()
716 ib_cpu[len++] = msg_buf.addr; in amdgpu_cs_vcn_dec_destroy()
717 ib_cpu[len++] = reg[vcn_reg_index].data1; in amdgpu_cs_vcn_dec_destroy()
718 ib_cpu[len++] = msg_buf.addr >> 32; in amdgpu_cs_vcn_dec_destroy()
719 ib_cpu[len++] = reg[vcn_reg_index].cmd; in amdgpu_cs_vcn_dec_destroy()
720 ib_cpu[len++] = 0; in amdgpu_cs_vcn_dec_destroy()
721 for (; len % 16; ) { in amdgpu_cs_vcn_dec_destroy()
722 ib_cpu[len++] = reg[vcn_reg_index].nop; in amdgpu_cs_vcn_dec_destroy()
723 ib_cpu[len++] = 0; in amdgpu_cs_vcn_dec_destroy()
728 amdgpu_cs_sq_ib_tail(ib_cpu + len); in amdgpu_cs_vcn_dec_destroy()
733 r = submit(len, ip); in amdgpu_cs_vcn_dec_destroy()
742 int len, r; in amdgpu_cs_vcn_enc_create() local
777 len = 0; in amdgpu_cs_vcn_enc_create()
780 amdgpu_cs_sq_head(ib_cpu, &len, true); in amdgpu_cs_vcn_enc_create()
783 st_offset = len; in amdgpu_cs_vcn_enc_create()
784 st_size = &ib_cpu[len++]; /* size */ in amdgpu_cs_vcn_enc_create()
785 ib_cpu[len++] = 0x00000001; /* RENCODE_IB_PARAM_SESSION_INFO */ in amdgpu_cs_vcn_enc_create()
786 ib_cpu[len++] = ((fw_maj << 16) | (fw_min << 0)); in amdgpu_cs_vcn_enc_create()
787 ib_cpu[len++] = enc_buf.addr >> 32; in amdgpu_cs_vcn_enc_create()
788 ib_cpu[len++] = enc_buf.addr; in amdgpu_cs_vcn_enc_create()
789 ib_cpu[len++] = 1; /* RENCODE_ENGINE_TYPE_ENCODE; */ in amdgpu_cs_vcn_enc_create()
790 *st_size = (len - st_offset) * 4; in amdgpu_cs_vcn_enc_create()
793 task_offset = len; in amdgpu_cs_vcn_enc_create()
794 st_offset = len; in amdgpu_cs_vcn_enc_create()
795 st_size = &ib_cpu[len++]; /* size */ in amdgpu_cs_vcn_enc_create()
796 ib_cpu[len++] = 0x00000002; /* RENCODE_IB_PARAM_TASK_INFO */ in amdgpu_cs_vcn_enc_create()
797 p_task_size = &ib_cpu[len++]; in amdgpu_cs_vcn_enc_create()
798 ib_cpu[len++] = enc_task_id++; /* task_id */ in amdgpu_cs_vcn_enc_create()
799 ib_cpu[len++] = 0; /* feedback */ in amdgpu_cs_vcn_enc_create()
800 *st_size = (len - st_offset) * 4; in amdgpu_cs_vcn_enc_create()
803 st_offset = len; in amdgpu_cs_vcn_enc_create()
804 st_size = &ib_cpu[len++]; /* size */ in amdgpu_cs_vcn_enc_create()
805 ib_cpu[len++] = 0x01000001; /* RENCODE_IB_OP_INITIALIZE */ in amdgpu_cs_vcn_enc_create()
806 *st_size = (len - st_offset) * 4; in amdgpu_cs_vcn_enc_create()
809 st_offset = len; in amdgpu_cs_vcn_enc_create()
810 st_size = &ib_cpu[len++]; /* size */ in amdgpu_cs_vcn_enc_create()
811 ib_cpu[len++] = 0x00000003; /* RENCODE_IB_PARAM_SESSION_INIT */ in amdgpu_cs_vcn_enc_create()
812 ib_cpu[len++] = 1; /* RENCODE_ENCODE_STANDARD_H264 */ in amdgpu_cs_vcn_enc_create()
813 ib_cpu[len++] = width; in amdgpu_cs_vcn_enc_create()
814 ib_cpu[len++] = height; in amdgpu_cs_vcn_enc_create()
815 ib_cpu[len++] = 0; in amdgpu_cs_vcn_enc_create()
816 ib_cpu[len++] = 0; in amdgpu_cs_vcn_enc_create()
817 ib_cpu[len++] = 0; /* pre encode mode */ in amdgpu_cs_vcn_enc_create()
818 ib_cpu[len++] = 0; /* chroma enabled : false */ in amdgpu_cs_vcn_enc_create()
819 ib_cpu[len++] = 0; in amdgpu_cs_vcn_enc_create()
820 ib_cpu[len++] = 0; in amdgpu_cs_vcn_enc_create()
821 *st_size = (len - st_offset) * 4; in amdgpu_cs_vcn_enc_create()
824 st_offset = len; in amdgpu_cs_vcn_enc_create()
825 st_size = &ib_cpu[len++]; /* size */ in amdgpu_cs_vcn_enc_create()
826 ib_cpu[len++] = 0x00200001; /* RENCODE_H264_IB_PARAM_SLICE_CONTROL */ in amdgpu_cs_vcn_enc_create()
827 ib_cpu[len++] = 0; /* RENCODE_H264_SLICE_CONTROL_MODE_FIXED_MBS */ in amdgpu_cs_vcn_enc_create()
828 ib_cpu[len++] = ALIGN(width, 16) / 16 * ALIGN(height, 16) / 16; in amdgpu_cs_vcn_enc_create()
829 *st_size = (len - st_offset) * 4; in amdgpu_cs_vcn_enc_create()
832 st_offset = len; in amdgpu_cs_vcn_enc_create()
833 st_size = &ib_cpu[len++]; /* size */ in amdgpu_cs_vcn_enc_create()
834 ib_cpu[len++] = 0x00200002; /* RENCODE_H264_IB_PARAM_SPEC_MISC */ in amdgpu_cs_vcn_enc_create()
835 ib_cpu[len++] = 0; /* constrained intra pred flag */ in amdgpu_cs_vcn_enc_create()
836 ib_cpu[len++] = 0; /* cabac enable */ in amdgpu_cs_vcn_enc_create()
837 ib_cpu[len++] = 0; /* cabac init idc */ in amdgpu_cs_vcn_enc_create()
838 ib_cpu[len++] = 1; /* half pel enabled */ in amdgpu_cs_vcn_enc_create()
839 ib_cpu[len++] = 1; /* quarter pel enabled */ in amdgpu_cs_vcn_enc_create()
840 ib_cpu[len++] = 100; /* BASELINE profile */ in amdgpu_cs_vcn_enc_create()
841 ib_cpu[len++] = 11; /* level */ in amdgpu_cs_vcn_enc_create()
843 ib_cpu[len++] = 0; /* b_picture_enabled */ in amdgpu_cs_vcn_enc_create()
844 ib_cpu[len++] = 0; /* weighted_bipred_idc */ in amdgpu_cs_vcn_enc_create()
846 *st_size = (len - st_offset) * 4; in amdgpu_cs_vcn_enc_create()
849 st_offset = len; in amdgpu_cs_vcn_enc_create()
850 st_size = &ib_cpu[len++]; /* size */ in amdgpu_cs_vcn_enc_create()
851 ib_cpu[len++] = 0x00200004; /* RENCODE_H264_IB_PARAM_DEBLOCKING_FILTER */ in amdgpu_cs_vcn_enc_create()
852 ib_cpu[len++] = 0; /* disable deblocking filter idc */ in amdgpu_cs_vcn_enc_create()
853 ib_cpu[len++] = 0; /* alpha c0 offset */ in amdgpu_cs_vcn_enc_create()
854 ib_cpu[len++] = 0; /* tc offset */ in amdgpu_cs_vcn_enc_create()
855 ib_cpu[len++] = 0; /* cb offset */ in amdgpu_cs_vcn_enc_create()
856 ib_cpu[len++] = 0; /* cr offset */ in amdgpu_cs_vcn_enc_create()
857 *st_size = (len - st_offset) * 4; in amdgpu_cs_vcn_enc_create()
860 st_offset = len; in amdgpu_cs_vcn_enc_create()
861 st_size = &ib_cpu[len++]; /* size */ in amdgpu_cs_vcn_enc_create()
862 ib_cpu[len++] = 0x00000004; /* RENCODE_IB_PARAM_LAYER_CONTROL */ in amdgpu_cs_vcn_enc_create()
863 ib_cpu[len++] = 1; /* max temporal layer */ in amdgpu_cs_vcn_enc_create()
864 ib_cpu[len++] = 1; /* no of temporal layer */ in amdgpu_cs_vcn_enc_create()
865 *st_size = (len - st_offset) * 4; in amdgpu_cs_vcn_enc_create()
868 st_offset = len; in amdgpu_cs_vcn_enc_create()
869 st_size = &ib_cpu[len++]; /* size */ in amdgpu_cs_vcn_enc_create()
870 ib_cpu[len++] = 0x00000006; /* RENCODE_IB_PARAM_RATE_CONTROL_SESSION_INIT */ in amdgpu_cs_vcn_enc_create()
871 ib_cpu[len++] = 0; /* rate control */ in amdgpu_cs_vcn_enc_create()
872 ib_cpu[len++] = 48; /* vbv buffer level */ in amdgpu_cs_vcn_enc_create()
873 *st_size = (len - st_offset) * 4; in amdgpu_cs_vcn_enc_create()
876 st_offset = len; in amdgpu_cs_vcn_enc_create()
877 st_size = &ib_cpu[len++]; /* size */ in amdgpu_cs_vcn_enc_create()
878 ib_cpu[len++] = 0x00000009; /* RENCODE_IB_PARAM_QUALITY_PARAMS */ in amdgpu_cs_vcn_enc_create()
879 ib_cpu[len++] = 0; /* vbaq mode */ in amdgpu_cs_vcn_enc_create()
880 ib_cpu[len++] = 0; /* scene change sensitivity */ in amdgpu_cs_vcn_enc_create()
881 ib_cpu[len++] = 0; /* scene change min idr interval */ in amdgpu_cs_vcn_enc_create()
882 ib_cpu[len++] = 0; in amdgpu_cs_vcn_enc_create()
884 ib_cpu[len++] = 0; in amdgpu_cs_vcn_enc_create()
885 *st_size = (len - st_offset) * 4; in amdgpu_cs_vcn_enc_create()
888 st_offset = len; in amdgpu_cs_vcn_enc_create()
889 st_size = &ib_cpu[len++]; /* size */ in amdgpu_cs_vcn_enc_create()
890 ib_cpu[len++] = 0x00000005; /* RENCODE_IB_PARAM_LAYER_SELECT */ in amdgpu_cs_vcn_enc_create()
891 ib_cpu[len++] = 0; /* temporal layer */ in amdgpu_cs_vcn_enc_create()
892 *st_size = (len - st_offset) * 4; in amdgpu_cs_vcn_enc_create()
895 st_offset = len; in amdgpu_cs_vcn_enc_create()
896 st_size = &ib_cpu[len++]; /* size */ in amdgpu_cs_vcn_enc_create()
897 ib_cpu[len++] = 0x00000007; /* RENCODE_IB_PARAM_RATE_CONTROL_LAYER_INIT */ in amdgpu_cs_vcn_enc_create()
898 ib_cpu[len++] = 0; in amdgpu_cs_vcn_enc_create()
899 ib_cpu[len++] = 0; in amdgpu_cs_vcn_enc_create()
900 ib_cpu[len++] = 25; in amdgpu_cs_vcn_enc_create()
901 ib_cpu[len++] = 1; in amdgpu_cs_vcn_enc_create()
902 ib_cpu[len++] = 0x01312d00; in amdgpu_cs_vcn_enc_create()
903 ib_cpu[len++] = 0; in amdgpu_cs_vcn_enc_create()
904 ib_cpu[len++] = 0; in amdgpu_cs_vcn_enc_create()
905 ib_cpu[len++] = 0; in amdgpu_cs_vcn_enc_create()
906 *st_size = (len - st_offset) * 4; in amdgpu_cs_vcn_enc_create()
909 st_offset = len; in amdgpu_cs_vcn_enc_create()
910 st_size = &ib_cpu[len++]; /* size */ in amdgpu_cs_vcn_enc_create()
911 ib_cpu[len++] = 0x00000005; /* RENCODE_IB_PARAM_LAYER_SELECT */ in amdgpu_cs_vcn_enc_create()
912 ib_cpu[len++] = 0; /* temporal layer */ in amdgpu_cs_vcn_enc_create()
913 *st_size = (len - st_offset) * 4; in amdgpu_cs_vcn_enc_create()
916 st_offset = len; in amdgpu_cs_vcn_enc_create()
917 st_size = &ib_cpu[len++]; /* size */ in amdgpu_cs_vcn_enc_create()
918 ib_cpu[len++] = 0x00000008; /* RENCODE_IB_PARAM_RATE_CONTROL_PER_PICTURE */ in amdgpu_cs_vcn_enc_create()
919 ib_cpu[len++] = 20; in amdgpu_cs_vcn_enc_create()
920 ib_cpu[len++] = 0; in amdgpu_cs_vcn_enc_create()
921 ib_cpu[len++] = 51; in amdgpu_cs_vcn_enc_create()
922 ib_cpu[len++] = 0; in amdgpu_cs_vcn_enc_create()
923 ib_cpu[len++] = 1; in amdgpu_cs_vcn_enc_create()
924 ib_cpu[len++] = 0; in amdgpu_cs_vcn_enc_create()
925 ib_cpu[len++] = 1; in amdgpu_cs_vcn_enc_create()
926 ib_cpu[len++] = 0; in amdgpu_cs_vcn_enc_create()
927 *st_size = (len - st_offset) * 4; in amdgpu_cs_vcn_enc_create()
930 st_offset = len; in amdgpu_cs_vcn_enc_create()
931 st_size = &ib_cpu[len++]; /* size */ in amdgpu_cs_vcn_enc_create()
932 ib_cpu[len++] = 0x01000004; /* RENCODE_IB_OP_INIT_RC */ in amdgpu_cs_vcn_enc_create()
933 *st_size = (len - st_offset) * 4; in amdgpu_cs_vcn_enc_create()
936 st_offset = len; in amdgpu_cs_vcn_enc_create()
937 st_size = &ib_cpu[len++]; /* size */ in amdgpu_cs_vcn_enc_create()
938 ib_cpu[len++] = 0x01000005; /* RENCODE_IB_OP_INIT_RC_VBV_BUFFER_LEVEL */ in amdgpu_cs_vcn_enc_create()
939 *st_size = (len - st_offset) * 4; in amdgpu_cs_vcn_enc_create()
941 *p_task_size = (len - task_offset) * 4; in amdgpu_cs_vcn_enc_create()
944 amdgpu_cs_sq_ib_tail(ib_cpu + len); in amdgpu_cs_vcn_enc_create()
946 r = submit(len, AMDGPU_HW_IP_VCN_ENC); in amdgpu_cs_vcn_enc_create()
1027 static uint32_t remove_03 (uint8_t * bptr, uint32_t len) in remove_03() argument
1030 while (nal_len + 2 < len) { in remove_03()
1034 len--; in remove_03()
1035 memmove (bptr, bptr + 1, len - nal_len); in remove_03()
1041 return len; in remove_03()
1279 static void amdgpu_cs_vcn_ib_zero_count(int *len, int num) in amdgpu_cs_vcn_ib_zero_count() argument
1282 ib_cpu[(*len)++] = 0; in amdgpu_cs_vcn_ib_zero_count()
1288 int len, r; in amdgpu_cs_vcn_enc_encode_frame() local
1334 len = 0; in amdgpu_cs_vcn_enc_encode_frame()
1337 amdgpu_cs_sq_head(ib_cpu, &len, true); in amdgpu_cs_vcn_enc_encode_frame()
1340 st_offset = len; in amdgpu_cs_vcn_enc_encode_frame()
1341 st_size = &ib_cpu[len++]; /* size */ in amdgpu_cs_vcn_enc_encode_frame()
1342 ib_cpu[len++] = 0x00000001; /* RENCODE_IB_PARAM_SESSION_INFO */ in amdgpu_cs_vcn_enc_encode_frame()
1343 ib_cpu[len++] = ((fw_maj << 16) | (fw_min << 0)); in amdgpu_cs_vcn_enc_encode_frame()
1344 ib_cpu[len++] = enc_buf.addr >> 32; in amdgpu_cs_vcn_enc_encode_frame()
1345 ib_cpu[len++] = enc_buf.addr; in amdgpu_cs_vcn_enc_encode_frame()
1346 ib_cpu[len++] = 1; /* RENCODE_ENGINE_TYPE_ENCODE */; in amdgpu_cs_vcn_enc_encode_frame()
1347 *st_size = (len - st_offset) * 4; in amdgpu_cs_vcn_enc_encode_frame()
1350 task_offset = len; in amdgpu_cs_vcn_enc_encode_frame()
1351 st_offset = len; in amdgpu_cs_vcn_enc_encode_frame()
1352 st_size = &ib_cpu[len++]; /* size */ in amdgpu_cs_vcn_enc_encode_frame()
1353 ib_cpu[len++] = 0x00000002; /* RENCODE_IB_PARAM_TASK_INFO */ in amdgpu_cs_vcn_enc_encode_frame()
1354 p_task_size = &ib_cpu[len++]; in amdgpu_cs_vcn_enc_encode_frame()
1355 ib_cpu[len++] = enc_task_id++; /* task_id */ in amdgpu_cs_vcn_enc_encode_frame()
1356 ib_cpu[len++] = 1; /* feedback */ in amdgpu_cs_vcn_enc_encode_frame()
1357 *st_size = (len - st_offset) * 4; in amdgpu_cs_vcn_enc_encode_frame()
1361 st_offset = len; in amdgpu_cs_vcn_enc_encode_frame()
1362 st_size = &ib_cpu[len++]; /* size */ in amdgpu_cs_vcn_enc_encode_frame()
1364 ib_cpu[len++] = 0x00000020; /* RENCODE_IB_PARAM_DIRECT_OUTPUT_NALU vcn 1 */ in amdgpu_cs_vcn_enc_encode_frame()
1366 ib_cpu[len++] = 0x0000000a; /* RENCODE_IB_PARAM_DIRECT_OUTPUT_NALU other vcn */ in amdgpu_cs_vcn_enc_encode_frame()
1367 ib_cpu[len++] = 0x00000002; /* RENCODE_DIRECT_OUTPUT_NALU_TYPE_SPS */ in amdgpu_cs_vcn_enc_encode_frame()
1368 ib_cpu[len++] = 0x00000011; /* sps len */ in amdgpu_cs_vcn_enc_encode_frame()
1369 ib_cpu[len++] = 0x00000001; /* start code */ in amdgpu_cs_vcn_enc_encode_frame()
1370 ib_cpu[len++] = 0x6764440b; in amdgpu_cs_vcn_enc_encode_frame()
1371 ib_cpu[len++] = 0xac54c284; in amdgpu_cs_vcn_enc_encode_frame()
1372 ib_cpu[len++] = 0x68078442; in amdgpu_cs_vcn_enc_encode_frame()
1373 ib_cpu[len++] = 0x37000000; in amdgpu_cs_vcn_enc_encode_frame()
1374 *st_size = (len - st_offset) * 4; in amdgpu_cs_vcn_enc_encode_frame()
1377 st_offset = len; in amdgpu_cs_vcn_enc_encode_frame()
1378 st_size = &ib_cpu[len++]; /* size */ in amdgpu_cs_vcn_enc_encode_frame()
1380 ib_cpu[len++] = 0x00000020; /* RENCODE_IB_PARAM_DIRECT_OUTPUT_NALU vcn 1*/ in amdgpu_cs_vcn_enc_encode_frame()
1382 ib_cpu[len++] = 0x0000000a; /* RENCODE_IB_PARAM_DIRECT_OUTPUT_NALU other vcn*/ in amdgpu_cs_vcn_enc_encode_frame()
1383 ib_cpu[len++] = 0x00000003; /* RENCODE_DIRECT_OUTPUT_NALU_TYPE_PPS */ in amdgpu_cs_vcn_enc_encode_frame()
1384 ib_cpu[len++] = 0x00000008; /* pps len */ in amdgpu_cs_vcn_enc_encode_frame()
1385 ib_cpu[len++] = 0x00000001; /* start code */ in amdgpu_cs_vcn_enc_encode_frame()
1386 ib_cpu[len++] = 0x68ce3c80; in amdgpu_cs_vcn_enc_encode_frame()
1387 *st_size = (len - st_offset) * 4; in amdgpu_cs_vcn_enc_encode_frame()
1391 st_offset = len; in amdgpu_cs_vcn_enc_encode_frame()
1392 st_size = &ib_cpu[len++]; /* size */ in amdgpu_cs_vcn_enc_encode_frame()
1394 ib_cpu[len++] = 0x0000000a; /* RENCODE_IB_PARAM_SLICE_HEADER vcn 1 */ in amdgpu_cs_vcn_enc_encode_frame()
1396 ib_cpu[len++] = 0x0000000b; /* RENCODE_IB_PARAM_SLICE_HEADER other vcn */ in amdgpu_cs_vcn_enc_encode_frame()
1398 ib_cpu[len++] = 0x65000000; in amdgpu_cs_vcn_enc_encode_frame()
1399 ib_cpu[len++] = 0x11040000; in amdgpu_cs_vcn_enc_encode_frame()
1401 ib_cpu[len++] = 0x41000000; in amdgpu_cs_vcn_enc_encode_frame()
1402 ib_cpu[len++] = 0x34210000; in amdgpu_cs_vcn_enc_encode_frame()
1404 ib_cpu[len++] = 0xe0000000; in amdgpu_cs_vcn_enc_encode_frame()
1405 amdgpu_cs_vcn_ib_zero_count(&len, 13); in amdgpu_cs_vcn_enc_encode_frame()
1407 ib_cpu[len++] = 0x00000001; in amdgpu_cs_vcn_enc_encode_frame()
1408 ib_cpu[len++] = 0x00000008; in amdgpu_cs_vcn_enc_encode_frame()
1409 ib_cpu[len++] = 0x00020000; in amdgpu_cs_vcn_enc_encode_frame()
1410 ib_cpu[len++] = 0x00000000; in amdgpu_cs_vcn_enc_encode_frame()
1411 ib_cpu[len++] = 0x00000001; in amdgpu_cs_vcn_enc_encode_frame()
1412 ib_cpu[len++] = 0x00000015; in amdgpu_cs_vcn_enc_encode_frame()
1413 ib_cpu[len++] = 0x00020001; in amdgpu_cs_vcn_enc_encode_frame()
1414 ib_cpu[len++] = 0x00000000; in amdgpu_cs_vcn_enc_encode_frame()
1415 ib_cpu[len++] = 0x00000001; in amdgpu_cs_vcn_enc_encode_frame()
1416 ib_cpu[len++] = 0x00000003; in amdgpu_cs_vcn_enc_encode_frame()
1417 amdgpu_cs_vcn_ib_zero_count(&len, 22); in amdgpu_cs_vcn_enc_encode_frame()
1418 *st_size = (len - st_offset) * 4; in amdgpu_cs_vcn_enc_encode_frame()
1421 st_offset = len; in amdgpu_cs_vcn_enc_encode_frame()
1422 st_size = &ib_cpu[len++]; /* size */ in amdgpu_cs_vcn_enc_encode_frame()
1424 ib_cpu[len++] = 0x0000000b; /* RENCODE_IB_PARAM_ENCODE_PARAMS vcn 1 */ in amdgpu_cs_vcn_enc_encode_frame()
1426 ib_cpu[len++] = 0x0000000f; /* RENCODE_IB_PARAM_ENCODE_PARAMS other vcn */ in amdgpu_cs_vcn_enc_encode_frame()
1427 ib_cpu[len++] = frame_type; in amdgpu_cs_vcn_enc_encode_frame()
1428 ib_cpu[len++] = 0x0001f000; in amdgpu_cs_vcn_enc_encode_frame()
1429 ib_cpu[len++] = input_buf.addr >> 32; in amdgpu_cs_vcn_enc_encode_frame()
1430 ib_cpu[len++] = input_buf.addr; in amdgpu_cs_vcn_enc_encode_frame()
1431 ib_cpu[len++] = (input_buf.addr + ALIGN(width, 256) * ALIGN(height, 32)) >> 32; in amdgpu_cs_vcn_enc_encode_frame()
1432 ib_cpu[len++] = input_buf.addr + ALIGN(width, 256) * ALIGN(height, 32); in amdgpu_cs_vcn_enc_encode_frame()
1433 ib_cpu[len++] = 0x00000100; in amdgpu_cs_vcn_enc_encode_frame()
1434 ib_cpu[len++] = 0x00000080; in amdgpu_cs_vcn_enc_encode_frame()
1435 ib_cpu[len++] = 0x00000000; in amdgpu_cs_vcn_enc_encode_frame()
1436 ib_cpu[len++] = 0xffffffff; in amdgpu_cs_vcn_enc_encode_frame()
1437 ib_cpu[len++] = 0x00000000; in amdgpu_cs_vcn_enc_encode_frame()
1438 *st_size = (len - st_offset) * 4; in amdgpu_cs_vcn_enc_encode_frame()
1441 st_offset = len; in amdgpu_cs_vcn_enc_encode_frame()
1442 st_size = &ib_cpu[len++]; /* size */ in amdgpu_cs_vcn_enc_encode_frame()
1443 ib_cpu[len++] = 0x00200003; /* RENCODE_H264_IB_PARAM_ENCODE_PARAMS */ in amdgpu_cs_vcn_enc_encode_frame()
1445 ib_cpu[len++] = 0x00000000; in amdgpu_cs_vcn_enc_encode_frame()
1446 ib_cpu[len++] = 0x00000000; in amdgpu_cs_vcn_enc_encode_frame()
1447 ib_cpu[len++] = 0x00000000; in amdgpu_cs_vcn_enc_encode_frame()
1448 ib_cpu[len++] = 0xffffffff; in amdgpu_cs_vcn_enc_encode_frame()
1450 ib_cpu[len++] = 0x00000000; in amdgpu_cs_vcn_enc_encode_frame()
1451 ib_cpu[len++] = 0x00000000; in amdgpu_cs_vcn_enc_encode_frame()
1452 ib_cpu[len++] = 0x00000000; in amdgpu_cs_vcn_enc_encode_frame()
1453 ib_cpu[len++] = 0x00000000; in amdgpu_cs_vcn_enc_encode_frame()
1454 ib_cpu[len++] = 0x00000000; in amdgpu_cs_vcn_enc_encode_frame()
1455 ib_cpu[len++] = 0x00000000; in amdgpu_cs_vcn_enc_encode_frame()
1456 ib_cpu[len++] = 0x00000000; in amdgpu_cs_vcn_enc_encode_frame()
1457 ib_cpu[len++] = 0xffffffff; in amdgpu_cs_vcn_enc_encode_frame()
1458 ib_cpu[len++] = 0x00000000; in amdgpu_cs_vcn_enc_encode_frame()
1459 ib_cpu[len++] = 0x00000000; in amdgpu_cs_vcn_enc_encode_frame()
1460 ib_cpu[len++] = 0x00000000; in amdgpu_cs_vcn_enc_encode_frame()
1461 ib_cpu[len++] = 0x00000000; in amdgpu_cs_vcn_enc_encode_frame()
1462 ib_cpu[len++] = 0xffffffff; in amdgpu_cs_vcn_enc_encode_frame()
1463 ib_cpu[len++] = 0x00000000; in amdgpu_cs_vcn_enc_encode_frame()
1464 ib_cpu[len++] = 0x00000000; in amdgpu_cs_vcn_enc_encode_frame()
1465 ib_cpu[len++] = 0x00000000; in amdgpu_cs_vcn_enc_encode_frame()
1466 ib_cpu[len++] = 0x00000000; in amdgpu_cs_vcn_enc_encode_frame()
1467 ib_cpu[len++] = 0x00000001; in amdgpu_cs_vcn_enc_encode_frame()
1469 *st_size = (len - st_offset) * 4; in amdgpu_cs_vcn_enc_encode_frame()
1472 st_offset = len; in amdgpu_cs_vcn_enc_encode_frame()
1473 st_size = &ib_cpu[len++]; /* size */ in amdgpu_cs_vcn_enc_encode_frame()
1475 ib_cpu[len++] = 0x0000000d; /* ENCODE_CONTEXT_BUFFER vcn 1 */ in amdgpu_cs_vcn_enc_encode_frame()
1477 ib_cpu[len++] = 0x00000011; /* ENCODE_CONTEXT_BUFFER other vcn */ in amdgpu_cs_vcn_enc_encode_frame()
1478 ib_cpu[len++] = cpb_buf.addr >> 32; in amdgpu_cs_vcn_enc_encode_frame()
1479 ib_cpu[len++] = cpb_buf.addr; in amdgpu_cs_vcn_enc_encode_frame()
1480 ib_cpu[len++] = 0x00000000; /* swizzle mode */ in amdgpu_cs_vcn_enc_encode_frame()
1481 ib_cpu[len++] = 0x00000100; /* luma pitch */ in amdgpu_cs_vcn_enc_encode_frame()
1482 ib_cpu[len++] = 0x00000100; /* chroma pitch */ in amdgpu_cs_vcn_enc_encode_frame()
1483 ib_cpu[len++] = 0x00000002; /* no reconstructed picture */ in amdgpu_cs_vcn_enc_encode_frame()
1484 ib_cpu[len++] = 0x00000000; /* reconstructed pic 1 luma offset */ in amdgpu_cs_vcn_enc_encode_frame()
1485 ib_cpu[len++] = ALIGN(width, 256) * ALIGN(height, 32); /* pic1 chroma offset */ in amdgpu_cs_vcn_enc_encode_frame()
1487 amdgpu_cs_vcn_ib_zero_count(&len, 2); in amdgpu_cs_vcn_enc_encode_frame()
1488 ib_cpu[len++] = ALIGN(width, 256) * ALIGN(height, 32) * 3 / 2; /* pic2 luma offset */ in amdgpu_cs_vcn_enc_encode_frame()
1489 ib_cpu[len++] = ALIGN(width, 256) * ALIGN(height, 32) * 5 / 2; /* pic2 chroma offset */ in amdgpu_cs_vcn_enc_encode_frame()
1491 amdgpu_cs_vcn_ib_zero_count(&len, 280); in amdgpu_cs_vcn_enc_encode_frame()
1492 *st_size = (len - st_offset) * 4; in amdgpu_cs_vcn_enc_encode_frame()
1495 st_offset = len; in amdgpu_cs_vcn_enc_encode_frame()
1496 st_size = &ib_cpu[len++]; /* size */ in amdgpu_cs_vcn_enc_encode_frame()
1498 ib_cpu[len++] = 0x0000000e; /* VIDEO_BITSTREAM_BUFFER vcn 1 */ in amdgpu_cs_vcn_enc_encode_frame()
1500 ib_cpu[len++] = 0x00000012; /* VIDEO_BITSTREAM_BUFFER other vcn */ in amdgpu_cs_vcn_enc_encode_frame()
1502 ib_cpu[len++] = 0x00000000; /* mode */ in amdgpu_cs_vcn_enc_encode_frame()
1503 ib_cpu[len++] = bs_buf.addr >> 32; in amdgpu_cs_vcn_enc_encode_frame()
1504 ib_cpu[len++] = bs_buf.addr; in amdgpu_cs_vcn_enc_encode_frame()
1505 ib_cpu[len++] = 0x0001f000; in amdgpu_cs_vcn_enc_encode_frame()
1506 ib_cpu[len++] = 0x00000000; in amdgpu_cs_vcn_enc_encode_frame()
1507 *st_size = (len - st_offset) * 4; in amdgpu_cs_vcn_enc_encode_frame()
1510 st_offset = len; in amdgpu_cs_vcn_enc_encode_frame()
1511 st_size = &ib_cpu[len++]; /* size */ in amdgpu_cs_vcn_enc_encode_frame()
1513 ib_cpu[len++] = 0x00000010; /* FEEDBACK_BUFFER vcn 1 */ in amdgpu_cs_vcn_enc_encode_frame()
1515 ib_cpu[len++] = 0x00000015; /* FEEDBACK_BUFFER vcn 2,3 */ in amdgpu_cs_vcn_enc_encode_frame()
1516 ib_cpu[len++] = 0x00000000; in amdgpu_cs_vcn_enc_encode_frame()
1517 ib_cpu[len++] = fb_buf.addr >> 32; in amdgpu_cs_vcn_enc_encode_frame()
1518 ib_cpu[len++] = fb_buf.addr; in amdgpu_cs_vcn_enc_encode_frame()
1519 ib_cpu[len++] = 0x00000010; in amdgpu_cs_vcn_enc_encode_frame()
1520 ib_cpu[len++] = 0x00000028; in amdgpu_cs_vcn_enc_encode_frame()
1521 *st_size = (len - st_offset) * 4; in amdgpu_cs_vcn_enc_encode_frame()
1524 st_offset = len; in amdgpu_cs_vcn_enc_encode_frame()
1525 st_size = &ib_cpu[len++]; in amdgpu_cs_vcn_enc_encode_frame()
1527 ib_cpu[len++] = 0x0000000c; /* INTRA_REFRESH vcn 1 */ in amdgpu_cs_vcn_enc_encode_frame()
1529 ib_cpu[len++] = 0x00000010; /* INTRA_REFRESH vcn 2,3 */ in amdgpu_cs_vcn_enc_encode_frame()
1530 ib_cpu[len++] = 0x00000000; in amdgpu_cs_vcn_enc_encode_frame()
1531 ib_cpu[len++] = 0x00000000; in amdgpu_cs_vcn_enc_encode_frame()
1532 ib_cpu[len++] = 0x00000000; in amdgpu_cs_vcn_enc_encode_frame()
1533 *st_size = (len - st_offset) * 4; in amdgpu_cs_vcn_enc_encode_frame()
1537 st_offset = len; in amdgpu_cs_vcn_enc_encode_frame()
1538 st_size = &ib_cpu[len++]; in amdgpu_cs_vcn_enc_encode_frame()
1539 ib_cpu[len++] = 0x0000000c; in amdgpu_cs_vcn_enc_encode_frame()
1540 ib_cpu[len++] = 0x00000000; /* RENCODE_COLOR_VOLUME_G22_BT709 */ in amdgpu_cs_vcn_enc_encode_frame()
1541 ib_cpu[len++] = 0x00000000; in amdgpu_cs_vcn_enc_encode_frame()
1542 ib_cpu[len++] = 0x00000000; in amdgpu_cs_vcn_enc_encode_frame()
1543 ib_cpu[len++] = 0x00000000; in amdgpu_cs_vcn_enc_encode_frame()
1544 ib_cpu[len++] = 0x00000000; in amdgpu_cs_vcn_enc_encode_frame()
1545 ib_cpu[len++] = 0x00000000; /* RENCODE_COLOR_BIT_DEPTH_8_BIT */ in amdgpu_cs_vcn_enc_encode_frame()
1546 ib_cpu[len++] = 0x00000000; /* RENCODE_COLOR_PACKING_FORMAT_NV12 */ in amdgpu_cs_vcn_enc_encode_frame()
1547 *st_size = (len - st_offset) * 4; in amdgpu_cs_vcn_enc_encode_frame()
1550 st_offset = len; in amdgpu_cs_vcn_enc_encode_frame()
1551 st_size = &ib_cpu[len++]; in amdgpu_cs_vcn_enc_encode_frame()
1552 ib_cpu[len++] = 0x0000000d; in amdgpu_cs_vcn_enc_encode_frame()
1553 ib_cpu[len++] = 0x00000000; /* RENCODE_COLOR_VOLUME_G22_BT709 */ in amdgpu_cs_vcn_enc_encode_frame()
1554 ib_cpu[len++] = 0x00000000; in amdgpu_cs_vcn_enc_encode_frame()
1555 ib_cpu[len++] = 0x00000000; in amdgpu_cs_vcn_enc_encode_frame()
1556 ib_cpu[len++] = 0x00000000; /* RENCODE_COLOR_BIT_DEPTH_8_BIT */ in amdgpu_cs_vcn_enc_encode_frame()
1557 *st_size = (len - st_offset) * 4; in amdgpu_cs_vcn_enc_encode_frame()
1560 st_offset = len; in amdgpu_cs_vcn_enc_encode_frame()
1561 st_size = &ib_cpu[len++]; in amdgpu_cs_vcn_enc_encode_frame()
1562 ib_cpu[len++] = 0x01000006; /* SPEED_ENCODING_MODE */ in amdgpu_cs_vcn_enc_encode_frame()
1563 *st_size = (len - st_offset) * 4; in amdgpu_cs_vcn_enc_encode_frame()
1566 st_offset = len; in amdgpu_cs_vcn_enc_encode_frame()
1567 st_size = &ib_cpu[len++]; in amdgpu_cs_vcn_enc_encode_frame()
1568 ib_cpu[len++] = 0x01000003; in amdgpu_cs_vcn_enc_encode_frame()
1569 *st_size = (len - st_offset) * 4; in amdgpu_cs_vcn_enc_encode_frame()
1571 *p_task_size = (len - task_offset) * 4; in amdgpu_cs_vcn_enc_encode_frame()
1574 amdgpu_cs_sq_ib_tail(ib_cpu + len); in amdgpu_cs_vcn_enc_encode_frame()
1576 r = submit(len, AMDGPU_HW_IP_VCN_ENC); in amdgpu_cs_vcn_enc_encode_frame()
1594 int len = 0, r; in amdgpu_cs_vcn_enc_destroy() local
1614 amdgpu_cs_sq_head(ib_cpu, &len, true); in amdgpu_cs_vcn_enc_destroy()
1617 st_offset = len; in amdgpu_cs_vcn_enc_destroy()
1618 st_size = &ib_cpu[len++]; /* size */ in amdgpu_cs_vcn_enc_destroy()
1619 ib_cpu[len++] = 0x00000001; /* RENCODE_IB_PARAM_SESSION_INFO */ in amdgpu_cs_vcn_enc_destroy()
1620 ib_cpu[len++] = ((fw_maj << 16) | (fw_min << 0)); in amdgpu_cs_vcn_enc_destroy()
1621 ib_cpu[len++] = enc_buf.addr >> 32; in amdgpu_cs_vcn_enc_destroy()
1622 ib_cpu[len++] = enc_buf.addr; in amdgpu_cs_vcn_enc_destroy()
1623 ib_cpu[len++] = 1; /* RENCODE_ENGINE_TYPE_ENCODE; */ in amdgpu_cs_vcn_enc_destroy()
1624 *st_size = (len - st_offset) * 4; in amdgpu_cs_vcn_enc_destroy()
1627 task_offset = len; in amdgpu_cs_vcn_enc_destroy()
1628 st_offset = len; in amdgpu_cs_vcn_enc_destroy()
1629 st_size = &ib_cpu[len++]; /* size */ in amdgpu_cs_vcn_enc_destroy()
1630 ib_cpu[len++] = 0x00000002; /* RENCODE_IB_PARAM_TASK_INFO */ in amdgpu_cs_vcn_enc_destroy()
1631 p_task_size = &ib_cpu[len++]; in amdgpu_cs_vcn_enc_destroy()
1632 ib_cpu[len++] = enc_task_id++; /* task_id */ in amdgpu_cs_vcn_enc_destroy()
1633 ib_cpu[len++] = 0; /* feedback */ in amdgpu_cs_vcn_enc_destroy()
1634 *st_size = (len - st_offset) * 4; in amdgpu_cs_vcn_enc_destroy()
1637 st_offset = len; in amdgpu_cs_vcn_enc_destroy()
1638 st_size = &ib_cpu[len++]; in amdgpu_cs_vcn_enc_destroy()
1639 ib_cpu[len++] = 0x01000002; /* RENCODE_IB_OP_CLOSE_SESSION */ in amdgpu_cs_vcn_enc_destroy()
1640 *st_size = (len - st_offset) * 4; in amdgpu_cs_vcn_enc_destroy()
1642 *p_task_size = (len - task_offset) * 4; in amdgpu_cs_vcn_enc_destroy()
1645 amdgpu_cs_sq_ib_tail(ib_cpu + len); in amdgpu_cs_vcn_enc_destroy()
1647 r = submit(len, AMDGPU_HW_IP_VCN_ENC); in amdgpu_cs_vcn_enc_destroy()