Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 2258de68 authored by qctecmdr's avatar qctecmdr Committed by Gerrit - the friendly Code Review server
Browse files

Merge "msm: npu: update performance mode during load network"

parents 7d2e595c 3335887c
Loading
Loading
Loading
Loading
+3 −0
Original line number Original line Diff line number Diff line
@@ -1630,6 +1630,9 @@ static int npu_set_fw_state(struct npu_client *client, uint32_t enable)
			host_ctx->npu_init_cnt++;
			host_ctx->npu_init_cnt++;
			pr_debug("npu_init_cnt %d\n",
			pr_debug("npu_init_cnt %d\n",
				host_ctx->npu_init_cnt);
				host_ctx->npu_init_cnt);
			/* set npu to lowest power level */
			if (npu_set_uc_power_level(npu_dev, 1))
				pr_warn("Failed to set uc power level");
		}
		}
	} else if (host_ctx->npu_init_cnt > 0) {
	} else if (host_ctx->npu_init_cnt > 0) {
		pr_debug("disable fw\n");
		pr_debug("disable fw\n");
+4 −4
Original line number Original line Diff line number Diff line
@@ -1431,8 +1431,7 @@ int32_t npu_host_load_network(struct npu_client *client,
	network->priority = load_ioctl->priority;
	network->priority = load_ioctl->priority;
	network->cur_perf_mode = network->init_perf_mode =
	network->cur_perf_mode = network->init_perf_mode =
		(load_ioctl->perf_mode == PERF_MODE_DEFAULT) ?
		(load_ioctl->perf_mode == PERF_MODE_DEFAULT) ?
			pwr->num_pwrlevels - 1 :
			pwr->num_pwrlevels : load_ioctl->perf_mode;
			load_ioctl->perf_mode;


	/* verify mapped physical address */
	/* verify mapped physical address */
	if (!npu_mem_verify_addr(client, network->phy_add)) {
	if (!npu_mem_verify_addr(client, network->phy_add)) {
@@ -1451,6 +1450,7 @@ int32_t npu_host_load_network(struct npu_client *client,
	load_packet.buf_pkt.buf_size = network->first_block_size;
	load_packet.buf_pkt.buf_size = network->first_block_size;
	load_packet.buf_pkt.network_id = network->id;
	load_packet.buf_pkt.network_id = network->id;


	set_perf_mode(npu_dev);
	/* NPU_IPC_CMD_LOAD will go onto IPC_QUEUE_APPS_EXEC */
	/* NPU_IPC_CMD_LOAD will go onto IPC_QUEUE_APPS_EXEC */
	reinit_completion(&network->cmd_done);
	reinit_completion(&network->cmd_done);
	ret = npu_send_network_cmd(npu_dev, network, &load_packet, false);
	ret = npu_send_network_cmd(npu_dev, network, &load_packet, false);
@@ -1548,8 +1548,7 @@ int32_t npu_host_load_network_v2(struct npu_client *client,
	network->priority = load_ioctl->priority;
	network->priority = load_ioctl->priority;
	network->cur_perf_mode = network->init_perf_mode =
	network->cur_perf_mode = network->init_perf_mode =
		(load_ioctl->perf_mode == PERF_MODE_DEFAULT) ?
		(load_ioctl->perf_mode == PERF_MODE_DEFAULT) ?
		pwr->num_pwrlevels - 1 :
		pwr->num_pwrlevels : load_ioctl->perf_mode;
		load_ioctl->perf_mode;
	network->num_layers = load_ioctl->num_layers;
	network->num_layers = load_ioctl->num_layers;


	/* verify mapped physical address */
	/* verify mapped physical address */
@@ -1572,6 +1571,7 @@ int32_t npu_host_load_network_v2(struct npu_client *client,
	load_packet->buf_pkt.num_layers = network->num_layers;
	load_packet->buf_pkt.num_layers = network->num_layers;
	load_packet->num_patch_params = num_patch_params;
	load_packet->num_patch_params = num_patch_params;


	set_perf_mode(npu_dev);
	/* NPU_IPC_CMD_LOAD_V2 will go onto IPC_QUEUE_APPS_EXEC */
	/* NPU_IPC_CMD_LOAD_V2 will go onto IPC_QUEUE_APPS_EXEC */
	reinit_completion(&network->cmd_done);
	reinit_completion(&network->cmd_done);
	ret = npu_send_network_cmd(npu_dev, network, load_packet, false);
	ret = npu_send_network_cmd(npu_dev, network, load_packet, false);