|
@@ -55,18 +55,19 @@
|
|
#define TLP_PAYLOAD_SIZE 0x01
|
|
#define TLP_PAYLOAD_SIZE 0x01
|
|
#define TLP_READ_TAG 0x1d
|
|
#define TLP_READ_TAG 0x1d
|
|
#define TLP_WRITE_TAG 0x10
|
|
#define TLP_WRITE_TAG 0x10
|
|
|
|
+#define RP_DEVFN 0
|
|
|
|
+#define TLP_REQ_ID(bus, devfn) (((bus) << 8) | (devfn))
|
|
#define TLP_CFG_DW0(pcie, bus) \
|
|
#define TLP_CFG_DW0(pcie, bus) \
|
|
((((bus == pcie->root_bus_nr) ? TLP_FMTTYPE_CFGRD0 \
|
|
((((bus == pcie->root_bus_nr) ? TLP_FMTTYPE_CFGRD0 \
|
|
: TLP_FMTTYPE_CFGRD1) << 24) | \
|
|
: TLP_FMTTYPE_CFGRD1) << 24) | \
|
|
TLP_PAYLOAD_SIZE)
|
|
TLP_PAYLOAD_SIZE)
|
|
-#define TLP_CFG_DW1(reqid, tag, be) (((reqid) << 16) | (tag << 8) | (be))
|
|
|
|
|
|
+#define TLP_CFG_DW1(pcie, tag, be) \
|
|
|
|
+ (((TLP_REQ_ID(pcie->root_bus_nr, RP_DEVFN)) << 16) | (tag << 8) | (be))
|
|
#define TLP_CFG_DW2(bus, devfn, offset) \
|
|
#define TLP_CFG_DW2(bus, devfn, offset) \
|
|
(((bus) << 24) | ((devfn) << 16) | (offset))
|
|
(((bus) << 24) | ((devfn) << 16) | (offset))
|
|
-#define TLP_REQ_ID(bus, devfn) (((bus) << 8) | (devfn))
|
|
|
|
#define TLP_COMP_STATUS(s) (((s) >> 12) & 7)
|
|
#define TLP_COMP_STATUS(s) (((s) >> 12) & 7)
|
|
#define TLP_HDR_SIZE 3
|
|
#define TLP_HDR_SIZE 3
|
|
#define TLP_LOOP 500
|
|
#define TLP_LOOP 500
|
|
-#define RP_DEVFN 0
|
|
|
|
|
|
|
|
#define LINK_UP_TIMEOUT HZ
|
|
#define LINK_UP_TIMEOUT HZ
|
|
#define LINK_RETRAIN_TIMEOUT HZ
|
|
#define LINK_RETRAIN_TIMEOUT HZ
|
|
@@ -222,8 +223,7 @@ static int tlp_cfg_dword_read(struct altera_pcie *pcie, u8 bus, u32 devfn,
|
|
u32 headers[TLP_HDR_SIZE];
|
|
u32 headers[TLP_HDR_SIZE];
|
|
|
|
|
|
headers[0] = TLP_CFG_DW0(pcie, bus);
|
|
headers[0] = TLP_CFG_DW0(pcie, bus);
|
|
- headers[1] = TLP_CFG_DW1(TLP_REQ_ID(pcie->root_bus_nr, RP_DEVFN),
|
|
|
|
- TLP_READ_TAG, byte_en);
|
|
|
|
|
|
+ headers[1] = TLP_CFG_DW1(pcie, TLP_READ_TAG, byte_en);
|
|
headers[2] = TLP_CFG_DW2(bus, devfn, where);
|
|
headers[2] = TLP_CFG_DW2(bus, devfn, where);
|
|
|
|
|
|
tlp_write_packet(pcie, headers, 0, false);
|
|
tlp_write_packet(pcie, headers, 0, false);
|
|
@@ -238,8 +238,7 @@ static int tlp_cfg_dword_write(struct altera_pcie *pcie, u8 bus, u32 devfn,
|
|
int ret;
|
|
int ret;
|
|
|
|
|
|
headers[0] = TLP_CFG_DW0(pcie, bus);
|
|
headers[0] = TLP_CFG_DW0(pcie, bus);
|
|
- headers[1] = TLP_CFG_DW1(TLP_REQ_ID(pcie->root_bus_nr, RP_DEVFN),
|
|
|
|
- TLP_WRITE_TAG, byte_en);
|
|
|
|
|
|
+ headers[1] = TLP_CFG_DW1(pcie, TLP_WRITE_TAG, byte_en);
|
|
headers[2] = TLP_CFG_DW2(bus, devfn, where);
|
|
headers[2] = TLP_CFG_DW2(bus, devfn, where);
|
|
|
|
|
|
/* check alignment to Qword */
|
|
/* check alignment to Qword */
|