gadget: f_thor: Return proper error value for thor_init()
authorSeung-Woo Kim <sw0312.kim@samsung.com>
Fri, 24 Apr 2020 07:40:40 +0000 (16:40 +0900)
committerMarek Szyprowski <m.szyprowski@samsung.com>
Fri, 12 Nov 2021 14:33:49 +0000 (15:33 +0100)
After the commit 17679aed622b ("usb: thor: add screen support"),
caller of thor_init() expects general error value to check
interrupt by Ctrl-C but thor_init() returns wrong error value -1
for Ctrl-C termination during rx or wrong protocol response.
Return proper error for the cases.

Change-Id: I8a637918930673bad953a88e26c79b8e64580bc8
Signed-off-by: Seung-Woo Kim <sw0312.kim@samsung.com>
drivers/usb/gadget/f_thor.c

index d84d4f89ddcde9f57cab92cde32da0fc89f14d33..bd213eae57406bfcde6497db2143b1d9d28d10f8 100644 (file)
@@ -715,6 +715,7 @@ int thor_init(void)
        struct thor_dev *dev = thor_func->dev;
        int power_key_cnt = 0;
        size_t received;
+       int ret;
 
 #ifdef CONFIG_TIZEN
 #ifdef CONFIG_LCD      /* TODO : Need to enable LCD*/
@@ -754,9 +755,10 @@ int thor_init(void)
 #endif /* CONFIG_TIZEN */
        thor_set_dma(thor_rx_data_buf, strlen("THOR"));
        /* detect the download request from Host PC */
-       if (thor_rx_data(&received) < 0) {
+       ret = thor_rx_data(&received);
+       if (ret < 0) {
                printf("%s: Data not received!\n", __func__);
-               return -1;
+               return ret;
        }
 
        if (!strncmp((char *)thor_rx_data_buf, "THOR", strlen("THOR"))) {
@@ -767,7 +769,7 @@ int thor_init(void)
                thor_tx_data(thor_tx_data_buf, strlen("ROHT"));
        } else {
                puts("Wrong reply information\n");
-               return -1;
+               return -EPROTO;
        }
 
        return 0;