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

Commit 926e47f1 authored by qctecmdr Service's avatar qctecmdr Service Committed by Gerrit - the friendly Code Review server
Browse files

Merge "msm: vidc: Disable video power collapse"

parents b01c696b d86420ec
Loading
Loading
Loading
Loading
+2 −0
Original line number Original line Diff line number Diff line
@@ -1669,6 +1669,7 @@
		clocks = <&clock_gcc GCC_VIDEO_AHB_CLK>;
		clocks = <&clock_gcc GCC_VIDEO_AHB_CLK>;
		parent-supply = <&VDD_MMCX_LEVEL>;
		parent-supply = <&VDD_MMCX_LEVEL>;
		vdd_parent-supply = <&VDD_MMCX_LEVEL>;
		vdd_parent-supply = <&VDD_MMCX_LEVEL>;
		qcom,support-hw-trigger;
	};
	};


	mvs0c_gdsc: qcom,gdsc@abf0bf8 {
	mvs0c_gdsc: qcom,gdsc@abf0bf8 {
@@ -1679,6 +1680,7 @@
		clocks = <&clock_gcc GCC_VIDEO_AHB_CLK>;
		clocks = <&clock_gcc GCC_VIDEO_AHB_CLK>;
		parent-supply = <&VDD_MMCX_LEVEL>;
		parent-supply = <&VDD_MMCX_LEVEL>;
		vdd_parent-supply = <&VDD_MMCX_LEVEL>;
		vdd_parent-supply = <&VDD_MMCX_LEVEL>;
		qcom,support-hw-trigger;
	};
	};


	mvs1_gdsc: qcom,gdsc@abf0d98 {
	mvs1_gdsc: qcom,gdsc@abf0d98 {
+3 −3
Original line number Original line Diff line number Diff line
@@ -161,7 +161,7 @@ static struct msm_vidc_common_data kona_common_data[] = {
	},
	},
	{
	{
		.key = "qcom,sw-power-collapse",
		.key = "qcom,sw-power-collapse",
		.value = 1,
		.value = 0,
	},
	},
	{
	{
		.key = "qcom,domain-attr-non-fatal-faults",
		.key = "qcom,domain-attr-non-fatal-faults",
@@ -205,11 +205,11 @@ static struct msm_vidc_common_data kona_common_data[] = {
	},
	},
	{
	{
		.key = "qcom,power-collapse-delay",
		.key = "qcom,power-collapse-delay",
		.value = 1500,
		.value = 15000,
	},
	},
	{
	{
		.key = "qcom,hw-resp-timeout",
		.key = "qcom,hw-resp-timeout",
		.value = 1000,
		.value = 10000,
	},
	},
	{
	{
		.key = "qcom,debug-timeout",
		.key = "qcom,debug-timeout",
+13 −4
Original line number Original line Diff line number Diff line
@@ -1212,7 +1212,7 @@ static int __tzbsp_set_video_state(enum tzbsp_video_state state)
static inline int __boot_firmware(struct venus_hfi_device *device)
static inline int __boot_firmware(struct venus_hfi_device *device)
{
{
	int rc = 0;
	int rc = 0;
	u32 ctrl_init_val = 0, ctrl_status = 0, count = 0, max_tries = 1000;
	u32 ctrl_init_val = 0, ctrl_status = 0, count = 0, max_tries = 10000;


	ctrl_init_val = BIT(0);
	ctrl_init_val = BIT(0);
	if (device->res->domain_cvp)
	if (device->res->domain_cvp)
@@ -3159,9 +3159,9 @@ static int __power_collapse(struct venus_hfi_device *device, bool force)
		wfi_status = BIT(0) &
		wfi_status = BIT(0) &
				__read_register(device,
				__read_register(device,
					VIDC_WRAPPER_TZ_CPU_STATUS);
					VIDC_WRAPPER_TZ_CPU_STATUS);
		if (!wfi_status) {
		if (!wfi_status || !idle_status) {
			dprintk(VIDC_WARN,
			dprintk(VIDC_WARN,
				"Skipping PC, wfi_status not set.\n");
				"Skipping PC, wfi or idle status not set.\n");
			goto skip_power_off;
			goto skip_power_off;
		}
		}


@@ -4009,7 +4009,16 @@ static int __init_subcaches(struct venus_hfi_device *device)
		return 0;
		return 0;


	venus_hfi_for_each_subcache(device, sinfo) {
	venus_hfi_for_each_subcache(device, sinfo) {
		if (!strcmp("vidsc0", sinfo->name)) {
			sinfo->subcache = llcc_slice_getd(LLCC_VIDSC0);
			sinfo->subcache = llcc_slice_getd(LLCC_VIDSC0);
		} else if (!strcmp("vidsc1", sinfo->name)) {
			sinfo->subcache = llcc_slice_getd(LLCC_VIDSC1);
		} else if (!strcmp("vidscfw", sinfo->name)) {
			sinfo->subcache = llcc_slice_getd(LLCC_VIDFW);
		} else {
			dprintk(VIDC_ERR, "Invalid subcache name %s\n",
					sinfo->name);
		}
		if (IS_ERR_OR_NULL(sinfo->subcache)) {
		if (IS_ERR_OR_NULL(sinfo->subcache)) {
			rc = PTR_ERR(sinfo->subcache) ?
			rc = PTR_ERR(sinfo->subcache) ?
				PTR_ERR(sinfo->subcache) : -EBADHANDLE;
				PTR_ERR(sinfo->subcache) : -EBADHANDLE;