Lines Matching defs:cluster

29  * settings for RPU cluster mode which
30 * reflects possible values of xlnx,cluster-mode dt-property
109 * @dev: r5f subsystem cluster device node
110 * @mode: cluster mode of type zynqmp_r5_cluster_mode
111 * @core_count: number of r5 cores used for this cluster mode
296 * set RPU cluster and TCM operation mode
299 * @fw_reg_val: value expected by firmware to configure RPU cluster mode
704 * allocate and add remoteproc carveouts for TCM memory based on cluster mode
710 struct zynqmp_r5_cluster *cluster;
720 cluster = dev_get_drvdata(dev->parent);
721 if (!cluster) {
731 if (cluster->mode == SPLIT_MODE)
733 else if (cluster->mode == LOCKSTEP_MODE)
892 * @cluster: pointer to zynqmp_r5_cluster type object
896 static int zynqmp_r5_get_tcm_node(struct zynqmp_r5_cluster *cluster)
898 struct device *dev = cluster->dev;
906 tcm_bank_count = tcm_bank_count / cluster->core_count;
914 for (i = 0; i < cluster->core_count; i++) {
915 r5_core = cluster->r5_cores[i];
943 * @cluster: pointer to zynqmp_r5_cluster type object
944 * @fw_reg_val: value expected by firmware to configure RPU cluster mode
949 static int zynqmp_r5_core_init(struct zynqmp_r5_cluster *cluster,
953 struct device *dev = cluster->dev;
957 ret = zynqmp_r5_get_tcm_node(cluster);
963 for (i = 0; i < cluster->core_count; i++) {
964 r5_core = cluster->r5_cores[i];
976 dev_err(dev, "failed to set r5 cluster mode %d, err %d\n",
977 cluster->mode, ret);
989 * @cluster: pointer to zynqmp_r5_cluster type object
993 static int zynqmp_r5_cluster_init(struct zynqmp_r5_cluster *cluster)
996 struct device *dev = cluster->dev;
1007 ret = of_property_read_u32(dev_node, "xlnx,cluster-mode", &cluster_mode);
1015 dev_err(dev, "Invalid xlnx,cluster-mode property\n");
1030 dev_err(dev, "driver does not support cluster mode %d\n", cluster_mode);
1107 cluster->mode = cluster_mode;
1108 cluster->core_count = core_count;
1109 cluster->r5_cores = r5_cores;
1111 ret = zynqmp_r5_core_init(cluster, fw_reg_val, tcm_mode);
1114 cluster->core_count = 0;
1115 cluster->r5_cores = NULL;
1147 struct zynqmp_r5_cluster *cluster;
1151 cluster = platform_get_drvdata(pdev);
1152 if (!cluster)
1155 for (i = 0; i < cluster->core_count; i++) {
1156 r5_core = cluster->r5_cores[i];
1164 kfree(cluster->r5_cores);
1165 kfree(cluster);
1174 * @pdev: domain platform device for R5 cluster
1180 struct zynqmp_r5_cluster *cluster;
1184 cluster = kzalloc(sizeof(*cluster), GFP_KERNEL);
1185 if (!cluster)
1188 cluster->dev = dev;
1193 kfree(cluster);
1198 platform_set_drvdata(pdev, cluster);
1200 ret = zynqmp_r5_cluster_init(cluster);
1202 kfree(cluster);