linux/drivers/staging
Dongxiao Xu ad914a3ec5 Staging: heci: fix setting h_is bit in h_csr register
Host software could issue interrupts to ME firmware, using H_IG bit. While
Setting H_IG bit, host software should preserve all the other bits in H_CSR
unchanged. In the original function which sets H_CSR register, they first read
the register, then set some bits, and write the whole 32bits back to the
register. And that the special behavior of H_IS (write-one-to-zero) causes problem.
This patch fixes the issue in the following ways:

 - Modify heci_set_csr_register() function so that it doesn't change H_IS bit.
 - Add interface heci_csr_clear_his() to clear H_IS bit. This function is called
   after H_IS checking (dev->host_hw_state & H_IS == H_IS).
 - In original heci_csr_disable_interrupts() function, it not only clears H_IE
   bit, sometimes it also clears H_IS bit. This patch separates the two parts.
 - Avoid calling write_heci_register() function to set H_CSR register directly,
   and instead using heci_set_csr_register() function

Signed-off-by: Dongxiao Xu <dongxiao.xu@intel.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
2009-06-19 11:00:55 -07:00
..
agnx Staging: agnx: fix build warnings 2009-06-19 11:00:35 -07:00
altpciechdma Staging: remove driver_data direct access of struct device 2009-06-19 11:00:37 -07:00
android Staging: android: fix Kconfig issues 2009-06-19 11:00:52 -07:00
asus_oled
at76_usb
b3dfg staging: b3dfg: clean up MODULE_PARM_DESC newline 2009-06-19 11:00:54 -07:00
comedi Staging: fix operator precedence errors 2009-06-19 11:00:36 -07:00
cpc-usb Staging: cpc-usb: fix build warnings 2009-06-19 11:00:53 -07:00
dst
echo Staging: oslec bug fix 2009-06-19 11:00:54 -07:00
epl Staging: epl: do not use CLONE_SIGHAND with allow_signal() 2009-06-19 11:00:52 -07:00
et131x
frontier Staging: remove unused #include <linux/version.h>'s 2009-06-19 11:00:36 -07:00
go7007 staging: wis-sony-tuner.c: fix &&/|| error 2009-06-19 11:00:54 -07:00
heci Staging: heci: fix setting h_is bit in h_csr register 2009-06-19 11:00:55 -07:00
line6
me4000
meilhaus Staging: remove unused #include <linux/version.h>'s 2009-06-19 11:00:36 -07:00
mimio
octeon Staging: Add octeon-ethernet driver files. 2009-06-17 11:06:30 +01:00
otus Staging: otus: beyond ARRAY_SIZE of wd->ap.wds.encryMode 2009-06-19 11:00:37 -07:00
p9auth staging: p9auth: prevent some oopses and memory leaks 2009-06-19 11:00:54 -07:00
panel
phison
poch
pohmelfs Staging: pohmelfs: Storage class should be before const qualifier 2009-06-19 11:00:39 -07:00
rspiusb Staging: rspiusb: copy_to/from_user related fixes 2009-06-19 11:00:54 -07:00
rt2860 staging: rtlxxxx: off by one in AsicSendCommandToMcu() and NDIS_STATUS NICLoadFirmware() 2009-06-19 11:00:51 -07:00
rt2870 Staging: rt2870: fix build warnings 2009-06-19 11:00:51 -07:00
rt3070 Staging: rt{28,30}70: merge rt{28,30}70/sta/*.[ch] 2009-06-19 11:00:50 -07:00
rtl8187se Staging: rtl8187se: wmm_param[1].ac_aci_acm_aifsn tested twice 2009-06-19 11:00:36 -07:00
rtl8192su Staging: rtl8192su: Correct use of ! and & 2009-06-19 11:00:54 -07:00
serqt_usb Staging: remove unused #include <linux/version.h>'s 2009-06-19 11:00:36 -07:00
slicoss
stlc45xx Staging: stlc45xx: replace print_mac with %pM 2009-06-19 11:00:36 -07:00
sxg Staging: sxg: Add missing __devexit_p() 2009-06-19 11:00:35 -07:00
uc2322 USB: usb-serial: replace shutdown with disconnect, release 2009-06-15 21:44:47 -07:00
usbip
vt6655 Staging: vt6655: uses pci functions, should depend on PCI 2009-06-19 11:00:52 -07:00
winbond Staging: winbond: mac80211 - unify config_interface and bss_info_changed 2009-06-19 11:00:38 -07:00
wlan-ng Staging: wlan-ng: Update README file. Remove Lindent task 2009-06-19 11:00:39 -07:00
Kconfig Staging: add rtl8192SU wireless usb driver 2009-06-19 11:00:53 -07:00
Makefile Staging: add rtl8192SU wireless usb driver 2009-06-19 11:00:53 -07:00
staging.c