Hello.
On 03/11/2016 06:06 PM, Corcodel Marian wrote:
On pci express not support latency timer.For more info read file
/drivers/pci/pci.c
on pcibios_set_master function.
Signed-off-by: Corcodel Marian <[email protected]>
---
drivers/net/ethernet/realtek/r8169.c | 10 +++++++---
1 file changed, 7 insertions(+), 3 deletions(-)
diff --git a/drivers/net/ethernet/realtek/r8169.c
b/drivers/net/ethernet/realtek/r8169.c
index 41750df..02aec96 100644
--- a/drivers/net/ethernet/realtek/r8169.c
+++ b/drivers/net/ethernet/realtek/r8169.c
@@ -753,6 +753,7 @@ struct rtl8169_private {
struct ring_info tx_skb[NUM_TX_DESC]; /* Tx data buffers */
struct timer_list timer;
u16 cp_cmd;
+ bool pcie;
u16 event_slow;
@@ -3757,8 +3758,8 @@ static void rtl8169_init_phy(struct net_device *dev,
struct rtl8169_private *tp)
dprintk("Set MAC Reg C+CR Offset 0x82h = 0x01h\n");
RTL_W8(0x82, 0x01);
}
-
- pci_write_config_byte(tp->pci_dev, PCI_LATENCY_TIMER, 0x40);
+ if (tp->pcie == 0)
Haven't you just declared this field as *bool*?
+ pci_write_config_byte(tp->pci_dev, PCI_LATENCY_TIMER, 0x40);
if (tp->mac_version <= RTL_GIGA_MAC_VER_06)
pci_write_config_byte(tp->pci_dev, PCI_CACHE_LINE_SIZE, 0x08);
@@ -7083,8 +7084,11 @@ rtl_init_one(struct pci_dev *pdev, const struct
pci_device_id *ent)
}
tp->mmio_addr = ioaddr;
- if (!pci_is_pcie(pdev))
+ if (!pci_is_pcie(pdev)) {
netif_info(tp, probe, dev, "not PCI Express\n");
+ tp->pcie = 0;
+ } else
+ tp->pcie = 1;
Same question, you should assign true/false.
[...]
MBR, Sergei