diff options
Diffstat (limited to 'drivers/net/wireless/ath/ath9k/pci.c')
| -rw-r--r-- | drivers/net/wireless/ath/ath9k/pci.c | 396 | 
1 files changed, 391 insertions, 5 deletions
diff --git a/drivers/net/wireless/ath/ath9k/pci.c b/drivers/net/wireless/ath/ath9k/pci.c index d089a7cf01c..4dec09e565e 100644 --- a/drivers/net/wireless/ath/ath9k/pci.c +++ b/drivers/net/wireless/ath/ath9k/pci.c @@ -87,6 +87,19 @@ static DEFINE_PCI_DEVICE_TABLE(ath_pci_id_table) = {  	{ PCI_VDEVICE(ATHEROS, 0x002C) }, /* PCI-E 802.11n bonded out */  	{ PCI_VDEVICE(ATHEROS, 0x002D) }, /* PCI   */  	{ PCI_VDEVICE(ATHEROS, 0x002E) }, /* PCI-E */ + +	/* Killer Wireless (3x3) */ +	{ PCI_DEVICE_SUB(PCI_VENDOR_ID_ATHEROS, +			 0x0030, +			 0x1A56, +			 0x2000), +	  .driver_data = ATH9K_PCI_KILLER }, +	{ PCI_DEVICE_SUB(PCI_VENDOR_ID_ATHEROS, +			 0x0030, +			 0x1A56, +			 0x2001), +	  .driver_data = ATH9K_PCI_KILLER }, +  	{ PCI_VDEVICE(ATHEROS, 0x0030) }, /* PCI-E  AR9300 */  	/* PCI-E CUS198 */ @@ -195,6 +208,93 @@ static DEFINE_PCI_DEVICE_TABLE(ath_pci_id_table) = {  			 0x3219),  	  .driver_data = ATH9K_PCI_BT_ANT_DIV }, +	/* AR9485 cards with PLL power-save disabled by default. */ +	{ PCI_DEVICE_SUB(PCI_VENDOR_ID_ATHEROS, +			 0x0032, +			 PCI_VENDOR_ID_AZWAVE, +			 0x2C97), +	  .driver_data = ATH9K_PCI_NO_PLL_PWRSAVE }, +	{ PCI_DEVICE_SUB(PCI_VENDOR_ID_ATHEROS, +			 0x0032, +			 PCI_VENDOR_ID_AZWAVE, +			 0x2100), +	  .driver_data = ATH9K_PCI_NO_PLL_PWRSAVE }, +	{ PCI_DEVICE_SUB(PCI_VENDOR_ID_ATHEROS, +			 0x0032, +			 0x1C56, /* ASKEY */ +			 0x4001), +	  .driver_data = ATH9K_PCI_NO_PLL_PWRSAVE }, +	{ PCI_DEVICE_SUB(PCI_VENDOR_ID_ATHEROS, +			 0x0032, +			 0x11AD, /* LITEON */ +			 0x6627), +	  .driver_data = ATH9K_PCI_NO_PLL_PWRSAVE }, +	{ PCI_DEVICE_SUB(PCI_VENDOR_ID_ATHEROS, +			 0x0032, +			 0x11AD, /* LITEON */ +			 0x6628), +	  .driver_data = ATH9K_PCI_NO_PLL_PWRSAVE }, +	{ PCI_DEVICE_SUB(PCI_VENDOR_ID_ATHEROS, +			 0x0032, +			 PCI_VENDOR_ID_FOXCONN, +			 0xE04E), +	  .driver_data = ATH9K_PCI_NO_PLL_PWRSAVE }, +	{ PCI_DEVICE_SUB(PCI_VENDOR_ID_ATHEROS, +			 0x0032, +			 PCI_VENDOR_ID_FOXCONN, +			 0xE04F), +	  .driver_data = ATH9K_PCI_NO_PLL_PWRSAVE }, +	{ PCI_DEVICE_SUB(PCI_VENDOR_ID_ATHEROS, +			 0x0032, +			 0x144F, /* ASKEY */ +			 0x7197), +	  .driver_data = ATH9K_PCI_NO_PLL_PWRSAVE }, +	{ PCI_DEVICE_SUB(PCI_VENDOR_ID_ATHEROS, +			 0x0032, +			 0x1B9A, /* XAVI */ +			 0x2000), +	  .driver_data = ATH9K_PCI_NO_PLL_PWRSAVE }, +	{ PCI_DEVICE_SUB(PCI_VENDOR_ID_ATHEROS, +			 0x0032, +			 0x1B9A, /* XAVI */ +			 0x2001), +	  .driver_data = ATH9K_PCI_NO_PLL_PWRSAVE }, +	{ PCI_DEVICE_SUB(PCI_VENDOR_ID_ATHEROS, +			 0x0032, +			 PCI_VENDOR_ID_AZWAVE, +			 0x1186), +	  .driver_data = ATH9K_PCI_NO_PLL_PWRSAVE }, +	{ PCI_DEVICE_SUB(PCI_VENDOR_ID_ATHEROS, +			 0x0032, +			 PCI_VENDOR_ID_AZWAVE, +			 0x1F86), +	  .driver_data = ATH9K_PCI_NO_PLL_PWRSAVE }, +	{ PCI_DEVICE_SUB(PCI_VENDOR_ID_ATHEROS, +			 0x0032, +			 PCI_VENDOR_ID_AZWAVE, +			 0x1195), +	  .driver_data = ATH9K_PCI_NO_PLL_PWRSAVE }, +	{ PCI_DEVICE_SUB(PCI_VENDOR_ID_ATHEROS, +			 0x0032, +			 PCI_VENDOR_ID_AZWAVE, +			 0x1F95), +	  .driver_data = ATH9K_PCI_NO_PLL_PWRSAVE }, +	{ PCI_DEVICE_SUB(PCI_VENDOR_ID_ATHEROS, +			 0x0032, +			 0x1B9A, /* XAVI */ +			 0x1C00), +	  .driver_data = ATH9K_PCI_NO_PLL_PWRSAVE }, +	{ PCI_DEVICE_SUB(PCI_VENDOR_ID_ATHEROS, +			 0x0032, +			 0x1B9A, /* XAVI */ +			 0x1C01), +	  .driver_data = ATH9K_PCI_NO_PLL_PWRSAVE }, +	{ PCI_DEVICE_SUB(PCI_VENDOR_ID_ATHEROS, +			 0x0032, +			 PCI_VENDOR_ID_ASUSTEK, +			 0x850D), +	  .driver_data = ATH9K_PCI_NO_PLL_PWRSAVE }, +  	{ PCI_VDEVICE(ATHEROS, 0x0032) }, /* PCI-E  AR9485 */  	{ PCI_VDEVICE(ATHEROS, 0x0033) }, /* PCI-E  AR9580 */ @@ -267,9 +367,297 @@ static DEFINE_PCI_DEVICE_TABLE(ath_pci_id_table) = {  			 0x1783),  	  .driver_data = ATH9K_PCI_WOW }, +	/* Killer Wireless (2x2) */ +	{ PCI_DEVICE_SUB(PCI_VENDOR_ID_ATHEROS, +			 0x0030, +			 0x1A56, +			 0x2003), +	  .driver_data = ATH9K_PCI_KILLER }, +  	{ PCI_VDEVICE(ATHEROS, 0x0034) }, /* PCI-E  AR9462 */  	{ PCI_VDEVICE(ATHEROS, 0x0037) }, /* PCI-E  AR1111/AR9485 */ -	{ PCI_VDEVICE(ATHEROS, 0x0036) }, /* PCI-E  AR9565 */ + +	/* CUS252 */ +	{ PCI_DEVICE_SUB(PCI_VENDOR_ID_ATHEROS, +			 0x0036, +			 PCI_VENDOR_ID_ATHEROS, +			 0x3028), +	  .driver_data = ATH9K_PCI_CUS252 | +			 ATH9K_PCI_AR9565_2ANT | +			 ATH9K_PCI_BT_ANT_DIV }, +	{ PCI_DEVICE_SUB(PCI_VENDOR_ID_ATHEROS, +			 0x0036, +			 PCI_VENDOR_ID_AZWAVE, +			 0x2176), +	  .driver_data = ATH9K_PCI_CUS252 | +			 ATH9K_PCI_AR9565_2ANT | +			 ATH9K_PCI_BT_ANT_DIV }, + +	/* WB335 1-ANT */ +	{ PCI_DEVICE_SUB(PCI_VENDOR_ID_ATHEROS, +			 0x0036, +			 PCI_VENDOR_ID_FOXCONN, +			 0xE068), +	  .driver_data = ATH9K_PCI_AR9565_1ANT }, +	{ PCI_DEVICE_SUB(PCI_VENDOR_ID_ATHEROS, +			 0x0036, +			 0x185F, /* WNC */ +			 0xA119), +	  .driver_data = ATH9K_PCI_AR9565_1ANT }, +	{ PCI_DEVICE_SUB(PCI_VENDOR_ID_ATHEROS, +			 0x0036, +			 0x11AD, /* LITEON */ +			 0x0632), +	  .driver_data = ATH9K_PCI_AR9565_1ANT }, +	{ PCI_DEVICE_SUB(PCI_VENDOR_ID_ATHEROS, +			 0x0036, +			 0x11AD, /* LITEON */ +			 0x06B2), +	  .driver_data = ATH9K_PCI_AR9565_1ANT }, +	{ PCI_DEVICE_SUB(PCI_VENDOR_ID_ATHEROS, +			 0x0036, +			 0x11AD, /* LITEON */ +			 0x0842), +	  .driver_data = ATH9K_PCI_AR9565_1ANT }, +	{ PCI_DEVICE_SUB(PCI_VENDOR_ID_ATHEROS, +			 0x0036, +			 0x11AD, /* LITEON */ +			 0x6671), +	  .driver_data = ATH9K_PCI_AR9565_1ANT }, +	{ PCI_DEVICE_SUB(PCI_VENDOR_ID_ATHEROS, +			 0x0036, +			 0x1B9A, /* XAVI */ +			 0x2811), +	  .driver_data = ATH9K_PCI_AR9565_1ANT }, +	{ PCI_DEVICE_SUB(PCI_VENDOR_ID_ATHEROS, +			 0x0036, +			 0x1B9A, /* XAVI */ +			 0x2812), +	  .driver_data = ATH9K_PCI_AR9565_1ANT }, +	{ PCI_DEVICE_SUB(PCI_VENDOR_ID_ATHEROS, +			 0x0036, +			 0x1B9A, /* XAVI */ +			 0x28A1), +	  .driver_data = ATH9K_PCI_AR9565_1ANT }, +	{ PCI_DEVICE_SUB(PCI_VENDOR_ID_ATHEROS, +			 0x0036, +			 PCI_VENDOR_ID_AZWAVE, +			 0x218A), +	  .driver_data = ATH9K_PCI_AR9565_1ANT }, + +	/* WB335 1-ANT / Antenna Diversity */ +	{ PCI_DEVICE_SUB(PCI_VENDOR_ID_ATHEROS, +			 0x0036, +			 PCI_VENDOR_ID_ATHEROS, +			 0x3025), +	  .driver_data = ATH9K_PCI_AR9565_1ANT | ATH9K_PCI_BT_ANT_DIV }, +	{ PCI_DEVICE_SUB(PCI_VENDOR_ID_ATHEROS, +			 0x0036, +			 PCI_VENDOR_ID_ATHEROS, +			 0x3026), +	  .driver_data = ATH9K_PCI_AR9565_1ANT | ATH9K_PCI_BT_ANT_DIV }, +	{ PCI_DEVICE_SUB(PCI_VENDOR_ID_ATHEROS, +			 0x0036, +			 PCI_VENDOR_ID_ATHEROS, +			 0x302B), +	  .driver_data = ATH9K_PCI_AR9565_1ANT | ATH9K_PCI_BT_ANT_DIV }, +	{ PCI_DEVICE_SUB(PCI_VENDOR_ID_ATHEROS, +			 0x0036, +			 PCI_VENDOR_ID_FOXCONN, +			 0xE069), +	  .driver_data = ATH9K_PCI_AR9565_1ANT | ATH9K_PCI_BT_ANT_DIV }, +	{ PCI_DEVICE_SUB(PCI_VENDOR_ID_ATHEROS, +			 0x0036, +			 0x185F, /* WNC */ +			 0x3028), +	  .driver_data = ATH9K_PCI_AR9565_1ANT | ATH9K_PCI_BT_ANT_DIV }, +	{ PCI_DEVICE_SUB(PCI_VENDOR_ID_ATHEROS, +			 0x0036, +			 0x11AD, /* LITEON */ +			 0x0622), +	  .driver_data = ATH9K_PCI_AR9565_1ANT | ATH9K_PCI_BT_ANT_DIV }, +	{ PCI_DEVICE_SUB(PCI_VENDOR_ID_ATHEROS, +			 0x0036, +			 0x11AD, /* LITEON */ +			 0x0672), +	  .driver_data = ATH9K_PCI_AR9565_1ANT | ATH9K_PCI_BT_ANT_DIV }, +	{ PCI_DEVICE_SUB(PCI_VENDOR_ID_ATHEROS, +			 0x0036, +			 0x11AD, /* LITEON */ +			 0x0662), +	  .driver_data = ATH9K_PCI_AR9565_1ANT | ATH9K_PCI_BT_ANT_DIV }, +	{ PCI_DEVICE_SUB(PCI_VENDOR_ID_ATHEROS, +			 0x0036, +			 0x11AD, /* LITEON */ +			 0x06A2), +	  .driver_data = ATH9K_PCI_AR9565_1ANT | ATH9K_PCI_BT_ANT_DIV }, +	{ PCI_DEVICE_SUB(PCI_VENDOR_ID_ATHEROS, +			 0x0036, +			 0x11AD, /* LITEON */ +			 0x0682), +	  .driver_data = ATH9K_PCI_AR9565_1ANT | ATH9K_PCI_BT_ANT_DIV }, +	{ PCI_DEVICE_SUB(PCI_VENDOR_ID_ATHEROS, +			 0x0036, +			 PCI_VENDOR_ID_AZWAVE, +			 0x213A), +	  .driver_data = ATH9K_PCI_AR9565_1ANT | ATH9K_PCI_BT_ANT_DIV }, +	{ PCI_DEVICE_SUB(PCI_VENDOR_ID_ATHEROS, +			 0x0036, +			 PCI_VENDOR_ID_HP, +			 0x18E3), +	  .driver_data = ATH9K_PCI_AR9565_1ANT | ATH9K_PCI_BT_ANT_DIV }, +	{ PCI_DEVICE_SUB(PCI_VENDOR_ID_ATHEROS, +			 0x0036, +			 PCI_VENDOR_ID_HP, +			 0x217F), +	  .driver_data = ATH9K_PCI_AR9565_1ANT | ATH9K_PCI_BT_ANT_DIV }, +	{ PCI_DEVICE_SUB(PCI_VENDOR_ID_ATHEROS, +			 0x0036, +			 PCI_VENDOR_ID_HP, +			 0x2005), +	  .driver_data = ATH9K_PCI_AR9565_1ANT | ATH9K_PCI_BT_ANT_DIV }, +	{ PCI_DEVICE_SUB(PCI_VENDOR_ID_ATHEROS, +			 0x0036, +			 PCI_VENDOR_ID_DELL, +			 0x020C), +	  .driver_data = ATH9K_PCI_AR9565_1ANT | ATH9K_PCI_BT_ANT_DIV }, + +	/* WB335 2-ANT / Antenna-Diversity */ +	{ PCI_DEVICE_SUB(PCI_VENDOR_ID_ATHEROS, +			 0x0036, +			 PCI_VENDOR_ID_SAMSUNG, +			 0x411A), +	  .driver_data = ATH9K_PCI_AR9565_2ANT | ATH9K_PCI_BT_ANT_DIV }, +	{ PCI_DEVICE_SUB(PCI_VENDOR_ID_ATHEROS, +			 0x0036, +			 PCI_VENDOR_ID_SAMSUNG, +			 0x411B), +	  .driver_data = ATH9K_PCI_AR9565_2ANT | ATH9K_PCI_BT_ANT_DIV }, +	{ PCI_DEVICE_SUB(PCI_VENDOR_ID_ATHEROS, +			 0x0036, +			 PCI_VENDOR_ID_SAMSUNG, +			 0x411C), +	  .driver_data = ATH9K_PCI_AR9565_2ANT | ATH9K_PCI_BT_ANT_DIV }, +	{ PCI_DEVICE_SUB(PCI_VENDOR_ID_ATHEROS, +			 0x0036, +			 PCI_VENDOR_ID_SAMSUNG, +			 0x411D), +	  .driver_data = ATH9K_PCI_AR9565_2ANT | ATH9K_PCI_BT_ANT_DIV }, +	{ PCI_DEVICE_SUB(PCI_VENDOR_ID_ATHEROS, +			 0x0036, +			 PCI_VENDOR_ID_SAMSUNG, +			 0x411E), +	  .driver_data = ATH9K_PCI_AR9565_2ANT | ATH9K_PCI_BT_ANT_DIV }, +	{ PCI_DEVICE_SUB(PCI_VENDOR_ID_ATHEROS, +			 0x0036, +			 PCI_VENDOR_ID_ATHEROS, +			 0x3027), +	  .driver_data = ATH9K_PCI_AR9565_2ANT | ATH9K_PCI_BT_ANT_DIV }, +	{ PCI_DEVICE_SUB(PCI_VENDOR_ID_ATHEROS, +			 0x0036, +			 PCI_VENDOR_ID_ATHEROS, +			 0x302C), +	  .driver_data = ATH9K_PCI_AR9565_2ANT | ATH9K_PCI_BT_ANT_DIV }, +	{ PCI_DEVICE_SUB(PCI_VENDOR_ID_ATHEROS, +			 0x0036, +			 0x11AD, /* LITEON */ +			 0x0642), +	  .driver_data = ATH9K_PCI_AR9565_2ANT | ATH9K_PCI_BT_ANT_DIV }, +	{ PCI_DEVICE_SUB(PCI_VENDOR_ID_ATHEROS, +			 0x0036, +			 0x11AD, /* LITEON */ +			 0x0652), +	  .driver_data = ATH9K_PCI_AR9565_2ANT | ATH9K_PCI_BT_ANT_DIV }, +	{ PCI_DEVICE_SUB(PCI_VENDOR_ID_ATHEROS, +			 0x0036, +			 0x11AD, /* LITEON */ +			 0x0612), +	  .driver_data = ATH9K_PCI_AR9565_2ANT | ATH9K_PCI_BT_ANT_DIV }, +	{ PCI_DEVICE_SUB(PCI_VENDOR_ID_ATHEROS, +			 0x0036, +			 0x11AD, /* LITEON */ +			 0x0832), +	  .driver_data = ATH9K_PCI_AR9565_2ANT | ATH9K_PCI_BT_ANT_DIV }, +	{ PCI_DEVICE_SUB(PCI_VENDOR_ID_ATHEROS, +			 0x0036, +			 0x11AD, /* LITEON */ +			 0x0692), +	  .driver_data = ATH9K_PCI_AR9565_2ANT | ATH9K_PCI_BT_ANT_DIV }, +	{ PCI_DEVICE_SUB(PCI_VENDOR_ID_ATHEROS, +			 0x0036, +			 PCI_VENDOR_ID_AZWAVE, +			 0x2130), +	  .driver_data = ATH9K_PCI_AR9565_2ANT | ATH9K_PCI_BT_ANT_DIV }, +	{ PCI_DEVICE_SUB(PCI_VENDOR_ID_ATHEROS, +			 0x0036, +			 PCI_VENDOR_ID_AZWAVE, +			 0x213B), +	  .driver_data = ATH9K_PCI_AR9565_2ANT | ATH9K_PCI_BT_ANT_DIV }, +	{ PCI_DEVICE_SUB(PCI_VENDOR_ID_ATHEROS, +			 0x0036, +			 PCI_VENDOR_ID_AZWAVE, +			 0x2182), +	  .driver_data = ATH9K_PCI_AR9565_2ANT | ATH9K_PCI_BT_ANT_DIV }, +	{ PCI_DEVICE_SUB(PCI_VENDOR_ID_ATHEROS, +			 0x0036, +			 0x144F, /* ASKEY */ +			 0x7202), +	  .driver_data = ATH9K_PCI_AR9565_2ANT | ATH9K_PCI_BT_ANT_DIV }, +	{ PCI_DEVICE_SUB(PCI_VENDOR_ID_ATHEROS, +			 0x0036, +			 0x1B9A, /* XAVI */ +			 0x2810), +	  .driver_data = ATH9K_PCI_AR9565_2ANT | ATH9K_PCI_BT_ANT_DIV }, +	{ PCI_DEVICE_SUB(PCI_VENDOR_ID_ATHEROS, +			 0x0036, +			 0x1B9A, /* XAVI */ +			 0x28A2), +	  .driver_data = ATH9K_PCI_AR9565_2ANT | ATH9K_PCI_BT_ANT_DIV }, +	{ PCI_DEVICE_SUB(PCI_VENDOR_ID_ATHEROS, +			 0x0036, +			 0x185F, /* WNC */ +			 0x3027), +	  .driver_data = ATH9K_PCI_AR9565_2ANT | ATH9K_PCI_BT_ANT_DIV }, +	{ PCI_DEVICE_SUB(PCI_VENDOR_ID_ATHEROS, +			 0x0036, +			 0x185F, /* WNC */ +			 0xA120), +	  .driver_data = ATH9K_PCI_AR9565_2ANT | ATH9K_PCI_BT_ANT_DIV }, +	{ PCI_DEVICE_SUB(PCI_VENDOR_ID_ATHEROS, +			 0x0036, +			 PCI_VENDOR_ID_FOXCONN, +			 0xE07F), +	  .driver_data = ATH9K_PCI_AR9565_2ANT | ATH9K_PCI_BT_ANT_DIV }, +	{ PCI_DEVICE_SUB(PCI_VENDOR_ID_ATHEROS, +			 0x0036, +			 PCI_VENDOR_ID_FOXCONN, +			 0xE081), +	  .driver_data = ATH9K_PCI_AR9565_2ANT | ATH9K_PCI_BT_ANT_DIV }, +	{ PCI_DEVICE_SUB(PCI_VENDOR_ID_ATHEROS, +			 0x0036, +			 PCI_VENDOR_ID_LENOVO, +			 0x3026), +	  .driver_data = ATH9K_PCI_AR9565_2ANT | ATH9K_PCI_BT_ANT_DIV }, +	{ PCI_DEVICE_SUB(PCI_VENDOR_ID_ATHEROS, +			 0x0036, +			 PCI_VENDOR_ID_LENOVO, +			 0x4026), +	  .driver_data = ATH9K_PCI_AR9565_2ANT | ATH9K_PCI_BT_ANT_DIV }, +	{ PCI_DEVICE_SUB(PCI_VENDOR_ID_ATHEROS, +			 0x0036, +			 PCI_VENDOR_ID_ASUSTEK, +			 0x85F2), +	  .driver_data = ATH9K_PCI_AR9565_2ANT | ATH9K_PCI_BT_ANT_DIV }, +	{ PCI_DEVICE_SUB(PCI_VENDOR_ID_ATHEROS, +			 0x0036, +			 PCI_VENDOR_ID_DELL, +			 0x020E), +	  .driver_data = ATH9K_PCI_AR9565_2ANT | ATH9K_PCI_BT_ANT_DIV }, + +	/* PCI-E AR9565 (WB335) */ +	{ PCI_VDEVICE(ATHEROS, 0x0036), +	  .driver_data = ATH9K_PCI_BT_ANT_DIV }, +  	{ 0 }  }; @@ -298,7 +686,7 @@ static bool ath_pci_eeprom_read(struct ath_common *common, u32 off, u16 *data)  	struct ath_softc *sc = (struct ath_softc *) common->priv;  	struct ath9k_platform_data *pdata = sc->dev->platform_data; -	if (pdata) { +	if (pdata && !pdata->use_eeprom) {  		if (off >= (ARRAY_SIZE(pdata->eeprom_data))) {  			ath_err(common,  				"%s: eeprom read failed, offset %08x is out of range\n", @@ -470,9 +858,6 @@ static int ath_pci_probe(struct pci_dev *pdev, const struct pci_device_id *id)  	sc->mem = pcim_iomap_table(pdev)[0];  	sc->driver_data = id->driver_data; -	/* Will be cleared in ath9k_start() */ -	set_bit(SC_OP_INVALID, &sc->sc_flags); -  	ret = request_irq(pdev->irq, ath_isr, IRQF_SHARED, "ath9k", sc);  	if (ret) {  		dev_err(&pdev->dev, "request_irq failed\n"); @@ -529,6 +914,7 @@ static int ath_pci_suspend(struct device *device)  	 */  	ath9k_stop_btcoex(sc);  	ath9k_hw_disable(sc->sc_ah); +	del_timer_sync(&sc->sleep_timer);  	ath9k_hw_setpower(sc->sc_ah, ATH9K_PM_FULL_SLEEP);  	return 0;  | 
