Lines Matching refs:desc

590                                                  struct its_cmd_desc *desc)

593 u8 size = ilog2(desc->its_mapd_cmd.dev->nr_ites);
595 itt_addr = virt_to_phys(desc->its_mapd_cmd.dev->itt);
599 its_encode_devid(cmd, desc->its_mapd_cmd.dev->device_id);
602 its_encode_valid(cmd, desc->its_mapd_cmd.valid);
610 struct its_cmd_desc *desc)
613 its_encode_collection(cmd, desc->its_mapc_cmd.col->col_id);
614 its_encode_target(cmd, desc->its_mapc_cmd.col->target_address);
615 its_encode_valid(cmd, desc->its_mapc_cmd.valid);
619 return desc->its_mapc_cmd.col;
623 struct its_cmd_desc *desc)
627 col = dev_event_to_col(desc->its_mapti_cmd.dev, desc->its_mapti_cmd.event_id);
630 its_encode_devid(cmd, desc->its_mapti_cmd.dev->device_id);
631 its_encode_event_id(cmd, desc->its_mapti_cmd.event_id);
632 its_encode_phys_id(cmd, desc->its_mapti_cmd.phys_id);
641 struct its_cmd_desc *desc)
645 col = dev_event_to_col(desc->its_movi_cmd.dev, desc->its_movi_cmd.event_id);
648 its_encode_devid(cmd, desc->its_movi_cmd.dev->device_id);
649 its_encode_event_id(cmd, desc->its_movi_cmd.event_id);
650 its_encode_collection(cmd, desc->its_movi_cmd.col->col_id);
658 struct its_cmd_desc *desc)
662 col = dev_event_to_col(desc->its_discard_cmd.dev, desc->its_discard_cmd.event_id);
665 its_encode_devid(cmd, desc->its_discard_cmd.dev->device_id);
666 its_encode_event_id(cmd, desc->its_discard_cmd.event_id);
674 struct its_cmd_desc *desc)
678 col = dev_event_to_col(desc->its_inv_cmd.dev, desc->its_inv_cmd.event_id);
681 its_encode_devid(cmd, desc->its_inv_cmd.dev->device_id);
682 its_encode_event_id(cmd, desc->its_inv_cmd.event_id);
690 struct its_cmd_desc *desc)
694 col = dev_event_to_col(desc->its_int_cmd.dev, desc->its_int_cmd.event_id);
697 its_encode_devid(cmd, desc->its_int_cmd.dev->device_id);
698 its_encode_event_id(cmd, desc->its_int_cmd.event_id);
706 struct its_cmd_desc *desc)
710 col = dev_event_to_col(desc->its_clear_cmd.dev, desc->its_clear_cmd.event_id);
713 its_encode_devid(cmd, desc->its_clear_cmd.dev->device_id);
714 its_encode_event_id(cmd, desc->its_clear_cmd.event_id);
722 struct its_cmd_desc *desc)
725 its_encode_collection(cmd, desc->its_invall_cmd.col->col_id);
729 return desc->its_invall_cmd.col;
732 static struct its_vpe *its_build_vinvall_cmd(struct its_node *its, struct its_cmd_block *cmd, struct its_cmd_desc *desc)
735 its_encode_vpeid(cmd, desc->its_vinvall_cmd.vpe->vpe_id);
739 return valid_vpe(its, desc->its_vinvall_cmd.vpe);
742 static struct its_vpe *its_build_vmapp_cmd(struct its_node *its, struct its_cmd_block *cmd, struct its_cmd_desc *desc)
749 its_encode_vpeid(cmd, desc->its_vmapp_cmd.vpe->vpe_id);
750 its_encode_valid(cmd, desc->its_vmapp_cmd.valid);
752 if (!desc->its_vmapp_cmd.valid) {
754 alloc = !atomic_dec_return(&desc->its_vmapp_cmd.vpe->vmapp_count);
761 vpt_addr = virt_to_phys(page_address(desc->its_vmapp_cmd.vpe->vpt_page));
762 target = desc->its_vmapp_cmd.col->target_address + its->vlpi_redist_offset;
772 vconf_addr = virt_to_phys(page_address(desc->its_vmapp_cmd.vpe->its_vm->vprop_page));
774 alloc = !atomic_fetch_inc(&desc->its_vmapp_cmd.vpe->vmapp_count);
781 its_encode_vmapp_default_db(cmd, desc->its_vmapp_cmd.vpe->vpe_db_lpi);
786 return valid_vpe(its, desc->its_vmapp_cmd.vpe);
789 static struct its_vpe *its_build_vmapti_cmd(struct its_node *its, struct its_cmd_block *cmd, struct its_cmd_desc *desc)
793 if (!is_v4_1(its) && desc->its_vmapti_cmd.db_enabled) {
794 db = desc->its_vmapti_cmd.vpe->vpe_db_lpi;
800 its_encode_devid(cmd, desc->its_vmapti_cmd.dev->device_id);
801 its_encode_vpeid(cmd, desc->its_vmapti_cmd.vpe->vpe_id);
802 its_encode_event_id(cmd, desc->its_vmapti_cmd.event_id);
804 its_encode_virt_id(cmd, desc->its_vmapti_cmd.virt_id);
808 return valid_vpe(its, desc->its_vmapti_cmd.vpe);
811 static struct its_vpe *its_build_vmovi_cmd(struct its_node *its, struct its_cmd_block *cmd, struct its_cmd_desc *desc)
815 if (!is_v4_1(its) && desc->its_vmovi_cmd.db_enabled) {
816 db = desc->its_vmovi_cmd.vpe->vpe_db_lpi;
822 its_encode_devid(cmd, desc->its_vmovi_cmd.dev->device_id);
823 its_encode_vpeid(cmd, desc->its_vmovi_cmd.vpe->vpe_id);
824 its_encode_event_id(cmd, desc->its_vmovi_cmd.event_id);
830 return valid_vpe(its, desc->its_vmovi_cmd.vpe);
833 static struct its_vpe *its_build_vmovp_cmd(struct its_node *its, struct its_cmd_block *cmd, struct its_cmd_desc *desc)
837 target = desc->its_vmovp_cmd.col->target_address + its->vlpi_redist_offset;
839 its_encode_seq_num(cmd, desc->its_vmovp_cmd.seq_num);
840 its_encode_its_list(cmd, desc->its_vmovp_cmd.its_list);
841 its_encode_vpeid(cmd, desc->its_vmovp_cmd.vpe->vpe_id);
846 its_encode_vmovp_default_db(cmd, desc->its_vmovp_cmd.vpe->vpe_db_lpi);
851 return valid_vpe(its, desc->its_vmovp_cmd.vpe);
854 static struct its_vpe *its_build_vinv_cmd(struct its_node *its, struct its_cmd_block *cmd, struct its_cmd_desc *desc)
858 map = dev_event_to_vlpi_map(desc->its_inv_cmd.dev, desc->its_inv_cmd.event_id);
861 its_encode_devid(cmd, desc->its_inv_cmd.dev->device_id);
862 its_encode_event_id(cmd, desc->its_inv_cmd.event_id);
869 static struct its_vpe *its_build_vint_cmd(struct its_node *its, struct its_cmd_block *cmd, struct its_cmd_desc *desc)
873 map = dev_event_to_vlpi_map(desc->its_int_cmd.dev, desc->its_int_cmd.event_id);
876 its_encode_devid(cmd, desc->its_int_cmd.dev->device_id);
877 its_encode_event_id(cmd, desc->its_int_cmd.event_id);
884 static struct its_vpe *its_build_vclear_cmd(struct its_node *its, struct its_cmd_block *cmd, struct its_cmd_desc *desc)
888 map = dev_event_to_vlpi_map(desc->its_clear_cmd.dev, desc->its_clear_cmd.event_id);
891 its_encode_devid(cmd, desc->its_clear_cmd.dev->device_id);
892 its_encode_event_id(cmd, desc->its_clear_cmd.event_id);
899 static struct its_vpe *its_build_invdb_cmd(struct its_node *its, struct its_cmd_block *cmd, struct its_cmd_desc *desc)
906 its_encode_vpeid(cmd, desc->its_invdb_cmd.vpe->vpe_id);
910 return valid_vpe(its, desc->its_invdb_cmd.vpe);
913 static struct its_vpe *its_build_vsgi_cmd(struct its_node *its, struct its_cmd_block *cmd, struct its_cmd_desc *desc)
920 its_encode_vpeid(cmd, desc->its_vsgi_cmd.vpe->vpe_id);
921 its_encode_sgi_intid(cmd, desc->its_vsgi_cmd.sgi);
922 its_encode_sgi_priority(cmd, desc->its_vsgi_cmd.priority);
923 its_encode_sgi_group(cmd, desc->its_vsgi_cmd.group);
924 its_encode_sgi_clear(cmd, desc->its_vsgi_cmd.clear);
925 its_encode_sgi_enable(cmd, desc->its_vsgi_cmd.enable);
929 return valid_vpe(its, desc->its_vsgi_cmd.vpe);
1058 void its_send_single_command(struct its_node *its, its_cmd_builder_t builder, struct its_cmd_desc *desc)
1072 sync_obj = builder(its, cmd, desc);
1102 void its_send_single_vcommand(struct its_node *its, its_cmd_vbuilder_t builder, struct its_cmd_desc *desc)
1116 sync_obj = builder(its, cmd, desc);
1140 struct its_cmd_desc desc;
1142 desc.its_int_cmd.dev = dev;
1143 desc.its_int_cmd.event_id = event_id;
1145 its_send_single_command(dev->its, its_build_int_cmd, &desc);
1150 struct its_cmd_desc desc;
1152 desc.its_clear_cmd.dev = dev;
1153 desc.its_clear_cmd.event_id = event_id;
1155 its_send_single_command(dev->its, its_build_clear_cmd, &desc);
1160 struct its_cmd_desc desc;
1162 desc.its_inv_cmd.dev = dev;
1163 desc.its_inv_cmd.event_id = event_id;
1165 its_send_single_command(dev->its, its_build_inv_cmd, &desc);
1170 struct its_cmd_desc desc;
1172 desc.its_mapd_cmd.dev = dev;
1173 desc.its_mapd_cmd.valid = !!valid;
1175 its_send_single_command(dev->its, its_build_mapd_cmd, &desc);
1180 struct its_cmd_desc desc;
1182 desc.its_mapc_cmd.col = col;
1183 desc.its_mapc_cmd.valid = !!valid;
1185 its_send_single_command(its, its_build_mapc_cmd, &desc);
1190 struct its_cmd_desc desc;
1192 desc.its_mapti_cmd.dev = dev;
1193 desc.its_mapti_cmd.phys_id = irq_id;
1194 desc.its_mapti_cmd.event_id = id;
1196 its_send_single_command(dev->its, its_build_mapti_cmd, &desc);
1201 struct its_cmd_desc desc;
1203 desc.its_movi_cmd.dev = dev;
1204 desc.its_movi_cmd.col = col;
1205 desc.its_movi_cmd.event_id = id;
1207 its_send_single_command(dev->its, its_build_movi_cmd, &desc);
1212 struct its_cmd_desc desc;
1214 desc.its_discard_cmd.dev = dev;
1215 desc.its_discard_cmd.event_id = id;
1217 its_send_single_command(dev->its, its_build_discard_cmd, &desc);
1222 struct its_cmd_desc desc;
1224 desc.its_invall_cmd.col = col;
1226 its_send_single_command(its, its_build_invall_cmd, &desc);
1232 struct its_cmd_desc desc;
1234 desc.its_vmapti_cmd.vpe = map->vpe;
1235 desc.its_vmapti_cmd.dev = dev;
1236 desc.its_vmapti_cmd.virt_id = map->vintid;
1237 desc.its_vmapti_cmd.event_id = id;
1238 desc.its_vmapti_cmd.db_enabled = map->db_enabled;
1240 its_send_single_vcommand(dev->its, its_build_vmapti_cmd, &desc);
1246 struct its_cmd_desc desc;
1248 desc.its_vmovi_cmd.vpe = map->vpe;
1249 desc.its_vmovi_cmd.dev = dev;
1250 desc.its_vmovi_cmd.event_id = id;
1251 desc.its_vmovi_cmd.db_enabled = map->db_enabled;
1253 its_send_single_vcommand(dev->its, its_build_vmovi_cmd, &desc);
1258 struct its_cmd_desc desc;
1260 desc.its_vmapp_cmd.vpe = vpe;
1261 desc.its_vmapp_cmd.valid = valid;
1262 desc.its_vmapp_cmd.col = &its->collections[vpe->col_idx];
1264 its_send_single_vcommand(its, its_build_vmapp_cmd, &desc);
1269 struct its_cmd_desc desc = {};
1274 desc.its_vmovp_cmd.vpe = vpe;
1278 desc.its_vmovp_cmd.col = &its->collections[col_id];
1279 its_send_single_vcommand(its, its_build_vmovp_cmd, &desc);
1293 desc.its_vmovp_cmd.seq_num = vmovp_seq_num++;
1294 desc.its_vmovp_cmd.its_list = get_its_list(vpe->its_vm);
1307 desc.its_vmovp_cmd.col = &its->collections[col_id];
1308 its_send_single_vcommand(its, its_build_vmovp_cmd, &desc);
1316 struct its_cmd_desc desc;
1318 desc.its_vinvall_cmd.vpe = vpe;
1319 its_send_single_vcommand(its, its_build_vinvall_cmd, &desc);
1324 struct its_cmd_desc desc;
1330 desc.its_inv_cmd.dev = dev;
1331 desc.its_inv_cmd.event_id = event_id;
1333 its_send_single_vcommand(dev->its, its_build_vinv_cmd, &desc);
1338 struct its_cmd_desc desc;
1344 desc.its_int_cmd.dev = dev;
1345 desc.its_int_cmd.event_id = event_id;
1347 its_send_single_vcommand(dev->its, its_build_vint_cmd, &desc);
1352 struct its_cmd_desc desc;
1358 desc.its_clear_cmd.dev = dev;
1359 desc.its_clear_cmd.event_id = event_id;
1361 its_send_single_vcommand(dev->its, its_build_vclear_cmd, &desc);
1366 struct its_cmd_desc desc;
1368 desc.its_invdb_cmd.vpe = vpe;
1369 its_send_single_vcommand(its, its_build_invdb_cmd, &desc);
3583 err = iommu_dma_prepare_msi(info->desc, its->get_msi_base(its_dev));
4192 struct its_cmd_desc desc;
4194 desc.its_vsgi_cmd.vpe = vpe;
4195 desc.its_vsgi_cmd.sgi = d->hwirq;
4196 desc.its_vsgi_cmd.priority = vpe->sgi_config[d->hwirq].priority;
4197 desc.its_vsgi_cmd.enable = vpe->sgi_config[d->hwirq].enabled;
4198 desc.its_vsgi_cmd.group = vpe->sgi_config[d->hwirq].group;
4199 desc.its_vsgi_cmd.clear = clear;
4206 its_send_single_vcommand(find_4_1_its(), its_build_vsgi_cmd, &desc);
4719 .desc = "ITS: Cavium errata 22375, 24313",
4727 .desc = "ITS: Cavium erratum 23144",
4735 .desc = "ITS: QDF2400 erratum 0065",
4748 .desc = "ITS: Socionext Synquacer pre-ITS",
4756 .desc = "ITS: Hip07 erratum 161600802",