iwl3945: fix deep sleep when removing the driver.
authorAbbas, Mohamed <mohamed.abbas@intel.com>
Wed, 21 Jan 2009 05:33:55 +0000 (21:33 -0800)
committerJohn W. Linville <linville@tuxdriver.com>
Thu, 29 Jan 2009 21:01:06 +0000 (16:01 -0500)
commite9414b6b3f34dcc3683e66dffa4f5f167d49df51
tree857f8deb0ce8110fcf82930d41c4b11db1c4b9db
parentc0af96a6e63ef93c605ce495fff79c692d4b8c4d
iwl3945: fix deep sleep when removing the driver.

A warning message "MAC is in deep sleep" sometimes happen when user removes
the driver.  This warning is related to card not being ready. In __iwl3945_down
function some of the going down steps are in wrong order, to fix this this patch
do the following:
1- make sure we are calling iwl3945_apm_reset and iwl3945_apm_stop
   in the right order.

2- make sure we set CSR_GP_CNTRL_REG_FLAG_INIT_DONE in apm_reset before
   poll on CSR_GP_CNTRL_REG_FLAG_MAC_CLOCK_READY.

3- set correct polling counter.

This fixes bug
http://www.intellinuxwireless.org/bugzilla/show_bug.cgi?id=1834

Signed-off-by: mohamed abbas <mohamed.abbas@intel.com>
Signed-off-by: Reinette Chatre <reinette.chatre@intel.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
drivers/net/wireless/iwlwifi/iwl-3945.c
drivers/net/wireless/iwlwifi/iwl-io.h
drivers/net/wireless/iwlwifi/iwl3945-base.c