diff options
author | Kevin McKinney <klmckinney1@gmail.com> | 2011-10-20 08:15:22 -0400 |
---|---|---|
committer | Greg Kroah-Hartman <gregkh@suse.de> | 2011-10-23 04:16:34 -0400 |
commit | a5e4b81e274d7b455531a5e33ce1523caaf31a84 (patch) | |
tree | 2fa93a18f86f29af25a84b71c281c592f4b13b4a /drivers/staging | |
parent | a3e2940c24d319558dcb7cb7736de9c814be7c7b (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.c | 374 |
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 | ||
3 | int InterfaceFileDownload(PVOID arg, struct file *flp, unsigned int on_chip_loc) | 3 | int 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 | ||
54 | int InterfaceFileReadbackFromChip(PVOID arg, struct file *flp, | 55 | int 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 | |||
137 | exit: | 127 | exit: |
138 | kfree(buff); | 128 | kfree(buff); |
139 | kfree(buff_readback); | 129 | kfree(buff_readback); |
140 | return Status; | 130 | return Status; |
141 | } | 131 | } |
142 | 132 | ||
143 | static int bcm_download_config_file(PMINI_ADAPTER Adapter, | 133 | static 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 | } |
231 | static int bcm_compare_buff_contents(unsigned char *readbackbuff, | 205 | |
232 | unsigned char *buff,unsigned int len) | 206 | static 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 | |||
262 | int bcm_ioctl_fw_download(PMINI_ADAPTER Adapter, FIRMWARE_INFO *psFwInfo) | 230 | int 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 | |||
312 | error: | 274 | error: |
313 | kfree(buff); | 275 | kfree(buff); |
314 | return retval; | 276 | return retval; |
315 | } | 277 | } |
316 | 278 | ||
317 | static INT buffDnld(PMINI_ADAPTER Adapter, PUCHAR mappedbuffer, UINT u32FirmwareLength, | 279 | static 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 | ||
342 | static INT buffRdbkVerify(PMINI_ADAPTER Adapter, | 300 | static 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 | ||
379 | INT buffDnldVerify(PMINI_ADAPTER Adapter, unsigned char *mappedbuffer, unsigned int u32FirmwareLength, | 332 | INT 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 | } |
397 | error: | 347 | error: |
398 | return status; | 348 | return status; |
399 | } | 349 | } |
400 | |||
401 | |||