diff options
Diffstat (limited to 'drivers/staging/ft1000/ft1000-pcmcia/ft1000_dnld.c')
-rw-r--r-- | drivers/staging/ft1000/ft1000-pcmcia/ft1000_dnld.c | 561 |
1 files changed, 198 insertions, 363 deletions
diff --git a/drivers/staging/ft1000/ft1000-pcmcia/ft1000_dnld.c b/drivers/staging/ft1000/ft1000-pcmcia/ft1000_dnld.c index fb375ea26dd..c956857e2d5 100644 --- a/drivers/staging/ft1000/ft1000-pcmcia/ft1000_dnld.c +++ b/drivers/staging/ft1000/ft1000-pcmcia/ft1000_dnld.c @@ -34,7 +34,6 @@ #include <asm/uaccess.h> #include <linux/vmalloc.h> -#include "ft1000_dev.h" #include "ft1000.h" #include "boot.h" @@ -87,26 +86,14 @@ #define STATE_DONE_PROV 0x06 #define STATE_DONE_FILE 0x07 -USHORT get_handshake(struct net_device *dev, USHORT expected_value); -void put_handshake(struct net_device *dev, USHORT handshake_value); -USHORT get_request_type(struct net_device *dev); +u16 get_handshake(struct net_device *dev, u16 expected_value); +void put_handshake(struct net_device *dev, u16 handshake_value); +u16 get_request_type(struct net_device *dev); long get_request_value(struct net_device *dev); void put_request_value(struct net_device *dev, long lvalue); -USHORT hdr_checksum(PPSEUDO_HDR pHdr); +u16 hdr_checksum(struct pseudo_hdr *pHdr); -typedef struct _DSP_FILE_HDR { - u32 build_date; - u32 dsp_coff_date; - u32 loader_code_address; - u32 loader_code_size; - u32 loader_code_end; - u32 dsp_code_address; - u32 dsp_code_size; - u32 dsp_code_end; - u32 reserved[8]; -} __attribute__ ((packed)) DSP_FILE_HDR, *PDSP_FILE_HDR; - -typedef struct _DSP_FILE_HDR_5 { +struct dsp_file_hdr { u32 version_id; // Version ID of this image format. u32 package_id; // Package ID of code release. u32 build_date; // Date/time stamp when file was built. @@ -118,18 +105,9 @@ typedef struct _DSP_FILE_HDR_5 { u32 version_data_offset; // Offset were scrambled version data begins. u32 version_data_size; // Size, in words, of scrambled version data. u32 nDspImages; // Number of DSP images in file. -} __attribute__ ((packed)) DSP_FILE_HDR_5, *PDSP_FILE_HDR_5; - -typedef struct _DSP_IMAGE_INFO { - u32 coff_date; // Date/time when DSP Coff image was built. - u32 begin_offset; // Offset in file where image begins. - u32 end_offset; // Offset in file where image begins. - u32 run_address; // On chip Start address of DSP code. - u32 image_size; // Size of image. - u32 version; // Embedded version # of DSP code. -} __attribute__ ((packed)) DSP_IMAGE_INFO, *PDSP_IMAGE_INFO; +} __attribute__ ((packed)); -typedef struct _DSP_IMAGE_INFO_V6 { +struct dsp_image_info { u32 coff_date; // Date/time when DSP Coff image was built. u32 begin_offset; // Offset in file where image begins. u32 end_offset; // Offset in file where image begins. @@ -138,20 +116,20 @@ typedef struct _DSP_IMAGE_INFO_V6 { u32 version; // Embedded version # of DSP code. unsigned short checksum; // Dsp File checksum unsigned short pad1; -} __attribute__ ((packed)) DSP_IMAGE_INFO_V6, *PDSP_IMAGE_INFO_V6; +} __attribute__ ((packed)); void card_bootload(struct net_device *dev) { - FT1000_INFO *info = (PFT1000_INFO) netdev_priv(dev); + struct ft1000_info *info = (struct ft1000_info *) netdev_priv(dev); unsigned long flags; - PULONG pdata; - UINT size; - UINT i; - ULONG templong; + u32 *pdata; + u32 size; + u32 i; + u32 templong; DEBUG(0, "card_bootload is called\n"); - pdata = (PULONG) bootimage; + pdata = (u32 *) bootimage; size = sizeof(bootimage); // check for odd word @@ -172,11 +150,11 @@ void card_bootload(struct net_device *dev) spin_unlock_irqrestore(&info->dpram_lock, flags); } -USHORT get_handshake(struct net_device *dev, USHORT expected_value) +u16 get_handshake(struct net_device *dev, u16 expected_value) { - FT1000_INFO *info = (PFT1000_INFO) netdev_priv(dev); - USHORT handshake; - ULONG tempx; + struct ft1000_info *info = (struct ft1000_info *) netdev_priv(dev); + u16 handshake; + u32 tempx; int loopcnt; loopcnt = 0; @@ -190,7 +168,7 @@ USHORT get_handshake(struct net_device *dev, USHORT expected_value) tempx = ntohl(ft1000_read_dpram_mag_32 (dev, DWNLD_MAG_HANDSHAKE_LOC)); - handshake = (USHORT) tempx; + handshake = (u16) tempx; } if ((handshake == expected_value) @@ -207,27 +185,27 @@ USHORT get_handshake(struct net_device *dev, USHORT expected_value) } -void put_handshake(struct net_device *dev, USHORT handshake_value) +void put_handshake(struct net_device *dev, u16 handshake_value) { - FT1000_INFO *info = (PFT1000_INFO) netdev_priv(dev); - ULONG tempx; + struct ft1000_info *info = (struct ft1000_info *) netdev_priv(dev); + u32 tempx; if (info->AsicID == ELECTRABUZZ_ID) { ft1000_write_reg(dev, FT1000_REG_DPRAM_ADDR, DWNLD_HANDSHAKE_LOC); ft1000_write_reg(dev, FT1000_REG_DPRAM_DATA, handshake_value); /* Handshake */ } else { - tempx = (ULONG) handshake_value; + tempx = (u32) handshake_value; tempx = ntohl(tempx); ft1000_write_dpram_mag_32(dev, DWNLD_MAG_HANDSHAKE_LOC, tempx); /* Handshake */ } } -USHORT get_request_type(struct net_device *dev) +u16 get_request_type(struct net_device *dev) { - FT1000_INFO *info = (PFT1000_INFO) netdev_priv(dev); - USHORT request_type; - ULONG tempx; + struct ft1000_info *info = (struct ft1000_info *) netdev_priv(dev); + u16 request_type; + u32 tempx; if (info->AsicID == ELECTRABUZZ_ID) { ft1000_write_reg(dev, FT1000_REG_DPRAM_ADDR, DWNLD_TYPE_LOC); @@ -235,7 +213,7 @@ USHORT get_request_type(struct net_device *dev) } else { tempx = ft1000_read_dpram_mag_32(dev, DWNLD_MAG_TYPE_LOC); tempx = ntohl(tempx); - request_type = (USHORT) tempx; + request_type = (u16) tempx; } return request_type; @@ -244,9 +222,9 @@ USHORT get_request_type(struct net_device *dev) long get_request_value(struct net_device *dev) { - FT1000_INFO *info = (PFT1000_INFO) netdev_priv(dev); + struct ft1000_info *info = (struct ft1000_info *) netdev_priv(dev); long value; - USHORT w_val; + u16 w_val; if (info->AsicID == ELECTRABUZZ_ID) { ft1000_write_reg(dev, FT1000_REG_DPRAM_ADDR, @@ -273,19 +251,19 @@ long get_request_value(struct net_device *dev) void put_request_value(struct net_device *dev, long lvalue) { - FT1000_INFO *info = (PFT1000_INFO) netdev_priv(dev); - USHORT size; - ULONG tempx; + struct ft1000_info *info = (struct ft1000_info *) netdev_priv(dev); + u16 size; + u32 tempx; if (info->AsicID == ELECTRABUZZ_ID) { - size = (USHORT) (lvalue >> 16); + size = (u16) (lvalue >> 16); ft1000_write_reg(dev, FT1000_REG_DPRAM_ADDR, DWNLD_SIZE_MSW_LOC); ft1000_write_reg(dev, FT1000_REG_DPRAM_DATA, size); - size = (USHORT) (lvalue); + size = (u16) (lvalue); ft1000_write_reg(dev, FT1000_REG_DPRAM_ADDR, DWNLD_SIZE_LSW_LOC); @@ -298,10 +276,10 @@ void put_request_value(struct net_device *dev, long lvalue) } -USHORT hdr_checksum(PPSEUDO_HDR pHdr) +u16 hdr_checksum(struct pseudo_hdr *pHdr) { - USHORT *usPtr = (USHORT *) pHdr; - USHORT chksum; + u16 *usPtr = (u16 *) pHdr; + u16 chksum; chksum = ((((((usPtr[0] ^ usPtr[1]) ^ usPtr[2]) ^ usPtr[3]) ^ usPtr[4]) ^ usPtr[5]) ^ usPtr[6]); @@ -309,32 +287,29 @@ USHORT hdr_checksum(PPSEUDO_HDR pHdr) return chksum; } -int card_download(struct net_device *dev, const u8 *pFileStart, UINT FileLength) +int card_download(struct net_device *dev, const u8 *pFileStart, u32 FileLength) { - FT1000_INFO *info = (PFT1000_INFO) netdev_priv(dev); + struct ft1000_info *info = (struct ft1000_info *) netdev_priv(dev); int Status = SUCCESS; - USHORT DspWordCnt = 0; - UINT uiState; - USHORT handshake; - PPSEUDO_HDR pHdr; - USHORT usHdrLength; - PDSP_FILE_HDR pFileHdr; + u32 uiState; + u16 handshake; + struct pseudo_hdr *pHdr; + u16 usHdrLength; long word_length; - USHORT request; - USHORT temp; - PPROV_RECORD pprov_record; - PUCHAR pbuffer; - PDSP_FILE_HDR_5 pFileHdr5; - PDSP_IMAGE_INFO pDspImageInfo = NULL; - PDSP_IMAGE_INFO_V6 pDspImageInfoV6 = NULL; + u16 request; + u16 temp; + struct prov_record *pprov_record; + u8 *pbuffer; + struct dsp_file_hdr *pFileHdr5; + struct dsp_image_info *pDspImageInfoV6 = NULL; long requested_version; - BOOLEAN bGoodVersion = 0; - PDRVMSG pMailBoxData; - USHORT *pUsData = NULL; - USHORT *pUsFile = NULL; - UCHAR *pUcFile = NULL; - UCHAR *pBootEnd = NULL; - UCHAR *pCodeEnd = NULL; + bool bGoodVersion = 0; + struct drv_msg *pMailBoxData; + u16 *pUsData = NULL; + u16 *pUsFile = NULL; + u8 *pUcFile = NULL; + u8 *pBootEnd = NULL; + u8 *pCodeEnd = NULL; int imageN; long file_version; long loader_code_address = 0; @@ -345,36 +320,22 @@ int card_download(struct net_device *dev, const u8 *pFileStart, UINT FileLength) unsigned long templong; unsigned long image_chksum = 0; - // - // Get version id of file, at first 4 bytes of file, for newer files. - // file_version = *(long *)pFileStart; + if (file_version != 6) { + printk(KERN_ERR "ft1000: unsupported firmware version %ld\n", file_version); + Status = FAILURE; + } uiState = STATE_START_DWNLD; - pFileHdr = (PDSP_FILE_HDR) pFileStart; - pFileHdr5 = (PDSP_FILE_HDR_5) pFileStart; - - switch (file_version) { - case 5: - case 6: - pUsFile = - (USHORT *) ((long)pFileStart + pFileHdr5->loader_offset); - pUcFile = - (UCHAR *) ((long)pFileStart + pFileHdr5->loader_offset); + pFileHdr5 = (struct dsp_file_hdr *) pFileStart; - pBootEnd = - (UCHAR *) ((long)pFileStart + pFileHdr5->loader_code_end); - - loader_code_address = pFileHdr5->loader_code_address; - loader_code_size = pFileHdr5->loader_code_size; - bGoodVersion = FALSE; - break; - - default: - Status = FAILURE; - break; - } + pUsFile = (u16 *) ((long)pFileStart + pFileHdr5->loader_offset); + pUcFile = (u8 *) ((long)pFileStart + pFileHdr5->loader_offset); + pBootEnd = (u8 *) ((long)pFileStart + pFileHdr5->loader_code_end); + loader_code_address = pFileHdr5->loader_code_address; + loader_code_size = pFileHdr5->loader_code_size; + bGoodVersion = false; while ((Status == SUCCESS) && (uiState != STATE_DONE_FILE)) { @@ -411,8 +372,8 @@ int card_download(struct net_device *dev, const u8 *pFileStart, UINT FileLength) break; case REQUEST_DONE_BL: /* Reposition ptrs to beginning of code section */ - pUsFile = (USHORT *) ((long)pBootEnd); - pUcFile = (UCHAR *) ((long)pBootEnd); + pUsFile = (u16 *) ((long)pBootEnd); + pUcFile = (u8 *) ((long)pBootEnd); uiState = STATE_CODE_DWNLD; break; case REQUEST_CODE_SEGMENT: @@ -432,45 +393,24 @@ int card_download(struct net_device *dev, const u8 *pFileStart, UINT FileLength) // Provide mutual exclusive access while reading ASIC registers. spin_lock_irqsave(&info->dpram_lock, flags); - if (file_version == 5) { - /* - * Position ASIC DPRAM auto-increment pointer. - */ - ft1000_write_reg(dev, - FT1000_REG_DPRAM_ADDR, - DWNLD_PS_HDR_LOC); - - for (; word_length > 0; word_length--) { /* In words */ - //temp = *pUsFile; - //temp = RtlUshortByteSwap(temp); - ft1000_write_reg(dev, - FT1000_REG_DPRAM_DATA, - *pUsFile); - pUsFile++; - pUcFile += 2; - DspWordCnt++; - } - } else { - /* - * Position ASIC DPRAM auto-increment pointer. - */ - outw(DWNLD_MAG_PS_HDR_LOC, + /* + * Position ASIC DPRAM auto-increment pointer. + */ + outw(DWNLD_MAG_PS_HDR_LOC, + dev->base_addr + + FT1000_REG_DPRAM_ADDR); + if (word_length & 0x01) + word_length++; + word_length = word_length / 2; + + for (; word_length > 0; word_length--) { /* In words */ + templong = *pUsFile++; + templong |= + (*pUsFile++ << 16); + pUcFile += 4; + outl(templong, dev->base_addr + - FT1000_REG_DPRAM_ADDR); - if (word_length & 0x01) { - word_length++; - } - word_length = word_length / 2; - - for (; word_length > 0; word_length--) { /* In words */ - templong = *pUsFile++; - templong |= - (*pUsFile++ << 16); - pUcFile += 4; - outl(templong, - dev->base_addr + - FT1000_REG_MAG_DPDATAL); - } + FT1000_REG_MAG_DPDATAL); } spin_unlock_irqrestore(&info-> dpram_lock, @@ -520,24 +460,8 @@ int card_download(struct net_device *dev, const u8 *pFileStart, UINT FileLength) break; case REQUEST_DONE_CL: /* Reposition ptrs to beginning of provisioning section */ - switch (file_version) { - case 5: - case 6: - pUsFile = - (USHORT *) ((long)pFileStart - + - pFileHdr5-> - commands_offset); - pUcFile = - (UCHAR *) ((long)pFileStart - + - pFileHdr5-> - commands_offset); - break; - default: - Status = FAILURE; - break; - } + pUsFile = (u16 *) ((long)pFileStart + pFileHdr5->commands_offset); + pUcFile = (u8 *) ((long)pFileStart + pFileHdr5->commands_offset); uiState = STATE_DONE_DWNLD; break; case REQUEST_CODE_SEGMENT: @@ -558,45 +482,24 @@ int card_download(struct net_device *dev, const u8 *pFileStart, UINT FileLength) Status = FAILURE; break; } - if (file_version == 5) { - /* - * Position ASIC DPRAM auto-increment pointer. - */ - ft1000_write_reg(dev, - FT1000_REG_DPRAM_ADDR, - DWNLD_PS_HDR_LOC); - - for (; word_length > 0; word_length--) { /* In words */ - //temp = *pUsFile; - //temp = RtlUshortByteSwap(temp); - ft1000_write_reg(dev, - FT1000_REG_DPRAM_DATA, - *pUsFile); - pUsFile++; - pUcFile += 2; - DspWordCnt++; - } - } else { - /* - * Position ASIC DPRAM auto-increment pointer. - */ - outw(DWNLD_MAG_PS_HDR_LOC, + /* + * Position ASIC DPRAM auto-increment pointer. + */ + outw(DWNLD_MAG_PS_HDR_LOC, + dev->base_addr + + FT1000_REG_DPRAM_ADDR); + if (word_length & 0x01) + word_length++; + word_length = word_length / 2; + + for (; word_length > 0; word_length--) { /* In words */ + templong = *pUsFile++; + templong |= + (*pUsFile++ << 16); + pUcFile += 4; + outl(templong, dev->base_addr + - FT1000_REG_DPRAM_ADDR); - if (word_length & 0x01) { - word_length++; - } - word_length = word_length / 2; - - for (; word_length > 0; word_length--) { /* In words */ - templong = *pUsFile++; - templong |= - (*pUsFile++ << 16); - pUcFile += 4; - outl(templong, - dev->base_addr + - FT1000_REG_MAG_DPDATAL); - } + FT1000_REG_MAG_DPDATAL); } break; @@ -606,9 +509,9 @@ int card_download(struct net_device *dev, const u8 *pFileStart, UINT FileLength) (long)(info->DSPInfoBlklen + 1) / 2; put_request_value(dev, word_length); pMailBoxData = - (PDRVMSG) & info->DSPInfoBlk[0]; + (struct drv_msg *) & info->DSPInfoBlk[0]; pUsData = - (USHORT *) & pMailBoxData->data[0]; + (u16 *) & pMailBoxData->data[0]; // Provide mutual exclusive access while reading ASIC registers. spin_lock_irqsave(&info->dpram_lock, flags); @@ -658,51 +561,32 @@ int card_download(struct net_device *dev, const u8 *pFileStart, UINT FileLength) pFileHdr5->version_data_size; put_request_value(dev, word_length); pUsFile = - (USHORT *) ((long)pFileStart + + (u16 *) ((long)pFileStart + pFileHdr5-> version_data_offset); // Provide mutual exclusive access while reading ASIC registers. spin_lock_irqsave(&info->dpram_lock, flags); - if (file_version == 5) { - /* - * Position ASIC DPRAM auto-increment pointer. - */ - ft1000_write_reg(dev, - FT1000_REG_DPRAM_ADDR, - DWNLD_PS_HDR_LOC); - - for (; word_length > 0; word_length--) { /* In words */ - ft1000_write_reg(dev, - FT1000_REG_DPRAM_DATA, - *pUsFile - /*temp */ - ); - pUsFile++; - } - } else { - /* - * Position ASIC DPRAM auto-increment pointer. - */ - outw(DWNLD_MAG_PS_HDR_LOC, + /* + * Position ASIC DPRAM auto-increment pointer. + */ + outw(DWNLD_MAG_PS_HDR_LOC, + dev->base_addr + + FT1000_REG_DPRAM_ADDR); + if (word_length & 0x01) + word_length++; + word_length = word_length / 2; + + for (; word_length > 0; word_length--) { /* In words */ + templong = + ntohs(*pUsFile++); + temp = + ntohs(*pUsFile++); + templong |= + (temp << 16); + outl(templong, dev->base_addr + - FT1000_REG_DPRAM_ADDR); - if (word_length & 0x01) { - word_length++; - } - word_length = word_length / 2; - - for (; word_length > 0; word_length--) { /* In words */ - templong = - ntohs(*pUsFile++); - temp = - ntohs(*pUsFile++); - templong |= - (temp << 16); - outl(templong, - dev->base_addr + - FT1000_REG_MAG_DPDATAL); - } + FT1000_REG_MAG_DPDATAL); } spin_unlock_irqrestore(&info-> dpram_lock, @@ -710,120 +594,71 @@ int card_download(struct net_device *dev, const u8 *pFileStart, UINT FileLength) break; case REQUEST_CODE_BY_VERSION: - bGoodVersion = FALSE; + bGoodVersion = false; requested_version = get_request_value(dev); - if (file_version == 5) { - pDspImageInfo = - (PDSP_IMAGE_INFO) ((long) - pFileStart - + - sizeof - (DSP_FILE_HDR_5)); - for (imageN = 0; - imageN < - pFileHdr5->nDspImages; - imageN++) { - if (pDspImageInfo-> - version == - requested_version) { - bGoodVersion = - TRUE; - pUsFile = - (USHORT - *) ((long) - pFileStart - + - pDspImageInfo-> - begin_offset); - pUcFile = - (UCHAR - *) ((long) - pFileStart - + - pDspImageInfo-> - begin_offset); - pCodeEnd = - (UCHAR - *) ((long) - pFileStart - + - pDspImageInfo-> - end_offset); - run_address = - pDspImageInfo-> - run_address; - run_size = - pDspImageInfo-> - image_size; - break; - } - pDspImageInfo++; - } - } else { - pDspImageInfoV6 = - (PDSP_IMAGE_INFO_V6) ((long) - pFileStart - + - sizeof - (DSP_FILE_HDR_5)); - for (imageN = 0; - imageN < - pFileHdr5->nDspImages; - imageN++) { - temp = (USHORT) - (pDspImageInfoV6-> - version); - templong = temp; - temp = (USHORT) - (pDspImageInfoV6-> - version >> 16); - templong |= - (temp << 16); - if (templong == - requested_version) { - bGoodVersion = - TRUE; - pUsFile = - (USHORT - *) ((long) - pFileStart - + - pDspImageInfoV6-> - begin_offset); - pUcFile = - (UCHAR - *) ((long) - pFileStart - + - pDspImageInfoV6-> - begin_offset); - pCodeEnd = - (UCHAR - *) ((long) - pFileStart - + - pDspImageInfoV6-> - end_offset); - run_address = - pDspImageInfoV6-> - run_address; - run_size = - pDspImageInfoV6-> - image_size; - image_chksum = - (ULONG) - pDspImageInfoV6-> - checksum; - DEBUG(0, - "ft1000_dnld: image_chksum = 0x%8x\n", - (unsigned - int) - image_chksum); - break; - } - pDspImageInfoV6++; + pDspImageInfoV6 = + (struct dsp_image_info *) ((long) + pFileStart + + + sizeof + (struct dsp_file_hdr)); + for (imageN = 0; + imageN < + pFileHdr5->nDspImages; + imageN++) { + temp = (u16) + (pDspImageInfoV6-> + version); + templong = temp; + temp = (u16) + (pDspImageInfoV6-> + version >> 16); + templong |= + (temp << 16); + if (templong == + requested_version) { + bGoodVersion = + true; + pUsFile = + (u16 + *) ((long) + pFileStart + + + pDspImageInfoV6-> + begin_offset); + pUcFile = + (u8 + *) ((long) + pFileStart + + + pDspImageInfoV6-> + begin_offset); + pCodeEnd = + (u8 + *) ((long) + pFileStart + + + pDspImageInfoV6-> + end_offset); + run_address = + pDspImageInfoV6-> + run_address; + run_size = + pDspImageInfoV6-> + image_size; + image_chksum = + (u32) + pDspImageInfoV6-> + checksum; + DEBUG(0, + "ft1000_dnld: image_chksum = 0x%8x\n", + (unsigned + int) + image_chksum); + break; } + pDspImageInfoV6++; } if (!bGoodVersion) { /* @@ -852,7 +687,7 @@ int card_download(struct net_device *dev, const u8 *pFileStart, UINT FileLength) break; } - pHdr = (PPSEUDO_HDR) pUsFile; + pHdr = (struct pseudo_hdr *) pUsFile; if (pHdr->portdest == 0x80 /* DspOAM */ && (pHdr->portsrc == 0x00 /* Driver */ @@ -872,7 +707,7 @@ int card_download(struct net_device *dev, const u8 *pFileStart, UINT FileLength) case STATE_SECTION_PROV: - pHdr = (PPSEUDO_HDR) pUcFile; + pHdr = (struct pseudo_hdr *) pUcFile; if (pHdr->checksum == hdr_checksum(pHdr)) { if (pHdr->portdest != 0x80 /* Dsp OAM */ ) { @@ -883,15 +718,15 @@ int card_download(struct net_device *dev, const u8 *pFileStart, UINT FileLength) // Get buffer for provisioning data pbuffer = - kmalloc((usHdrLength + sizeof(PSEUDO_HDR)), + kmalloc((usHdrLength + sizeof(struct pseudo_hdr)), GFP_ATOMIC); if (pbuffer) { memcpy(pbuffer, (void *)pUcFile, - (UINT) (usHdrLength + - sizeof(PSEUDO_HDR))); + (u32) (usHdrLength + + sizeof(struct pseudo_hdr))); // link provisioning data pprov_record = - kmalloc(sizeof(PROV_RECORD), + kmalloc(sizeof(struct prov_record), GFP_ATOMIC); if (pprov_record) { pprov_record->pprov_data = @@ -901,8 +736,8 @@ int card_download(struct net_device *dev, const u8 *pFileStart, UINT FileLength) &info->prov_list); // Move to next entry if available pUcFile = - (UCHAR *) ((unsigned long) pUcFile + - (unsigned long) ((usHdrLength + 1) & 0xFFFFFFFE) + sizeof(PSEUDO_HDR)); + (u8 *) ((unsigned long) pUcFile + + (unsigned long) ((usHdrLength + 1) & 0xFFFFFFFE) + sizeof(struct pseudo_hdr)); if ((unsigned long) (pUcFile) - (unsigned long) (pFileStart) >= (unsigned long) FileLength) { |