Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 3f9ab1ee authored by Mike McCormack's avatar Mike McCormack Committed by Greg Kroah-Hartman
Browse files

staging: rtl8192e: Use private structure in IO functions



The current ieee80211 library does not pass net_device structures
around. Switch code to use private data structure to get I/O addresses.

Signed-off-by: default avatarMike McCormack <mikem@ring3k.org>
Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@suse.de>
parent 427bf120
Loading
Loading
Loading
Loading
+29 −29
Original line number Diff line number Diff line
@@ -20,49 +20,49 @@

#include "r8180_93cx6.h"

static void eprom_cs(struct net_device *dev, short bit)
static void eprom_cs(struct r8192_priv *priv, short bit)
{
	if (bit)
		write_nic_byte(dev, EPROM_CMD,
		write_nic_byte(priv, EPROM_CMD,
			       (1<<EPROM_CS_SHIFT) |
			       read_nic_byte(dev, EPROM_CMD)); //enable EPROM
			       read_nic_byte(priv, EPROM_CMD)); //enable EPROM
	else
		write_nic_byte(dev, EPROM_CMD, read_nic_byte(dev, EPROM_CMD)
		write_nic_byte(priv, EPROM_CMD, read_nic_byte(priv, EPROM_CMD)
			       &~(1<<EPROM_CS_SHIFT)); //disable EPROM

	udelay(EPROM_DELAY);
}


static void eprom_ck_cycle(struct net_device *dev)
static void eprom_ck_cycle(struct r8192_priv *priv)
{
	write_nic_byte(dev, EPROM_CMD,
		       (1<<EPROM_CK_SHIFT) | read_nic_byte(dev, EPROM_CMD));
	write_nic_byte(priv, EPROM_CMD,
		       (1<<EPROM_CK_SHIFT) | read_nic_byte(priv, EPROM_CMD));
	udelay(EPROM_DELAY);
	write_nic_byte(dev, EPROM_CMD,
		       read_nic_byte(dev, EPROM_CMD) & ~(1<<EPROM_CK_SHIFT));
	write_nic_byte(priv, EPROM_CMD,
		       read_nic_byte(priv, EPROM_CMD) & ~(1<<EPROM_CK_SHIFT));
	udelay(EPROM_DELAY);
}


static void eprom_w(struct net_device *dev, short bit)
static void eprom_w(struct r8192_priv *priv, short bit)
{
	if (bit)
		write_nic_byte(dev, EPROM_CMD, (1<<EPROM_W_SHIFT) |
			       read_nic_byte(dev, EPROM_CMD));
		write_nic_byte(priv, EPROM_CMD, (1<<EPROM_W_SHIFT) |
			       read_nic_byte(priv, EPROM_CMD));
	else
		write_nic_byte(dev, EPROM_CMD, read_nic_byte(dev, EPROM_CMD)
		write_nic_byte(priv, EPROM_CMD, read_nic_byte(priv, EPROM_CMD)
			       &~(1<<EPROM_W_SHIFT));

	udelay(EPROM_DELAY);
}


static short eprom_r(struct net_device *dev)
static short eprom_r(struct r8192_priv *priv)
{
	short bit;

	bit = (read_nic_byte(dev, EPROM_CMD) & (1<<EPROM_R_SHIFT));
	bit = (read_nic_byte(priv, EPROM_CMD) & (1<<EPROM_R_SHIFT));
	udelay(EPROM_DELAY);

	if (bit)
@@ -71,13 +71,13 @@ static short eprom_r(struct net_device *dev)
}


static void eprom_send_bits_string(struct net_device *dev, short b[], int len)
static void eprom_send_bits_string(struct r8192_priv *priv, short b[], int len)
{
	int i;

	for (i = 0; i < len; i++) {
		eprom_w(dev, b[i]);
		eprom_ck_cycle(dev);
		eprom_w(priv, b[i]);
		eprom_ck_cycle(priv);
	}
}

@@ -93,7 +93,7 @@ u32 eprom_read(struct net_device *dev, u32 addr)

	ret = 0;
        //enable EPROM programming
	write_nic_byte(dev, EPROM_CMD,
	write_nic_byte(priv, EPROM_CMD,
		       (EPROM_CMD_PROGRAM<<EPROM_CMD_OPERATING_MODE_SHIFT));
	udelay(EPROM_DELAY);

@@ -116,27 +116,27 @@ u32 eprom_read(struct net_device *dev, u32 addr)
		addr_str[0] = addr & (1<<5);
		addr_len = 6;
	}
	eprom_cs(dev, 1);
	eprom_ck_cycle(dev);
	eprom_send_bits_string(dev, read_cmd, 3);
	eprom_send_bits_string(dev, addr_str, addr_len);
	eprom_cs(priv, 1);
	eprom_ck_cycle(priv);
	eprom_send_bits_string(priv, read_cmd, 3);
	eprom_send_bits_string(priv, addr_str, addr_len);

	//keep chip pin D to low state while reading.
	//I'm unsure if it is necessary, but anyway shouldn't hurt
	eprom_w(dev, 0);
	eprom_w(priv, 0);

	for (i = 0; i < 16; i++) {
		//eeprom needs a clk cycle between writing opcode&adr
		//and reading data. (eeprom outs a dummy 0)
		eprom_ck_cycle(dev);
		ret |= (eprom_r(dev)<<(15-i));
		eprom_ck_cycle(priv);
		ret |= (eprom_r(priv)<<(15-i));
	}

	eprom_cs(dev, 0);
	eprom_ck_cycle(dev);
	eprom_cs(priv, 0);
	eprom_ck_cycle(priv);

	//disable EPROM programming
	write_nic_byte(dev, EPROM_CMD,
	write_nic_byte(priv, EPROM_CMD,
		       (EPROM_CMD_NORMAL<<EPROM_CMD_OPERATING_MODE_SHIFT));
	return ret;
}
+18 −18
Original line number Diff line number Diff line
@@ -273,7 +273,7 @@ void PHY_SetRF8256CCKTxPower(struct net_device* dev, u8 powerlevel)
			}
		}
	TxAGC = (byte1<<8) |byte0;
	write_nic_dword(dev, CCK_TXAGC, TxAGC);
	write_nic_dword(priv, CCK_TXAGC, TxAGC);
