Add a quirk to fix resume on some laptops.

Reported by:	joe
Reported by:	Huang wen hui <huang gddsn.org.cn>
Reported by:	Jacques Garrigue <garrigue math.nagoya-u.ac.jp>
PR:		kern/89825
This commit is contained in:
Gleb Smirnoff 2005-12-22 09:09:39 +00:00
parent f6789fba46
commit 0014abfcc4
Notes: svn2git 2020-12-20 02:59:44 +00:00
svn path=/head/; revision=153635

View File

@ -1048,6 +1048,15 @@ em_intr(void *arg)
else if (reg_icr == 0)
break;
/*
* XXX: some laptops trigger several spurious interrupts
* on em(4) when in the resume cycle. The ICR register
* reports all-ones value in this case. Processing such
* interrupts would lead to a freeze. I don't know why.
*/
if (reg_icr == 0xffffffff)
break;
if (ifp->if_drv_flags & IFF_DRV_RUNNING) {
em_process_receive_interrupts(adapter, -1);
em_clean_transmit_interrupts(adapter);