diff options
author | Tomas Winkler <tomas.winkler@intel.com> | 2013-01-08 16:07:27 -0500 |
---|---|---|
committer | Greg Kroah-Hartman <gregkh@linuxfoundation.org> | 2013-01-08 19:40:47 -0500 |
commit | adfba3220b625ce4bee08e7e6f48c8a27aac23bb (patch) | |
tree | be763cb3537e28f43bb43df856bdbe82bc2bdbbd /drivers/misc/mei/init.c | |
parent | 528c8eb4e7c08c5531533de62a558aaf3d076ebb (diff) |
mei: don't use cached value for hcsr in mei_hw_reset
Open code mei_hw_reset to avoid using cached hcsr.
Using cached hcsr can cause unwanted side effects.
Move mei_hw_restet function to hw-me.c as it is hw dependent
Signed-off-by: Tomas Winkler <tomas.winkler@intel.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Diffstat (limited to 'drivers/misc/mei/init.c')
-rw-r--r-- | drivers/misc/mei/init.c | 28 |
1 files changed, 0 insertions, 28 deletions
diff --git a/drivers/misc/mei/init.c b/drivers/misc/mei/init.c index 2391832bfa6f..5c2054d06f6b 100644 --- a/drivers/misc/mei/init.c +++ b/drivers/misc/mei/init.c | |||
@@ -170,22 +170,6 @@ out: | |||
170 | } | 170 | } |
171 | 171 | ||
172 | /** | 172 | /** |
173 | * mei_hw_reset - resets fw via mei csr register. | ||
174 | * | ||
175 | * @dev: the device structure | ||
176 | * @interrupts_enabled: if interrupt should be enabled after reset. | ||
177 | */ | ||
178 | static void mei_hw_reset(struct mei_device *dev, int interrupts_enabled) | ||
179 | { | ||
180 | dev->host_hw_state |= (H_RST | H_IG); | ||
181 | |||
182 | if (interrupts_enabled) | ||
183 | mei_enable_interrupts(dev); | ||
184 | else | ||
185 | mei_disable_interrupts(dev); | ||
186 | } | ||
187 | |||
188 | /** | ||
189 | * mei_reset - resets host and fw. | 173 | * mei_reset - resets host and fw. |
190 | * | 174 | * |
191 | * @dev: the device structure | 175 | * @dev: the device structure |
@@ -207,20 +191,8 @@ void mei_reset(struct mei_device *dev, int interrupts_enabled) | |||
207 | dev->dev_state != MEI_DEV_POWER_DOWN && | 191 | dev->dev_state != MEI_DEV_POWER_DOWN && |
208 | dev->dev_state != MEI_DEV_POWER_UP); | 192 | dev->dev_state != MEI_DEV_POWER_UP); |
209 | 193 | ||
210 | dev->host_hw_state = mei_hcsr_read(dev); | ||
211 | |||
212 | dev_dbg(&dev->pdev->dev, "before reset host_hw_state = 0x%08x.\n", | ||
213 | dev->host_hw_state); | ||
214 | |||
215 | mei_hw_reset(dev, interrupts_enabled); | 194 | mei_hw_reset(dev, interrupts_enabled); |
216 | 195 | ||
217 | dev->host_hw_state &= ~H_RST; | ||
218 | dev->host_hw_state |= H_IG; | ||
219 | |||
220 | mei_hcsr_set(dev); | ||
221 | |||
222 | dev_dbg(&dev->pdev->dev, "currently saved host_hw_state = 0x%08x.\n", | ||
223 | dev->host_hw_state); | ||
224 | 196 | ||
225 | if (dev->dev_state != MEI_DEV_INITIALIZING) { | 197 | if (dev->dev_state != MEI_DEV_INITIALIZING) { |
226 | if (dev->dev_state != MEI_DEV_DISABLED && | 198 | if (dev->dev_state != MEI_DEV_DISABLED && |