mfd: rtsx: Fix PM suspend for 5227 & 5249
Fix rts5227&5249 failed send buffer cmd after suspend, PM_CTRL3 should reset before send any buffer cmd after suspend. Otherwise, buffer cmd will failed, this will lead resume fail. Signed-off-by: Micky Ching <micky_ching@realsil.com.cn> Signed-off-by: Lee Jones <lee.jones@linaro.org>
This commit is contained in:
		
					parent
					
						
							
								130dd5b039
							
						
					
				
			
			
				commit
				
					
						5cb5d9616a
					
				
			
		
					 6 changed files with 79 additions and 1 deletions
				
			
		|  | @ -707,6 +707,14 @@ | |||
| #define PM_CTRL1			0xFF44 | ||||
| #define PM_CTRL2			0xFF45 | ||||
| #define PM_CTRL3			0xFF46 | ||||
| #define   SDIO_SEND_PME_EN		0x80 | ||||
| #define   FORCE_RC_MODE_ON		0x40 | ||||
| #define   FORCE_RX50_LINK_ON		0x20 | ||||
| #define   D3_DELINK_MODE_EN		0x10 | ||||
| #define   USE_PESRTB_CTL_DELINK		0x08 | ||||
| #define   DELAY_PIN_WAKE		0x04 | ||||
| #define   RESET_PIN_WAKE		0x02 | ||||
| #define   PM_WAKE_EN			0x01 | ||||
| #define PM_CTRL4			0xFF47 | ||||
| 
 | ||||
| /* Memory mapping */ | ||||
|  | @ -752,6 +760,14 @@ | |||
| #define PHY_DUM_REG			0x1F | ||||
| 
 | ||||
| #define LCTLR				0x80 | ||||
| #define   LCTLR_EXT_SYNC		0x80 | ||||
| #define   LCTLR_COMMON_CLOCK_CFG	0x40 | ||||
| #define   LCTLR_RETRAIN_LINK		0x20 | ||||
| #define   LCTLR_LINK_DISABLE		0x10 | ||||
| #define   LCTLR_RCB			0x08 | ||||
| #define   LCTLR_RESERVED		0x04 | ||||
| #define   LCTLR_ASPM_CTL_MASK		0x03 | ||||
| 
 | ||||
| #define PCR_SETTING_REG1		0x724 | ||||
| #define PCR_SETTING_REG2		0x814 | ||||
| #define PCR_SETTING_REG3		0x747 | ||||
|  | @ -967,4 +983,16 @@ static inline u8 *rtsx_pci_get_cmd_data(struct rtsx_pcr *pcr) | |||
| 	return (u8 *)(pcr->host_cmds_ptr); | ||||
| } | ||||
| 
 | ||||
| static inline int rtsx_pci_update_cfg_byte(struct rtsx_pcr *pcr, int addr, | ||||
| 		u8 mask, u8 append) | ||||
| { | ||||
| 	int err; | ||||
| 	u8 val; | ||||
| 
 | ||||
| 	err = pci_read_config_byte(pcr->pci, addr, &val); | ||||
| 	if (err < 0) | ||||
| 		return err; | ||||
| 	return pci_write_config_byte(pcr->pci, addr, (val & mask) | append); | ||||
| } | ||||
| 
 | ||||
| #endif | ||||
|  |  | |||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue
	
	 Micky Ching
				Micky Ching