123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110 |
- /*
- * Copyright (c) 2010 Broadcom Corporation
- *
- * Permission to use, copy, modify, and/or distribute this software for any
- * purpose with or without fee is hereby granted, provided that the above
- * copyright notice and this permission notice appear in all copies.
- *
- * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
- * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
- * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY
- * SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
- * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION
- * OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN
- * CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
- */
- #include <defs.h>
- #include "types.h"
- #include <ucode_loader.h>
- enum {
- D11UCODE_NAMETAG_START = 0,
- D11LCN0BSINITVALS24,
- D11LCN0INITVALS24,
- D11LCN1BSINITVALS24,
- D11LCN1INITVALS24,
- D11LCN2BSINITVALS24,
- D11LCN2INITVALS24,
- D11N0ABSINITVALS16,
- D11N0BSINITVALS16,
- D11N0INITVALS16,
- D11UCODE_OVERSIGHT16_MIMO,
- D11UCODE_OVERSIGHT16_MIMOSZ,
- D11UCODE_OVERSIGHT24_LCN,
- D11UCODE_OVERSIGHT24_LCNSZ,
- D11UCODE_OVERSIGHT_BOMMAJOR,
- D11UCODE_OVERSIGHT_BOMMINOR
- };
- int brcms_ucode_data_init(struct brcms_info *wl, struct brcms_ucode *ucode)
- {
- int rc;
- rc = brcms_check_firmwares(wl);
- rc = rc < 0 ? rc :
- brcms_ucode_init_buf(wl, (void **)&ucode->d11lcn0bsinitvals24,
- D11LCN0BSINITVALS24);
- rc = rc < 0 ?
- rc : brcms_ucode_init_buf(wl, (void **)&ucode->d11lcn0initvals24,
- D11LCN0INITVALS24);
- rc = rc < 0 ?
- rc : brcms_ucode_init_buf(wl, (void **)&ucode->d11lcn1bsinitvals24,
- D11LCN1BSINITVALS24);
- rc = rc < 0 ?
- rc : brcms_ucode_init_buf(wl, (void **)&ucode->d11lcn1initvals24,
- D11LCN1INITVALS24);
- rc = rc < 0 ? rc :
- brcms_ucode_init_buf(wl, (void **)&ucode->d11lcn2bsinitvals24,
- D11LCN2BSINITVALS24);
- rc = rc < 0 ?
- rc : brcms_ucode_init_buf(wl, (void **)&ucode->d11lcn2initvals24,
- D11LCN2INITVALS24);
- rc = rc < 0 ?
- rc : brcms_ucode_init_buf(wl, (void **)&ucode->d11n0absinitvals16,
- D11N0ABSINITVALS16);
- rc = rc < 0 ?
- rc : brcms_ucode_init_buf(wl, (void **)&ucode->d11n0bsinitvals16,
- D11N0BSINITVALS16);
- rc = rc < 0 ?
- rc : brcms_ucode_init_buf(wl, (void **)&ucode->d11n0initvals16,
- D11N0INITVALS16);
- rc = rc < 0 ?
- rc : brcms_ucode_init_buf(wl, (void **)&ucode->bcm43xx_16_mimo,
- D11UCODE_OVERSIGHT16_MIMO);
- rc = rc < 0 ?
- rc : brcms_ucode_init_uint(wl, &ucode->bcm43xx_16_mimosz,
- D11UCODE_OVERSIGHT16_MIMOSZ);
- rc = rc < 0 ?
- rc : brcms_ucode_init_buf(wl, (void **)&ucode->bcm43xx_24_lcn,
- D11UCODE_OVERSIGHT24_LCN);
- rc = rc < 0 ?
- rc : brcms_ucode_init_uint(wl, &ucode->bcm43xx_24_lcnsz,
- D11UCODE_OVERSIGHT24_LCNSZ);
- rc = rc < 0 ?
- rc : brcms_ucode_init_buf(wl, (void **)&ucode->bcm43xx_bommajor,
- D11UCODE_OVERSIGHT_BOMMAJOR);
- rc = rc < 0 ?
- rc : brcms_ucode_init_buf(wl, (void **)&ucode->bcm43xx_bomminor,
- D11UCODE_OVERSIGHT_BOMMINOR);
- return rc;
- }
- void brcms_ucode_data_free(struct brcms_ucode *ucode)
- {
- brcms_ucode_free_buf((void *)ucode->d11lcn0bsinitvals24);
- brcms_ucode_free_buf((void *)ucode->d11lcn0initvals24);
- brcms_ucode_free_buf((void *)ucode->d11lcn1bsinitvals24);
- brcms_ucode_free_buf((void *)ucode->d11lcn1initvals24);
- brcms_ucode_free_buf((void *)ucode->d11lcn2bsinitvals24);
- brcms_ucode_free_buf((void *)ucode->d11lcn2initvals24);
- brcms_ucode_free_buf((void *)ucode->d11n0absinitvals16);
- brcms_ucode_free_buf((void *)ucode->d11n0bsinitvals16);
- brcms_ucode_free_buf((void *)ucode->d11n0initvals16);
- brcms_ucode_free_buf((void *)ucode->bcm43xx_16_mimo);
- brcms_ucode_free_buf((void *)ucode->bcm43xx_24_lcn);
- brcms_ucode_free_buf((void *)ucode->bcm43xx_bommajor);
- brcms_ucode_free_buf((void *)ucode->bcm43xx_bomminor);
- }
|