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 <a...@marian1000.go.ro> --- 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