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