| /*********************************** |
| * Adapter.h |
| ************************************/ |
| #ifndef __ADAPTER_H__ |
| #define __ADAPTER_H__ |
| |
| #define MAX_FRAGMENTEDIP_CLASSIFICATION_ENTRIES 256 |
| #include "Debug.h" |
| |
| struct _LEADER { |
| USHORT Vcid; |
| USHORT PLength; |
| UCHAR Status; |
| UCHAR Unused[3]; |
| } __packed; |
| typedef struct _LEADER LEADER, *PLEADER; |
| |
| struct _PACKETTOSEND { |
| LEADER Leader; |
| UCHAR ucPayload; |
| } __packed; |
| typedef struct _PACKETTOSEND PACKETTOSEND, *PPACKETTOSEND; |
| |
| struct _CONTROL_PACKET { |
| PVOID ControlBuff; |
| UINT ControlBuffLen; |
| struct _CONTROL_PACKET *next; |
| } __packed; |
| typedef struct _CONTROL_PACKET CONTROL_PACKET, *PCONTROL_PACKET; |
| |
| struct link_request { |
| LEADER Leader; |
| UCHAR szData[4]; |
| } __packed; |
| typedef struct link_request LINK_REQUEST, *PLINK_REQUEST; |
| |
| /* classification extension is added */ |
| typedef struct _ADD_CONNECTION { |
| ULONG SrcIpAddressCount; |
| ULONG SrcIpAddress[MAX_CONNECTIONS]; |
| ULONG SrcIpMask[MAX_CONNECTIONS]; |
| |
| ULONG DestIpAddressCount; |
| ULONG DestIpAddress[MAX_CONNECTIONS]; |
| ULONG DestIpMask[MAX_CONNECTIONS]; |
| |
| USHORT SrcPortBegin; |
| USHORT SrcPortEnd; |
| |
| USHORT DestPortBegin; |
| USHORT DestPortEnd; |
| |
| UCHAR SrcTOS; |
| UCHAR SrcProtocol; |
| } ADD_CONNECTION, *PADD_CONNECTION; |
| |
| typedef struct _CLASSIFICATION_RULE { |
| UCHAR ucIPSrcAddrLen; |
| UCHAR ucIPSrcAddr[32]; |
| UCHAR ucIPDestAddrLen; |
| UCHAR ucIPDestAddr[32]; |
| UCHAR ucSrcPortRangeLen; |
| UCHAR ucSrcPortRange[4]; |
| UCHAR ucDestPortRangeLen; |
| UCHAR ucDestPortRange[4]; |
| USHORT usVcid; |
| } CLASSIFICATION_RULE, *PCLASSIFICATION_RULE; |
| |
| typedef struct _CLASSIFICATION_ONLY { |
| USHORT usVcid; |
| ULONG DestIpAddress; |
| ULONG DestIpMask; |
| USHORT usPortLo; |
| USHORT usPortHi; |
| BOOLEAN bIpVersion; |
| UCHAR ucDestinationAddress[16]; |
| } CLASSIFICATION_ONLY, *PCLASSIFICATION_ONLY; |
| |
| #define MAX_IP_RANGE_LENGTH 4 |
| #define MAX_PORT_RANGE 4 |
| #define MAX_PROTOCOL_LENGTH 32 |
| #define IPV6_ADDRESS_SIZEINBYTES 0x10 |
| |
| typedef union _U_IP_ADDRESS { |
| struct { |
| ULONG ulIpv4Addr[MAX_IP_RANGE_LENGTH]; /* Source Ip Address Range */ |
| ULONG ulIpv4Mask[MAX_IP_RANGE_LENGTH]; /* Source Ip Mask Address Range */ |
| }; |
| struct { |
| ULONG ulIpv6Addr[MAX_IP_RANGE_LENGTH * 4]; /* Source Ip Address Range */ |
| ULONG ulIpv6Mask[MAX_IP_RANGE_LENGTH * 4]; /* Source Ip Mask Address Range */ |
| }; |
| struct { |
| UCHAR ucIpv4Address[MAX_IP_RANGE_LENGTH * IP_LENGTH_OF_ADDRESS]; |
| UCHAR ucIpv4Mask[MAX_IP_RANGE_LENGTH * IP_LENGTH_OF_ADDRESS]; |
| }; |
| struct { |
| UCHAR ucIpv6Address[MAX_IP_RANGE_LENGTH * IPV6_ADDRESS_SIZEINBYTES]; |
| UCHAR ucIpv6Mask[MAX_IP_RANGE_LENGTH * IPV6_ADDRESS_SIZEINBYTES]; |
| }; |
| } U_IP_ADDRESS; |
| struct _packet_info; |
| |
| typedef struct _S_HDR_SUPRESSION_CONTEXTINFO { |
| UCHAR ucaHdrSupressionInBuf[MAX_PHS_LENGTHS]; /* Intermediate buffer to accumulate pkt Header for PHS */ |
| UCHAR ucaHdrSupressionOutBuf[MAX_PHS_LENGTHS + PHSI_LEN]; /* Intermediate buffer containing pkt Header after PHS */ |
| } S_HDR_SUPRESSION_CONTEXTINFO; |
| |
| typedef struct _S_CLASSIFIER_RULE { |
| ULONG ulSFID; |
| UCHAR ucReserved[2]; |
| B_UINT16 uiClassifierRuleIndex; |
| BOOLEAN bUsed; |
| USHORT usVCID_Value; |
| B_UINT8 u8ClassifierRulePriority; /* This field detemines the Classifier Priority */ |
| U_IP_ADDRESS stSrcIpAddress; |
| UCHAR ucIPSourceAddressLength; /* Ip Source Address Length */ |
| |
| U_IP_ADDRESS stDestIpAddress; |
| UCHAR ucIPDestinationAddressLength; /* Ip Destination Address Length */ |
| UCHAR ucIPTypeOfServiceLength; /* Type of service Length */ |
| UCHAR ucTosLow; /* Tos Low */ |
| UCHAR ucTosHigh; /* Tos High */ |
| UCHAR ucTosMask; /* Tos Mask */ |
| |
| UCHAR ucProtocolLength; /* protocol Length */ |
| UCHAR ucProtocol[MAX_PROTOCOL_LENGTH]; /* protocol Length */ |
| USHORT usSrcPortRangeLo[MAX_PORT_RANGE]; |
| USHORT usSrcPortRangeHi[MAX_PORT_RANGE]; |
| UCHAR ucSrcPortRangeLength; |
| |
| USHORT usDestPortRangeLo[MAX_PORT_RANGE]; |
| USHORT usDestPortRangeHi[MAX_PORT_RANGE]; |
| UCHAR ucDestPortRangeLength; |
| |
| BOOLEAN bProtocolValid; |
| BOOLEAN bTOSValid; |
| BOOLEAN bDestIpValid; |
| BOOLEAN bSrcIpValid; |
| |
| /* For IPv6 Addressing */ |
| UCHAR ucDirection; |
| BOOLEAN bIpv6Protocol; |
| UINT32 u32PHSRuleID; |
| S_PHS_RULE sPhsRule; |
| UCHAR u8AssociatedPHSI; |
| |
| /* Classification fields for ETH CS */ |
| UCHAR ucEthCSSrcMACLen; |
| UCHAR au8EThCSSrcMAC[MAC_ADDRESS_SIZE]; |
| UCHAR au8EThCSSrcMACMask[MAC_ADDRESS_SIZE]; |
| UCHAR ucEthCSDestMACLen; |
| UCHAR au8EThCSDestMAC[MAC_ADDRESS_SIZE]; |
| UCHAR au8EThCSDestMACMask[MAC_ADDRESS_SIZE]; |
| UCHAR ucEtherTypeLen; |
| UCHAR au8EthCSEtherType[NUM_ETHERTYPE_BYTES]; |
| UCHAR usUserPriority[2]; |
| USHORT usVLANID; |
| USHORT usValidityBitMap; |
| } S_CLASSIFIER_RULE; |
| /* typedef struct _S_CLASSIFIER_RULE S_CLASSIFIER_RULE; */ |
| |
| typedef struct _S_FRAGMENTED_PACKET_INFO { |
| BOOLEAN bUsed; |
| ULONG ulSrcIpAddress; |
| USHORT usIpIdentification; |
| S_CLASSIFIER_RULE *pstMatchedClassifierEntry; |
| BOOLEAN bOutOfOrderFragment; |
| } S_FRAGMENTED_PACKET_INFO, *PS_FRAGMENTED_PACKET_INFO; |
| |
| struct _packet_info { |
| /* classification extension Rule */ |
| ULONG ulSFID; |
| USHORT usVCID_Value; |
| UINT uiThreshold; |
| /* This field determines the priority of the SF Queues */ |
| B_UINT8 u8TrafficPriority; |
| |
| BOOLEAN bValid; |
| BOOLEAN bActive; |
| BOOLEAN bActivateRequestSent; |
| |
| B_UINT8 u8QueueType; /* BE or rtPS */ |
| |
| UINT uiMaxBucketSize; /* maximum size of the bucket for the queue */ |
| UINT uiCurrentQueueDepthOnTarget; |
| UINT uiCurrentBytesOnHost; |
| UINT uiCurrentPacketsOnHost; |
| UINT uiDroppedCountBytes; |
| UINT uiDroppedCountPackets; |
| UINT uiSentBytes; |
| UINT uiSentPackets; |
| UINT uiCurrentDrainRate; |
| UINT uiThisPeriodSentBytes; |
| LARGE_INTEGER liDrainCalculated; |
| UINT uiCurrentTokenCount; |
| LARGE_INTEGER liLastUpdateTokenAt; |
| UINT uiMaxAllowedRate; |
| UINT NumOfPacketsSent; |
| UCHAR ucDirection; |
| USHORT usCID; |
| S_MIBS_EXTSERVICEFLOW_PARAMETERS stMibsExtServiceFlowTable; |
| UINT uiCurrentRxRate; |
| UINT uiThisPeriodRxBytes; |
| UINT uiTotalRxBytes; |
| UINT uiTotalTxBytes; |
| UINT uiPendedLast; |
| UCHAR ucIpVersion; |
| |
| union { |
| struct { |
| struct sk_buff *FirstTxQueue; |
| struct sk_buff *LastTxQueue; |
| }; |
| struct { |
| struct sk_buff *ControlHead; |
| struct sk_buff *ControlTail; |
| }; |
| }; |
| |
| BOOLEAN bProtocolValid; |
| BOOLEAN bTOSValid; |
| BOOLEAN bDestIpValid; |
| BOOLEAN bSrcIpValid; |
| |
| BOOLEAN bActiveSet; |
| BOOLEAN bAdmittedSet; |
| BOOLEAN bAuthorizedSet; |
| BOOLEAN bClassifierPriority; |
| UCHAR ucServiceClassName[MAX_CLASS_NAME_LENGTH]; |
| BOOLEAN bHeaderSuppressionEnabled; |
| spinlock_t SFQueueLock; |
| void *pstSFIndication; |
| struct timeval stLastUpdateTokenAt; |
| atomic_t uiPerSFTxResourceCount; |
| UINT uiMaxLatency; |
| UCHAR bIPCSSupport; |
| UCHAR bEthCSSupport; |
| }; |
| typedef struct _packet_info PacketInfo; |
| |
| typedef struct _PER_TARANG_DATA { |
| struct _PER_TARANG_DATA *next; |
| struct _MINI_ADAPTER *Adapter; |
| struct sk_buff *RxAppControlHead; |
| struct sk_buff *RxAppControlTail; |
| int AppCtrlQueueLen; |
| BOOLEAN MacTracingEnabled; |
| BOOLEAN bApplicationToExit; |
| S_MIBS_DROPPED_APP_CNTRL_MESSAGES stDroppedAppCntrlMsgs; |
| ULONG RxCntrlMsgBitMask; |
| } PER_TARANG_DATA, *PPER_TARANG_DATA; |
| |
| #ifdef REL_4_1 |
| typedef struct _TARGET_PARAMS { |
| B_UINT32 m_u32CfgVersion; |
| |
| /* Scanning Related Params */ |
| B_UINT32 m_u32CenterFrequency; |
| B_UINT32 m_u32BandAScan; |
| B_UINT32 m_u32BandBScan; |
| B_UINT32 m_u32BandCScan; |
| |
| /* QoS Params */ |
| B_UINT32 m_u32minGrantsize; /* size of minimum grant is 0 or 6 */ |
| B_UINT32 m_u32PHSEnable; |
| |
| /* HO Params */ |
| B_UINT32 m_u32HoEnable; |
| B_UINT32 m_u32HoReserved1; |
| B_UINT32 m_u32HoReserved2; |
| |
| /* Power Control Params */ |
| B_UINT32 m_u32MimoEnable; |
| B_UINT32 m_u32SecurityEnable; |
| /* |
| * bit 1: 1 Idlemode enable; |
| * bit 2: 1 Sleepmode Enable |
| */ |
| B_UINT32 m_u32PowerSavingModesEnable; |
| /* PowerSaving Mode Options: |
| * bit 0 = 1: CPE mode - to keep pcmcia if alive; |
| * bit 1 = 1: CINR reporing in Idlemode Msg |
| * bit 2 = 1: Default PSC Enable in sleepmode |
| */ |
| B_UINT32 m_u32PowerSavingModeOptions; |
| |
| B_UINT32 m_u32ArqEnable; |
| |
| /* From Version #3, the HARQ section renamed as general */ |
| B_UINT32 m_u32HarqEnable; |
| /* EEPROM Param Location */ |
| B_UINT32 m_u32EEPROMFlag; |
| /* BINARY TYPE - 4th MSByte: |
| * Interface Type - 3rd MSByte: |
| * Vendor Type - 2nd MSByte |
| */ |
| /* Unused - LSByte */ |
| B_UINT32 m_u32Customize; |
| B_UINT32 m_u32ConfigBW; /* In Hz */ |
| B_UINT32 m_u32ShutDownTimer; |
| B_UINT32 m_u32RadioParameter; |
| B_UINT32 m_u32PhyParameter1; |
| B_UINT32 m_u32PhyParameter2; |
| B_UINT32 m_u32PhyParameter3; |
| |
| /* in eval mode only; |
| * lower 16bits = basic cid for testing; |
| * then bit 16 is test cqich, |
| * bit 17 test init rang; |
| * bit 18 test periodic rang |
| * bit 19 is test harq ack/nack |
| */ |
| B_UINT32 m_u32TestOptions; |
| B_UINT32 m_u32MaxMACDataperDLFrame; |
| B_UINT32 m_u32MaxMACDataperULFrame; |
| B_UINT32 m_u32Corr2MacFlags; |
| |
| /* adding driver params. */ |
| B_UINT32 HostDrvrConfig1; |
| B_UINT32 HostDrvrConfig2; |
| B_UINT32 HostDrvrConfig3; |
| B_UINT32 HostDrvrConfig4; |
| B_UINT32 HostDrvrConfig5; |
| B_UINT32 HostDrvrConfig6; |
| B_UINT32 m_u32SegmentedPUSCenable; |
| |
| /* BAMC enable - but 4.x does not support this feature |
| * This is added just to sync 4.x and 5.x CFGs |
| */ |
| B_UINT32 m_u32BandAMCEnable; |
| } STARGETPARAMS, *PSTARGETPARAMS; |
| #endif |
| |
| typedef struct _STTARGETDSXBUFFER { |
| ULONG ulTargetDsxBuffer; |
| B_UINT16 tid; |
| BOOLEAN valid; |
| } STTARGETDSXBUFFER, *PSTTARGETDSXBUFFER; |
| |
| typedef int (*FP_FLASH_WRITE)(struct _MINI_ADAPTER *, UINT, PVOID); |
| |
| typedef int (*FP_FLASH_WRITE_STATUS)(struct _MINI_ADAPTER *, UINT, PVOID); |
| |
| /* |
| * Driver adapter data structure |
| */ |
| struct _MINI_ADAPTER { |
| struct _MINI_ADAPTER *next; |
| struct net_device *dev; |
| u32 msg_enable; |
| CHAR *caDsxReqResp; |
| atomic_t ApplicationRunning; |
| BOOLEAN AppCtrlQueueOverFlow; |
| atomic_t CurrentApplicationCount; |
| atomic_t RegisteredApplicationCount; |
| BOOLEAN LinkUpStatus; |
| BOOLEAN TimerActive; |
| u32 StatisticsPointer; |
| struct sk_buff *RxControlHead; |
| struct sk_buff *RxControlTail; |
| struct semaphore RxAppControlQueuelock; |
| struct semaphore fw_download_sema; |
| PPER_TARANG_DATA pTarangs; |
| spinlock_t control_queue_lock; |
| wait_queue_head_t process_read_wait_queue; |
| |
| /* the pointer to the first packet we have queued in send |
| * deserialized miniport support variables |
| */ |
| atomic_t TotalPacketCount; |
| atomic_t TxPktAvail; |
| |
| /* this to keep track of the Tx and Rx MailBox Registers. */ |
| atomic_t CurrNumFreeTxDesc; |
| /* to keep track the no of byte received */ |
| USHORT PrevNumRecvDescs; |
| USHORT CurrNumRecvDescs; |
| UINT u32TotalDSD; |
| PacketInfo PackInfo[NO_OF_QUEUES]; |
| S_CLASSIFIER_RULE astClassifierTable[MAX_CLASSIFIERS]; |
| BOOLEAN TransferMode; |
| |
| /*************** qos ******************/ |
| BOOLEAN bETHCSEnabled; |
| ULONG BEBucketSize; |
| ULONG rtPSBucketSize; |
| UCHAR LinkStatus; |
| BOOLEAN AutoLinkUp; |
| BOOLEAN AutoSyncup; |
| |
| int major; |
| int minor; |
| wait_queue_head_t tx_packet_wait_queue; |
| wait_queue_head_t process_rx_cntrlpkt; |
| atomic_t process_waiting; |
| BOOLEAN fw_download_done; |
| |
| char *txctlpacket[MAX_CNTRL_PKTS]; |
| atomic_t cntrlpktCnt ; |
| atomic_t index_app_read_cntrlpkt; |
| atomic_t index_wr_txcntrlpkt; |
| atomic_t index_rd_txcntrlpkt; |
| UINT index_datpkt; |
| struct semaphore rdmwrmsync; |
| |
| STTARGETDSXBUFFER astTargetDsxBuffer[MAX_TARGET_DSX_BUFFERS]; |
| ULONG ulFreeTargetBufferCnt; |
| ULONG ulCurrentTargetBuffer; |
| ULONG ulTotalTargetBuffersAvailable; |
| unsigned long chip_id; |
| wait_queue_head_t lowpower_mode_wait_queue; |
| BOOLEAN bFlashBoot; |
| BOOLEAN bBinDownloaded; |
| BOOLEAN bCfgDownloaded; |
| BOOLEAN bSyncUpRequestSent; |
| USHORT usBestEffortQueueIndex; |
| wait_queue_head_t ioctl_fw_dnld_wait_queue; |
| BOOLEAN waiting_to_fw_download_done; |
| pid_t fw_download_process_pid; |
| PSTARGETPARAMS pstargetparams; |
| BOOLEAN device_removed; |
| BOOLEAN DeviceAccess; |
| BOOLEAN bIsAutoCorrectEnabled; |
| BOOLEAN bDDRInitDone; |
| int DDRSetting; |
| ULONG ulPowerSaveMode; |
| spinlock_t txtransmitlock; |
| B_UINT8 txtransmit_running; |
| /* Thread for control packet handling */ |
| struct task_struct *control_packet_handler; |
| /* thread for transmitting packets. */ |
| struct task_struct *transmit_packet_thread; |
| |
| /* LED Related Structures */ |
| LED_INFO_STRUCT LEDInfo; |
| |
| /* Driver State for LED Blinking */ |
| LedEventInfo_t DriverState; |
| /* Interface Specific */ |
| PVOID pvInterfaceAdapter; |
| int (*bcm_file_download)(PVOID, |
| struct file *, |
| unsigned int); |
| int (*bcm_file_readback_from_chip)(PVOID, |
| struct file *, |
| unsigned int); |
| int (*interface_rdm)(PVOID, |
| UINT, |
| PVOID, |
| int); |
| int (*interface_wrm)(PVOID, |
| UINT, |
| PVOID, |
| int); |
| int (*interface_transmit)(PVOID, PVOID , UINT); |
| BOOLEAN IdleMode; |
| BOOLEAN bDregRequestSentInIdleMode; |
| BOOLEAN bTriedToWakeUpFromlowPowerMode; |
| BOOLEAN bShutStatus; |
| BOOLEAN bWakeUpDevice; |
| unsigned int usIdleModePattern; |
| /* BOOLEAN bTriedToWakeUpFromShutdown; */ |
| BOOLEAN bLinkDownRequested; |
| int downloadDDR; |
| PHS_DEVICE_EXTENSION stBCMPhsContext; |
| S_HDR_SUPRESSION_CONTEXTINFO stPhsTxContextInfo; |
| uint8_t ucaPHSPktRestoreBuf[2048]; |
| uint8_t bPHSEnabled; |
| BOOLEAN AutoFirmDld; |
| BOOLEAN bMipsConfig; |
| BOOLEAN bDPLLConfig; |
| UINT32 aTxPktSizeHist[MIBS_MAX_HIST_ENTRIES]; |
| UINT32 aRxPktSizeHist[MIBS_MAX_HIST_ENTRIES]; |
| S_FRAGMENTED_PACKET_INFO astFragmentedPktClassifierTable[MAX_FRAGMENTEDIP_CLASSIFICATION_ENTRIES]; |
| atomic_t uiMBupdate; |
| UINT32 PmuMode; |
| NVM_TYPE eNVMType; |
| UINT uiSectorSize; |
| UINT uiSectorSizeInCFG; |
| BOOLEAN bSectorSizeOverride; |
| BOOLEAN bStatusWrite; |
| UINT uiNVMDSDSize; |
| UINT uiVendorExtnFlag; |
| /* it will always represent chosen DSD at any point of time. |
| * Generally it is Active DSD but in case of NVM RD/WR it might be different. |
| */ |
| UINT ulFlashCalStart; |
| ULONG ulFlashControlSectionStart; |
| ULONG ulFlashWriteSize; |
| ULONG ulFlashID; |
| FP_FLASH_WRITE fpFlashWrite; |
| FP_FLASH_WRITE_STATUS fpFlashWriteWithStatusCheck; |
| |
| struct semaphore NVMRdmWrmLock; |
| struct device *pstCreatedClassDevice; |
| |
| /* BOOLEAN InterfaceUpStatus; */ |
| PFLASH2X_CS_INFO psFlash2xCSInfo; |
| PFLASH_CS_INFO psFlashCSInfo; |
| PFLASH2X_VENDORSPECIFIC_INFO psFlash2xVendorInfo; |
| UINT uiFlashBaseAdd; /* Flash start address */ |
| UINT uiActiveISOOffset; /* Active ISO offset chosen before f/w download */ |
| FLASH2X_SECTION_VAL eActiveISO; /* Active ISO section val */ |
| FLASH2X_SECTION_VAL eActiveDSD; /* Active DSD val chosen before f/w download */ |
| UINT uiActiveDSDOffsetAtFwDld; /* For accessing Active DSD chosen before f/w download */ |
| UINT uiFlashLayoutMajorVersion; |
| UINT uiFlashLayoutMinorVersion; |
| BOOLEAN bAllDSDWriteAllow; |
| BOOLEAN bSigCorrupted; |
| /* this should be set who so ever want to change the Headers. after Wrtie it should be reset immediately. */ |
| BOOLEAN bHeaderChangeAllowed; |
| int SelectedChip; |
| BOOLEAN bEndPointHalted; |
| /* while bFlashRawRead will be true, Driver ignore map lay out and consider flash as of without any map. */ |
| BOOLEAN bFlashRawRead; |
| BOOLEAN bPreparingForLowPowerMode; |
| BOOLEAN bDoSuspend; |
| UINT syscfgBefFwDld; |
| BOOLEAN StopAllXaction; |
| UINT32 liTimeSinceLastNetEntry; /* Used to Support extended CAPI requirements from */ |
| struct semaphore LowPowerModeSync; |
| ULONG liDrainCalculated; |
| UINT gpioBitMap; |
| S_BCM_DEBUG_STATE stDebugState; |
| }; |
| typedef struct _MINI_ADAPTER MINI_ADAPTER, *PMINI_ADAPTER; |
| |
| #define GET_BCM_ADAPTER(net_dev) netdev_priv(net_dev) |
| |
| struct _ETH_HEADER_STRUC { |
| UCHAR au8DestinationAddress[6]; |
| UCHAR au8SourceAddress[6]; |
| USHORT u16Etype; |
| } __packed; |
| typedef struct _ETH_HEADER_STRUC ETH_HEADER_STRUC, *PETH_HEADER_STRUC; |
| |
| typedef struct FirmwareInfo { |
| void __user *pvMappedFirmwareAddress; |
| ULONG u32FirmwareLength; |
| ULONG u32StartingAddress; |
| } __packed FIRMWARE_INFO, *PFIRMWARE_INFO; |
| |
| /* holds the value of net_device structure.. */ |
| extern struct net_device *gblpnetdev; |
| typedef struct _cntl_pkt { |
| PMINI_ADAPTER Adapter; |
| PLEADER PLeader; |
| } cntl_pkt; |
| typedef LINK_REQUEST CONTROL_MESSAGE; |
| |
| typedef struct _DDR_SETTING { |
| UINT ulRegAddress; |
| UINT ulRegValue; |
| } DDR_SETTING, *PDDR_SETTING; |
| typedef DDR_SETTING DDR_SET_NODE, *PDDR_SET_NODE; |
| int InitAdapter(PMINI_ADAPTER psAdapter); |
| |
| /* ===================================================================== |
| * Beceem vendor request codes for EP0 |
| * ===================================================================== |
| */ |
| |
| #define BCM_REQUEST_READ 0x2 |
| #define BCM_REQUEST_WRITE 0x1 |
| #define EP2_MPS_REG 0x0F0110A0 |
| #define EP2_MPS 0x40 |
| |
| #define EP2_CFG_REG 0x0F0110A8 |
| #define EP2_CFG_INT 0x27 |
| #define EP2_CFG_BULK 0x25 |
| |
| #define EP4_MPS_REG 0x0F0110F0 |
| #define EP4_MPS 0x8C |
| |
| #define EP4_CFG_REG 0x0F0110F8 |
| |
| #define ISO_MPS_REG 0x0F0110C8 |
| #define ISO_MPS 0x00000000 |
| |
| #define EP1 0 |
| #define EP2 1 |
| #define EP3 2 |
| #define EP4 3 |
| #define EP5 4 |
| #define EP6 5 |
| |
| typedef enum eInterface_setting { |
| DEFAULT_SETTING_0 = 0, |
| ALTERNATE_SETTING_1 = 1, |
| } INTERFACE_SETTING; |
| |
| #endif /* __ADAPTER_H__ */ |