aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/staging
diff options
context:
space:
mode:
authorKevin McKinney <klmckinney1@gmail.com>2011-10-20 08:15:22 -0400
committerGreg Kroah-Hartman <gregkh@suse.de>2011-10-23 04:16:34 -0400
commita5e4b81e274d7b455531a5e33ce1523caaf31a84 (patch)
tree2fa93a18f86f29af25a84b71c281c592f4b13b4a /drivers/staging
parenta3e2940c24d319558dcb7cb7736de9c814be7c7b (diff)
Staging: bcm: Fix coding style issues in InterfaceDld.c
This patch fixes multiple coding style issues in file, InterfaceDld.c, found by checkpatch.pl. Signed-off-by: Kevin McKinney <klmckinney1@gmail.com> Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
Diffstat (limited to 'drivers/staging')
-rw-r--r--drivers/staging/bcm/InterfaceDld.c374
1 files changed, 161 insertions, 213 deletions
diff --git a/drivers/staging/bcm/InterfaceDld.c b/drivers/staging/bcm/InterfaceDld.c
index bf6cc6a414bf..ba83dde1efb7 100644
--- a/drivers/staging/bcm/InterfaceDld.c
+++ b/drivers/staging/bcm/InterfaceDld.c
@@ -2,12 +2,12 @@
2 2
3int InterfaceFileDownload(PVOID arg, struct file *flp, unsigned int on_chip_loc) 3int InterfaceFileDownload(PVOID arg, struct file *flp, unsigned int on_chip_loc)
4{ 4{
5 /*unsigned int reg = 0;*/ 5 /* unsigned int reg = 0; */
6 mm_segment_t oldfs = {0}; 6 mm_segment_t oldfs = {0};
7 int errno = 0, len = 0; /*,is_config_file = 0*/ 7 int errno = 0, len = 0; /* ,is_config_file = 0 */
8 loff_t pos = 0; 8 loff_t pos = 0;
9 PS_INTERFACE_ADAPTER psIntfAdapter = (PS_INTERFACE_ADAPTER)arg; 9 PS_INTERFACE_ADAPTER psIntfAdapter = (PS_INTERFACE_ADAPTER)arg;
10 /*PMINI_ADAPTER Adapter = psIntfAdapter->psAdapter;*/ 10 /* PMINI_ADAPTER Adapter = psIntfAdapter->psAdapter; */
11 char *buff = kmalloc(MAX_TRANSFER_CTRL_BYTE_USB, GFP_KERNEL); 11 char *buff = kmalloc(MAX_TRANSFER_CTRL_BYTE_USB, GFP_KERNEL);
12 12
13 if (!buff) 13 if (!buff)
@@ -17,7 +17,7 @@ int InterfaceFileDownload(PVOID arg, struct file *flp, unsigned int on_chip_loc)
17 oldfs = get_fs(); 17 oldfs = get_fs();
18 set_fs(get_ds()); 18 set_fs(get_ds());
19 len = vfs_read(flp, (void __force __user *)buff, 19 len = vfs_read(flp, (void __force __user *)buff,
20 MAX_TRANSFER_CTRL_BYTE_USB, &pos); 20 MAX_TRANSFER_CTRL_BYTE_USB, &pos);
21 set_fs(oldfs); 21 set_fs(oldfs);
22 if (len <= 0) { 22 if (len <= 0) {
23 if (len < 0) { 23 if (len < 0) {
@@ -35,8 +35,9 @@ int InterfaceFileDownload(PVOID arg, struct file *flp, unsigned int on_chip_loc)
35 break; 35 break;
36 } 36 }
37 /* BCM_DEBUG_PRINT_BUFFER(Adapter,DBG_TYPE_INITEXIT, MP_INIT, 37 /* BCM_DEBUG_PRINT_BUFFER(Adapter,DBG_TYPE_INITEXIT, MP_INIT,
38 DBG_LVL_ALL, buff, 38 * DBG_LVL_ALL, buff,
39 MAX_TRANSFER_CTRL_BYTE_USB);*/ 39 * MAX_TRANSFER_CTRL_BYTE_USB);
40 */
40 errno = InterfaceWRM(psIntfAdapter, on_chip_loc, buff, len); 41 errno = InterfaceWRM(psIntfAdapter, on_chip_loc, buff, len);
41 if (errno) { 42 if (errno) {
42 BCM_DEBUG_PRINT(psIntfAdapter->psAdapter, 43 BCM_DEBUG_PRINT(psIntfAdapter->psAdapter,
@@ -51,153 +52,132 @@ int InterfaceFileDownload(PVOID arg, struct file *flp, unsigned int on_chip_loc)
51 return errno; 52 return errno;
52} 53}
53 54
54int InterfaceFileReadbackFromChip(PVOID arg, struct file *flp, 55int InterfaceFileReadbackFromChip(PVOID arg, struct file *flp, unsigned int on_chip_loc)
55 unsigned int on_chip_loc)
56{ 56{
57 char *buff, *buff_readback; 57 char *buff, *buff_readback;
58 unsigned int reg = 0; 58 unsigned int reg = 0;
59 mm_segment_t oldfs={0}; 59 mm_segment_t oldfs = {0};
60 int errno=0, len=0, is_config_file = 0; 60 int errno = 0, len = 0, is_config_file = 0;
61 loff_t pos=0; 61 loff_t pos = 0;
62 static int fw_down = 0; 62 static int fw_down = 0;
63 INT Status = STATUS_SUCCESS; 63 INT Status = STATUS_SUCCESS;
64 PS_INTERFACE_ADAPTER psIntfAdapter = (PS_INTERFACE_ADAPTER)arg; 64 PS_INTERFACE_ADAPTER psIntfAdapter = (PS_INTERFACE_ADAPTER)arg;
65 65
66 buff=kmalloc(MAX_TRANSFER_CTRL_BYTE_USB, GFP_DMA); 66 buff = kmalloc(MAX_TRANSFER_CTRL_BYTE_USB, GFP_DMA);
67 buff_readback=kmalloc(MAX_TRANSFER_CTRL_BYTE_USB , GFP_DMA); 67 buff_readback = kmalloc(MAX_TRANSFER_CTRL_BYTE_USB , GFP_DMA);
68 if(!buff || !buff_readback) 68 if (!buff || !buff_readback) {
69 { 69 kfree(buff);
70 kfree(buff); 70 kfree(buff_readback);
71 kfree(buff_readback);
72 71
73 return -ENOMEM; 72 return -ENOMEM;
74 } 73 }
75 74
76 is_config_file = (on_chip_loc == CONFIG_BEGIN_ADDR)? 1:0; 75 is_config_file = (on_chip_loc == CONFIG_BEGIN_ADDR) ? 1 : 0;
77 76
78 memset(buff_readback, 0, MAX_TRANSFER_CTRL_BYTE_USB); 77 memset(buff_readback, 0, MAX_TRANSFER_CTRL_BYTE_USB);
79 memset(buff, 0, MAX_TRANSFER_CTRL_BYTE_USB); 78 memset(buff, 0, MAX_TRANSFER_CTRL_BYTE_USB);
80 while(1) 79 while (1) {
81 { 80 oldfs = get_fs();
82 oldfs=get_fs(); set_fs(get_ds()); 81 set_fs(get_ds());
83 len=vfs_read(flp, (void __force __user *)buff, MAX_TRANSFER_CTRL_BYTE_USB, &pos); 82 len = vfs_read(flp, (void __force __user *)buff, MAX_TRANSFER_CTRL_BYTE_USB, &pos);
84 set_fs(oldfs); 83 set_fs(oldfs);
85 fw_down++; 84 fw_down++;
86 if(len<=0)
87 {
88 if(len<0)
89 {
90 BCM_DEBUG_PRINT(psIntfAdapter->psAdapter,DBG_TYPE_INITEXIT, MP_INIT, DBG_LVL_ALL, "len < 0");
91 errno=len;
92 }
93 else
94 {
95 errno = 0;
96 BCM_DEBUG_PRINT(psIntfAdapter->psAdapter,DBG_TYPE_INITEXIT, MP_INIT, DBG_LVL_ALL, "Got end of file!");
97 }
98 break;
99 }
100 85
86 if (len <= 0) {
87 if (len < 0) {
88 BCM_DEBUG_PRINT(psIntfAdapter->psAdapter, DBG_TYPE_INITEXIT, MP_INIT, DBG_LVL_ALL, "len < 0");
89 errno = len;
90 } else {
91 errno = 0;
92 BCM_DEBUG_PRINT(psIntfAdapter->psAdapter, DBG_TYPE_INITEXIT, MP_INIT, DBG_LVL_ALL, "Got end of file!");
93 }
94 break;
95 }
101 96
102 Status = InterfaceRDM(psIntfAdapter, on_chip_loc, buff_readback, len); 97 Status = InterfaceRDM(psIntfAdapter, on_chip_loc, buff_readback, len);
103 if(Status) 98 if (Status) {
104 { 99 BCM_DEBUG_PRINT(psIntfAdapter->psAdapter, DBG_TYPE_INITEXIT, MP_INIT, DBG_LVL_ALL, "RDM of len %d Failed! %d", len, reg);
105 BCM_DEBUG_PRINT(psIntfAdapter->psAdapter,DBG_TYPE_INITEXIT, MP_INIT, DBG_LVL_ALL, "RDM of len %d Failed! %d", len, reg);
106 goto exit; 100 goto exit;
107 } 101 }
108 reg++; 102 reg++;
109 if((len-sizeof(unsigned int))<4) 103 if ((len-sizeof(unsigned int)) < 4) {
110 { 104 if (memcmp(buff_readback, buff, len)) {
111 if(memcmp(buff_readback, buff, len)) 105 BCM_DEBUG_PRINT(psIntfAdapter->psAdapter, DBG_TYPE_INITEXIT, MP_INIT, DBG_LVL_ALL, "Firmware Download is not proper %d", fw_down);
112 { 106 BCM_DEBUG_PRINT(psIntfAdapter->psAdapter, DBG_TYPE_INITEXIT, MP_INIT, DBG_LVL_ALL, "Length is: %d", len);
113 BCM_DEBUG_PRINT(psIntfAdapter->psAdapter,DBG_TYPE_INITEXIT, MP_INIT, DBG_LVL_ALL, "Firmware Download is not proper %d", fw_down);
114 BCM_DEBUG_PRINT(psIntfAdapter->psAdapter,DBG_TYPE_INITEXIT, MP_INIT,DBG_LVL_ALL,"Length is: %d",len);
115 Status = -EIO; 107 Status = -EIO;
116 goto exit; 108 goto exit;
117 } 109 }
118 } 110 } else {
119 else 111 len -= 4;
120 { 112
121 len-=4; 113 while (len) {
122 while(len) 114 if (*(unsigned int *)&buff_readback[len] != *(unsigned int *)&buff[len]) {
123 { 115 BCM_DEBUG_PRINT(psIntfAdapter->psAdapter, DBG_TYPE_INITEXIT, MP_INIT, DBG_LVL_ALL, "Firmware Download is not proper %d", fw_down);
124 if(*(unsigned int*)&buff_readback[len] != *(unsigned int *)&buff[len]) 116 BCM_DEBUG_PRINT(psIntfAdapter->psAdapter, DBG_TYPE_INITEXIT, MP_INIT, DBG_LVL_ALL, "Val from Binary %x, Val From Read Back %x ", *(unsigned int *)&buff[len], *(unsigned int*)&buff_readback[len]);
125 { 117 BCM_DEBUG_PRINT(psIntfAdapter->psAdapter, DBG_TYPE_INITEXIT, MP_INIT, DBG_LVL_ALL, "len =%x!!!", len);
126 BCM_DEBUG_PRINT(psIntfAdapter->psAdapter,DBG_TYPE_INITEXIT, MP_INIT, DBG_LVL_ALL, "Firmware Download is not proper %d", fw_down);
127 BCM_DEBUG_PRINT(psIntfAdapter->psAdapter,DBG_TYPE_INITEXIT, MP_INIT, DBG_LVL_ALL, "Val from Binary %x, Val From Read Back %x ", *(unsigned int *)&buff[len], *(unsigned int*)&buff_readback[len]);
128 BCM_DEBUG_PRINT(psIntfAdapter->psAdapter,DBG_TYPE_INITEXIT, MP_INIT, DBG_LVL_ALL, "len =%x!!!", len);
129 Status = -EIO; 118 Status = -EIO;
130 goto exit; 119 goto exit;
131 } 120 }
132 len-=4; 121 len -= 4;
133 } 122 }
134 } 123 }
135 on_chip_loc+=MAX_TRANSFER_CTRL_BYTE_USB; 124 on_chip_loc += MAX_TRANSFER_CTRL_BYTE_USB;
136 }/* End of while(1)*/ 125 } /* End of while(1) */
126
137exit: 127exit:
138 kfree(buff); 128 kfree(buff);
139 kfree(buff_readback); 129 kfree(buff_readback);
140 return Status; 130 return Status;
141} 131}
142 132
143static int bcm_download_config_file(PMINI_ADAPTER Adapter, 133static int bcm_download_config_file(PMINI_ADAPTER Adapter, FIRMWARE_INFO *psFwInfo)
144 FIRMWARE_INFO *psFwInfo)
145{ 134{
146 int retval = STATUS_SUCCESS; 135 int retval = STATUS_SUCCESS;
147 B_UINT32 value = 0; 136 B_UINT32 value = 0;
148 137
149 if(Adapter->pstargetparams == NULL) 138 if (Adapter->pstargetparams == NULL) {
150 { 139 if ((Adapter->pstargetparams = kmalloc(sizeof(STARGETPARAMS), GFP_KERNEL)) == NULL) {
151 if((Adapter->pstargetparams = 140 return -ENOMEM;
152 kmalloc(sizeof(STARGETPARAMS), GFP_KERNEL)) == NULL) 141 }
153 {
154 return -ENOMEM;
155 }
156 }
157 if(psFwInfo->u32FirmwareLength != sizeof(STARGETPARAMS))
158 {
159 return -EIO;
160 } 142 }
161 retval = copy_from_user(Adapter->pstargetparams, 143
162 psFwInfo->pvMappedFirmwareAddress, psFwInfo->u32FirmwareLength); 144 if (psFwInfo->u32FirmwareLength != sizeof(STARGETPARAMS))
163 if(retval) 145 return -EIO;
164 { 146
147 retval = copy_from_user(Adapter->pstargetparams, psFwInfo->pvMappedFirmwareAddress, psFwInfo->u32FirmwareLength);
148 if (retval) {
165 kfree(Adapter->pstargetparams); 149 kfree(Adapter->pstargetparams);
166 Adapter->pstargetparams = NULL; 150 Adapter->pstargetparams = NULL;
167 return -EFAULT; 151 return -EFAULT;
168 } 152 }
153
169 /* Parse the structure and then Download the Firmware */ 154 /* Parse the structure and then Download the Firmware */
170 beceem_parse_target_struct(Adapter); 155 beceem_parse_target_struct(Adapter);
171 156
172 //Initializing the NVM. 157 /* Initializing the NVM. */
173 BcmInitNVM(Adapter); 158 BcmInitNVM(Adapter);
159 retval = InitLedSettings(Adapter);
174 160
175 retval = InitLedSettings (Adapter); 161 if (retval) {
176 162 BCM_DEBUG_PRINT(Adapter, DBG_TYPE_INITEXIT, MP_INIT, DBG_LVL_ALL, "INIT LED Failed\n");
177 if(retval)
178 {
179 BCM_DEBUG_PRINT (Adapter,DBG_TYPE_INITEXIT, MP_INIT, DBG_LVL_ALL, "INIT LED Failed\n");
180 return retval; 163 return retval;
181 } 164 }
182 165
183 if(Adapter->LEDInfo.led_thread_running & BCM_LED_THREAD_RUNNING_ACTIVELY) 166 if (Adapter->LEDInfo.led_thread_running & BCM_LED_THREAD_RUNNING_ACTIVELY) {
184 {
185 Adapter->LEDInfo.bLedInitDone = FALSE; 167 Adapter->LEDInfo.bLedInitDone = FALSE;
186 Adapter->DriverState = DRIVER_INIT; 168 Adapter->DriverState = DRIVER_INIT;
187 wake_up(&Adapter->LEDInfo.notify_led_event); 169 wake_up(&Adapter->LEDInfo.notify_led_event);
188 } 170 }
189 171
190 if(Adapter->LEDInfo.led_thread_running & BCM_LED_THREAD_RUNNING_ACTIVELY) 172 if (Adapter->LEDInfo.led_thread_running & BCM_LED_THREAD_RUNNING_ACTIVELY) {
191 {
192 Adapter->DriverState = FW_DOWNLOAD; 173 Adapter->DriverState = FW_DOWNLOAD;
193 wake_up(&Adapter->LEDInfo.notify_led_event); 174 wake_up(&Adapter->LEDInfo.notify_led_event);
194 } 175 }
195 176
196 /* Initialize the DDR Controller */ 177 /* Initialize the DDR Controller */
197 retval = ddr_init(Adapter); 178 retval = ddr_init(Adapter);
198 if(retval) 179 if (retval) {
199 { 180 BCM_DEBUG_PRINT (Adapter, DBG_TYPE_INITEXIT, MP_INIT, DBG_LVL_ALL, "DDR Init Failed\n");
200 BCM_DEBUG_PRINT (Adapter,DBG_TYPE_INITEXIT, MP_INIT, DBG_LVL_ALL, "DDR Init Failed\n");
201 return retval; 181 return retval;
202 } 182 }
203 183
@@ -205,197 +185,165 @@ static int bcm_download_config_file(PMINI_ADAPTER Adapter,
205 wrmalt(Adapter, EEPROM_CAL_DATA_INTERNAL_LOC - 4, &value, sizeof(value)); 185 wrmalt(Adapter, EEPROM_CAL_DATA_INTERNAL_LOC - 4, &value, sizeof(value));
206 wrmalt(Adapter, EEPROM_CAL_DATA_INTERNAL_LOC - 8, &value, sizeof(value)); 186 wrmalt(Adapter, EEPROM_CAL_DATA_INTERNAL_LOC - 8, &value, sizeof(value));
207 187
208 if(Adapter->eNVMType == NVM_FLASH) 188 if (Adapter->eNVMType == NVM_FLASH) {
209 {
210 retval = PropagateCalParamsFromFlashToMemory(Adapter); 189 retval = PropagateCalParamsFromFlashToMemory(Adapter);
211 if(retval) 190 if (retval) {
212 { 191 BCM_DEBUG_PRINT(Adapter, DBG_TYPE_INITEXIT, MP_INIT, DBG_LVL_ALL, "propagaion of cal param failed with status :%d", retval);
213 BCM_DEBUG_PRINT(Adapter,DBG_TYPE_INITEXIT, MP_INIT, DBG_LVL_ALL,"propagaion of cal param failed with status :%d", retval);
214 return retval; 192 return retval;
215 } 193 }
216 } 194 }
217 195
196 retval = buffDnldVerify(Adapter, (PUCHAR)Adapter->pstargetparams, sizeof(STARGETPARAMS), CONFIG_BEGIN_ADDR);
218 197
219 retval =buffDnldVerify(Adapter,(PUCHAR)Adapter->pstargetparams,sizeof(STARGETPARAMS),CONFIG_BEGIN_ADDR); 198 if (retval)
220 199 BCM_DEBUG_PRINT(Adapter, DBG_TYPE_INITEXIT, MP_INIT, DBG_LVL_ALL, "configuration file not downloaded properly");
221 if(retval)
222 {
223 BCM_DEBUG_PRINT(Adapter,DBG_TYPE_INITEXIT, MP_INIT, DBG_LVL_ALL, "configuration file not downloaded properly");
224 }
225 else 200 else
226 Adapter->bCfgDownloaded = TRUE; 201 Adapter->bCfgDownloaded = TRUE;
227 202
228
229 return retval; 203 return retval;
230} 204}
231static int bcm_compare_buff_contents(unsigned char *readbackbuff, 205
232 unsigned char *buff,unsigned int len) 206static int bcm_compare_buff_contents(unsigned char *readbackbuff, unsigned char *buff, unsigned int len)
233{ 207{
234 int retval = STATUS_SUCCESS; 208 int retval = STATUS_SUCCESS;
235 PMINI_ADAPTER Adapter = GET_BCM_ADAPTER(gblpnetdev); 209 PMINI_ADAPTER Adapter = GET_BCM_ADAPTER(gblpnetdev);
236 if((len-sizeof(unsigned int))<4) 210 if ((len-sizeof(unsigned int)) < 4) {
237 { 211 if (memcmp(readbackbuff , buff, len))
238 if(memcmp(readbackbuff , buff, len)) 212 retval = -EINVAL;
239 { 213 } else {
240 retval=-EINVAL; 214 len -= 4;
241 } 215
242 } 216 while (len) {
243 else 217 if (*(unsigned int *)&readbackbuff[len] != *(unsigned int *)&buff[len]) {
244 { 218 BCM_DEBUG_PRINT(Adapter, DBG_TYPE_INITEXIT, MP_INIT, DBG_LVL_ALL, "Firmware Download is not proper");
245 len-=4; 219 BCM_DEBUG_PRINT(Adapter, DBG_TYPE_INITEXIT, MP_INIT, DBG_LVL_ALL, "Val from Binary %x, Val From Read Back %x ", *(unsigned int *)&buff[len], *(unsigned int*)&readbackbuff[len]);
246 while(len) 220 BCM_DEBUG_PRINT(Adapter, DBG_TYPE_INITEXIT, MP_INIT, DBG_LVL_ALL, "len =%x!!!", len);
247 { 221 retval = -EINVAL;
248 if(*(unsigned int*)&readbackbuff[len] !=
249 *(unsigned int *)&buff[len])
250 {
251 BCM_DEBUG_PRINT(Adapter,DBG_TYPE_INITEXIT, MP_INIT, DBG_LVL_ALL, "Firmware Download is not proper");
252 BCM_DEBUG_PRINT(Adapter,DBG_TYPE_INITEXIT, MP_INIT, DBG_LVL_ALL, "Val from Binary %x, Val From Read Back %x ", *(unsigned int *)&buff[len], *(unsigned int*)&readbackbuff[len]);
253 BCM_DEBUG_PRINT(Adapter,DBG_TYPE_INITEXIT, MP_INIT, DBG_LVL_ALL, "len =%x!!!", len);
254 retval=-EINVAL;
255 break; 222 break;
256 } 223 }
257 len-=4; 224 len -= 4;
258 } 225 }
259 } 226 }
260 return retval; 227 return retval;
261} 228}
229
262int bcm_ioctl_fw_download(PMINI_ADAPTER Adapter, FIRMWARE_INFO *psFwInfo) 230int bcm_ioctl_fw_download(PMINI_ADAPTER Adapter, FIRMWARE_INFO *psFwInfo)
263{ 231{
264 int retval = STATUS_SUCCESS; 232 int retval = STATUS_SUCCESS;
265 PUCHAR buff = NULL; 233 PUCHAR buff = NULL;
266 234
267 /* Config File is needed for the Driver to download the Config file and 235 /* Config File is needed for the Driver to download the Config file and
268 Firmware. Check for the Config file to be first to be sent from the 236 * Firmware. Check for the Config file to be first to be sent from the
269 Application 237 * Application
270 */ 238 */
271 atomic_set (&Adapter->uiMBupdate, FALSE); 239 atomic_set(&Adapter->uiMBupdate, FALSE);
272 if(!Adapter->bCfgDownloaded && 240 if (!Adapter->bCfgDownloaded && psFwInfo->u32StartingAddress != CONFIG_BEGIN_ADDR) {
273 psFwInfo->u32StartingAddress != CONFIG_BEGIN_ADDR) 241 /* Can't Download Firmware. */
274 { 242 BCM_DEBUG_PRINT(Adapter, DBG_TYPE_INITEXIT, MP_INIT, DBG_LVL_ALL, "Download the config File first\n");
275 /*Can't Download Firmware.*/
276 BCM_DEBUG_PRINT(Adapter,DBG_TYPE_INITEXIT, MP_INIT, DBG_LVL_ALL,"Download the config File first\n");
277 return -EINVAL; 243 return -EINVAL;
278 } 244 }
279 245
280 /* If Config File, Finish the DDR Settings and then Download CFG File */ 246 /* If Config File, Finish the DDR Settings and then Download CFG File */
281 if(psFwInfo->u32StartingAddress == CONFIG_BEGIN_ADDR) 247 if (psFwInfo->u32StartingAddress == CONFIG_BEGIN_ADDR) {
282 { 248 retval = bcm_download_config_file(Adapter, psFwInfo);
283 retval = bcm_download_config_file (Adapter, psFwInfo); 249 } else {
284 } 250 buff = kzalloc(psFwInfo->u32FirmwareLength, GFP_KERNEL);
285 else 251 if (buff == NULL) {
286 { 252 BCM_DEBUG_PRINT(Adapter, DBG_TYPE_INITEXIT, MP_INIT, DBG_LVL_ALL, "Failed in allocation memory");
287
288 buff = kzalloc(psFwInfo->u32FirmwareLength,GFP_KERNEL);
289 if(buff==NULL)
290 {
291 BCM_DEBUG_PRINT(Adapter,DBG_TYPE_INITEXIT, MP_INIT, DBG_LVL_ALL,"Failed in allocation memory");
292 return -ENOMEM; 253 return -ENOMEM;
293 } 254 }
294 retval = copy_from_user(buff,psFwInfo->pvMappedFirmwareAddress, psFwInfo->u32FirmwareLength); 255
295 if(retval != STATUS_SUCCESS) 256 retval = copy_from_user(buff, psFwInfo->pvMappedFirmwareAddress, psFwInfo->u32FirmwareLength);
296 { 257 if (retval != STATUS_SUCCESS) {
297 BCM_DEBUG_PRINT(Adapter,DBG_TYPE_INITEXIT, MP_INIT, DBG_LVL_ALL, "copying buffer from user space failed"); 258 BCM_DEBUG_PRINT(Adapter, DBG_TYPE_INITEXIT, MP_INIT, DBG_LVL_ALL, "copying buffer from user space failed");
298 retval = -EFAULT; 259 retval = -EFAULT;
299 goto error ; 260 goto error;
300 } 261 }
301 262
302 retval = buffDnldVerify(Adapter, 263 retval = buffDnldVerify(Adapter,
303 buff, 264 buff,
304 psFwInfo->u32FirmwareLength, 265 psFwInfo->u32FirmwareLength,
305 psFwInfo->u32StartingAddress); 266 psFwInfo->u32StartingAddress);
306 if(retval != STATUS_SUCCESS) 267
307 { 268 if (retval != STATUS_SUCCESS) {
308 BCM_DEBUG_PRINT(Adapter,DBG_TYPE_INITEXIT, MP_INIT, DBG_LVL_ALL,"f/w download failed status :%d", retval); 269 BCM_DEBUG_PRINT(Adapter, DBG_TYPE_INITEXIT, MP_INIT, DBG_LVL_ALL, "f/w download failed status :%d", retval);
309 goto error; 270 goto error;
310 } 271 }
311 } 272 }
273
312error: 274error:
313 kfree(buff); 275 kfree(buff);
314 return retval; 276 return retval;
315} 277}
316 278
317static INT buffDnld(PMINI_ADAPTER Adapter, PUCHAR mappedbuffer, UINT u32FirmwareLength, 279static INT buffDnld(PMINI_ADAPTER Adapter, PUCHAR mappedbuffer, UINT u32FirmwareLength, ULONG u32StartingAddress)
318 ULONG u32StartingAddress)
319{ 280{
320 281 unsigned int len = 0;
321 unsigned int len = 0;
322 int retval = STATUS_SUCCESS; 282 int retval = STATUS_SUCCESS;
323 len = u32FirmwareLength; 283 len = u32FirmwareLength;
324 284
325 while(u32FirmwareLength) 285 while (u32FirmwareLength) {
326 { 286 len = MIN_VAL(u32FirmwareLength, MAX_TRANSFER_CTRL_BYTE_USB);
327 len = MIN_VAL (u32FirmwareLength, MAX_TRANSFER_CTRL_BYTE_USB); 287 retval = wrm(Adapter, u32StartingAddress, mappedbuffer, len);
328 retval = wrm (Adapter, u32StartingAddress, mappedbuffer, len); 288
329 if(retval) 289 if (retval) {
330 { 290 BCM_DEBUG_PRINT(Adapter, DBG_TYPE_INITEXIT, MP_INIT, DBG_LVL_ALL, "wrm failed with status :%d", retval);
331 BCM_DEBUG_PRINT(Adapter,DBG_TYPE_INITEXIT, MP_INIT, DBG_LVL_ALL, "wrm failed with status :%d", retval);
332 break; 291 break;
333 } 292 }
334 u32StartingAddress += len; 293 u32StartingAddress += len;
335 u32FirmwareLength -= len; 294 u32FirmwareLength -= len;
336 mappedbuffer +=len; 295 mappedbuffer += len;
337 } 296 }
338 return retval; 297 return retval;
339
340} 298}
341 299
342static INT buffRdbkVerify(PMINI_ADAPTER Adapter, 300static INT buffRdbkVerify(PMINI_ADAPTER Adapter, PUCHAR mappedbuffer, UINT u32FirmwareLength, ULONG u32StartingAddress)
343 PUCHAR mappedbuffer, UINT u32FirmwareLength,
344 ULONG u32StartingAddress)
345{ 301{
346 UINT len = u32FirmwareLength; 302 UINT len = u32FirmwareLength;
347 INT retval = STATUS_SUCCESS; 303 INT retval = STATUS_SUCCESS;
348 PUCHAR readbackbuff = kzalloc(MAX_TRANSFER_CTRL_BYTE_USB,GFP_KERNEL); 304 PUCHAR readbackbuff = kzalloc(MAX_TRANSFER_CTRL_BYTE_USB, GFP_KERNEL);
349 305
350 if(NULL == readbackbuff) 306 if (NULL == readbackbuff) {
351 { 307 BCM_DEBUG_PRINT(Adapter, DBG_TYPE_INITEXIT, MP_INIT, DBG_LVL_ALL, "MEMORY ALLOCATION FAILED");
352 BCM_DEBUG_PRINT(Adapter,DBG_TYPE_INITEXIT, MP_INIT, DBG_LVL_ALL, "MEMORY ALLOCATION FAILED");
353 return -ENOMEM; 308 return -ENOMEM;
354 } 309 }
355 while (u32FirmwareLength && !retval)
356 {
357 310
358 len = MIN_VAL (u32FirmwareLength, MAX_TRANSFER_CTRL_BYTE_USB); 311 while (u32FirmwareLength && !retval) {
312 len = MIN_VAL(u32FirmwareLength, MAX_TRANSFER_CTRL_BYTE_USB);
313 retval = rdm(Adapter, u32StartingAddress, readbackbuff, len);
359 314
360 retval = rdm (Adapter, u32StartingAddress, readbackbuff, len); 315 if (retval) {
361 if(retval) 316 BCM_DEBUG_PRINT(Adapter, DBG_TYPE_INITEXIT, MP_INIT, DBG_LVL_ALL, "rdm failed with status %d", retval);
362 {
363 BCM_DEBUG_PRINT(Adapter,DBG_TYPE_INITEXIT, MP_INIT, DBG_LVL_ALL, "rdm failed with status %d" ,retval);
364 break; 317 break;
365 } 318 }
366 319
367 if (STATUS_SUCCESS != (retval = bcm_compare_buff_contents (readbackbuff, mappedbuffer, len))) 320 if (STATUS_SUCCESS != (retval = bcm_compare_buff_contents(readbackbuff, mappedbuffer, len)))
368 {
369 break; 321 break;
370 } 322
371 u32StartingAddress += len; 323 u32StartingAddress += len;
372 u32FirmwareLength -= len; 324 u32FirmwareLength -= len;
373 mappedbuffer +=len; 325 mappedbuffer += len;
374 }/* end of while (u32FirmwareLength && !retval) */ 326
327 } /* end of while (u32FirmwareLength && !retval) */
375 kfree(readbackbuff); 328 kfree(readbackbuff);
376 return retval; 329 return retval;
377} 330}
378 331
379INT buffDnldVerify(PMINI_ADAPTER Adapter, unsigned char *mappedbuffer, unsigned int u32FirmwareLength, 332INT buffDnldVerify(PMINI_ADAPTER Adapter, unsigned char *mappedbuffer, unsigned int u32FirmwareLength, unsigned long u32StartingAddress)
380 unsigned long u32StartingAddress)
381{ 333{
382 INT status = STATUS_SUCCESS; 334 INT status = STATUS_SUCCESS;
383 335
384 status = buffDnld(Adapter,mappedbuffer,u32FirmwareLength,u32StartingAddress); 336 status = buffDnld(Adapter, mappedbuffer, u32FirmwareLength, u32StartingAddress);
385 if(status != STATUS_SUCCESS) 337 if (status != STATUS_SUCCESS) {
386 { 338 BCM_DEBUG_PRINT(Adapter, DBG_TYPE_INITEXIT, MP_INIT, DBG_LVL_ALL, "Buffer download failed");
387 BCM_DEBUG_PRINT(Adapter,DBG_TYPE_INITEXIT, MP_INIT, DBG_LVL_ALL,"Buffer download failed");
388 goto error; 339 goto error;
389 } 340 }
390 341
391 status= buffRdbkVerify(Adapter,mappedbuffer,u32FirmwareLength,u32StartingAddress); 342 status = buffRdbkVerify(Adapter, mappedbuffer, u32FirmwareLength, u32StartingAddress);
392 if(status != STATUS_SUCCESS) 343 if (status != STATUS_SUCCESS) {
393 { 344 BCM_DEBUG_PRINT(Adapter, DBG_TYPE_INITEXIT, MP_INIT, DBG_LVL_ALL, "Buffer readback verifier failed");
394 BCM_DEBUG_PRINT(Adapter,DBG_TYPE_INITEXIT, MP_INIT, DBG_LVL_ALL,"Buffer readback verifier failed");
395 goto error; 345 goto error;
396 } 346 }
397error: 347error:
398 return status; 348 return status;
399} 349}
400
401