blob: 1ddc8b2539f6d719e014002e2e2366cd2b9d0cca [file] [log] [blame]
Stephen Hemmingerf8942e02010-09-08 14:46:36 -07001#ifndef _PROTOTYPES_H_
2#define _PROTOTYPES_H_
3
Kevin McKinney29794602012-05-26 12:05:12 -04004VOID LinkControlResponseMessage(struct bcm_mini_adapter *Adapter, PUCHAR pucBuffer);
Stephen Hemmingerf8942e02010-09-08 14:46:36 -07005
Martin Gumbrechtc2970052014-06-20 17:37:59 +02006VOID StatisticsResponse(struct bcm_mini_adapter *Adapter, PVOID pvBuffer);
Stephen Hemmingerf8942e02010-09-08 14:46:36 -07007
Martin Gumbrechtc2970052014-06-20 17:37:59 +02008VOID IdleModeResponse(struct bcm_mini_adapter *Adapter, PUINT puiBuffer);
Stephen Hemmingerf8942e02010-09-08 14:46:36 -07009
Martin Gumbrechtc2970052014-06-20 17:37:59 +020010int control_packet_handler(struct bcm_mini_adapter *Adapter);
Stephen Hemmingerf8942e02010-09-08 14:46:36 -070011
Martin Gumbrechtc2970052014-06-20 17:37:59 +020012VOID DeleteAllClassifiersForSF(struct bcm_mini_adapter *Adapter, UINT uiSearchRuleIndex);
Stephen Hemmingerf8942e02010-09-08 14:46:36 -070013
Kevin McKinney29794602012-05-26 12:05:12 -040014VOID flush_all_queues(struct bcm_mini_adapter *Adapter);
Stephen Hemmingerf8942e02010-09-08 14:46:36 -070015
Kevin McKinney29794602012-05-26 12:05:12 -040016int register_control_device_interface(struct bcm_mini_adapter *ps_adapter);
Stephen Hemmingerf8942e02010-09-08 14:46:36 -070017
Kevin McKinney29794602012-05-26 12:05:12 -040018void unregister_control_device_interface(struct bcm_mini_adapter *Adapter);
Stephen Hemmingerf8942e02010-09-08 14:46:36 -070019
Kevin McKinney29794602012-05-26 12:05:12 -040020INT CopyBufferToControlPacket(struct bcm_mini_adapter *Adapter,/**<Logical Adapter*/
Stephen Hemmingerf8942e02010-09-08 14:46:36 -070021 PVOID ioBuffer/**<Control Packet Buffer*/
22 );
23
Kevin McKinney29794602012-05-26 12:05:12 -040024VOID SortPackInfo(struct bcm_mini_adapter *Adapter);
Stephen Hemmingerf8942e02010-09-08 14:46:36 -070025
Kevin McKinney29794602012-05-26 12:05:12 -040026VOID SortClassifiers(struct bcm_mini_adapter *Adapter);
Stephen Hemmingerf8942e02010-09-08 14:46:36 -070027
Kevin McKinney29794602012-05-26 12:05:12 -040028VOID flush_all_queues(struct bcm_mini_adapter *Adapter);
Stephen Hemmingerf8942e02010-09-08 14:46:36 -070029
Kevin McKinney29794602012-05-26 12:05:12 -040030VOID PruneQueueAllSF(struct bcm_mini_adapter *Adapter);
Stephen Hemmingerf8942e02010-09-08 14:46:36 -070031
Martin Gumbrechtc2970052014-06-20 17:37:59 +020032INT SearchSfid(struct bcm_mini_adapter *Adapter, UINT uiSfid);
Stephen Hemmingerf8942e02010-09-08 14:46:36 -070033
Martin Gumbrechtc2970052014-06-20 17:37:59 +020034USHORT ClassifyPacket(struct bcm_mini_adapter *Adapter, struct sk_buff *skb);
Stephen Hemmingerf8942e02010-09-08 14:46:36 -070035
Martin Gumbrechtc2970052014-06-20 17:37:59 +020036bool MatchSrcPort(struct bcm_classifier_rule *pstClassifierRule, USHORT ushSrcPort);
Stephen Hemminger93711052010-10-31 23:55:21 -040037
Martin Gumbrechtc2970052014-06-20 17:37:59 +020038bool MatchDestPort(struct bcm_classifier_rule *pstClassifierRule, USHORT ushSrcPort);
Martin Gumbrechtffc7c9f2014-06-20 17:37:58 +020039
Martin Gumbrechtc2970052014-06-20 17:37:59 +020040bool MatchProtocol(struct bcm_classifier_rule *pstClassifierRule, UCHAR ucProtocol);
Stephen Hemmingerf8942e02010-09-08 14:46:36 -070041
Kevin McKinney29794602012-05-26 12:05:12 -040042INT SetupNextSend(struct bcm_mini_adapter *Adapter, /**<Logical Adapter*/
Stephen Hemmingerf8942e02010-09-08 14:46:36 -070043 struct sk_buff *Packet, /**<data buffer*/
Martin Gumbrechtc2970052014-06-20 17:37:59 +020044 USHORT Vcid);
Stephen Hemmingerf8942e02010-09-08 14:46:36 -070045
Kevin McKinney29794602012-05-26 12:05:12 -040046VOID LinkMessage(struct bcm_mini_adapter *Adapter);
Stephen Hemmingerf8942e02010-09-08 14:46:36 -070047
Kevin McKinney29794602012-05-26 12:05:12 -040048VOID transmit_packets(struct bcm_mini_adapter *Adapter);
Stephen Hemmingerf8942e02010-09-08 14:46:36 -070049
Kevin McKinney29794602012-05-26 12:05:12 -040050INT SendControlPacket(struct bcm_mini_adapter *Adapter, /**<Logical Adapter*/
Stephen Hemmingerf8942e02010-09-08 14:46:36 -070051 char *pControlPacket/**<Control Packet*/
52 );
53
Kevin McKinney29794602012-05-26 12:05:12 -040054int register_networkdev(struct bcm_mini_adapter *Adapter);
Martin Gumbrechtffc7c9f2014-06-20 17:37:58 +020055
Kevin McKinney29794602012-05-26 12:05:12 -040056void unregister_networkdev(struct bcm_mini_adapter *Adapter);
Stephen Hemmingerf8942e02010-09-08 14:46:36 -070057
Kevin McKinney29794602012-05-26 12:05:12 -040058INT AllocAdapterDsxBuffer(struct bcm_mini_adapter *Adapter);
Stephen Hemmingerf8942e02010-09-08 14:46:36 -070059
Kevin McKinney29794602012-05-26 12:05:12 -040060VOID AdapterFree(struct bcm_mini_adapter *Adapter);
Stephen Hemmingerf8942e02010-09-08 14:46:36 -070061
Kevin McKinney29794602012-05-26 12:05:12 -040062INT FreeAdapterDsxBuffer(struct bcm_mini_adapter *Adapter);
Stephen Hemmingerf8942e02010-09-08 14:46:36 -070063
Kevin McKinney29794602012-05-26 12:05:12 -040064int tx_pkt_handler(struct bcm_mini_adapter *Adapter);
Stephen Hemmingerf8942e02010-09-08 14:46:36 -070065
Martin Gumbrechtc2970052014-06-20 17:37:59 +020066int reset_card_proc(struct bcm_mini_adapter *Adapter);
Stephen Hemmingerf8942e02010-09-08 14:46:36 -070067
Martin Gumbrechtc2970052014-06-20 17:37:59 +020068int run_card_proc(struct bcm_mini_adapter *Adapter);
Stephen Hemmingerf8942e02010-09-08 14:46:36 -070069
Kevin McKinney29794602012-05-26 12:05:12 -040070int InitCardAndDownloadFirmware(struct bcm_mini_adapter *ps_adapter);
Stephen Hemmingerf8942e02010-09-08 14:46:36 -070071
Kevin McKinney29794602012-05-26 12:05:12 -040072INT ReadMacAddressFromNVM(struct bcm_mini_adapter *Adapter);
Stephen Hemmingerf8942e02010-09-08 14:46:36 -070073
Kevin McKinney29794602012-05-26 12:05:12 -040074int register_control_device_interface(struct bcm_mini_adapter *ps_adapter);
Stephen Hemmingerf8942e02010-09-08 14:46:36 -070075
Kevin McKinney29794602012-05-26 12:05:12 -040076void DumpPackInfo(struct bcm_mini_adapter *Adapter);
Stephen Hemmingerf8942e02010-09-08 14:46:36 -070077
Kevin McKinney29794602012-05-26 12:05:12 -040078int rdm(struct bcm_mini_adapter *Adapter, UINT uiAddress, PCHAR pucBuff, size_t size);
Stephen Hemmingerf8942e02010-09-08 14:46:36 -070079
Kevin McKinney29794602012-05-26 12:05:12 -040080int wrm(struct bcm_mini_adapter *Adapter, UINT uiAddress, PCHAR pucBuff, size_t size);
Stephen Hemmingerf8942e02010-09-08 14:46:36 -070081
Martin Gumbrechtc2970052014-06-20 17:37:59 +020082int wrmalt(struct bcm_mini_adapter *Adapter, UINT uiAddress, unsigned int *pucBuff, size_t sSize);
Stephen Hemmingerf8942e02010-09-08 14:46:36 -070083
Martin Gumbrechtc2970052014-06-20 17:37:59 +020084int rdmalt(struct bcm_mini_adapter *Adapter, UINT uiAddress, unsigned int *pucBuff, size_t sSize);
Stephen Hemmingerf8942e02010-09-08 14:46:36 -070085
Martin Gumbrechtc2970052014-06-20 17:37:59 +020086int get_dsx_sf_data_to_application(struct bcm_mini_adapter *Adapter, UINT uiSFId, void __user *user_buffer);
Stephen Hemmingerf8942e02010-09-08 14:46:36 -070087
Kevin McKinney29794602012-05-26 12:05:12 -040088void SendIdleModeResponse(struct bcm_mini_adapter *Adapter);
Stephen Hemmingerf8942e02010-09-08 14:46:36 -070089
Martin Gumbrechtc2970052014-06-20 17:37:59 +020090int ProcessGetHostMibs(struct bcm_mini_adapter *Adapter, struct bcm_host_stats_mibs *buf);
Martin Gumbrechtffc7c9f2014-06-20 17:37:58 +020091
Kevin McKinney954f91d2012-11-25 19:28:56 -050092void GetDroppedAppCntrlPktMibs(struct bcm_host_stats_mibs *ioBuffer, struct bcm_tarang_data *pTarang);
Martin Gumbrechtffc7c9f2014-06-20 17:37:58 +020093
Kevin McKinney29794602012-05-26 12:05:12 -040094void beceem_parse_target_struct(struct bcm_mini_adapter *Adapter);
Stephen Hemmingerf8942e02010-09-08 14:46:36 -070095
Kevin McKinney29794602012-05-26 12:05:12 -040096int bcm_ioctl_fw_download(struct bcm_mini_adapter *Adapter, struct bcm_firmware_info *psFwInfo);
Stephen Hemmingerf8942e02010-09-08 14:46:36 -070097
Kevin McKinney29794602012-05-26 12:05:12 -040098void CopyMIBSExtendedSFParameters(struct bcm_mini_adapter *Adapter,
Kevin McKinneyb766fb12012-09-23 23:07:14 -040099 struct bcm_connect_mgr_params *psfLocalSet, UINT uiSearchRuleIndex);
Stephen Hemmingerf8942e02010-09-08 14:46:36 -0700100
Kevin McKinney29794602012-05-26 12:05:12 -0400101VOID ResetCounters(struct bcm_mini_adapter *Adapter);
Stephen Hemmingerf8942e02010-09-08 14:46:36 -0700102
Kevin McKinney29794602012-05-26 12:05:12 -0400103int InitLedSettings(struct bcm_mini_adapter *Adapter);
Stephen Hemmingerf8942e02010-09-08 14:46:36 -0700104
Martin Gumbrechtc2970052014-06-20 17:37:59 +0200105struct bcm_classifier_rule *GetFragIPClsEntry(struct bcm_mini_adapter *Adapter, USHORT usIpIdentification, ULONG SrcIP);
Stephen Hemmingerf8942e02010-09-08 14:46:36 -0700106
Kevin McKinney29794602012-05-26 12:05:12 -0400107void AddFragIPClsEntry(struct bcm_mini_adapter *Adapter, struct bcm_fragmented_packet_info *psFragPktInfo);
Stephen Hemmingerf8942e02010-09-08 14:46:36 -0700108
Martin Gumbrechtc2970052014-06-20 17:37:59 +0200109void DelFragIPClsEntry(struct bcm_mini_adapter *Adapter, USHORT usIpIdentification, ULONG SrcIp);
Stephen Hemmingerf8942e02010-09-08 14:46:36 -0700110
Martin Gumbrechtc2970052014-06-20 17:37:59 +0200111void update_per_cid_rx(struct bcm_mini_adapter *Adapter);
Stephen Hemmingerf8942e02010-09-08 14:46:36 -0700112
Martin Gumbrechtc2970052014-06-20 17:37:59 +0200113void update_per_sf_desc_cnts(struct bcm_mini_adapter *Adapter);
Stephen Hemmingerf8942e02010-09-08 14:46:36 -0700114
Martin Gumbrechtc2970052014-06-20 17:37:59 +0200115void ClearTargetDSXBuffer(struct bcm_mini_adapter *Adapter, B_UINT16 TID, bool bFreeAll);
Stephen Hemmingerf8942e02010-09-08 14:46:36 -0700116
Kevin McKinney29794602012-05-26 12:05:12 -0400117void flush_queue(struct bcm_mini_adapter *Adapter, UINT iQIndex);
Stephen Hemmingerf8942e02010-09-08 14:46:36 -0700118
Stephen Hemmingerf8942e02010-09-08 14:46:36 -0700119INT flushAllAppQ(VOID);
120
Stephen Hemmingerf8942e02010-09-08 14:46:36 -0700121INT BeceemEEPROMBulkRead(
Kevin McKinney29794602012-05-26 12:05:12 -0400122 struct bcm_mini_adapter *Adapter,
Stephen Hemmingerf8942e02010-09-08 14:46:36 -0700123 PUINT pBuffer,
124 UINT uiOffset,
125 UINT uiNumBytes);
126
Martin Gumbrechtc2970052014-06-20 17:37:59 +0200127INT WriteBeceemEEPROM(struct bcm_mini_adapter *Adapter, UINT uiEEPROMOffset, UINT uiData);
Stephen Hemmingerf8942e02010-09-08 14:46:36 -0700128
Kevin McKinney29794602012-05-26 12:05:12 -0400129INT PropagateCalParamsFromFlashToMemory(struct bcm_mini_adapter *Adapter);
Stephen Hemmingerf8942e02010-09-08 14:46:36 -0700130
Stephen Hemmingerf8942e02010-09-08 14:46:36 -0700131INT BeceemEEPROMBulkWrite(
Kevin McKinney29794602012-05-26 12:05:12 -0400132 struct bcm_mini_adapter *Adapter,
Stephen Hemmingerf8942e02010-09-08 14:46:36 -0700133 PUCHAR pBuffer,
134 UINT uiOffset,
135 UINT uiNumBytes,
Lisa Nguyen3abd6f12013-10-28 01:35:59 -0700136 bool bVerify);
Stephen Hemmingerf8942e02010-09-08 14:46:36 -0700137
Martin Gumbrechtc2970052014-06-20 17:37:59 +0200138INT ReadBeceemEEPROM(struct bcm_mini_adapter *Adapter, UINT dwAddress, UINT *pdwData);
Stephen Hemmingerf8942e02010-09-08 14:46:36 -0700139
Stephen Hemmingerf8942e02010-09-08 14:46:36 -0700140INT BeceemNVMRead(
Kevin McKinney29794602012-05-26 12:05:12 -0400141 struct bcm_mini_adapter *Adapter,
Stephen Hemmingerf8942e02010-09-08 14:46:36 -0700142 PUINT pBuffer,
143 UINT uiOffset,
144 UINT uiNumBytes);
145
146INT BeceemNVMWrite(
Kevin McKinney29794602012-05-26 12:05:12 -0400147 struct bcm_mini_adapter *Adapter,
Stephen Hemmingerf8942e02010-09-08 14:46:36 -0700148 PUINT pBuffer,
149 UINT uiOffset,
150 UINT uiNumBytes,
Lisa Nguyen3abd6f12013-10-28 01:35:59 -0700151 bool bVerify);
Stephen Hemmingerf8942e02010-09-08 14:46:36 -0700152
Kevin McKinney29794602012-05-26 12:05:12 -0400153INT BcmInitNVM(struct bcm_mini_adapter *Adapter);
Stephen Hemmingerf8942e02010-09-08 14:46:36 -0700154
Martin Gumbrechtc2970052014-06-20 17:37:59 +0200155INT BcmUpdateSectorSize(struct bcm_mini_adapter *Adapter, UINT uiSectorSize);
Martin Gumbrechtffc7c9f2014-06-20 17:37:58 +0200156
Lisa Nguyen3abd6f12013-10-28 01:35:59 -0700157bool IsSectionExistInFlash(struct bcm_mini_adapter *Adapter, enum bcm_flash2x_section_val section);
Stephen Hemmingerf8942e02010-09-08 14:46:36 -0700158
Kevin McKinneyd48a4302012-11-22 14:48:42 -0500159INT BcmGetFlash2xSectionalBitMap(struct bcm_mini_adapter *Adapter, struct bcm_flash2x_bitmap *psFlash2xBitMap);
Stephen Hemmingerf8942e02010-09-08 14:46:36 -0700160
161INT BcmFlash2xBulkWrite(
Kevin McKinney29794602012-05-26 12:05:12 -0400162 struct bcm_mini_adapter *Adapter,
Stephen Hemmingerf8942e02010-09-08 14:46:36 -0700163 PUINT pBuffer,
Kevin McKinneyff4e0652012-11-22 14:48:50 -0500164 enum bcm_flash2x_section_val eFlashSectionVal,
Stephen Hemmingerf8942e02010-09-08 14:46:36 -0700165 UINT uiOffset,
166 UINT uiNumBytes,
167 UINT bVerify);
168
169INT BcmFlash2xBulkRead(
Kevin McKinney29794602012-05-26 12:05:12 -0400170 struct bcm_mini_adapter *Adapter,
Stephen Hemmingerf8942e02010-09-08 14:46:36 -0700171 PUINT pBuffer,
Kevin McKinneyff4e0652012-11-22 14:48:50 -0500172 enum bcm_flash2x_section_val eFlashSectionVal,
Stephen Hemmingerf8942e02010-09-08 14:46:36 -0700173 UINT uiOffsetWithinSectionVal,
174 UINT uiNumBytes);
Stephen Hemmingerf8942e02010-09-08 14:46:36 -0700175
Kevin McKinneyff4e0652012-11-22 14:48:50 -0500176INT BcmGetSectionValStartOffset(struct bcm_mini_adapter *Adapter, enum bcm_flash2x_section_val eFlashSectionVal);
Stephen Hemmingerf8942e02010-09-08 14:46:36 -0700177
Kevin McKinneyff4e0652012-11-22 14:48:50 -0500178INT BcmSetActiveSection(struct bcm_mini_adapter *Adapter, enum bcm_flash2x_section_val eFlash2xSectVal);
Martin Gumbrechtffc7c9f2014-06-20 17:37:58 +0200179
Kevin McKinney29794602012-05-26 12:05:12 -0400180INT BcmAllocFlashCSStructure(struct bcm_mini_adapter *psAdapter);
Martin Gumbrechtffc7c9f2014-06-20 17:37:58 +0200181
Kevin McKinney29794602012-05-26 12:05:12 -0400182INT BcmDeAllocFlashCSStructure(struct bcm_mini_adapter *psAdapter);
Stephen Hemmingerf8942e02010-09-08 14:46:36 -0700183
Kevin McKinneyb1206c02012-11-22 14:48:44 -0500184INT BcmCopyISO(struct bcm_mini_adapter *Adapter, struct bcm_flash2x_copy_section sCopySectStrut);
Martin Gumbrechtffc7c9f2014-06-20 17:37:58 +0200185
Kevin McKinneyff4e0652012-11-22 14:48:50 -0500186INT BcmFlash2xCorruptSig(struct bcm_mini_adapter *Adapter, enum bcm_flash2x_section_val eFlash2xSectionVal);
Martin Gumbrechtffc7c9f2014-06-20 17:37:58 +0200187
Kevin McKinneyff4e0652012-11-22 14:48:50 -0500188INT BcmFlash2xWriteSig(struct bcm_mini_adapter *Adapter, enum bcm_flash2x_section_val eFlashSectionVal);
Martin Gumbrechtffc7c9f2014-06-20 17:37:58 +0200189
Martin Gumbrechtc2970052014-06-20 17:37:59 +0200190INT validateFlash2xReadWrite(struct bcm_mini_adapter *Adapter, struct bcm_flash2x_readwrite *psFlash2xReadWrite);
Martin Gumbrechtffc7c9f2014-06-20 17:37:58 +0200191
Kevin McKinney29794602012-05-26 12:05:12 -0400192INT IsFlash2x(struct bcm_mini_adapter *Adapter);
Martin Gumbrechtffc7c9f2014-06-20 17:37:58 +0200193
Martin Gumbrechtc2970052014-06-20 17:37:59 +0200194INT BcmCopySection(struct bcm_mini_adapter *Adapter,
Kevin McKinneyff4e0652012-11-22 14:48:50 -0500195 enum bcm_flash2x_section_val SrcSection,
196 enum bcm_flash2x_section_val DstSection,
Stephen Hemmingerf8942e02010-09-08 14:46:36 -0700197 UINT offset,
198 UINT numOfBytes);
199
Lisa Nguyen3abd6f12013-10-28 01:35:59 -0700200bool IsNonCDLessDevice(struct bcm_mini_adapter *Adapter);
Stephen Hemmingerf8942e02010-09-08 14:46:36 -0700201
Martin Gumbrechtc2970052014-06-20 17:37:59 +0200202VOID OverrideServiceFlowParams(struct bcm_mini_adapter *Adapter, PUINT puiBuffer);
Stephen Hemmingerf8942e02010-09-08 14:46:36 -0700203
Martin Gumbrechtc2970052014-06-20 17:37:59 +0200204int wrmaltWithLock(struct bcm_mini_adapter *Adapter, UINT uiAddress, unsigned int *pucBuff, size_t sSize);
Martin Gumbrechtffc7c9f2014-06-20 17:37:58 +0200205
Martin Gumbrechtc2970052014-06-20 17:37:59 +0200206int rdmaltWithLock(struct bcm_mini_adapter *Adapter, UINT uiAddress, unsigned int *pucBuff, size_t sSize);
Stephen Hemmingerf8942e02010-09-08 14:46:36 -0700207
Kevin McKinney29794602012-05-26 12:05:12 -0400208int wrmWithLock(struct bcm_mini_adapter *Adapter, UINT uiAddress, PCHAR pucBuff, size_t size);
Martin Gumbrechtffc7c9f2014-06-20 17:37:58 +0200209
Kevin McKinney29794602012-05-26 12:05:12 -0400210INT buffDnldVerify(struct bcm_mini_adapter *Adapter, unsigned char *mappedbuffer, unsigned int u32FirmwareLength,
Stephen Hemmingerf8942e02010-09-08 14:46:36 -0700211 unsigned long u32StartingAddress);
212
Stephen Hemmingerf8942e02010-09-08 14:46:36 -0700213VOID putUsbSuspend(struct work_struct *work);
Martin Gumbrechtffc7c9f2014-06-20 17:37:58 +0200214
Lisa Nguyen3abd6f12013-10-28 01:35:59 -0700215bool IsReqGpioIsLedInNVM(struct bcm_mini_adapter *Adapter, UINT gpios);
Stephen Hemmingerf8942e02010-09-08 14:46:36 -0700216
Stephen Hemmingerf8942e02010-09-08 14:46:36 -0700217#endif