openocd: fix SPDX tag format for files .c
[fw/openocd] / src / jtag / drivers / versaloon / usbtoxxx / usbtoxxx.c
index 53a7e989b333db29befd7f2357407815f96752d7..070f68c1ed09962eff2dcd297993dc703a95b79a 100644 (file)
@@ -1,18 +1,7 @@
+// SPDX-License-Identifier: GPL-2.0-or-later
+
 /***************************************************************************
  *   Copyright (C) 2009 - 2010 by Simon Qian <SimonQian@SimonQian.com>     *
- *                                                                         *
- *   This program is free software; you can redistribute it and/or modify  *
- *   it under the terms of the GNU General Public License as published by  *
- *   the Free Software Foundation; either version 2 of the License, or     *
- *   (at your option) any later version.                                   *
- *                                                                         *
- *   This program is distributed in the hope that it will be useful,       *
- *   but WITHOUT ANY WARRANTY; without even the implied warranty of        *
- *   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the         *
- *   GNU General Public License for more details.                          *
- *                                                                         *
- *   You should have received a copy of the GNU General Public License     *
- *   along with this program.  If not, see <http://www.gnu.org/licenses/>. *
  ***************************************************************************/
 
 #ifdef HAVE_CONFIG_H
@@ -29,7 +18,7 @@
 
 #define N_A "n/a"
 
