diff -ur zdold/Makefile zd1211-4916-r0/Makefile --- zdold/Makefile 2005-02-18 21:58:36.000000000 -0800 +++ zd1211-4916-r0/Makefile 2005-02-28 17:59:05.000000000 -0800 @@ -149,7 +149,7 @@ CFLAGS += -DfNEW_CODE_MAP=1 CFLAGS += -DfWRITE_WORD_REG=1 CFLAGS += -DfREAD_MUL_REG=1 -#CFLAGS += -DENHANCE_RX=1 +CFLAGS += -DENHANCE_RX=1 all: $(MODULE) diff -ur zdold/src/zd1211.c zd1211-4916-r0/src/zd1211.c --- zdold/src/zd1211.c 2005-01-28 22:55:15.000000000 -0800 +++ zd1211-4916-r0/src/zd1211.c 2005-03-01 14:41:07.003613776 -0800 @@ -429,16 +429,16 @@ memset(pRegBuffer, 0x0, size); - ((PUSB_WRITE_REG)pRegBuffer)->RequestID = REGID_PROG_FLSH; - ((PUSB_SET_RF) pRegBuffer)->Value = Value[0]; - ((PUSB_SET_RF) pRegBuffer)->Index = Value[1]; + ((PUSB_WRITE_REG)pRegBuffer)->RequestID = cpu_to_le16(REGID_PROG_FLSH); + ((PUSB_SET_RF) pRegBuffer)->Value = cpu_to_le16(Value[0]); + ((PUSB_SET_RF) pRegBuffer)->Index = cpu_to_le16(Value[1]); for (ii = 2; ii < RegCount; ii ++) - ((PUSB_SET_RF)pRegBuffer)->Data[ii - 2] = Value[ii]; + ((PUSB_SET_RF)pRegBuffer)->Data[ii - 2] = cpu_to_le16(Value[ii]); bufSize = sizeof(u16) * (1+RegCount); @@ -513,7 +513,7 @@ }else memset(pRegBuffer, 0x0, size); - ((PUSB_READ_REG_REQ)pRegBuffer)->RequestID = REGID_READ; + ((PUSB_READ_REG_REQ)pRegBuffer)->RequestID = cpu_to_le16(REGID_READ); @@ -526,7 +526,7 @@ else if ((Address[ii] & BASE_ADDR_MASK_HOST) == USB_BASE_ADDR_EEPROM) Address[ii] = ((Address[ii] - USB_BASE_ADDR_EEPROM) / 2) + cFIRMWARE_EEPROM_OFFSET; //0x9900 //0xF817 - ((PUSB_READ_REG_REQ) pRegBuffer)->Address[ii] = Address[ii]; + ((PUSB_READ_REG_REQ) pRegBuffer)->Address[ii] = cpu_to_le16(Address[ii]); } @@ -608,7 +608,7 @@ } else { for (ii = 0; ii < (macp->ReadRegCount-2) / 4; ii++){ - pValue[ii] = *((u16 *) macp->IntEPBuffer2 + 1 + ii * 2 + 1); + pValue[ii] = le16_to_cpu(*((u16 *) macp->IntEPBuffer2 + 1 + ii * 2 + 1)); } ret = 0; @@ -686,7 +686,7 @@ } down(&macp->reg_sem); - + if ((RegCount == 0) || (!macp->bUSBDeveiceAttached) || !test_bit(ZD1211_RUNNING, &macp->flags)) { @@ -712,7 +712,7 @@ - ((PUSB_WRITE_REG)pRegBuffer)->RequestID = REGID_WRITE; + ((PUSB_WRITE_REG)pRegBuffer)->RequestID = cpu_to_le16(REGID_WRITE); if (RegCount > cMIN_MULTI_WRITE_REG_NUM){ for (i=cMIN_MULTI_WRITE_REG_NUM; iWritePackage[i].Address = Address[i]; - ((PUSB_WRITE_REG)pRegBuffer)->WritePackage[i].WriteData_low = Value[i]; + ((PUSB_WRITE_REG)pRegBuffer)->WritePackage[i].Address = cpu_to_le16(Address[i]); + ((PUSB_WRITE_REG)pRegBuffer)->WritePackage[i].WriteData_low = cpu_to_le16(Value[i]); } } @@ -1726,17 +1726,17 @@ - ((PUSB_SET_RF)pRegBuffer)->RequestID = REGID_RFOFDMSET; + ((PUSB_SET_RF)pRegBuffer)->RequestID = cpu_to_le16(REGID_RFOFDMSET); if (bIs3683A) - ((PUSB_SET_RF)pRegBuffer)->Value = 1; + ((PUSB_SET_RF)pRegBuffer)->Value = cpu_to_le16(1); else - ((PUSB_SET_RF)pRegBuffer)->Value = 2; + ((PUSB_SET_RF)pRegBuffer)->Value = cpu_to_le16(2); - ((PUSB_SET_RF)pRegBuffer)->Index = (u16)S_bit_cnt; + ((PUSB_SET_RF)pRegBuffer)->Index = cpu_to_le16((u16)S_bit_cnt); for (i = 0; i < S_bit_cnt; i ++) - ((PUSB_SET_RF)pRegBuffer)->Data[i] = InputValue[i]; + ((PUSB_SET_RF)pRegBuffer)->Data[i] = cpu_to_le16(InputValue[i]); bufSize = sizeof(u16) * (3+S_bit_cnt); @@ -2229,7 +2229,7 @@ - ZD1211DEBUG(4, "actual_length = %x\n", urb->actual_length); + ZD1211DEBUG(2, "actual_length = %x\n", urb->actual_length); rx_struct = list_entry(macp->active_rx_list.next, @@ -2266,7 +2266,7 @@ if (last_pkt_len <= (macp->wMaxPacketSize - 4)){ - if (((u16 *) pRxBuffer)[TotalLength / sizeof(u16) - 1] == 0x697E){ + if (le16_to_cpu(((u16 *) pRxBuffer)[TotalLength / sizeof(u16) - 1]) == 0x697E){ total_rx_struct = 3; //ZD1211DEBUG(0, "Got merged Rx Frames!!\n"); @@ -2288,8 +2288,8 @@ int CurFrmLen; if (total_rx_struct> 1){ - CurFrmLen = ((u16 *) pRxBuffer)[TotalLength / sizeof(u16) + i - 4]; - //ZD1211DEBUG(2, "CurFrmLen = %x\n", CurFrmLen); + CurFrmLen = le16_to_cpu(((u16 *) pRxBuffer)[TotalLength / sizeof(u16) + i - 4]); + //ZD1211DEBUG(2, "[RX] CurFrmLen = %x\n", CurFrmLen); } else @@ -2316,22 +2316,22 @@ - rfd->CbStatus = RFD_STATUS_COMPLETE; - rfd->ActualCount = CurFrmLen; + rfd->CbStatus = cpu_to_le32(RFD_STATUS_COMPLETE); + rfd->ActualCount = cpu_to_le32(CurFrmLen); if (i > 0){ memcpy(&rfd->RxBuffer[macp->rxOffset], pRxBuffer + tmpLen, - rfd->ActualCount); + CurFrmLen); } - tmpLen += (rfd->ActualCount & ~0x03); + tmpLen += (CurFrmLen & ~0x03); - if (rfd->ActualCount & 0x03) + if (CurFrmLen & 0x03) tmpLen += 4; } @@ -2361,8 +2361,8 @@ #else - rfd->CbStatus = RFD_STATUS_COMPLETE; - rfd->ActualCount = TotalLength; + rfd->CbStatus = cpu_to_le32(RFD_STATUS_COMPLETE); + rfd->ActualCount = cpu_to_le32(TotalLength); zd1205_rx_isr(macp); #endif @@ -2521,8 +2521,8 @@ // this is USB_READ_REGISTER response macp->ReadRegCount = (u16)actual_length; - intNum = *(u16 *)(macp->IntEPBuffer+2); - //intNum = macp->IntEPBuffer[2] + (((u16)macp->IntEPBuffer[3]) << 8); + //intNum = *(u16 *)(macp->IntEPBuffer+2); + intNum = macp->IntEPBuffer[2] + (((u16)macp->IntEPBuffer[3]) << 8); if (intNum == (InterruptCtrl | macp->USBCSRAddress)){ // Handle non-RxTx interrupt @@ -2549,8 +2549,8 @@ case EPINT_RetryFial_Event: { u8 *pMacAddr = macp->IntEPBuffer + 4; - u8 NewRate = (u8)(*(u16 *)(macp->IntEPBuffer + 2)); - //u8 NewRate = macp->IntEPBuffer[2]; + //u8 NewRate = (u8)(*(u16 *)(macp->IntEPBuffer + 2)); + u8 NewRate = (u8)macp->IntEPBuffer[2]; u16 aid; @@ -2568,7 +2568,7 @@ //ZD1211DEBUG(2, "NewRate = %x\n", NewRate); aid = zd_AidLookUp(pMacAddr); zd_EventNotify(EVENT_TX_COMPLETE, ZD_RETRY_FAILED, 0xff, (U32)aid); - macp->retryFailCnt += *(u16 *)(macp->IntEPBuffer + 10); + macp->retryFailCnt += le16_to_cpu(*(u16 *)(macp->IntEPBuffer + 10)); break; } @@ -2634,7 +2634,7 @@ // in current design, no need to use spinlock - intr_status = *(u16 *)(macp->IntEPBuffer3+4); + intr_status = le16_to_cpu(*(u16 *)(macp->IntEPBuffer3+4)); //ZD1211DEBUG(2, "intr_status = %x\n", intr_status); if (!intr_status) @@ -2765,7 +2765,7 @@ sw_tcb = macp->activeTxQ->first; if (sw_tcb) - sw_tcb->pTcb->CbStatus = CB_STATUS_COMPLETE; + sw_tcb->pTcb->CbStatus = cpu_to_le32(CB_STATUS_COMPLETE); zd1205_tx_isr(macp); @@ -2889,23 +2889,25 @@ Tbd++; //Mac Header - memcpy(dst, (u8 *)Tbd->TbdBufferAddrLowPart, Tbd->TbdCount); + memcpy(dst, (u8 *)le32_to_cpu(Tbd->TbdBufferAddrLowPart), + le32_to_cpu(Tbd->TbdCount)); ZD1211DEBUG(2, "MAC Header Length = %x\n", Tbd->TbdCount); - dst += Tbd->TbdCount; + dst += le32_to_cpu(Tbd->TbdCount); - TotalLength += Tbd->TbdCount; + TotalLength += le32_to_cpu(Tbd->TbdCount); Tbd++; //MAC Body - memcpy(dst, (u8 *)Tbd->TbdBufferAddrLowPart, Tbd->TbdCount); + memcpy(dst, (u8 *)le32_to_cpu(Tbd->TbdBufferAddrLowPart), + le32_to_cpu(Tbd->TbdCount)); ZD1211DEBUG(2, "Tx DATA Length = %x\n", Tbd->TbdCount); - dst += Tbd->TbdCount; + dst += le32_to_cpu(Tbd->TbdCount); - TotalLength += Tbd->TbdCount; + TotalLength += le32_to_cpu(Tbd->TbdCount); Tbd++; ZD1211DEBUG(2, "TotalLength = %x\n", TotalLength); @@ -2914,7 +2916,7 @@ // write down total length - *((u16 *)(macp->tx_buff+4)) = (u16)TotalLength + 14; + *((u16 *)(macp->tx_buff+4)) = cpu_to_le16((u16)TotalLength + 14); ZD1211DEBUG(2, "macp->tx_buff+4 = %x\n", *((u16 *)(macp->tx_buff+4))); diff -ur zdold/src/zd1211.h zd1211-4916-r0/src/zd1211.h --- zdold/src/zd1211.h 2005-01-28 22:55:14.000000000 -0800 +++ zd1211-4916-r0/src/zd1211.h 2005-03-01 14:12:15.023914712 -0800 @@ -146,7 +146,9 @@ typedef struct _USB_WRITE_REG { u16 RequestID; USB_WRITE_REG_PACKAGE WritePackage[cMAX_MULTI_WRITE_REG_NUM]; -} USB_WRITE_REG, * PUSB_WRITE_REG; +} __attribute__((__packed__)); + +typedef struct _USB_WRITE_REG USB_WRITE_REG, * PUSB_WRITE_REG; typedef struct _USB_SET_RF { diff -ur zdold/src/zdshared.c zd1211-4916-r0/src/zdshared.c --- zdold/src/zdshared.c 2005-01-28 22:55:15.000000000 -0800 +++ zd1211-4916-r0/src/zdshared.c 2005-03-01 14:43:35.078103032 -0800 @@ -416,6 +416,7 @@ U16 len; Frame_t *pf = pfrmDesc->mpdu; + pf->header[2] = pf->header[3] = 0; // Initialize them to something? setFrameType(pf, ST_PROBE_REQ); pf->body = pfrmDesc->buffer; body = pf->body;