From: Malcolm Priestley Date: Sun, 10 Aug 2014 11:22:00 +0000 (+0100) Subject: staging: vt6655: CARDbSetBeaconPeriod call CARDbGetCurrentTSF to get TBTT X-Git-Tag: v3.18-rc1~130^2~1314 X-Git-Url: https://git.karo-electronics.de/?a=commitdiff_plain;h=4a5f718409f92f3bc12ee8020a4874d004f612ba;p=karo-tx-linux.git staging: vt6655: CARDbSetBeaconPeriod call CARDbGetCurrentTSF to get TBTT There is already a function to get next TBTT. Replace code with CARDqGetNextTBTT. Signed-off-by: Malcolm Priestley Signed-off-by: Greg Kroah-Hartman --- diff --git a/drivers/staging/vt6655/card.c b/drivers/staging/vt6655/card.c index a5da3d26c36f..931fca8bb471 100644 --- a/drivers/staging/vt6655/card.c +++ b/drivers/staging/vt6655/card.c @@ -606,29 +606,11 @@ bool CARDbUpdateTSF(void *pDeviceHandler, unsigned char byRxRate, u64 qwBSSTimes bool CARDbSetBeaconPeriod(void *pDeviceHandler, unsigned short wBeaconInterval) { PSDevice pDevice = (PSDevice) pDeviceHandler; - unsigned int uBeaconInterval = 0; - unsigned int uLowNextTBTT = 0; - unsigned int uHighRemain = 0; - unsigned int uLowRemain = 0; u64 qwNextTBTT = 0; CARDbGetCurrentTSF(pDevice->PortOffset, &qwNextTBTT); //Get Local TSF counter - uBeaconInterval = wBeaconInterval * 1024; - // Next TBTT = ((local_current_TSF / beacon_interval) + 1) * beacon_interval - uLowNextTBTT = ((qwNextTBTT & 0xffffffffULL) >> 10) << 10; - uLowRemain = (uLowNextTBTT) % uBeaconInterval; - // high dword (mod) bcn - uHighRemain = (((0xffffffff % uBeaconInterval) + 1) * (u32)(qwNextTBTT >> 32)) - % uBeaconInterval; - uLowRemain = (uHighRemain + uLowRemain) % uBeaconInterval; - uLowRemain = uBeaconInterval - uLowRemain; - - // check if carry when add one beacon interval - if ((~uLowNextTBTT) < uLowRemain) - qwNextTBTT = ((qwNextTBTT >> 32) + 1) << 32; - - qwNextTBTT = (qwNextTBTT & 0xffffffff00000000ULL) | - (u64)(uLowNextTBTT + uLowRemain); + + qwNextTBTT = CARDqGetNextTBTT(qwNextTBTT, wBeaconInterval); // set HW beacon interval VNSvOutPortW(pDevice->PortOffset + MAC_REG_BI, wBeaconInterval);