aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/net/wireless/orinoco/spectrum_cs.c
diff options
context:
space:
mode:
authorDominik Brodowski <linux@dominikbrodowski.net>2010-07-24 06:23:21 -0400
committerDominik Brodowski <linux@dominikbrodowski.net>2010-08-03 03:02:35 -0400
commit1d5cc192d431bce2ebe9fde64054ce903200e179 (patch)
treecdcdfb77712349bf46f0876d420e2be81f901d74 /drivers/net/wireless/orinoco/spectrum_cs.c
parentac8b422838046ffc26be4874a3cbae0d313f4209 (diff)
pcmcia: use pcmica_{read,write}_config_byte
Use pcmcia_read_config_byte and pcmcia_write_config_byte instead of pcmcia_access_configuration_register. CC: netdev@vger.kernel.org CC: linux-wireless@vger.kernel.org CC: linux-serial@vger.kernel.org CC: Michael Buesch <mb@bu3sch.de> Signed-off-by: Dominik Brodowski <linux@dominikbrodowski.net>
Diffstat (limited to 'drivers/net/wireless/orinoco/spectrum_cs.c')
-rw-r--r--drivers/net/wireless/orinoco/spectrum_cs.c32
1 files changed, 10 insertions, 22 deletions
diff --git a/drivers/net/wireless/orinoco/spectrum_cs.c b/drivers/net/wireless/orinoco/spectrum_cs.c
index cad30e499dba..39399cd2e683 100644
--- a/drivers/net/wireless/orinoco/spectrum_cs.c
+++ b/drivers/net/wireless/orinoco/spectrum_cs.c
@@ -79,35 +79,27 @@ static int
79spectrum_reset(struct pcmcia_device *link, int idle) 79spectrum_reset(struct pcmcia_device *link, int idle)
80{ 80{
81 int ret; 81 int ret;
82 conf_reg_t reg; 82 u8 save_cor;
83 u_int save_cor; 83 u8 ccsr;
84 84
85 /* Doing it if hardware is gone is guaranteed crash */ 85 /* Doing it if hardware is gone is guaranteed crash */
86 if (!pcmcia_dev_present(link)) 86 if (!pcmcia_dev_present(link))
87 return -ENODEV; 87 return -ENODEV;
88 88
89 /* Save original COR value */ 89 /* Save original COR value */
90 reg.Function = 0; 90 ret = pcmcia_read_config_byte(link, CISREG_COR, &save_cor);
91 reg.Action = CS_READ;
92 reg.Offset = CISREG_COR;
93 ret = pcmcia_access_configuration_register(link, &reg);
94 if (ret) 91 if (ret)
95 goto failed; 92 goto failed;
96 save_cor = reg.Value;
97 93
98 /* Soft-Reset card */ 94 /* Soft-Reset card */
99 reg.Action = CS_WRITE; 95 ret = pcmcia_write_config_byte(link, CISREG_COR,
100 reg.Offset = CISREG_COR; 96 (save_cor | COR_SOFT_RESET));
101 reg.Value = (save_cor | COR_SOFT_RESET);
102 ret = pcmcia_access_configuration_register(link, &reg);
103 if (ret) 97 if (ret)
104 goto failed; 98 goto failed;
105 udelay(1000); 99 udelay(1000);
106 100
107 /* Read CCSR */ 101 /* Read CCSR */
108 reg.Action = CS_READ; 102 ret = pcmcia_read_config_byte(link, CISREG_CCSR, &ccsr);
109 reg.Offset = CISREG_CCSR;
110 ret = pcmcia_access_configuration_register(link, &reg);
111 if (ret) 103 if (ret)
112 goto failed; 104 goto failed;
113 105
@@ -115,19 +107,15 @@ spectrum_reset(struct pcmcia_device *link, int idle)
115 * Start or stop the firmware. Memory width bit should be 107 * Start or stop the firmware. Memory width bit should be
116 * preserved from the value we've just read. 108 * preserved from the value we've just read.
117 */ 109 */
118 reg.Action = CS_WRITE; 110 ccsr = (idle ? HCR_IDLE : HCR_RUN) | (ccsr & HCR_MEM16);
119 reg.Offset = CISREG_CCSR; 111 ret = pcmcia_write_config_byte(link, CISREG_CCSR, ccsr);
120 reg.Value = (idle ? HCR_IDLE : HCR_RUN) | (reg.Value & HCR_MEM16);
121 ret = pcmcia_access_configuration_register(link, &reg);
122 if (ret) 112 if (ret)
123 goto failed; 113 goto failed;
124 udelay(1000); 114 udelay(1000);
125 115
126 /* Restore original COR configuration index */ 116 /* Restore original COR configuration index */
127 reg.Action = CS_WRITE; 117 ret = pcmcia_write_config_byte(link, CISREG_COR,
128 reg.Offset = CISREG_COR; 118 (save_cor & ~COR_SOFT_RESET));
129 reg.Value = (save_cor & ~COR_SOFT_RESET);
130 ret = pcmcia_access_configuration_register(link, &reg);
131 if (ret) 119 if (ret)
132 goto failed; 120 goto failed;
133 udelay(1000); 121 udelay(1000);