4 int BcmFileDownload(PMINI_ADAPTER Adapter
,/**< Logical Adapter */
5 char *path
, /**< path to image file */
6 unsigned int loc
/**< Download Address on the chip*/
8 VOID
LinkControlResponseMessage(PMINI_ADAPTER Adapter
, PUCHAR pucBuffer
);
10 VOID
StatisticsResponse(PMINI_ADAPTER Adapter
,PVOID pvBuffer
);
12 VOID
IdleModeResponse(PMINI_ADAPTER Adapter
,PUINT puiBuffer
);
14 void bcm_kfree_skb(struct sk_buff
*skb
);
15 VOID
bcm_kfree(VOID
*ptr
);
18 VOID
handle_rx_control_packet(PMINI_ADAPTER Adapter
, /**<Pointer to the Adapter structure*/
19 struct sk_buff
*skb
); /**<Pointer to the socket buffer*/
21 int control_packet_handler (PMINI_ADAPTER Adapter
);
23 VOID
DeleteAllClassifiersForSF(PMINI_ADAPTER Adapter
,UINT uiSearchRuleIndex
);
25 VOID
flush_all_queues(PMINI_ADAPTER Adapter
);
27 int register_control_device_interface(PMINI_ADAPTER ps_adapter
);
29 void unregister_control_device_interface(PMINI_ADAPTER Adapter
);
31 INT
CopyBufferToControlPacket(PMINI_ADAPTER Adapter
,/**<Logical Adapter*/
32 PVOID ioBuffer
/**<Control Packet Buffer*/
35 VOID
SortPackInfo(PMINI_ADAPTER Adapter
);
37 VOID
SortClassifiers(PMINI_ADAPTER Adapter
);
39 VOID
flush_all_queues(PMINI_ADAPTER Adapter
);
41 USHORT
IpVersion4(PMINI_ADAPTER Adapter
, /**< Pointer to the driver control structure */
42 struct iphdr
*iphd
, /**<Pointer to the IP Hdr of the packet*/
43 S_CLASSIFIER_RULE
*pstClassifierRule
);
45 VOID
PruneQueue(PMINI_ADAPTER Adapter
,/**<Pointer to the driver control structure*/
46 INT iIndex
/**<Queue Index*/
49 VOID
PruneQueueAllSF(PMINI_ADAPTER Adapter
);
51 INT
SearchSfid(PMINI_ADAPTER Adapter
,UINT uiSfid
);
53 USHORT
GetPacketQueueIndex(PMINI_ADAPTER Adapter
, /**<Pointer to the driver control structure */
54 struct sk_buff
* Packet
/**< Pointer to the Packet to be sent*/
58 reply_to_arp_request(struct sk_buff
*skb
/**<sk_buff of ARP request*/
61 INT
SetupNextSend(PMINI_ADAPTER Adapter
, /**<Logical Adapter*/
62 struct sk_buff
*Packet
, /**<data buffer*/
65 VOID
LinkMessage(PMINI_ADAPTER Adapter
);
67 VOID
transmit_packets(PMINI_ADAPTER Adapter
);
69 INT
SendControlPacket(PMINI_ADAPTER Adapter
, /**<Logical Adapter*/
70 char *pControlPacket
/**<Control Packet*/
73 INT
bcm_transmit(struct sk_buff
*skb
, /**< skb */
74 struct net_device
*dev
/**< net device pointer */
77 int register_networkdev(PMINI_ADAPTER Adapter
);
79 INT
AllocAdapterDsxBuffer(PMINI_ADAPTER Adapter
);
81 VOID
AdapterFree(PMINI_ADAPTER Adapter
);
83 INT
FreeAdapterDsxBuffer(PMINI_ADAPTER Adapter
);
85 int create_worker_threads(PMINI_ADAPTER psAdapter
);
87 int tx_pkt_handler(PMINI_ADAPTER Adapter
);
89 int reset_card_proc(PMINI_ADAPTER Adapter
);
91 int run_card_proc(PMINI_ADAPTER Adapter
);
93 int InitCardAndDownloadFirmware(PMINI_ADAPTER ps_adapter
);
95 int bcm_parse_target_params(PMINI_ADAPTER Adapter
);
97 INT
ReadMacAddressFromNVM(PMINI_ADAPTER Adapter
);
99 int register_control_device_interface(PMINI_ADAPTER ps_adapter
);
101 void DumpPackInfo(PMINI_ADAPTER Adapter
);
103 int rdm(PMINI_ADAPTER Adapter
, UINT uiAddress
, PCHAR pucBuff
, size_t size
);
105 int wrm(PMINI_ADAPTER Adapter
, UINT uiAddress
, PCHAR pucBuff
, size_t size
);
107 int wrmalt (PMINI_ADAPTER Adapter
, UINT uiAddress
, PUINT pucBuff
, size_t sSize
);
109 int rdmalt (PMINI_ADAPTER Adapter
, UINT uiAddress
, PUINT pucBuff
, size_t sSize
);
111 int get_dsx_sf_data_to_application(PMINI_ADAPTER Adapter
, UINT uiSFId
, void __user
* user_buffer
);
113 void SendLinkDown(PMINI_ADAPTER Adapter
);
115 void SendIdleModeResponse(PMINI_ADAPTER Adapter
);
117 void HandleShutDownModeRequest(PMINI_ADAPTER Adapter
,PUCHAR pucBuffer
);
119 int ProcessGetHostMibs(PMINI_ADAPTER Adapter
, PVOID ioBuffer
,
120 ULONG inputBufferLength
);
122 int GetDroppedAppCntrlPktMibs(PVOID ioBuffer
, PPER_TARANG_DATA pTarang
);
123 void beceem_parse_target_struct(PMINI_ADAPTER Adapter
);
125 void doPowerAutoCorrection(PMINI_ADAPTER psAdapter
);
127 int bcm_ioctl_fw_download(PMINI_ADAPTER Adapter
, FIRMWARE_INFO
*psFwInfo
);
129 void bcm_unregister_networkdev(PMINI_ADAPTER Adapter
);
131 int SearchVcid(PMINI_ADAPTER Adapter
,unsigned short usVcid
);
133 void CopyMIBSExtendedSFParameters(PMINI_ADAPTER Adapter
,
134 CServiceFlowParamSI
*psfLocalSet
, UINT uiSearchRuleIndex
);
136 VOID
ResetCounters(PMINI_ADAPTER Adapter
);
138 int InitLedSettings(PMINI_ADAPTER Adapter
);
140 S_CLASSIFIER_RULE
*GetFragIPClsEntry(PMINI_ADAPTER Adapter
,USHORT usIpIdentification
,ULONG SrcIP
);
142 void AddFragIPClsEntry(PMINI_ADAPTER Adapter
,PS_FRAGMENTED_PACKET_INFO psFragPktInfo
);
144 void DelFragIPClsEntry(PMINI_ADAPTER Adapter
,USHORT usIpIdentification
,ULONG SrcIp
);
146 void update_per_cid_rx (PMINI_ADAPTER Adapter
);
148 void update_per_sf_desc_cnts( PMINI_ADAPTER Adapter
);
150 void ClearTargetDSXBuffer(PMINI_ADAPTER Adapter
,B_UINT16 TID
,BOOLEAN bFreeAll
);
152 void beceem_protocol_reset (PMINI_ADAPTER Adapter
);
154 void flush_queue(PMINI_ADAPTER Adapter
, UINT iQIndex
);
157 INT
flushAllAppQ(VOID
);
160 INT
BeceemEEPROMBulkRead(
161 PMINI_ADAPTER Adapter
,
167 INT
BeceemFlashBulkRead(
168 PMINI_ADAPTER Adapter
,
173 UINT
BcmGetEEPROMSize(PMINI_ADAPTER Adapter
);
175 INT
WriteBeceemEEPROM(PMINI_ADAPTER Adapter
,UINT uiEEPROMOffset
, UINT uiData
);
177 UINT
BcmGetFlashSize(PMINI_ADAPTER Adapter
);
179 UINT
BcmGetFlashSectorSize(PMINI_ADAPTER Adapter
, UINT FlashSectorSizeSig
, UINT FlashSectorSize
);
181 INT
BeceemFlashBulkWrite(
182 PMINI_ADAPTER Adapter
,
188 INT
PropagateCalParamsFromFlashToMemory(PMINI_ADAPTER Adapter
);
190 INT
PropagateCalParamsFromEEPROMToMemory(PMINI_ADAPTER Adapter
);
193 INT
BeceemEEPROMBulkWrite(
194 PMINI_ADAPTER Adapter
,
201 INT
ReadBeceemEEPROMBulk(PMINI_ADAPTER Adapter
,UINT dwAddress
, UINT
*pdwData
, UINT dwNumData
);
203 INT
ReadBeceemEEPROM(PMINI_ADAPTER Adapter
,UINT dwAddress
, UINT
*pdwData
);
205 NVM_TYPE
BcmGetNvmType(PMINI_ADAPTER Adapter
);
208 PMINI_ADAPTER Adapter
,
214 PMINI_ADAPTER Adapter
,
220 INT
BcmUpdateSectorSize(PMINI_ADAPTER Adapter
,UINT uiSectorSize
);
222 INT
BcmInitNVM(PMINI_ADAPTER Adapter
);
224 INT
BcmGetNvmSize(PMINI_ADAPTER Adapter
);
226 INT
IsSectionExistInVendorInfo(PMINI_ADAPTER Adapter
, FLASH2X_SECTION_VAL section
);
228 VOID
BcmValidateNvmType(PMINI_ADAPTER Adapter
);
230 VOID
ConfigureEndPointTypesThroughEEPROM(PMINI_ADAPTER Adapter
);
232 INT
BcmGetFlashCSInfo(PMINI_ADAPTER Adapter
);
233 INT
ReadDSDHeader(PMINI_ADAPTER Adapter
, PDSD_HEADER psDSDHeader
, FLASH2X_SECTION_VAL dsd
);
234 INT
BcmGetActiveDSD(PMINI_ADAPTER Adapter
);
235 INT
ReadISOHeader(PMINI_ADAPTER Adapter
, PISO_HEADER psISOHeader
, FLASH2X_SECTION_VAL IsoImage
);
236 INT
BcmGetActiveISO(PMINI_ADAPTER Adapter
);
237 B_UINT8
IsOffsetWritable(PMINI_ADAPTER Adapter
, UINT uiOffset
);
238 INT
BcmGetFlash2xSectionalBitMap(PMINI_ADAPTER Adapter
, PFLASH2X_BITMAP psFlash2xBitMap
);
240 INT
BcmFlash2xBulkWrite(
241 PMINI_ADAPTER Adapter
,
243 FLASH2X_SECTION_VAL eFlashSectionVal
,
248 INT
BcmFlash2xBulkRead(
249 PMINI_ADAPTER Adapter
,
251 FLASH2X_SECTION_VAL eFlashSectionVal
,
252 UINT uiOffsetWithinSectionVal
,
254 INT
BcmGetSectionValEndOffset(PMINI_ADAPTER Adapter
, FLASH2X_SECTION_VAL eFlashSectionVal
);
256 INT
BcmGetSectionValStartOffset(PMINI_ADAPTER Adapter
, FLASH2X_SECTION_VAL eFlashSectionVal
);
258 INT
BcmSetActiveSection(PMINI_ADAPTER Adapter
, FLASH2X_SECTION_VAL eFlash2xSectVal
);
259 INT
BcmAllocFlashCSStructure(PMINI_ADAPTER psAdapter
);
260 INT
BcmDeAllocFlashCSStructure(PMINI_ADAPTER psAdapter
);
262 INT
BcmCopyISO(PMINI_ADAPTER Adapter
, FLASH2X_COPY_SECTION sCopySectStrut
);
263 INT
BcmFlash2xCorruptSig(PMINI_ADAPTER Adapter
, FLASH2X_SECTION_VAL eFlash2xSectionVal
);
264 INT
BcmFlash2xWriteSig(PMINI_ADAPTER Adapter
, FLASH2X_SECTION_VAL eFlashSectionVal
);
265 INT
validateFlash2xReadWrite(PMINI_ADAPTER Adapter
, PFLASH2X_READWRITE psFlash2xReadWrite
);
266 INT
IsFlash2x(PMINI_ADAPTER Adapter
);
267 INT
GetFlashBaseAddr(PMINI_ADAPTER Adapter
);
268 INT
SaveHeaderIfPresent(PMINI_ADAPTER Adapter
, PUCHAR pBuff
, UINT uiSectAlignAddr
);
269 INT
BcmCopySection(PMINI_ADAPTER Adapter
,
270 FLASH2X_SECTION_VAL SrcSection
,
271 FLASH2X_SECTION_VAL DstSection
,
275 INT
BcmDoChipSelect(PMINI_ADAPTER Adapter
, UINT offset
);
276 INT
BcmMakeFlashCSActive(PMINI_ADAPTER Adapter
, UINT offset
);
277 INT
ReadDSDSignature(PMINI_ADAPTER Adapter
, FLASH2X_SECTION_VAL dsd
);
278 INT
ReadDSDPriority(PMINI_ADAPTER Adapter
, FLASH2X_SECTION_VAL dsd
);
279 FLASH2X_SECTION_VAL
getHighestPriDSD(PMINI_ADAPTER Adapter
);
280 INT
ReadISOSignature(PMINI_ADAPTER Adapter
, FLASH2X_SECTION_VAL iso
);
281 INT
ReadISOPriority(PMINI_ADAPTER Adapter
, FLASH2X_SECTION_VAL iso
);
282 FLASH2X_SECTION_VAL
getHighestPriISO(PMINI_ADAPTER Adapter
);
283 INT
WriteToFlashWithoutSectorErase(PMINI_ADAPTER Adapter
,
285 FLASH2X_SECTION_VAL eFlash2xSectionVal
,
290 //UINT getNumOfSubSectionWithWRPermisson(PMINI_ADAPTER Adapter, SECTION_TYPE secType);
291 BOOLEAN
IsSectionExistInFlash(PMINI_ADAPTER Adapter
, FLASH2X_SECTION_VAL section
);
292 INT
IsSectionWritable(PMINI_ADAPTER Adapter
, FLASH2X_SECTION_VAL Section
);
293 INT
CorruptDSDSig(PMINI_ADAPTER Adapter
, FLASH2X_SECTION_VAL eFlash2xSectionVal
);
294 INT
CorruptISOSig(PMINI_ADAPTER Adapter
, FLASH2X_SECTION_VAL eFlash2xSectionVal
);
295 BOOLEAN
IsNonCDLessDevice(PMINI_ADAPTER Adapter
);
298 VOID
OverrideServiceFlowParams(PMINI_ADAPTER Adapter
,PUINT puiBuffer
);
300 int wrmaltWithLock (PMINI_ADAPTER Adapter
, UINT uiAddress
, PUINT pucBuff
, size_t sSize
);
301 int rdmaltWithLock (PMINI_ADAPTER Adapter
, UINT uiAddress
, PUINT pucBuff
, size_t sSize
);
303 int rdmWithLock(PMINI_ADAPTER Adapter
, UINT uiAddress
, PCHAR pucBuff
, size_t size
);
304 int wrmWithLock(PMINI_ADAPTER Adapter
, UINT uiAddress
, PCHAR pucBuff
, size_t size
);
305 INT
buffDnldVerify(PMINI_ADAPTER Adapter
, unsigned char *mappedbuffer
, unsigned int u32FirmwareLength
,
306 unsigned long u32StartingAddress
);
309 VOID
putUsbSuspend(struct work_struct
*work
);
310 BOOLEAN
IsReqGpioIsLedInNVM(PMINI_ADAPTER Adapter
, UINT gpios
);
312 #ifdef BCM_SHM_INTERFACE
313 INT
beceem_virtual_device_init(void);
314 VOID
virtual_mail_box_interrupt(void);
315 INT
beceem_virtual_device_exit(void);