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

Commit e4e6f5f7 authored by Mona Hossain's avatar Mona Hossain Committed by Gerrit - the friendly Code Review server
Browse files

qseecom: Check for FDE/PFE feature



Add checks for PFE/FDE feature before executing anything
related to the features.

Change-Id: I575d4d4eea29fd9ae59e47805793f2416a97f5b9
Signed-off-by: default avatarMona Hossain <mhossain@codeaurora.org>
parent ed2322a1
Loading
Loading
Loading
Loading
+10 −2
Original line number Diff line number Diff line
@@ -3886,6 +3886,8 @@ static long qseecom_ioctl(struct file *file, unsigned cmd,
		break;
	}
	case QSEECOM_IOCTL_CREATE_KEY_REQ: {
		if (!(qseecom.support_pfe || qseecom.support_fde))
			pr_err("Features requiring key init not supported\n");
		if (data->type != QSEECOM_GENERIC) {
			pr_err("create key req: invalid handle (%d)\n",
								data->type);
@@ -3907,6 +3909,8 @@ static long qseecom_ioctl(struct file *file, unsigned cmd,
		break;
	}
	case QSEECOM_IOCTL_WIPE_KEY_REQ: {
		if (!(qseecom.support_pfe || qseecom.support_fde))
			pr_err("Features requiring key init not supported\n");
		if (data->type != QSEECOM_GENERIC) {
			pr_err("wipe key req: invalid handle (%d)\n",
								data->type);
@@ -3927,6 +3931,8 @@ static long qseecom_ioctl(struct file *file, unsigned cmd,
		break;
	}
	case QSEECOM_IOCTL_UPDATE_KEY_USER_INFO_REQ: {
		if (!(qseecom.support_pfe || qseecom.support_fde))
			pr_err("Features requiring key init not supported\n");
		if (data->type != QSEECOM_GENERIC) {
			pr_err("update key req: invalid handle (%d)\n",
								data->type);
@@ -4441,7 +4447,8 @@ static int qseecom_probe(struct platform_device *pdev)
		if (ret)
			goto exit_destroy_ion_client;

		if (qseecom.qsee.instance != qseecom.ce_drv.instance) {
		if ((qseecom.qsee.instance != qseecom.ce_drv.instance) &&
				(qseecom.support_pfe || qseecom.support_fde)) {
			ret = __qseecom_init_clk(CLK_CE_DRV);
			if (ret) {
				__qseecom_deinit_clk(CLK_QSEE);
@@ -4571,7 +4578,8 @@ exit_irqrestore:
	/* register client for bus scaling */
	if (pdev->dev.of_node) {
		__qseecom_deinit_clk(CLK_QSEE);
		if (qseecom.qsee.instance != qseecom.ce_drv.instance)
		if ((qseecom.qsee.instance != qseecom.ce_drv.instance) &&
				(qseecom.support_pfe || qseecom.support_fde))
			__qseecom_deinit_clk(CLK_CE_DRV);
	}