u4Byte ODM_Read4Byte( IN PDM_ODM_T pDM_Odm, IN u4Byte RegAddr ) { #if(DM_ODM_SUPPORT_TYPE & (ODM_AP|ODM_ADSL)) prtl8192cd_priv priv = pDM_Odm->priv; return RTL_R32(RegAddr); #elif(DM_ODM_SUPPORT_TYPE & ODM_CE) PADAPTER Adapter = pDM_Odm->Adapter; return rtw_read32(Adapter,RegAddr); #elif(DM_ODM_SUPPORT_TYPE & ODM_MP) PADAPTER Adapter = pDM_Odm->Adapter; return PlatformEFIORead4Byte(Adapter, RegAddr); #endif }
u32 ODM_Read4Byte( PDM_ODM_T pDM_Odm, u32 RegAddr ) { #if(DM_ODM_SUPPORT_TYPE & (ODM_AP|ODM_ADSL)) prtl8192cd_priv priv = pDM_Odm->priv; return RTL_R32(RegAddr); #elif(DM_ODM_SUPPORT_TYPE & ODM_CE) struct rtw_adapter * Adapter = pDM_Odm->Adapter; return rtw_read32(Adapter,RegAddr); #elif(DM_ODM_SUPPORT_TYPE & ODM_MP) struct rtw_adapter * Adapter = pDM_Odm->Adapter; return PlatformEFIORead4Byte(Adapter, RegAddr); #endif }
extern NDIS_STATUS usb_dvobj_init(_adapter * padapter){ NDIS_STATUS status=_SUCCESS; struct dvobj_priv *pdvobjpriv=&padapter->dvobjpriv; u8 hw_version; u32 val32,size; _func_enter_; pdvobjpriv->padapter=padapter; DEBUG_ERR(("\nusb_dvobj_init:read hw_version!!\n")); hw_version = 0; #if 0 hw_version = (read32(padapter, TCR) & TCR_HWVERID_MASK)>>TCR_HWVERID_SHIFT; switch (hw_version) { case VERSION_819xUsb_A: padapter->registrypriv.chip_version=VERSION_819xUsb_A; DEBUG_ERR(("\nusb_dvobj_init:padapter->registrypriv.chip_version=%d(VERSION_819xUsb_A)\n",padapter->registrypriv.chip_version)); default: padapter->registrypriv.chip_version= VERSION_819xUsb_A; break; } DEBUG_ERR(("\nusb_dvobj_init:padapter->registrypriv.chip_version=%d\n",padapter->registrypriv.chip_version)); #endif /*Read EEprom size */ DEBUG_ERR(("\nusb_dvobj_init:read eeprom Size!!\n")); val32 = PlatformEFIORead2Byte(padapter, Cmd9346CR); size = (val32 & Cmd9346CR_9356SEL) ? 8 : 6; padapter->EepromAddressSize = size; DEBUG_ERR(("EEPROM type is %s\n",size==8 ? "93C56" : "93C46")); DEBUG_ERR(("\nusb_dvobj_init:padapter->EepromAddressSize=%d\n",padapter->EepromAddressSize)); read_eeprom_content(padapter); //write IDR0~IDR5 // for(i=0 ; i<6 ; i++) // write8(padapter, IDR0+i, padapter->eeprompriv.mac_addr[i]); PlatformEFIOWrite4Byte(padapter, IDR0, ((pu4Byte)(padapter->eeprompriv.mac_addr))[0]); PlatformEFIOWrite2Byte(padapter, IDR4, ((pu2Byte)(padapter->eeprompriv.mac_addr+4))[0]); // for(i=0 ; i<6 ; i++) { DEBUG_ERR(("%8x ",PlatformEFIORead4Byte(padapter, IDR0) ) ); DEBUG_ERR(("%4x ",PlatformEFIORead2Byte(padapter, IDR4) )); } printk("\n"); #ifdef TODO #if (LINUX_VERSION_CODE < KERNEL_VERSION(2,6,21)) INIT_WORK(&_sys_mib->DigWorkItem, (void(*)(void*)) DigWorkItemCallback, padapter); INIT_WORK(&_sys_mib->RateAdaptiveWorkItem, (void(*)(void*)) RateAdaptiveWorkItemCallback, padapter); #else INIT_DELAYED_WORK(&_sys_mib->DigWorkItem, DigWorkItemCallback); INIT_DELAYED_WORK(&_sys_mib->RateAdaptiveWorkItem, RateAdaptiveWorkItemCallback); #endif #endif _func_exit_; return status; }
RT_STATUS HAL_ReadTypeID( IN HAL_PADAPTER Adapter ) { u1Byte value8; u4Byte value32; u1Byte HCI; RT_STATUS rtResult = RT_STATUS_FAILURE; value8 = PlatformEFIORead1Byte(Adapter, REG_SYS_CFG2); HCI = PlatformEFIORead1Byte(Adapter, REG_SYS_STATUS1); RT_TRACE(COMP_INIT, DBG_LOUD, ("REG_SYS_CFG2(0xFC): 0x%x \n, REG_SYS_STATUS1(0xF4): 0x%x\n", value8, HCI)); switch(value8) { #if IS_EXIST_RTL8881AEM case HAL_HW_TYPE_ID_8881A: _GET_HAL_DATA(Adapter)->HardwareType = HARDWARE_TYPE_RTL8881AEM; rtResult = RT_STATUS_SUCCESS; break; #endif #if (IS_EXIST_RTL8192EE || IS_EXIST_RTL8192EU) case HAL_HW_TYPE_ID_8192E: // TODO: Check register difinition & replace by Marco if ( (HCI & 0x30) == 0x20 || (HCI & 0x30) == 0x30) { _GET_HAL_DATA(Adapter)->HardwareType = HARDWARE_TYPE_RTL8192EE; } else { _GET_HAL_DATA(Adapter)->HardwareType = HARDWARE_TYPE_RTL8192EU; } rtResult = RT_STATUS_SUCCESS; break; #endif default: RT_TRACE(COMP_INIT, DBG_LOUD, (" Chip TypeID Error (REG_SYS_CFG2: 0x%x) \n", value8)); break; } RT_TRACE(COMP_INIT, DBG_LOUD, (" HardwareType: %d \n", _GET_HAL_DATA(Adapter)->HardwareType)); //3 Check if it is test chip value32 = PlatformEFIORead4Byte(Adapter, REG_SYS_CFG1); if ( value32 & BIT23 ) { _GET_HAL_DATA(Adapter)->bTestChip = _TRUE; } else { _GET_HAL_DATA(Adapter)->bTestChip = _FALSE; } // recognize 92E b /c cut #if IS_EXIST_RTL8192EE if(_GET_HAL_DATA(Adapter)->bTestChip) { if( _GET_HAL_DATA(Adapter)->HardwareType == HARDWARE_TYPE_RTL8192EE) { if(((value32>>12)& 0xf) == 0x0) _GET_HAL_DATA(Adapter)->cutVersion = ODM_CUT_B; else if(((value32>>12)& 0xf) == 0x2) _GET_HAL_DATA(Adapter)->cutVersion = ODM_CUT_C; } }