148 lines
5.2 KiB
C
148 lines
5.2 KiB
C
/*
|
|
* Linux Error codes
|
|
*
|
|
* Copyright (C) 2024 Synaptics Incorporated. All rights reserved.
|
|
*
|
|
* This software is licensed to you under the terms of the
|
|
* GNU General Public License version 2 (the "GPL") with Broadcom special exception.
|
|
*
|
|
* INFORMATION CONTAINED IN THIS DOCUMENT IS PROVIDED "AS-IS," AND SYNAPTICS
|
|
* EXPRESSLY DISCLAIMS ALL EXPRESS AND IMPLIED WARRANTIES, INCLUDING ANY
|
|
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE,
|
|
* AND ANY WARRANTIES OF NON-INFRINGEMENT OF ANY INTELLECTUAL PROPERTY RIGHTS.
|
|
* IN NO EVENT SHALL SYNAPTICS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
|
|
* SPECIAL, PUNITIVE, OR CONSEQUENTIAL DAMAGES ARISING OUT OF OR IN CONNECTION
|
|
* WITH THE USE OF THE INFORMATION CONTAINED IN THIS DOCUMENT, HOWEVER CAUSED
|
|
* AND BASED ON ANY THEORY OF LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
|
|
* NEGLIGENCE OR OTHER TORTIOUS ACTION, AND EVEN IF SYNAPTICS WAS ADVISED OF
|
|
* THE POSSIBILITY OF SUCH DAMAGE. IF A TRIBUNAL OF COMPETENT JURISDICTION
|
|
* DOES NOT PERMIT THE DISCLAIMER OF DIRECT DAMAGES OR ANY OTHER DAMAGES,
|
|
* SYNAPTICS' TOTAL CUMULATIVE LIABILITY TO ANY PARTY SHALL NOT
|
|
* EXCEED ONE HUNDRED U.S. DOLLARS
|
|
*
|
|
* Copyright (C) 2024, Broadcom.
|
|
*
|
|
* Unless you and Broadcom execute a separate written software license
|
|
* agreement governing use of this software, this software is licensed to you
|
|
* under the terms of the GNU General Public License version 2 (the "GPL"),
|
|
* available at http://www.broadcom.com/licenses/GPLv2.php, with the
|
|
* following added to such license:
|
|
*
|
|
* As a special exception, the copyright holders of this software give you
|
|
* permission to link this software with independent modules, and to copy and
|
|
* distribute the resulting executable under terms of your choice, provided that
|
|
* you also meet, for each linked independent module, the terms and conditions of
|
|
* the license of that module. An independent module is a module which is not
|
|
* derived from this software. The special exception does not apply to any
|
|
* modifications of the software.
|
|
*
|
|
*
|
|
* <<Broadcom-WL-IPTag/Dual:>>
|
|
*/
|
|
#include <typedefs.h>
|
|
#include <osl.h>
|
|
#include <epivers.h>
|
|
#include <bcmutils.h>
|
|
|
|
#include <linuxerrmap.h>
|
|
|
|
static int16 linuxbcmerrormap[] = {
|
|
0, /* 0 */
|
|
-EINVAL, /* BCME_ERROR */
|
|
-EINVAL, /* BCME_BADARG */
|
|
-EINVAL, /* BCME_BADOPTION */
|
|
-EINVAL, /* BCME_NOTUP */
|
|
-EINVAL, /* BCME_NOTDOWN */
|
|
-EINVAL, /* BCME_NOTAP */
|
|
-EINVAL, /* BCME_NOTSTA */
|
|
-EINVAL, /* BCME_BADKEYIDX */
|
|
-EINVAL, /* BCME_RADIOOFF */
|
|
-EINVAL, /* BCME_NOTBANDLOCKED */
|
|
-EINVAL, /* BCME_NOCLK */
|
|
-EINVAL, /* BCME_BADRATESET */
|
|
-EINVAL, /* BCME_BADBAND */
|
|
-E2BIG, /* BCME_BUFTOOSHORT */
|
|
-E2BIG, /* BCME_BUFTOOLONG */
|
|
-EBUSY, /* BCME_BUSY */
|
|
-EINVAL, /* BCME_NOTASSOCIATED */
|
|
-EINVAL, /* BCME_BADSSIDLEN */
|
|
-EINVAL, /* BCME_OUTOFRANGECHAN */
|
|
-EINVAL, /* BCME_BADCHAN */
|
|
-EFAULT, /* BCME_BADADDR */
|
|
-ENOMEM, /* BCME_NORESOURCE */
|
|
-EOPNOTSUPP, /* BCME_UNSUPPORTED */
|
|
-EMSGSIZE, /* BCME_BADLENGTH */
|
|
-EINVAL, /* BCME_NOTREADY */
|
|
-EPERM, /* BCME_EPERM */
|
|
-ENOMEM, /* BCME_NOMEM */
|
|
-EINVAL, /* BCME_ASSOCIATED */
|
|
-ERANGE, /* BCME_RANGE */
|
|
-EINVAL, /* BCME_NOTFOUND */
|
|
-EINVAL, /* BCME_WME_NOT_ENABLED */
|
|
-EINVAL, /* BCME_TSPEC_NOTFOUND */
|
|
-EINVAL, /* BCME_ACM_NOTSUPPORTED */
|
|
-EINVAL, /* BCME_NOT_WME_ASSOCIATION */
|
|
-EIO, /* BCME_SDIO_ERROR */
|
|
-ENODEV, /* BCME_DONGLE_DOWN */
|
|
-EINVAL, /* BCME_VERSION */
|
|
-EIO, /* BCME_TXFAIL */
|
|
-EIO, /* BCME_RXFAIL */
|
|
-ENODEV, /* BCME_NODEVICE */
|
|
-EINVAL, /* BCME_NMODE_DISABLED */
|
|
-ENODATA, /* BCME_NONRESIDENT */
|
|
-EINVAL, /* BCME_SCANREJECT */
|
|
-EINVAL, /* BCME_USAGE_ERROR */
|
|
-EIO, /* BCME_IOCTL_ERROR */
|
|
-EIO, /* BCME_SERIAL_PORT_ERR */
|
|
-EOPNOTSUPP, /* BCME_DISABLED, BCME_NOTENABLED */
|
|
-EIO, /* BCME_DECERR */
|
|
-EIO, /* BCME_ENCERR */
|
|
-EIO, /* BCME_MICERR */
|
|
-ERANGE, /* BCME_REPLAY */
|
|
-EINVAL, /* BCME_IE_NOTFOUND */
|
|
-EINVAL, /* BCME_DATA_NOTFOUND */
|
|
-EINVAL, /* BCME_NOT_GC */
|
|
-EINVAL, /* BCME_PRS_REQ_FAILED */
|
|
-EINVAL, /* BCME_NO_P2P_SE */
|
|
-EINVAL, /* BCME_NOA_PND */
|
|
-EINVAL, /* BCME_FRAG_Q_FAILED */
|
|
-EINVAL, /* BCME_GET_AF_FAILED */
|
|
-EINVAL, /* BCME_MSCH_NOTREADY */
|
|
-EINVAL, /* BCME_IOV_LAST_CMD */
|
|
-EINVAL, /* BCME_MINIPMU_CAL_FAIL */
|
|
-EINVAL, /* BCME_RCAL_FAIL */
|
|
-EINVAL, /* BCME_LPF_RCCAL_FAIL */
|
|
-EINVAL, /* BCME_DACBUF_RCCAL_FAIL */
|
|
-EINVAL, /* BCME_VCOCAL_FAIL */
|
|
-EINVAL, /* BCME_BANDLOCKED */
|
|
-EINVAL, /* BCME_BAD_IE_DATA */
|
|
-EINVAL, /* BCME_REG_FAILED */
|
|
-EINVAL, /* BCME_NOCHAN */
|
|
-EINVAL, /* BCME_PKTTOSS */
|
|
-EINVAL, /* BCME_DNGL_DEVRESET */
|
|
-EINVAL, /* BCME_ROAM */
|
|
-EOPNOTSUPP, /* BCME_NO_SIG_FILE */
|
|
-EOPNOTSUPP, /* BCME_RESP_PENDING */
|
|
-EINVAL, /* BCME_ACTIVE */
|
|
-EINVAL, /* BCME_IN_PROGRESS */
|
|
-EINVAL, /* BCME_NOP */
|
|
-EINVAL, /* BCME_6GCH_EPERM */
|
|
-EINVAL, /* BCME_6G_NO_TPE */
|
|
|
|
/* When an new error code is added to bcmutils.h, add os
|
|
* specific error translation here as well
|
|
*/
|
|
/* check if BCME_LAST changed since the last time this function was updated */
|
|
#if BCME_LAST != BCME_6G_NO_TPE
|
|
#error "You need to add a OS error translation in the linuxbcmerrormap \
|
|
for new error code defined in bcmutils.h"
|
|
#endif
|
|
};
|
|
|
|
/* translate bcmerrors into linux errors */
|
|
int
|
|
linux_get_errmap(int bcmerror)
|
|
{
|
|
return linuxbcmerrormap[-bcmerror];
|
|
}
|