1 /* SPDX-License-Identifier: GPL-2.0 */ 2 /****************************************************************************** 3 * 4 * Copyright(c) 2007 - 2017 Realtek Corporation. 5 * 6 * This program is free software; you can redistribute it and/or modify it 7 * under the terms of version 2 of the GNU General Public License as 8 * published by the Free Software Foundation. 9 * 10 * This program is distributed in the hope that it will be useful, but WITHOUT 11 * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or 12 * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for 13 * more details. 14 * 15 *****************************************************************************/ 16 #ifndef __PCI_OSINTF_H 17 #define __PCI_OSINTF_H 18 19 #ifdef RTK_129X_PLATFORM 20 #define PCIE_SLOT1_MEM_START 0x9804F000 21 #define PCIE_SLOT1_MEM_LEN 0x1000 22 #define PCIE_SLOT1_CTRL_START 0x9804EC00 23 24 #define PCIE_SLOT2_MEM_START 0x9803C000 25 #define PCIE_SLOT2_MEM_LEN 0x1000 26 #define PCIE_SLOT2_CTRL_START 0x9803BC00 27 28 #define PCIE_MASK_OFFSET 0x100 /* mask offset from CTRL_START */ 29 #define PCIE_TRANSLATE_OFFSET 0x104 /* translate offset from CTRL_START */ 30 #endif 31 32 #define PCI_BC_CLK_REQ BIT0 33 #define PCI_BC_ASPM_L0s BIT1 34 #define PCI_BC_ASPM_L1 BIT2 35 #define PCI_BC_ASPM_L1Off BIT3 36 //#define PCI_BC_ASPM_LTR BIT4 37 //#define PCI_BC_ASPM_OBFF BIT5 38 39 void PlatformClearPciPMEStatus(PADAPTER Adapter); 40 void rtw_pci_aspm_config(_adapter *padapter); 41 void rtw_pci_aspm_config_l1off_general(_adapter *padapter, u8 eanble); 42 #ifdef CONFIG_64BIT_DMA 43 u8 PlatformEnableDMA64(PADAPTER Adapter); 44 #endif 45 #ifdef CONFIG_PCI_DYNAMIC_ASPM 46 void rtw_pci_set_aspm_lnkctl(_adapter *padapter, u8 mode); 47 void rtw_pci_set_l1_latency(_adapter *padapter, u8 mode); 48 rtw_pci_dynamic_aspm_set_mode(_adapter * padapter,u8 mode)49static inline void rtw_pci_dynamic_aspm_set_mode(_adapter *padapter, u8 mode) 50 { 51 struct dvobj_priv *pdvobjpriv = adapter_to_dvobj(padapter); 52 struct pci_priv *pcipriv = &(pdvobjpriv->pcipriv); 53 54 if (mode == pcipriv->aspm_mode) 55 return; 56 57 pcipriv->aspm_mode = mode; 58 59 #ifdef CONFIG_PCI_DYNAMIC_ASPM_LINK_CTRL 60 rtw_pci_set_aspm_lnkctl(padapter, mode); 61 #endif 62 #ifdef CONFIG_PCI_DYNAMIC_ASPM_L1_LATENCY 63 rtw_pci_set_l1_latency(padapter, mode); 64 #endif 65 } 66 #else 67 #define rtw_pci_dynamic_aspm_set_mode(adapter, mode) 68 #endif 69 70 #endif 71