From 73eced6396e338814678d3b4cf8035291acd2b21 Mon Sep 17 00:00:00 2001
From: Xuhui Lin <xuhui.lin@rock-chips.com>
Date: Wed, 16 Oct 2024 15:29:46 +0800
Subject: [PATCH] drivers: gadget: rockusb: Fix rkusb_do_vs read/write support

rockusb vs r/w no need depends on vendor storage. It already
supports many other paths to store secure data.

Change-Id: I4b47227fb00978082c57b1af4c96c63d12c51ed7
Signed-off-by: Xuhui Lin <xuhui.lin@rock-chips.com>
---
 drivers/usb/gadget/f_rockusb.c | 15 ++++-----------
 1 file changed, 4 insertions(+), 11 deletions(-)

diff --git a/drivers/usb/gadget/f_rockusb.c b/drivers/usb/gadget/f_rockusb.c
index 8327056d90f..f70d38a6541 100644
--- a/drivers/usb/gadget/f_rockusb.c
+++ b/drivers/usb/gadget/f_rockusb.c
@@ -20,10 +20,7 @@
 #include <scsi.h>
 #include <stdlib.h>
 #include <usbplug.h>
-
-#ifdef CONFIG_ROCKCHIP_VENDOR_PARTITION
 #include <asm/arch/vendor.h>
-#endif
 #include <rockusb.h>
 
 #define ROCKUSB_INTERFACE_CLASS	0xff
@@ -457,7 +454,6 @@ out:
 	return rc;
 }
 
-#ifdef CONFIG_ROCKCHIP_VENDOR_PARTITION
 static int rkusb_do_vs_write(struct fsg_common *common)
 {
 	struct fsg_lun		*curlun = &common->luns[common->lun];
@@ -520,8 +516,7 @@ static int rkusb_do_vs_write(struct fsg_common *common)
 			/* Perform the write */
 			vhead = (struct vendor_item *)bh->buf;
 			data  = bh->buf + sizeof(struct vendor_item);
-
-			if (!type) {
+			if (CONFIG_IS_ENABLED(ROCKCHIP_VENDOR_PARTITION) && !type) {
 				#ifndef CONFIG_SUPPORT_USBPLUG
 				if (vhead->id == HDCP_14_HDMI_ID ||
 				    vhead->id == HDCP_14_HDMIRX_ID ||
@@ -679,8 +674,7 @@ static int rkusb_do_vs_read(struct fsg_common *common)
 		vhead = (struct vendor_item *)bh->buf;
 		data  = bh->buf + sizeof(struct vendor_item);
 		vhead->id = get_unaligned_be16(&common->cmnd[2]);
-
-		if (!type) {
+		if (CONFIG_IS_ENABLED(ROCKCHIP_VENDOR_PARTITION) && !type) {
 			/* Vendor storage */
 			rc = vendor_storage_read(vhead->id,
 						 (char __user *)data,
@@ -750,7 +744,6 @@ static int rkusb_do_vs_read(struct fsg_common *common)
 
 	return -EIO; /* No default reply */
 }
-#endif
 
 static int rkusb_do_switch_storage(struct fsg_common *common)
 {
@@ -1055,7 +1048,6 @@ static int rkusb_cmd_process(struct fsg_common *common,
 		rc = RKUSB_RC_FINISHED;
 		break;
 
-#ifdef CONFIG_ROCKCHIP_VENDOR_PARTITION
 	case RKUSB_VS_WRITE:
 		*reply = rkusb_do_vs_write(common);
 		rc = RKUSB_RC_FINISHED;
@@ -1065,11 +1057,12 @@ static int rkusb_cmd_process(struct fsg_common *common,
 		*reply = rkusb_do_vs_read(common);
 		rc = RKUSB_RC_FINISHED;
 		break;
-#endif
+
 	case RKUSB_SWITCH_STORAGE:
 		*reply = rkusb_do_switch_storage(common);
 		rc = RKUSB_RC_FINISHED;
 		break;
+
 	case RKUSB_GET_STORAGE_MEDIA:
 		*reply = rkusb_do_get_storage_info(common, bh);
 		rc = RKUSB_RC_FINISHED;
-- 
GitLab