aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMike McCormack <mikem@ring3k.org>2011-03-10 08:32:16 -0500
committerGreg Kroah-Hartman <gregkh@suse.de>2011-03-14 15:24:42 -0400
commit9a77bd58f6bfe05df7ec807c22be40fb2dc62e23 (patch)
treeffae2907545cf9668ffd4a20a9cea8d71c3ec10d
parentf19dbc0ca8aa8bac415857c14be4252c38b1d925 (diff)
staging: rtl8192e: Store mem_start in priv struct
Signed-off-by: Mike McCormack <mikem@ring3k.org> Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
-rw-r--r--drivers/staging/rtl8192e/r8192E.h2
-rw-r--r--drivers/staging/rtl8192e/r8192E_core.c38
2 files changed, 17 insertions, 23 deletions
diff --git a/drivers/staging/rtl8192e/r8192E.h b/drivers/staging/rtl8192e/r8192E.h
index c18705ff8160..d59fc0e796da 100644
--- a/drivers/staging/rtl8192e/r8192E.h
+++ b/drivers/staging/rtl8192e/r8192E.h
@@ -868,6 +868,8 @@ struct rtl8192_tx_ring {
868typedef struct r8192_priv 868typedef struct r8192_priv
869{ 869{
870 struct pci_dev *pdev; 870 struct pci_dev *pdev;
871 u8 *mem_start;
872
871 /* maintain info from eeprom */ 873 /* maintain info from eeprom */
872 short epromtype; 874 short epromtype;
873 u16 eeprom_vid; 875 u16 eeprom_vid;
diff --git a/drivers/staging/rtl8192e/r8192E_core.c b/drivers/staging/rtl8192e/r8192E_core.c
index 06b35a234b49..8715d2cee8f1 100644
--- a/drivers/staging/rtl8192e/r8192E_core.c
+++ b/drivers/staging/rtl8192e/r8192E_core.c
@@ -210,40 +210,34 @@ u32 read_cam(struct r8192_priv *priv, u8 addr)
210 210
211u8 read_nic_byte(struct r8192_priv *priv, int x) 211u8 read_nic_byte(struct r8192_priv *priv, int x)
212{ 212{
213 struct net_device *dev = priv->ieee80211->dev; 213 return 0xff & readb(priv->mem_start + x);
214 return 0xff&readb((u8*)dev->mem_start +x);
215} 214}
216 215
217u32 read_nic_dword(struct r8192_priv *priv, int x) 216u32 read_nic_dword(struct r8192_priv *priv, int x)
218{ 217{
219 struct net_device *dev = priv->ieee80211->dev; 218 return readl(priv->mem_start + x);
220 return readl((u8*)dev->mem_start +x);
221} 219}
222 220
223u16 read_nic_word(struct r8192_priv *priv, int x) 221u16 read_nic_word(struct r8192_priv *priv, int x)
224{ 222{
225 struct net_device *dev = priv->ieee80211->dev; 223 return readw(priv->mem_start + x);
226 return readw((u8*)dev->mem_start +x);
227} 224}
228 225
229void write_nic_byte(struct r8192_priv *priv, int x,u8 y) 226void write_nic_byte(struct r8192_priv *priv, int x,u8 y)
230{ 227{
231 struct net_device *dev = priv->ieee80211->dev; 228 writeb(y, priv->mem_start + x);
232 writeb(y,(u8*)dev->mem_start +x);
233 udelay(20); 229 udelay(20);
234} 230}
235 231
236void write_nic_dword(struct r8192_priv *priv, int x,u32 y) 232void write_nic_dword(struct r8192_priv *priv, int x,u32 y)
237{ 233{
238 struct net_device *dev = priv->ieee80211->dev; 234 writel(y, priv->mem_start + x);
239 writel(y,(u8*)dev->mem_start +x);
240 udelay(20); 235 udelay(20);
241} 236}
242 237
243void write_nic_word(struct r8192_priv *priv, int x,u16 y) 238void write_nic_word(struct r8192_priv *priv, int x,u16 y)
244{ 239{
245 struct net_device *dev = priv->ieee80211->dev; 240 writew(y, priv->mem_start + x);
246 writew(y,(u8*)dev->mem_start +x);
247 udelay(20); 241 udelay(20);
248} 242}
249 243
@@ -4568,7 +4562,6 @@ static const struct net_device_ops rtl8192_netdev_ops = {
4568static int __devinit rtl8192_pci_probe(struct pci_dev *pdev, 4562static int __devinit rtl8192_pci_probe(struct pci_dev *pdev,
4569 const struct pci_device_id *id) 4563 const struct pci_device_id *id)
4570{ 4564{
4571 unsigned long ioaddr = 0;
4572 struct net_device *dev = NULL; 4565 struct net_device *dev = NULL;
4573 struct r8192_priv *priv= NULL; 4566 struct r8192_priv *priv= NULL;
4574 u8 unit = 0; 4567 u8 unit = 0;
@@ -4619,16 +4612,15 @@ static int __devinit rtl8192_pci_probe(struct pci_dev *pdev,
4619 goto fail; 4612 goto fail;
4620 } 4613 }
4621 4614
4622 4615 priv->mem_start = ioremap_nocache(pmem_start, pmem_len);
4623 ioaddr = (unsigned long)ioremap_nocache( pmem_start, pmem_len); 4616 if (!priv->mem_start) {
4624 if( ioaddr == (unsigned long)NULL ){
4625 RT_TRACE(COMP_ERR,"ioremap failed!\n"); 4617 RT_TRACE(COMP_ERR,"ioremap failed!\n");
4626 // release_mem_region( pmem_start, pmem_len );
4627 goto fail1; 4618 goto fail1;
4628 } 4619 }
4629 4620
4630 dev->mem_start = ioaddr; // shared mem start 4621 dev->mem_start = (unsigned long) priv->mem_start;
4631 dev->mem_end = ioaddr + pci_resource_len(pdev, 0); // shared mem end 4622 dev->mem_end = (unsigned long) (priv->mem_start +
4623 pci_resource_len(pdev, 0));
4632 4624
4633 /* We disable the RETRY_TIMEOUT register (0x41) to keep 4625 /* We disable the RETRY_TIMEOUT register (0x41) to keep
4634 * PCI Tx retries from interfering with C3 CPU state */ 4626 * PCI Tx retries from interfering with C3 CPU state */
@@ -4670,8 +4662,8 @@ static int __devinit rtl8192_pci_probe(struct pci_dev *pdev,
4670 4662
4671fail1: 4663fail1:
4672 4664
4673 if( dev->mem_start != (unsigned long)NULL ){ 4665 if (priv->mem_start) {
4674 iounmap( (void *)dev->mem_start ); 4666 iounmap(priv->mem_start);
4675 release_mem_region( pci_resource_start(pdev, 1), 4667 release_mem_region( pci_resource_start(pdev, 1),
4676 pci_resource_len(pdev, 1) ); 4668 pci_resource_len(pdev, 1) );
4677 } 4669 }
@@ -4747,8 +4739,8 @@ static void __devexit rtl8192_pci_disconnect(struct pci_dev *pdev)
4747 priv->irq=0; 4739 priv->irq=0;
4748 } 4740 }
4749 4741
4750 if( dev->mem_start != (unsigned long)NULL ){ 4742 if (priv->mem_start) {
4751 iounmap( (void *)dev->mem_start ); 4743 iounmap(priv->mem_start);
4752 release_mem_region( pci_resource_start(pdev, 1), 4744 release_mem_region( pci_resource_start(pdev, 1),
4753 pci_resource_len(pdev, 1) ); 4745 pci_resource_len(pdev, 1) );
4754 } 4746 }