LCOV - code coverage report
Current view: top level - drivers/net/r8169/base - rtl8168kb.c (source / functions) Hit Total Coverage
Test: Code coverage Lines: 0 74 0.0 %
Date: 2025-03-01 20:23:48 Functions: 0 5 0.0 %
Legend: Lines: hit not hit | Branches: + taken - not taken # not executed Branches: 0 18 0.0 %

           Branch data     Line data    Source code
       1                 :            : /* SPDX-License-Identifier: BSD-3-Clause
       2                 :            :  * Copyright(c) 2024 Realtek Corporation. All rights reserved
       3                 :            :  */
       4                 :            : 
       5                 :            : #include "../r8169_ethdev.h"
       6                 :            : #include "../r8169_hw.h"
       7                 :            : #include "../r8169_phy.h"
       8                 :            : #include "rtl8125a.h"
       9                 :            : #include "rtl8125b.h"
      10                 :            : 
      11                 :            : /* For RTL8168KB, CFG_METHOD_52,53 */
      12                 :            : 
      13                 :            : static void
      14                 :          0 : hw_init_rxcfg_8168kb(struct rtl_hw *hw)
      15                 :            : {
      16         [ #  # ]:          0 :         if (hw->mcfg == CFG_METHOD_52)
      17                 :          0 :                 RTL_W32(hw, RxConfig, Rx_Fetch_Number_8 |
      18                 :            :                         (RX_DMA_BURST_256 << RxCfgDMAShift));
      19         [ #  # ]:          0 :         else if (hw->mcfg == CFG_METHOD_53)
      20                 :          0 :                 RTL_W32(hw, RxConfig, Rx_Fetch_Number_8 | RxCfg_pause_slot_en |
      21                 :            :                         (RX_DMA_BURST_256 << RxCfgDMAShift));
      22                 :          0 : }
      23                 :            : 
      24                 :            : static void
      25                 :          0 : hw_ephy_config_8168kb(struct rtl_hw *hw)
      26                 :            : {
      27      [ #  #  # ]:          0 :         switch (hw->mcfg) {
      28                 :          0 :         case CFG_METHOD_52:
      29                 :          0 :                 rtl_ephy_write(hw, 0x04, 0xD000);
      30                 :          0 :                 rtl_ephy_write(hw, 0x0A, 0x8653);
      31                 :          0 :                 rtl_ephy_write(hw, 0x23, 0xAB66);
      32                 :          0 :                 rtl_ephy_write(hw, 0x20, 0x9455);
      33                 :          0 :                 rtl_ephy_write(hw, 0x21, 0x99FF);
      34                 :          0 :                 rtl_ephy_write(hw, 0x29, 0xFE04);
      35                 :            : 
      36                 :          0 :                 rtl_ephy_write(hw, 0x44, 0xD000);
      37                 :          0 :                 rtl_ephy_write(hw, 0x4A, 0x8653);
      38                 :          0 :                 rtl_ephy_write(hw, 0x63, 0xAB66);
      39                 :          0 :                 rtl_ephy_write(hw, 0x60, 0x9455);
      40                 :          0 :                 rtl_ephy_write(hw, 0x61, 0x99FF);
      41                 :          0 :                 rtl_ephy_write(hw, 0x69, 0xFE04);
      42                 :            : 
      43                 :          0 :                 rtl_clear_and_set_pcie_phy_bit(hw, 0x2A, (BIT_14 | BIT_13 | BIT_12),
      44                 :            :                                                (BIT_13 | BIT_12));
      45                 :          0 :                 rtl_clear_pcie_phy_bit(hw, 0x19, BIT_6);
      46                 :          0 :                 rtl_set_pcie_phy_bit(hw, 0x1B, (BIT_11 | BIT_10 | BIT_9));
      47                 :          0 :                 rtl_clear_pcie_phy_bit(hw, 0x1B, (BIT_14 | BIT_13 | BIT_12));
      48                 :          0 :                 rtl_ephy_write(hw, 0x02, 0x6042);
      49                 :          0 :                 rtl_ephy_write(hw, 0x06, 0x0014);
      50                 :            : 
      51                 :          0 :                 rtl_clear_and_set_pcie_phy_bit(hw, 0x6A, (BIT_14 | BIT_13 | BIT_12),
      52                 :            :                                                (BIT_13 | BIT_12));
      53                 :          0 :                 rtl_clear_pcie_phy_bit(hw, 0x59, BIT_6);
      54                 :          0 :                 rtl_set_pcie_phy_bit(hw, 0x5B, (BIT_11 | BIT_10 | BIT_9));
      55                 :          0 :                 rtl_clear_pcie_phy_bit(hw, 0x5B, (BIT_14 | BIT_13 | BIT_12));
      56                 :          0 :                 rtl_ephy_write(hw, 0x42, 0x6042);
      57                 :          0 :                 rtl_ephy_write(hw, 0x46, 0x0014);
      58                 :          0 :                 break;
      59                 :          0 :         case CFG_METHOD_53:
      60                 :          0 :                 rtl_ephy_write(hw, 0x0B, 0xA908);
      61                 :          0 :                 rtl_ephy_write(hw, 0x1E, 0x20EB);
      62                 :          0 :                 rtl_ephy_write(hw, 0x22, 0x0023);
      63                 :          0 :                 rtl_ephy_write(hw, 0x02, 0x60C2);
      64                 :          0 :                 rtl_ephy_write(hw, 0x29, 0xFF00);
      65                 :            : 
      66                 :          0 :                 rtl_ephy_write(hw, 0x4B, 0xA908);
      67                 :          0 :                 rtl_ephy_write(hw, 0x5E, 0x28EB);
      68                 :          0 :                 rtl_ephy_write(hw, 0x62, 0x0023);
      69                 :          0 :                 rtl_ephy_write(hw, 0x42, 0x60C2);
      70                 :          0 :                 rtl_ephy_write(hw, 0x69, 0xFF00);
      71                 :          0 :                 break;
      72                 :            :         }
      73                 :          0 : }
      74                 :            : 
      75                 :            : static void
      76                 :          0 : hw_phy_config_8168kb(struct rtl_hw *hw)
      77                 :            : {
      78      [ #  #  # ]:          0 :         switch (hw->mcfg) {
      79                 :          0 :         case CFG_METHOD_52:
      80                 :          0 :                 rtl_hw_phy_config_8125a_2(hw);
      81                 :          0 :                 break;
      82                 :          0 :         case CFG_METHOD_53:
      83                 :          0 :                 rtl_hw_phy_config_8125b_2(hw);
      84                 :          0 :                 break;
      85                 :            :         }
      86                 :          0 : }
      87                 :            : 
      88                 :            : static void
      89                 :          0 : hw_mac_mcu_config_8168kb(struct rtl_hw *hw)
      90                 :            : {
      91         [ #  # ]:          0 :         if (hw->NotWrMcuPatchCode)
      92                 :            :                 return;
      93                 :            : 
      94      [ #  #  # ]:          0 :         switch (hw->mcfg) {
      95                 :          0 :         case CFG_METHOD_52:
      96                 :          0 :                 rtl_set_mac_mcu_8125a_2(hw);
      97                 :          0 :                 break;
      98                 :          0 :         case CFG_METHOD_53:
      99                 :          0 :                 rtl_set_mac_mcu_8125b_2(hw);
     100                 :          0 :                 break;
     101                 :            :         }
     102                 :            : }
     103                 :            : 
     104                 :            : static void
     105                 :          0 : hw_phy_mcu_config_8168kb(struct rtl_hw *hw)
     106                 :            : {
     107      [ #  #  # ]:          0 :         switch (hw->mcfg) {
     108                 :          0 :         case CFG_METHOD_52:
     109                 :          0 :                 rtl_set_phy_mcu_8125a_2(hw);
     110                 :          0 :                 break;
     111                 :          0 :         case CFG_METHOD_53:
     112                 :          0 :                 rtl_set_phy_mcu_8125b_2(hw);
     113                 :          0 :                 break;
     114                 :            :         }
     115                 :          0 : }
     116                 :            : 
     117                 :            : const struct rtl_hw_ops rtl8168kb_ops = {
     118                 :            :         .hw_init_rxcfg     = hw_init_rxcfg_8168kb,
     119                 :            :         .hw_ephy_config    = hw_ephy_config_8168kb,
     120                 :            :         .hw_phy_config     = hw_phy_config_8168kb,
     121                 :            :         .hw_mac_mcu_config = hw_mac_mcu_config_8168kb,
     122                 :            :         .hw_phy_mcu_config = hw_phy_mcu_config_8168kb,
     123                 :            : };

Generated by: LCOV version 1.14