-const char *types_name[96] = {
+static const char *types_name[96] = {
        "usbtousart", "usbtospi", "usbtoi2c", "usbtogpio", "usbtocan", "usbtopwm",
        "usbtoadc", "usbtodac",
        "usbtomicrowire", "usbtoswim", "usbtodusi", N_A, N_A, N_A, "usbtopower", "usbtodelay",
@@ -48,15 +37,15 @@ uint8_t usbtoxxx_abilities[USB_TO_XXX_ABILITIES_LEN];
 
 #define usbtoxxx_get_type_name(type)   \
        types_name[((type) - VERSALOON_USB_TO_XXX_CMD_START) \
-                  % (sizeof(types_name) / sizeof(types_name[0]))]
+                  % ARRAY_SIZE(types_name)]
 
 static uint8_t type_pre;
 static uint16_t usbtoxxx_buffer_index;
 static uint16_t usbtoxxx_current_cmd_index;
 static uint8_t *usbtoxxx_buffer;
 
-uint16_t collect_index;
-uint8_t collect_cmd;
+static uint16_t collect_index;
+static uint8_t collect_cmd;
 static uint8_t poll_nesting;
 
 struct usbtoxxx_context_t {
@@ -86,11 +75,11 @@ static void usbtoxxx_pop_context(struct usbtoxxx_context_t *c)
        versaloon_pending_idx = c->versaloon_pending_idx;
 }
 
-RESULT usbtoxxx_validate_current_command_type(void)
+static RESULT usbtoxxx_validate_current_command_type(void)
 {
        if (type_pre > 0) {
                /* not the first command */
-               if (NULL == usbtoxxx_buffer) {
+               if (!usbtoxxx_buffer) {
                        LOG_BUG(ERRMSG_INVALID_BUFFER, TO_STR(usbtoxxx_buffer));
                        return ERRCODE_INVALID_BUFFER;
                }
@@ -126,12 +115,12 @@ RESULT usbtoxxx_execute_command(void)
                return ERROR_FAIL;
        }
 
-       if (ERROR_OK != usbtoxxx_validate_current_command_type()) {
+       if (usbtoxxx_validate_current_command_type() != ERROR_OK) {
                LOG_BUG(ERRMSG_FAILURE_OPERATION, "validate previous commands");
                versaloon_free_want_pos();
                return ERRCODE_FAILURE_OPERATION;
        }
-       if (3 == usbtoxxx_buffer_index) {
+       if (usbtoxxx_buffer_index == 3) {
                versaloon_free_want_pos();
                return ERROR_OK;
        }
@@ -139,7 +128,7 @@ RESULT usbtoxxx_execute_command(void)
        versaloon_buf[0] = USB_TO_ALL;
        SET_LE_U16(&versaloon_buf[1], usbtoxxx_buffer_index);
 
-       if (ERROR_OK != versaloon_send_command(usbtoxxx_buffer_index, &inlen)) {
+       if (versaloon_send_command(usbtoxxx_buffer_index, &inlen) != ERROR_OK) {
                versaloon_free_want_pos();
                return ERROR_FAIL;
        }
@@ -148,7 +137,7 @@ RESULT usbtoxxx_execute_command(void)
        usbtoxxx_buffer_index = 0;
        for (i = 0; i < versaloon_pending_idx; i++) {
                /* check result */
-               if ((0 == i) || !((versaloon_pending[i].collect)
+               if ((i == 0) || !((versaloon_pending[i].collect)
                                  && (versaloon_pending[i - 1].collect)
                                  && (versaloon_pending[i].cmd
                                      == versaloon_pending[i - 1].cmd))) {
@@ -159,7 +148,7 @@ RESULT usbtoxxx_execute_command(void)
                                        "current dongle");
                                result = ERROR_FAIL;
                                break;
-                       } else if (USB_TO_XXX_OK != versaloon_buf[usbtoxxx_buffer_index]) {
+                       } else if (versaloon_buf[usbtoxxx_buffer_index] != USB_TO_XXX_OK) {
                                LOG_ERROR("%s command 0x%02x failed with 0x%02x",
                                        usbtoxxx_get_type_name(versaloon_pending[i].type),
                                        versaloon_pending[i].cmd,
@@ -171,10 +160,10 @@ RESULT usbtoxxx_execute_command(void)
                }
 
                /* get result data */
-               if (versaloon_pending[i].pos != NULL) {
+               if (versaloon_pending[i].pos) {
                        uint8_t processed = 0;
 
-                       if (versaloon_pending[i].callback != NULL) {
+                       if (versaloon_pending[i].callback) {
                                versaloon_pending[i].callback(&versaloon_pending[i],
                                        versaloon_buf + usbtoxxx_buffer_index, &processed);
                        }
@@ -182,8 +171,8 @@ RESULT usbtoxxx_execute_command(void)
                                struct versaloon_want_pos_t *tmp;
 
                                tmp = versaloon_pending[i].pos;
-                               while (tmp != NULL) {
-                                       if ((tmp->buff != NULL) && (tmp->size > 0)) {
+                               while (tmp) {
+                                       if ((tmp->buff) && (tmp->size > 0)) {
                                                memcpy(tmp->buff,
                                                        versaloon_buf + usbtoxxx_buffer_index
                                                        + tmp->offset,
@@ -197,10 +186,10 @@ RESULT usbtoxxx_execute_command(void)
                                versaloon_pending[i].pos = NULL;
                        }
                } else if ((versaloon_pending[i].want_data_size > 0)
-                               && (versaloon_pending[i].data_buffer != NULL)) {
+                               && (versaloon_pending[i].data_buffer)) {
                        uint8_t processed = 0;
 
-                       if (versaloon_pending[i].callback != NULL) {
+                       if (versaloon_pending[i].callback) {
                                versaloon_pending[i].callback(&versaloon_pending[i],
                                        versaloon_buf + usbtoxxx_buffer_index, &processed);
                        }
@@ -245,8 +234,8 @@ RESULT usbtoxxx_init(void)
 {
        versaloon_pending_idx = 0;
 
-       if ((ERROR_OK != usbtoinfo_get_abilities(usbtoxxx_abilities)) ||
-                       (ERROR_OK != usbtoxxx_execute_command()))
+       if ((usbtoinfo_get_abilities(usbtoxxx_abilities) != ERROR_OK) ||
+                       (usbtoxxx_execute_command() != ERROR_OK))
                return ERROR_FAIL;
        LOG_INFO("USB_TO_XXX abilities: 0x%08X:0x%08X:0x%08X",
                GET_LE_U32(&usbtoxxx_abilities[0]),
@@ -272,7 +261,7 @@ bool usbtoxxx_interface_supported(uint8_t cmd)
        return (usbtoxxx_abilities[cmd  / 8] & (1 << (cmd % 8))) > 0;
 }
 
-RESULT usbtoxxx_ensure_buffer_size(uint16_t cmdlen)
+static RESULT usbtoxxx_ensure_buffer_size(uint16_t cmdlen)
 {
        /* check free space, commit if not enough */
        if (((usbtoxxx_buffer_index + usbtoxxx_current_cmd_index + cmdlen)
@@ -283,7 +272,7 @@ RESULT usbtoxxx_ensure_buffer_size(uint16_t cmdlen)
 
                memset(&context_tmp, 0, sizeof(context_tmp));
                if (poll_nesting) {
-                       if (0 == poll_context.type_pre) {
+                       if (poll_context.type_pre == 0) {
                                LOG_BUG("USB_TO_POLL toooooo long");
                                return ERROR_OK;
                        }
@@ -329,18 +318,18 @@ RESULT usbtoxxx_add_command(uint8_t type, uint8_t cmd, uint8_t *cmdbuf,
 
        /* 3 more bytes by usbtoxxx_validate_current_command_type */
        /* 3 more bytes when ((0 == collect_index) || (collect_cmd != cmd)) */
-       if (ERROR_OK != usbtoxxx_ensure_buffer_size(cmdlen + 6))
+       if (usbtoxxx_ensure_buffer_size(cmdlen + 6) != ERROR_OK)
                return ERROR_FAIL;
 
-       if ((type_pre != type) || (NULL == usbtoxxx_buffer)) {
-               if (ERROR_OK != usbtoxxx_validate_current_command_type()) {
+       if ((type_pre != type) || (!usbtoxxx_buffer)) {
+               if (usbtoxxx_validate_current_command_type() != ERROR_OK) {
                        LOG_BUG(ERRMSG_FAILURE_OPERATION, "validate previous commands");
                        return ERRCODE_FAILURE_OPERATION;
                }
                type_pre = type;
        }
 
-       if ((0 == collect_index) || (collect_cmd != cmd)) {
+       if ((collect_index == 0) || (collect_cmd != cmd)) {
                usbtoxxx_buffer[usbtoxxx_current_cmd_index++] = cmd;
 
                if (collect) {
@@ -357,7 +346,7 @@ RESULT usbtoxxx_add_command(uint8_t type, uint8_t cmd, uint8_t *cmdbuf,
                SET_LE_U16(&usbtoxxx_buffer[collect_index], len_tmp);
        }
 
-       if (cmdbuf != NULL) {
+       if (cmdbuf) {
                memcpy(usbtoxxx_buffer + usbtoxxx_current_cmd_index, cmdbuf, cmdlen);
                usbtoxxx_current_cmd_index += cmdlen;
        }
@@ -368,10 +357,10 @@ RESULT usbtoxxx_add_command(uint8_t type, uint8_t cmd, uint8_t *cmdbuf,
 
 RESULT usbtoinfo_get_abilities(uint8_t abilities[USB_TO_XXX_ABILITIES_LEN])
 {
-       if (ERROR_OK != usbtoxxx_ensure_buffer_size(3))
+       if (usbtoxxx_ensure_buffer_size(3) != ERROR_OK)
                return ERROR_FAIL;
 
-       if (ERROR_OK != usbtoxxx_validate_current_command_type()) {
+       if (usbtoxxx_validate_current_command_type() != ERROR_OK) {
                LOG_BUG(ERRMSG_FAILURE_OPERATION, "validate previous commands");
                return ERRCODE_FAILURE_OPERATION;
        }
@@ -383,12 +372,12 @@ RESULT usbtoinfo_get_abilities(uint8_t abilities[USB_TO_XXX_ABILITIES_LEN])
 
 RESULT usbtopoll_start(uint16_t retry_cnt, uint16_t interval_us)
 {
-       if (ERROR_OK != usbtoxxx_ensure_buffer_size(3 + 5))
+       if (usbtoxxx_ensure_buffer_size(3 + 5) != ERROR_OK)
                return ERROR_FAIL;
        if (!poll_nesting)
                usbtoxxx_save_context(&poll_context);
 
-       if (ERROR_OK != usbtoxxx_validate_current_command_type()) {
+       if (usbtoxxx_validate_current_command_type() != ERROR_OK) {
                LOG_BUG(ERRMSG_FAILURE_OPERATION, "validate previous commands");
                return ERRCODE_FAILURE_OPERATION;
        }
@@ -410,10 +399,10 @@ RESULT usbtopoll_end(void)
                LOG_BUG(ERRMSG_FAILURE_OPERATION, "check poll nesting");
                return ERRCODE_FAILURE_OPERATION;
        }
-       if (ERROR_OK != usbtoxxx_ensure_buffer_size(3 + 1))
+       if (usbtoxxx_ensure_buffer_size(3 + 1) != ERROR_OK)
                return ERROR_FAIL;
 
-       if (ERROR_OK != usbtoxxx_validate_current_command_type()) {
+       if (usbtoxxx_validate_current_command_type() != ERROR_OK) {
                LOG_BUG(ERRMSG_FAILURE_OPERATION, "validate previous commands");
                return ERRCODE_FAILURE_OPERATION;
        }
@@ -439,10 +428,10 @@ RESULT usbtopoll_checkok(uint8_t equ, uint16_t offset, uint8_t size,
                LOG_BUG(ERRMSG_FAILURE_OPERATION, "check poll nesting");
                return ERRCODE_FAILURE_OPERATION;
        }
-       if (ERROR_OK != usbtoxxx_ensure_buffer_size(3 + 4 + 2 * size))
+       if (usbtoxxx_ensure_buffer_size(3 + 4 + 2 * size) != ERROR_OK)
                return ERROR_FAIL;
 
-       if (ERROR_OK != usbtoxxx_validate_current_command_type()) {
+       if (usbtoxxx_validate_current_command_type() != ERROR_OK) {
                LOG_BUG(ERRMSG_FAILURE_OPERATION, "validate previous commands");
                return ERRCODE_FAILURE_OPERATION;
        }
@@ -475,10 +464,10 @@ RESULT usbtopoll_checkfail(uint8_t equ, uint16_t offset, uint8_t size,
                LOG_BUG(ERRMSG_FAILURE_OPERATION, "check poll nesting");
                return ERRCODE_FAILURE_OPERATION;
        }
-       if (ERROR_OK != usbtoxxx_ensure_buffer_size(3 + 4 + 2 * size))
+       if (usbtoxxx_ensure_buffer_size(3 + 4 + 2 * size) != ERROR_OK)
                return ERROR_FAIL;
 
-       if (ERROR_OK != usbtoxxx_validate_current_command_type()) {
+       if (usbtoxxx_validate_current_command_type() != ERROR_OK) {
                LOG_BUG(ERRMSG_FAILURE_OPERATION, "validate previous commands");
                return ERRCODE_FAILURE_OPERATION;
        }
@@ -504,10 +493,10 @@ RESULT usbtopoll_verifybuff(uint16_t offset, uint16_t size, uint8_t *buff)
                LOG_BUG(ERRMSG_FAILURE_OPERATION, "check poll nesting");
                return ERRCODE_FAILURE_OPERATION;
        }
-       if (ERROR_OK != usbtoxxx_ensure_buffer_size(3 + 5 + size))
+       if (usbtoxxx_ensure_buffer_size(3 + 5 + size) != ERROR_OK)
                return ERROR_FAIL;
 
-       if (ERROR_OK != usbtoxxx_validate_current_command_type()) {
+       if (usbtoxxx_validate_current_command_type() != ERROR_OK) {
                LOG_BUG(ERRMSG_FAILURE_OPERATION, "validate previous commands");
                return ERRCODE_FAILURE_OPERATION;
        }
@@ -527,10 +516,10 @@ RESULT usbtopoll_verifybuff(uint16_t offset, uint16_t size, uint8_t *buff)
 
 RESULT usbtodelay_delay(uint16_t dly)
 {
-       if (ERROR_OK != usbtoxxx_ensure_buffer_size(3 + 2))
+       if (usbtoxxx_ensure_buffer_size(3 + 2) != ERROR_OK)
                return ERROR_FAIL;
 
-       if (ERROR_OK != usbtoxxx_validate_current_command_type()) {
+       if (usbtoxxx_validate_current_command_type() != ERROR_OK) {
                LOG_BUG(ERRMSG_FAILURE_OPERATION, "validate previous commands");
                return ERRCODE_FAILURE_OPERATION;
        }