#else
	#ifdef RTL8192E

@@ -364,8 +364,8 @@ void PHY_SetRF8256OFDMTxPower(struct net_device* dev, u8 powerlevel)
	//DbgPrint("TxAGC2_tmp = 0x%x\n", TxAGC2_tmp);

	//DbgPrint("TxAGC1/TxAGC2 = 0x%x/0x%x\n", TxAGC1, TxAGC2);
	write_nic_dword(dev, MCS_TXAGC, TxAGC1);
	write_nic_dword(dev, MCS_TXAGC+4, TxAGC2);
	write_nic_dword(priv, MCS_TXAGC, TxAGC1);
	write_nic_dword(priv, MCS_TXAGC+4, TxAGC2);
#else
#ifdef RTL8192E
	u32 writeVal, powerBase0, powerBase1, writeVal_tmp;
@@ -513,8 +513,8 @@ SetRFPowerState8190(

					RT_CLEAR_PS_LEVEL(pPSC, RT_RF_OFF_LEVL_HALT_NIC);
				} else {
					write_nic_byte(dev, ANAPAR, 0x37);//160MHz
					//write_nic_byte(dev, MacBlkCtrl, 0x17); // 0x403
					write_nic_byte(priv, ANAPAR, 0x37);//160MHz
					//write_nic_byte(priv, MacBlkCtrl, 0x17); // 0x403
					mdelay(1);
					//enable clock 80/88 MHz
					rtl8192_setBBreg(dev, rFPGA0_AnalogParameter1, 0x4, 0x1); // 0x880[2]
@@ -536,7 +536,7 @@ SetRFPowerState8190(
					rtl8192_setBBreg(dev, rFPGA0_AnalogParameter1, 0x60, 0x3); 	// 0x880[6:5]

					// Baseband reset 2008.09.30 add
					//write_nic_byte(dev, BB_RESET, (read_nic_byte(dev, BB_RESET)|BIT0));
					//write_nic_byte(priv, BB_RESET, (read_nic_byte(dev, BB_RESET)|BIT0));

				//2 	AFE
					// 2008.09.30 add
@@ -774,12 +774,12 @@ MgntDisconnectIBSS(
//	PlatformZeroMemory( pMgntInfo->Bssid, 6 );
	for(i=0;i<6;i++)  priv->ieee80211->current_network.bssid[i]= 0x55;
	priv->OpMode = RT_OP_MODE_NO_LINK;
	write_nic_word(dev, BSSIDR, ((u16*)priv->ieee80211->current_network.bssid)[0]);
	write_nic_dword(dev, BSSIDR+2, ((u32*)(priv->ieee80211->current_network.bssid+2))[0]);
	write_nic_word(priv, BSSIDR, ((u16*)priv->ieee80211->current_network.bssid)[0]);
	write_nic_dword(priv, BSSIDR+2, ((u32*)(priv->ieee80211->current_network.bssid+2))[0]);
	{
			RT_OP_MODE	OpMode = priv->OpMode;
			//LED_CTL_MODE	LedAction = LED_CTL_NO_LINK;
			u8	btMsr = read_nic_byte(dev, MSR);
			u8	btMsr = read_nic_byte(priv, MSR);

			btMsr &= 0xfc;

@@ -805,7 +805,7 @@ MgntDisconnectIBSS(
				break;
			}

			write_nic_byte(dev, MSR, btMsr);
			write_nic_byte(priv, MSR, btMsr);

			// LED control
			//Adapter->HalFunc.LedControlHandler(Adapter, LedAction);
@@ -817,7 +817,7 @@ MgntDisconnectIBSS(
	{
			u32 RegRCR, Type;
			Type = bFilterOutNonAssociatedBSSID;
			RegRCR = read_nic_dword(dev,RCR);
			RegRCR = read_nic_dword(priv, RCR);
			priv->ReceiveConfig = RegRCR;
			if (Type == true)
				RegRCR |= (RCR_CBSSID);
@@ -825,7 +825,7 @@ MgntDisconnectIBSS(
				RegRCR &= (~RCR_CBSSID);

			{
				write_nic_dword(dev, RCR,RegRCR);
				write_nic_dword(priv, RCR, RegRCR);
				priv->ReceiveConfig = RegRCR;
			}

@@ -862,7 +862,7 @@ MlmeDisassociateRequest(
		{
			RT_OP_MODE	OpMode = priv->OpMode;
			//LED_CTL_MODE	LedAction = LED_CTL_NO_LINK;
			u8 btMsr = read_nic_byte(dev, MSR);
			u8 btMsr = read_nic_byte(priv, MSR);

			btMsr &= 0xfc;

@@ -888,15 +888,15 @@ MlmeDisassociateRequest(
				break;
			}

			write_nic_byte(dev, MSR, btMsr);
			write_nic_byte(priv, MSR, btMsr);

			// LED control
			//Adapter->HalFunc.LedControlHandler(Adapter, LedAction);
		}
		ieee80211_disassociate(priv->ieee80211);

		write_nic_word(dev, BSSIDR, ((u16*)priv->ieee80211->current_network.bssid)[0]);
		write_nic_dword(dev, BSSIDR+2, ((u32*)(priv->ieee80211->current_network.bssid+2))[0]);
		write_nic_word(priv, BSSIDR, ((u16*)priv->ieee80211->current_network.bssid)[0]);
		write_nic_dword(priv, BSSIDR+2, ((u32*)(priv->ieee80211->current_network.bssid+2))[0]);

	}

@@ -935,7 +935,7 @@ MgntDisconnectAP(

			Type = bFilterOutNonAssociatedBSSID;
			//Adapter->HalFunc.GetHwRegHandler(Adapter, HW_VAR_RCR, (pu1Byte)(&RegRCR));
			RegRCR = read_nic_dword(dev,RCR);
			RegRCR = read_nic_dword(priv, RCR);
			priv->ReceiveConfig = RegRCR;

			if (Type == true)
@@ -943,7 +943,7 @@ MgntDisconnectAP(
			else if (Type == false)
				RegRCR &= (~RCR_CBSSID);

			write_nic_dword(dev, RCR,RegRCR);
			write_nic_dword(priv, RCR, RegRCR);
			priv->ReceiveConfig = RegRCR;


+9 −9
Original line number Diff line number Diff line
@@ -1052,16 +1052,16 @@ typedef struct r8192_priv

bool init_firmware(struct net_device *dev);
short rtl8192_tx(struct net_device *dev, struct sk_buff* skb);
u32 read_cam(struct net_device *dev, u8 addr);
void write_cam(struct net_device *dev, u8 addr, u32 data);
u8 read_nic_byte(struct net_device *dev, int x);
u32 read_cam(struct r8192_priv *priv, u8 addr);
void write_cam(struct r8192_priv *priv, u8 addr, u32 data);
u8 read_nic_byte(struct r8192_priv *priv, int x);
u8 read_nic_byte_E(struct net_device *dev, int x);
u32 read_nic_dword(struct net_device *dev, int x);
u16 read_nic_word(struct net_device *dev, int x) ;
void write_nic_byte(struct net_device *dev, int x,u8 y);
void write_nic_byte_E(struct net_device *dev, int x,u8 y);
void write_nic_word(struct net_device *dev, int x,u16 y);
void write_nic_dword(struct net_device *dev, int x,u32 y);
u32 read_nic_dword(struct r8192_priv *priv, int x);
u16 read_nic_word(struct r8192_priv *priv, int x) ;
void write_nic_byte(struct r8192_priv *priv, int x,u8 y);
void write_nic_byte_E(struct net_device *priv, int x,u8 y);
void write_nic_word(struct r8192_priv *priv, int x,u16 y);
void write_nic_dword(struct r8192_priv *priv, int x,u32 y);

void rtl8192_halt_adapter(struct net_device *dev, bool reset);
void rtl8192_rx_enable(struct net_device *);
+148 −134

File changed.

Preview size limit exceeded, changes collapsed.

+119 −117

File changed.

Preview size limit exceeded, changes collapsed.

Loading