0001
0002
0003
0004
0005
0006
0007
0008
0009
0010
0011
0012
0013
0014
0015
0016
0017 #include <defs.h>
0018 #include "types.h"
0019 #include <ucode_loader.h>
0020
0021 enum {
0022 D11UCODE_NAMETAG_START = 0,
0023 D11LCN0BSINITVALS24,
0024 D11LCN0INITVALS24,
0025 D11LCN1BSINITVALS24,
0026 D11LCN1INITVALS24,
0027 D11LCN2BSINITVALS24,
0028 D11LCN2INITVALS24,
0029 D11N0ABSINITVALS16,
0030 D11N0BSINITVALS16,
0031 D11N0INITVALS16,
0032 D11UCODE_OVERSIGHT16_MIMO,
0033 D11UCODE_OVERSIGHT16_MIMOSZ,
0034 D11UCODE_OVERSIGHT24_LCN,
0035 D11UCODE_OVERSIGHT24_LCNSZ,
0036 D11UCODE_OVERSIGHT_BOMMAJOR,
0037 D11UCODE_OVERSIGHT_BOMMINOR
0038 };
0039
0040 int brcms_ucode_data_init(struct brcms_info *wl, struct brcms_ucode *ucode)
0041 {
0042 int rc;
0043
0044 rc = brcms_check_firmwares(wl);
0045
0046 rc = rc < 0 ? rc :
0047 brcms_ucode_init_buf(wl, (void **)&ucode->d11lcn0bsinitvals24,
0048 D11LCN0BSINITVALS24);
0049 rc = rc < 0 ?
0050 rc : brcms_ucode_init_buf(wl, (void **)&ucode->d11lcn0initvals24,
0051 D11LCN0INITVALS24);
0052 rc = rc < 0 ?
0053 rc : brcms_ucode_init_buf(wl, (void **)&ucode->d11lcn1bsinitvals24,
0054 D11LCN1BSINITVALS24);
0055 rc = rc < 0 ?
0056 rc : brcms_ucode_init_buf(wl, (void **)&ucode->d11lcn1initvals24,
0057 D11LCN1INITVALS24);
0058 rc = rc < 0 ? rc :
0059 brcms_ucode_init_buf(wl, (void **)&ucode->d11lcn2bsinitvals24,
0060 D11LCN2BSINITVALS24);
0061 rc = rc < 0 ?
0062 rc : brcms_ucode_init_buf(wl, (void **)&ucode->d11lcn2initvals24,
0063 D11LCN2INITVALS24);
0064 rc = rc < 0 ?
0065 rc : brcms_ucode_init_buf(wl, (void **)&ucode->d11n0absinitvals16,
0066 D11N0ABSINITVALS16);
0067 rc = rc < 0 ?
0068 rc : brcms_ucode_init_buf(wl, (void **)&ucode->d11n0bsinitvals16,
0069 D11N0BSINITVALS16);
0070 rc = rc < 0 ?
0071 rc : brcms_ucode_init_buf(wl, (void **)&ucode->d11n0initvals16,
0072 D11N0INITVALS16);
0073 rc = rc < 0 ?
0074 rc : brcms_ucode_init_buf(wl, (void **)&ucode->bcm43xx_16_mimo,
0075 D11UCODE_OVERSIGHT16_MIMO);
0076 rc = rc < 0 ?
0077 rc : brcms_ucode_init_uint(wl, &ucode->bcm43xx_16_mimosz,
0078 D11UCODE_OVERSIGHT16_MIMOSZ);
0079 rc = rc < 0 ?
0080 rc : brcms_ucode_init_buf(wl, (void **)&ucode->bcm43xx_24_lcn,
0081 D11UCODE_OVERSIGHT24_LCN);
0082 rc = rc < 0 ?
0083 rc : brcms_ucode_init_uint(wl, &ucode->bcm43xx_24_lcnsz,
0084 D11UCODE_OVERSIGHT24_LCNSZ);
0085 rc = rc < 0 ?
0086 rc : brcms_ucode_init_buf(wl, (void **)&ucode->bcm43xx_bommajor,
0087 D11UCODE_OVERSIGHT_BOMMAJOR);
0088 rc = rc < 0 ?
0089 rc : brcms_ucode_init_buf(wl, (void **)&ucode->bcm43xx_bomminor,
0090 D11UCODE_OVERSIGHT_BOMMINOR);
0091 return rc;
0092 }
0093
0094 void brcms_ucode_data_free(struct brcms_ucode *ucode)
0095 {
0096 brcms_ucode_free_buf((void *)ucode->d11lcn0bsinitvals24);
0097 brcms_ucode_free_buf((void *)ucode->d11lcn0initvals24);
0098 brcms_ucode_free_buf((void *)ucode->d11lcn1bsinitvals24);
0099 brcms_ucode_free_buf((void *)ucode->d11lcn1initvals24);
0100 brcms_ucode_free_buf((void *)ucode->d11lcn2bsinitvals24);
0101 brcms_ucode_free_buf((void *)ucode->d11lcn2initvals24);
0102 brcms_ucode_free_buf((void *)ucode->d11n0absinitvals16);
0103 brcms_ucode_free_buf((void *)ucode->d11n0bsinitvals16);
0104 brcms_ucode_free_buf((void *)ucode->d11n0initvals16);
0105 brcms_ucode_free_buf((void *)ucode->bcm43xx_16_mimo);
0106 brcms_ucode_free_buf((void *)ucode->bcm43xx_24_lcn);
0107 brcms_ucode_free_buf((void *)ucode->bcm43xx_bommajor);
0108 brcms_ucode_free_buf((void *)ucode->bcm43xx_bomminor);
0109 }