All of lore.kernel.org
 help / color / mirror / Atom feed
From: kernel test robot <lkp@intel.com>
To: kbuild@lists.01.org
Subject: [frank-w-bpi-r2-4.14:5.17-prepare 4/13] drivers/net/phy/rtl8367s_mdio.c:409:5: warning: Value stored to 'type' is never read [clang-analyzer-deadcode.DeadStores]
Date: Wed, 09 Feb 2022 09:46:56 +0800	[thread overview]
Message-ID: <202202090932.Ctx5XBbl-lkp@intel.com> (raw)

[-- Attachment #1: Type: text/plain, Size: 49025 bytes --]

CC: kbuild-all(a)lists.01.org
TO: Frank Wunderlich <frank-w@public-files.de>

tree:   https://github.com/frank-w/BPI-R2-4.14 5.17-prepare
head:   184c5d6eb630c7813afa7d0b061daf73b5fe342b
commit: 763d02319f60ea15e7af71c8222bbe099d39fa7f [4/13] net: phy: add rtl8367 reduced phy driver
:::::: branch date: 11 days ago
:::::: commit date: 2 weeks ago
config: riscv-randconfig-c006-20220207 (https://download.01.org/0day-ci/archive/20220209/202202090932.Ctx5XBbl-lkp(a)intel.com/config)
compiler: clang version 15.0.0 (https://github.com/llvm/llvm-project 0d8850ae2cae85d49bea6ae0799fa41c7202c05c)
reproduce (this is a W=1 build):
        wget https://raw.githubusercontent.com/intel/lkp-tests/master/sbin/make.cross -O ~/bin/make.cross
        chmod +x ~/bin/make.cross
        # install riscv cross compiling tool for clang build
        # apt-get install binutils-riscv64-linux-gnu
        # https://github.com/frank-w/BPI-R2-4.14/commit/763d02319f60ea15e7af71c8222bbe099d39fa7f
        git remote add frank-w-bpi-r2-4.14 https://github.com/frank-w/BPI-R2-4.14
        git fetch --no-tags frank-w-bpi-r2-4.14 5.17-prepare
        git checkout 763d02319f60ea15e7af71c8222bbe099d39fa7f
        # save the config file to linux build tree
        COMPILER_INSTALL_PATH=$HOME/0day COMPILER=clang make.cross ARCH=riscv clang-analyzer 

If you fix the issue, kindly add following tag as appropriate
Reported-by: kernel test robot <lkp@intel.com>


clang-analyzer warnings: (new ones prefixed by >>)
   drivers/usb/serial/ir-usb.c:209:2: warning: Value stored to 'rates' is never read [clang-analyzer-deadcode.DeadStores]
           rates = le16_to_cpu(irda_desc->wBaudRate);
           ^
   drivers/usb/serial/ir-usb.c:209:2: note: Value stored to 'rates' is never read
   Suppressed 3 warnings (3 in non-user code).
   Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well.
   3 warnings generated.
   Suppressed 3 warnings (3 in non-user code).
   Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well.
   3 warnings generated.
   Suppressed 3 warnings (3 in non-user code).
   Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well.
   3 warnings generated.
   Suppressed 3 warnings (3 in non-user code).
   Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well.
   3 warnings generated.
   Suppressed 3 warnings (3 in non-user code).
   Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well.
   3 warnings generated.
   Suppressed 3 warnings (3 in non-user code).
   Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well.
   3 warnings generated.
   Suppressed 3 warnings (3 in non-user code).
   Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well.
   3 warnings generated.
   Suppressed 3 warnings (3 in non-user code).
   Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well.
   5 warnings generated.
   drivers/media/i2c/adv7170.c:361:3: warning: Value stored to 'i' is never read [clang-analyzer-deadcode.DeadStores]
                   i = adv7170_write(sd, 0x07, TR0MODE | TR0RST);
                   ^   ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   drivers/media/i2c/adv7170.c:361:3: note: Value stored to 'i' is never read
                   i = adv7170_write(sd, 0x07, TR0MODE | TR0RST);
                   ^   ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   drivers/media/i2c/adv7170.c:362:3: warning: Value stored to 'i' is never read [clang-analyzer-deadcode.DeadStores]
                   i = adv7170_write(sd, 0x07, TR0MODE);
                   ^   ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   drivers/media/i2c/adv7170.c:362:3: note: Value stored to 'i' is never read
                   i = adv7170_write(sd, 0x07, TR0MODE);
                   ^   ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   Suppressed 3 warnings (3 in non-user code).
   Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well.
   3 warnings generated.
   Suppressed 3 warnings (3 in non-user code).
   Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well.
   3 warnings generated.
   Suppressed 3 warnings (3 in non-user code).
   Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well.
   3 warnings generated.
   Suppressed 3 warnings (3 in non-user code).
   Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well.
   3 warnings generated.
   Suppressed 3 warnings (3 in non-user code).
   Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well.
   3 warnings generated.
   Suppressed 3 warnings (3 in non-user code).
   Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well.
   3 warnings generated.
   Suppressed 3 warnings (3 in non-user code).
   Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well.
   3 warnings generated.
   Suppressed 3 warnings (3 in non-user code).
   Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well.
   4 warnings generated.
   Suppressed 4 warnings (4 in non-user code).
   Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well.
   3 warnings generated.
   Suppressed 3 warnings (3 in non-user code).
   Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well.
   3 warnings generated.
   Suppressed 3 warnings (3 in non-user code).
   Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well.
   4 warnings generated.
   drivers/net/wireless/mediatek/mt76/mt76x02_usb_core.c:157:2: warning: Value stored to 'tsf' is never read [clang-analyzer-deadcode.DeadStores]
           tsf = (u64)dw0 << 32 | dw1;
           ^     ~~~~~~~~~~~~~~~~~~~~
   drivers/net/wireless/mediatek/mt76/mt76x02_usb_core.c:157:2: note: Value stored to 'tsf' is never read
           tsf = (u64)dw0 << 32 | dw1;
           ^     ~~~~~~~~~~~~~~~~~~~~
   Suppressed 3 warnings (3 in non-user code).
   Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well.
   3 warnings generated.
   Suppressed 3 warnings (3 in non-user code).
   Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well.
   3 warnings generated.
   Suppressed 3 warnings (3 in non-user code).
   Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well.
   4 warnings generated.
   drivers/net/phy/mscc/mscc_ptp.c:1446:2: warning: Value stored to 'val' is never read [clang-analyzer-deadcode.DeadStores]
           val = vsc85xx_ts_read_csr(phydev, PROCESSOR, MSCC_PHY_PTP_VERSION_CODE);
           ^     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   drivers/net/phy/mscc/mscc_ptp.c:1446:2: note: Value stored to 'val' is never read
           val = vsc85xx_ts_read_csr(phydev, PROCESSOR, MSCC_PHY_PTP_VERSION_CODE);
           ^     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   Suppressed 3 warnings (3 in non-user code).
   Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well.
   3 warnings generated.
   Suppressed 3 warnings (3 in non-user code).
   Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well.
   7 warnings generated.
>> drivers/net/phy/rtl8367s_mdio.c:409:5: warning: Value stored to 'type' is never read [clang-analyzer-deadcode.DeadStores]
       type = 0;
       ^      ~
   drivers/net/phy/rtl8367s_mdio.c:409:5: note: Value stored to 'type' is never read
       type = 0;
       ^      ~
   drivers/net/phy/rtl8367s_mdio.c:766:40: warning: The left operand of '<<' is a garbage value [clang-analyzer-core.UndefinedBinaryOperatorResult]
       reg_data |= pPortAbility->mstfault << 9;
                                          ^
   drivers/net/phy/rtl8367s_mdio.c:2391:6: note: Assuming 'mdio' is non-null
           if (!mdio)
               ^~~~~
   drivers/net/phy/rtl8367s_mdio.c:2391:2: note: Taking false branch
           if (!mdio)
           ^
   drivers/net/phy/rtl8367s_mdio.c:2396:6: note: Assuming 'mdio_bus' is non-null
           if (!mdio_bus)
               ^~~~~~~~~
   drivers/net/phy/rtl8367s_mdio.c:2396:2: note: Taking false branch
           if (!mdio_bus)
           ^
   drivers/net/phy/rtl8367s_mdio.c:2401:6: note: Assuming 'gsw' is non-null
           if (!gsw)
               ^~~~
   drivers/net/phy/rtl8367s_mdio.c:2401:2: note: Taking false branch
           if (!gsw)
           ^
   drivers/net/phy/rtl8367s_mdio.c:2409:7: note: 'ret' is 0
           if (!ret)
                ^~~
   drivers/net/phy/rtl8367s_mdio.c:2409:2: note: Taking true branch
           if (!ret)
           ^
   drivers/net/phy/rtl8367s_mdio.c:2416:6: note: Assuming field 'reset_pin' is >= 0
           if (gsw->reset_pin < 0)
               ^~~~~~~~~~~~~~~~~~
   drivers/net/phy/rtl8367s_mdio.c:2416:2: note: Taking false branch
           if (gsw->reset_pin < 0)
           ^
   drivers/net/phy/rtl8367s_mdio.c:2421:2: note: Calling 'init_gsw'
           init_gsw(gsw);
           ^~~~~~~~~~~~~
   drivers/net/phy/rtl8367s_mdio.c:2349:2: note: Taking true branch
           if (rtl8367s_hw_init(gsw))
           ^
   drivers/net/phy/rtl8367s_mdio.c:2350:3: note: Loop condition is false.  Exiting loop
                   printk("RTL8367RB Switch Init Failure !!!\n");
                   ^
   include/linux/printk.h:446:26: note: expanded from macro 'printk'
   #define printk(fmt, ...) printk_index_wrap(_printk, fmt, ##__VA_ARGS__)
                            ^
   include/linux/printk.h:417:3: note: expanded from macro 'printk_index_wrap'
                   __printk_index_emit(_fmt, NULL, NULL);                  \
                   ^
   include/linux/printk.h:392:34: note: expanded from macro '__printk_index_emit'
   #define __printk_index_emit(...) do {} while (0)
                                    ^
   drivers/net/phy/rtl8367s_mdio.c:2355:6: note: Assuming 'ret' is 0
           if (!ret && (!strcasecmp(pm, "rgmii,rgmii")))
               ^~~~
   drivers/net/phy/rtl8367s_mdio.c:2355:6: note: Left side of '&&' is true
   drivers/net/phy/rtl8367s_mdio.c:2355:2: note: Taking true branch
           if (!ret && (!strcasecmp(pm, "rgmii,rgmii")))
           ^
   drivers/net/phy/rtl8367s_mdio.c:2358:3: note: Loop condition is false.  Exiting loop
                   printk(KERN_ALERT "DEBUG: Passed %s %d rgmii+rgmii\n",__FUNCTION__,__LINE__);
                   ^
   include/linux/printk.h:446:26: note: expanded from macro 'printk'
   #define printk(fmt, ...) printk_index_wrap(_printk, fmt, ##__VA_ARGS__)
                            ^
   include/linux/printk.h:417:3: note: expanded from macro 'printk_index_wrap'
                   __printk_index_emit(_fmt, NULL, NULL);                  \
                   ^
   include/linux/printk.h:392:34: note: expanded from macro '__printk_index_emit'
   #define __printk_index_emit(...) do {} while (0)
                                    ^
   drivers/net/phy/rtl8367s_mdio.c:2359:3: note: Calling 'set_rtl8367s_rgmii_ep0'
                   set_rtl8367s_rgmii_ep0(gsw);
                   ^~~~~~~~~~~~~~~~~~~~~~~~~~~
   drivers/net/phy/rtl8367s_mdio.c:2319:2: note: Calling 'rtk_port_macForceLinkExt_set'
           rtk_port_macForceLinkExt_set(EXT_PORT0, mode, &mac_cfg);
           ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   drivers/net/phy/rtl8367s_mdio.c:1270:5: note: Assuming 'init_state' is equal to INIT_COMPLETED
       RTK_CHK_INIT_STATE();
       ^
   drivers/net/phy/rtl8367s_mdio.h:361:6: note: expanded from macro 'RTK_CHK_INIT_STATE'
                   if(init_state != INIT_COMPLETED)        \
                      ^~~~~~~~~~~~~~~~~~~~~~~~~~~~
   drivers/net/phy/rtl8367s_mdio.c:1270:5: note: Taking false branch
       RTK_CHK_INIT_STATE();
       ^
   drivers/net/phy/rtl8367s_mdio.h:361:3: note: expanded from macro 'RTK_CHK_INIT_STATE'
                   if(init_state != INIT_COMPLETED)        \
                   ^
   drivers/net/phy/rtl8367s_mdio.c:1270:5: note: Loop condition is false.  Exiting loop
       RTK_CHK_INIT_STATE();
       ^
   drivers/net/phy/rtl8367s_mdio.h:359:2: note: expanded from macro 'RTK_CHK_INIT_STATE'
           do                                              \
           ^
   drivers/net/phy/rtl8367s_mdio.c:1273:5: note: Taking false branch

vim +/type +409 drivers/net/phy/rtl8367s_mdio.c

763d02319f60ea Frank Wunderlich 2022-01-15  377  
763d02319f60ea Frank Wunderlich 2022-01-15  378  /* rtl8367c_setAsicPortExtMode  Set external interface mode configuration */
763d02319f60ea Frank Wunderlich 2022-01-15  379  static ret_t rtl8367c_setAsicPortExtMode(rtk_uint32 id, rtk_uint32 mode)
763d02319f60ea Frank Wunderlich 2022-01-15  380  {
763d02319f60ea Frank Wunderlich 2022-01-15  381      ret_t   retVal;
763d02319f60ea Frank Wunderlich 2022-01-15  382      rtk_uint32 i, regValue, type, option;
763d02319f60ea Frank Wunderlich 2022-01-15  383      rtk_uint32 idx;
763d02319f60ea Frank Wunderlich 2022-01-15  384      rtk_uint32 redData[][2] =   { {0x04D7, 0x0480}, {0xF994, 0x0481}, {0x21A2, 0x0482}, {0x6960, 0x0483}, {0x9728, 0x0484}, {0x9D85, 0x0423}, {0xD810, 0x0424}, {0x83F2, 0x002E} };
763d02319f60ea Frank Wunderlich 2022-01-15  385      rtk_uint32 redDataSB[][2] = { {0x04D7, 0x0480}, {0xF994, 0x0481}, {0x31A2, 0x0482}, {0x6960, 0x0483}, {0x9728, 0x0484}, {0x9D85, 0x0423}, {0xD810, 0x0424}, {0x83F2, 0x002E} };
763d02319f60ea Frank Wunderlich 2022-01-15  386      rtk_uint32 redData1[][2] =  { {0x82F1, 0x0500}, {0xF195, 0x0501}, {0x31A2, 0x0502}, {0x796C, 0x0503}, {0x9728, 0x0504}, {0x9D85, 0x0423}, {0xD810, 0x0424}, {0x0F80, 0x0001}, {0x83F2, 0x002E} };
763d02319f60ea Frank Wunderlich 2022-01-15  387      rtk_uint32 redData5[][2] =  { {0x82F1, 0x0500}, {0xF195, 0x0501}, {0x31A2, 0x0502}, {0x796C, 0x0503}, {0x9728, 0x0504}, {0x9D85, 0x0423}, {0xD810, 0x0424}, {0x0F80, 0x0001}, {0x83F2, 0x002E} };
763d02319f60ea Frank Wunderlich 2022-01-15  388      rtk_uint32 redData6[][2] =  { {0x82F1, 0x0500}, {0xF195, 0x0501}, {0x31A2, 0x0502}, {0x796C, 0x0503}, {0x9728, 0x0504}, {0x9D85, 0x0423}, {0xD810, 0x0424}, {0x0F80, 0x0001}, {0x83F2, 0x002E} };
763d02319f60ea Frank Wunderlich 2022-01-15  389      rtk_uint32 redData8[][2] =  { {0x82F1, 0x0500}, {0xF995, 0x0501}, {0x31A2, 0x0502}, {0x796C, 0x0503}, {0x9728, 0x0504}, {0x9D85, 0x0423}, {0xD810, 0x0424}, {0x0F80, 0x0001}, {0x83F2, 0x002E} };
763d02319f60ea Frank Wunderlich 2022-01-15  390      rtk_uint32 redData9[][2] =  { {0x82F1, 0x0500}, {0xF995, 0x0501}, {0x31A2, 0x0502}, {0x796C, 0x0503}, {0x9728, 0x0504}, {0x9D85, 0x0423}, {0xD810, 0x0424}, {0x0F80, 0x0001}, {0x83F2, 0x002E} };
763d02319f60ea Frank Wunderlich 2022-01-15  391      rtk_uint32 redDataHB[][2] = { {0x82F0, 0x0500}, {0xF195, 0x0501}, {0x31A2, 0x0502}, {0x7960, 0x0503}, {0x9728, 0x0504}, {0x9D85, 0x0423}, {0xD810, 0x0424}, {0x0F80, 0x0001}, {0x83F2, 0x002E} };
763d02319f60ea Frank Wunderlich 2022-01-15  392  
763d02319f60ea Frank Wunderlich 2022-01-15  393      if(id >= RTL8367C_EXTNO)
763d02319f60ea Frank Wunderlich 2022-01-15  394          return RT_ERR_OUT_OF_RANGE;
763d02319f60ea Frank Wunderlich 2022-01-15  395  
763d02319f60ea Frank Wunderlich 2022-01-15  396      if(mode >= EXT_END)
763d02319f60ea Frank Wunderlich 2022-01-15  397          return RT_ERR_OUT_OF_RANGE;
763d02319f60ea Frank Wunderlich 2022-01-15  398  
763d02319f60ea Frank Wunderlich 2022-01-15  399      /* magic number*/
763d02319f60ea Frank Wunderlich 2022-01-15  400      if((retVal = rtl8367c_setAsicReg(0x13C2, 0x0249)) != RT_ERR_OK)
763d02319f60ea Frank Wunderlich 2022-01-15  401          return retVal;
763d02319f60ea Frank Wunderlich 2022-01-15  402      /* Chip num */
763d02319f60ea Frank Wunderlich 2022-01-15  403      if((retVal = rtl8367c_getAsicReg(0x1300, &regValue)) != RT_ERR_OK)
763d02319f60ea Frank Wunderlich 2022-01-15  404          return retVal;
763d02319f60ea Frank Wunderlich 2022-01-15  405  
763d02319f60ea Frank Wunderlich 2022-01-15  406      if((retVal = rtl8367c_setAsicReg(0x13C2, 0x0000)) != RT_ERR_OK)
763d02319f60ea Frank Wunderlich 2022-01-15  407          return retVal;
763d02319f60ea Frank Wunderlich 2022-01-15  408  
763d02319f60ea Frank Wunderlich 2022-01-15 @409      type = 0;
763d02319f60ea Frank Wunderlich 2022-01-15  410  
763d02319f60ea Frank Wunderlich 2022-01-15  411      switch (regValue)
763d02319f60ea Frank Wunderlich 2022-01-15  412      {
763d02319f60ea Frank Wunderlich 2022-01-15  413          case 0x0276:
763d02319f60ea Frank Wunderlich 2022-01-15  414          case 0x0597:
763d02319f60ea Frank Wunderlich 2022-01-15  415          case 0x6367:
763d02319f60ea Frank Wunderlich 2022-01-15  416              type = 1;
763d02319f60ea Frank Wunderlich 2022-01-15  417              break;
763d02319f60ea Frank Wunderlich 2022-01-15  418          case 0x0652:
763d02319f60ea Frank Wunderlich 2022-01-15  419          case 0x6368:
763d02319f60ea Frank Wunderlich 2022-01-15  420              type = 2;
763d02319f60ea Frank Wunderlich 2022-01-15  421              break;
763d02319f60ea Frank Wunderlich 2022-01-15  422          case 0x0801:
763d02319f60ea Frank Wunderlich 2022-01-15  423          case 0x6511:
763d02319f60ea Frank Wunderlich 2022-01-15  424              type = 3;
763d02319f60ea Frank Wunderlich 2022-01-15  425              break;
763d02319f60ea Frank Wunderlich 2022-01-15  426          default:
763d02319f60ea Frank Wunderlich 2022-01-15  427              return RT_ERR_FAILED;
763d02319f60ea Frank Wunderlich 2022-01-15  428      }
763d02319f60ea Frank Wunderlich 2022-01-15  429  
763d02319f60ea Frank Wunderlich 2022-01-15  430  
763d02319f60ea Frank Wunderlich 2022-01-15  431      if (1==type)
763d02319f60ea Frank Wunderlich 2022-01-15  432      {
763d02319f60ea Frank Wunderlich 2022-01-15  433          if((mode == EXT_1000X_100FX) || (mode == EXT_1000X) || (mode == EXT_100FX))
763d02319f60ea Frank Wunderlich 2022-01-15  434          {
763d02319f60ea Frank Wunderlich 2022-01-15  435              if((retVal = rtl8367c_setAsicRegBit(RTL8367C_REG_REG_TO_ECO4, 5, 1)) != RT_ERR_OK)
763d02319f60ea Frank Wunderlich 2022-01-15  436                  return retVal;
763d02319f60ea Frank Wunderlich 2022-01-15  437  
763d02319f60ea Frank Wunderlich 2022-01-15  438              if((retVal = rtl8367c_setAsicRegBit(RTL8367C_REG_REG_TO_ECO4, 7, 1)) != RT_ERR_OK)
763d02319f60ea Frank Wunderlich 2022-01-15  439                  return retVal;
763d02319f60ea Frank Wunderlich 2022-01-15  440  
763d02319f60ea Frank Wunderlich 2022-01-15  441              if ((retVal = rtl8367c_setAsicRegBit(RTL8367C_REG_CHIP_RESET, RTL8367C_DW8051_RST_OFFSET, 1)) != RT_ERR_OK)
763d02319f60ea Frank Wunderlich 2022-01-15  442                  return retVal;
763d02319f60ea Frank Wunderlich 2022-01-15  443  
763d02319f60ea Frank Wunderlich 2022-01-15  444              if ((retVal = rtl8367c_setAsicRegBit(RTL8367C_REG_MISCELLANEOUS_CONFIGURE0, RTL8367C_DW8051_EN_OFFSET, 1)) != RT_ERR_OK)
763d02319f60ea Frank Wunderlich 2022-01-15  445                  return retVal;
763d02319f60ea Frank Wunderlich 2022-01-15  446  
763d02319f60ea Frank Wunderlich 2022-01-15  447              if ((retVal = rtl8367c_setAsicRegBit(RTL8367C_REG_DW8051_RDY, RTL8367C_ACS_IROM_ENABLE_OFFSET, 1)) != RT_ERR_OK)
763d02319f60ea Frank Wunderlich 2022-01-15  448                  return retVal;
763d02319f60ea Frank Wunderlich 2022-01-15  449  
763d02319f60ea Frank Wunderlich 2022-01-15  450              if ((retVal = rtl8367c_setAsicRegBit(RTL8367C_REG_DW8051_RDY, RTL8367C_IROM_MSB_OFFSET, 0)) != RT_ERR_OK)
763d02319f60ea Frank Wunderlich 2022-01-15  451                  return retVal;
763d02319f60ea Frank Wunderlich 2022-01-15  452  /*
763d02319f60ea Frank Wunderlich 2022-01-15  453              if(mode == EXT_1000X_100FX)
763d02319f60ea Frank Wunderlich 2022-01-15  454              {
763d02319f60ea Frank Wunderlich 2022-01-15  455                  for(idx = 0; idx < FIBER2_AUTO_INIT_SIZE; idx++)
763d02319f60ea Frank Wunderlich 2022-01-15  456                  {
763d02319f60ea Frank Wunderlich 2022-01-15  457                      if ((retVal = rtl8367c_setAsicReg(0xE000 + idx, (rtk_uint32)Fiber2_Auto[idx])) != RT_ERR_OK)
763d02319f60ea Frank Wunderlich 2022-01-15  458                          return retVal;
763d02319f60ea Frank Wunderlich 2022-01-15  459                  }
763d02319f60ea Frank Wunderlich 2022-01-15  460              }
763d02319f60ea Frank Wunderlich 2022-01-15  461  
763d02319f60ea Frank Wunderlich 2022-01-15  462              if(mode == EXT_1000X)
763d02319f60ea Frank Wunderlich 2022-01-15  463              {
763d02319f60ea Frank Wunderlich 2022-01-15  464                  for(idx = 0; idx < FIBER2_1G_INIT_SIZE; idx++)
763d02319f60ea Frank Wunderlich 2022-01-15  465                  {
763d02319f60ea Frank Wunderlich 2022-01-15  466                      if ((retVal = rtl8367c_setAsicReg(0xE000 + idx, (rtk_uint32)Fiber2_1G[idx])) != RT_ERR_OK)
763d02319f60ea Frank Wunderlich 2022-01-15  467                          return retVal;
763d02319f60ea Frank Wunderlich 2022-01-15  468                  }
763d02319f60ea Frank Wunderlich 2022-01-15  469              }
763d02319f60ea Frank Wunderlich 2022-01-15  470  
763d02319f60ea Frank Wunderlich 2022-01-15  471              if(mode == EXT_100FX)
763d02319f60ea Frank Wunderlich 2022-01-15  472              {
763d02319f60ea Frank Wunderlich 2022-01-15  473                  for(idx = 0; idx < FIBER2_100M_INIT_SIZE; idx++)
763d02319f60ea Frank Wunderlich 2022-01-15  474                  {
763d02319f60ea Frank Wunderlich 2022-01-15  475                      if ((retVal = rtl8367c_setAsicReg(0xE000 + idx, (rtk_uint32)Fiber2_100M[idx])) != RT_ERR_OK)
763d02319f60ea Frank Wunderlich 2022-01-15  476                          return retVal;
763d02319f60ea Frank Wunderlich 2022-01-15  477                  }
763d02319f60ea Frank Wunderlich 2022-01-15  478              }
763d02319f60ea Frank Wunderlich 2022-01-15  479  */
763d02319f60ea Frank Wunderlich 2022-01-15  480              if ((retVal = rtl8367c_setAsicRegBit(RTL8367C_REG_DW8051_RDY, RTL8367C_IROM_MSB_OFFSET, 0)) != RT_ERR_OK)
763d02319f60ea Frank Wunderlich 2022-01-15  481                  return retVal;
763d02319f60ea Frank Wunderlich 2022-01-15  482  
763d02319f60ea Frank Wunderlich 2022-01-15  483              if ((retVal = rtl8367c_setAsicRegBit(RTL8367C_REG_DW8051_RDY, RTL8367C_ACS_IROM_ENABLE_OFFSET, 0)) != RT_ERR_OK)
763d02319f60ea Frank Wunderlich 2022-01-15  484                  return retVal;
763d02319f60ea Frank Wunderlich 2022-01-15  485  
763d02319f60ea Frank Wunderlich 2022-01-15  486              if ((retVal = rtl8367c_setAsicRegBit(RTL8367C_REG_CHIP_RESET, RTL8367C_DW8051_RST_OFFSET, 0)) != RT_ERR_OK)
763d02319f60ea Frank Wunderlich 2022-01-15  487                  return retVal;
763d02319f60ea Frank Wunderlich 2022-01-15  488          }
763d02319f60ea Frank Wunderlich 2022-01-15  489  
763d02319f60ea Frank Wunderlich 2022-01-15  490          if(mode == EXT_GMII)
763d02319f60ea Frank Wunderlich 2022-01-15  491          {
763d02319f60ea Frank Wunderlich 2022-01-15  492              if( (retVal = rtl8367c_setAsicRegBit(RTL8367C_REG_EXT0_RGMXF, RTL8367C_EXT0_RGTX_INV_OFFSET, 1)) != RT_ERR_OK)
763d02319f60ea Frank Wunderlich 2022-01-15  493                  return retVal;
763d02319f60ea Frank Wunderlich 2022-01-15  494  
763d02319f60ea Frank Wunderlich 2022-01-15  495              if( (retVal = rtl8367c_setAsicRegBit(RTL8367C_REG_EXT1_RGMXF, RTL8367C_EXT1_RGTX_INV_OFFSET, 1)) != RT_ERR_OK)
763d02319f60ea Frank Wunderlich 2022-01-15  496                  return retVal;
763d02319f60ea Frank Wunderlich 2022-01-15  497  
763d02319f60ea Frank Wunderlich 2022-01-15  498              if( (retVal = rtl8367c_setAsicRegBits(RTL8367C_REG_EXT_TXC_DLY, RTL8367C_EXT1_GMII_TX_DELAY_MASK, 5)) != RT_ERR_OK)
763d02319f60ea Frank Wunderlich 2022-01-15  499                  return retVal;
763d02319f60ea Frank Wunderlich 2022-01-15  500  
763d02319f60ea Frank Wunderlich 2022-01-15  501              if( (retVal = rtl8367c_setAsicRegBits(RTL8367C_REG_EXT_TXC_DLY, RTL8367C_EXT0_GMII_TX_DELAY_MASK, 6)) != RT_ERR_OK)
763d02319f60ea Frank Wunderlich 2022-01-15  502                  return retVal;
763d02319f60ea Frank Wunderlich 2022-01-15  503          }
763d02319f60ea Frank Wunderlich 2022-01-15  504  
763d02319f60ea Frank Wunderlich 2022-01-15  505          /* Serdes reset */
763d02319f60ea Frank Wunderlich 2022-01-15  506          if( (mode == EXT_TMII_MAC) || (mode == EXT_TMII_PHY) )
763d02319f60ea Frank Wunderlich 2022-01-15  507          {
763d02319f60ea Frank Wunderlich 2022-01-15  508              if( (retVal = rtl8367c_setAsicRegBit(RTL8367C_REG_BYPASS_LINE_RATE, id, 1)) != RT_ERR_OK)
763d02319f60ea Frank Wunderlich 2022-01-15  509                  return retVal;
763d02319f60ea Frank Wunderlich 2022-01-15  510          }
763d02319f60ea Frank Wunderlich 2022-01-15  511          else
763d02319f60ea Frank Wunderlich 2022-01-15  512          {
763d02319f60ea Frank Wunderlich 2022-01-15  513              if( (retVal = rtl8367c_setAsicRegBit(RTL8367C_REG_BYPASS_LINE_RATE, id, 0)) != RT_ERR_OK)
763d02319f60ea Frank Wunderlich 2022-01-15  514                  return retVal;
763d02319f60ea Frank Wunderlich 2022-01-15  515          }
763d02319f60ea Frank Wunderlich 2022-01-15  516  
763d02319f60ea Frank Wunderlich 2022-01-15  517          if( (mode == EXT_SGMII) || (mode == EXT_HSGMII) )
763d02319f60ea Frank Wunderlich 2022-01-15  518          {
763d02319f60ea Frank Wunderlich 2022-01-15  519              if(id != 1)
763d02319f60ea Frank Wunderlich 2022-01-15  520                  return RT_ERR_PORT_ID;
763d02319f60ea Frank Wunderlich 2022-01-15  521  
763d02319f60ea Frank Wunderlich 2022-01-15  522              if((retVal = rtl8367c_setAsicReg(0x13C0, 0x0249)) != RT_ERR_OK)
763d02319f60ea Frank Wunderlich 2022-01-15  523                  return retVal;
763d02319f60ea Frank Wunderlich 2022-01-15  524  
763d02319f60ea Frank Wunderlich 2022-01-15  525              if((retVal = rtl8367c_getAsicReg(0x13C1, &option)) != RT_ERR_OK)
763d02319f60ea Frank Wunderlich 2022-01-15  526                  return retVal;
763d02319f60ea Frank Wunderlich 2022-01-15  527  
763d02319f60ea Frank Wunderlich 2022-01-15  528              if((retVal = rtl8367c_setAsicReg(0x13C0, 0x0000)) != RT_ERR_OK)
763d02319f60ea Frank Wunderlich 2022-01-15  529                  return retVal;
763d02319f60ea Frank Wunderlich 2022-01-15  530          }
763d02319f60ea Frank Wunderlich 2022-01-15  531  
763d02319f60ea Frank Wunderlich 2022-01-15  532          if(mode == EXT_SGMII)
763d02319f60ea Frank Wunderlich 2022-01-15  533          {
763d02319f60ea Frank Wunderlich 2022-01-15  534              if(option == 0)
763d02319f60ea Frank Wunderlich 2022-01-15  535              {
763d02319f60ea Frank Wunderlich 2022-01-15  536                  for(i = 0; i <= 7; i++)
763d02319f60ea Frank Wunderlich 2022-01-15  537                  {
763d02319f60ea Frank Wunderlich 2022-01-15  538                      if( (retVal = rtl8367c_setAsicReg(RTL8367C_REG_SDS_INDACS_DATA, redData[i][0])) != RT_ERR_OK)
763d02319f60ea Frank Wunderlich 2022-01-15  539                          return retVal;
763d02319f60ea Frank Wunderlich 2022-01-15  540  
763d02319f60ea Frank Wunderlich 2022-01-15  541                      if( (retVal = rtl8367c_setAsicReg(RTL8367C_REG_SDS_INDACS_ADR, redData[i][1])) != RT_ERR_OK)
763d02319f60ea Frank Wunderlich 2022-01-15  542                          return retVal;
763d02319f60ea Frank Wunderlich 2022-01-15  543  
763d02319f60ea Frank Wunderlich 2022-01-15  544                      if( (retVal = rtl8367c_setAsicReg(RTL8367C_REG_SDS_INDACS_CMD, 0x00C0)) != RT_ERR_OK)
763d02319f60ea Frank Wunderlich 2022-01-15  545                          return retVal;
763d02319f60ea Frank Wunderlich 2022-01-15  546                  }
763d02319f60ea Frank Wunderlich 2022-01-15  547              }
763d02319f60ea Frank Wunderlich 2022-01-15  548              else
763d02319f60ea Frank Wunderlich 2022-01-15  549              {
763d02319f60ea Frank Wunderlich 2022-01-15  550                  for(i = 0; i <= 7; i++)
763d02319f60ea Frank Wunderlich 2022-01-15  551                  {
763d02319f60ea Frank Wunderlich 2022-01-15  552                      if( (retVal = rtl8367c_setAsicReg(RTL8367C_REG_SDS_INDACS_DATA, redDataSB[i][0])) != RT_ERR_OK)
763d02319f60ea Frank Wunderlich 2022-01-15  553                          return retVal;
763d02319f60ea Frank Wunderlich 2022-01-15  554  
763d02319f60ea Frank Wunderlich 2022-01-15  555                      if( (retVal = rtl8367c_setAsicReg(RTL8367C_REG_SDS_INDACS_ADR, redDataSB[i][1])) != RT_ERR_OK)
763d02319f60ea Frank Wunderlich 2022-01-15  556                          return retVal;
763d02319f60ea Frank Wunderlich 2022-01-15  557  
763d02319f60ea Frank Wunderlich 2022-01-15  558                      if( (retVal = rtl8367c_setAsicReg(RTL8367C_REG_SDS_INDACS_CMD, 0x00C0)) != RT_ERR_OK)
763d02319f60ea Frank Wunderlich 2022-01-15  559                          return retVal;
763d02319f60ea Frank Wunderlich 2022-01-15  560                  }
763d02319f60ea Frank Wunderlich 2022-01-15  561              }
763d02319f60ea Frank Wunderlich 2022-01-15  562          }
763d02319f60ea Frank Wunderlich 2022-01-15  563  
763d02319f60ea Frank Wunderlich 2022-01-15  564          if(mode == EXT_HSGMII)
763d02319f60ea Frank Wunderlich 2022-01-15  565          {
763d02319f60ea Frank Wunderlich 2022-01-15  566              if(option == 0)
763d02319f60ea Frank Wunderlich 2022-01-15  567              {
763d02319f60ea Frank Wunderlich 2022-01-15  568                  if( (retVal = rtl8367c_setAsicReg(0x13c2, 0x0249)) != RT_ERR_OK)
763d02319f60ea Frank Wunderlich 2022-01-15  569                      return retVal;
763d02319f60ea Frank Wunderlich 2022-01-15  570  
763d02319f60ea Frank Wunderlich 2022-01-15  571                  if( (retVal = rtl8367c_getAsicReg(0x1301, &regValue)) != RT_ERR_OK)
763d02319f60ea Frank Wunderlich 2022-01-15  572                      return retVal;
763d02319f60ea Frank Wunderlich 2022-01-15  573  
763d02319f60ea Frank Wunderlich 2022-01-15  574                  if( (retVal = rtl8367c_setAsicReg(0x13c2, 0x0000)) != RT_ERR_OK)
763d02319f60ea Frank Wunderlich 2022-01-15  575                      return retVal;
763d02319f60ea Frank Wunderlich 2022-01-15  576  
763d02319f60ea Frank Wunderlich 2022-01-15  577                  if ( ((regValue & 0x00F0) >> 4) == 0x0001)
763d02319f60ea Frank Wunderlich 2022-01-15  578                  {
763d02319f60ea Frank Wunderlich 2022-01-15  579                      for(i = 0; i <= 8; i++)
763d02319f60ea Frank Wunderlich 2022-01-15  580                      {
763d02319f60ea Frank Wunderlich 2022-01-15  581                          if( (retVal = rtl8367c_setAsicReg(RTL8367C_REG_SDS_INDACS_DATA, redData1[i][0])) != RT_ERR_OK)
763d02319f60ea Frank Wunderlich 2022-01-15  582                              return retVal;
763d02319f60ea Frank Wunderlich 2022-01-15  583  
763d02319f60ea Frank Wunderlich 2022-01-15  584                          if( (retVal = rtl8367c_setAsicReg(RTL8367C_REG_SDS_INDACS_ADR, redData1[i][1])) != RT_ERR_OK)
763d02319f60ea Frank Wunderlich 2022-01-15  585                              return retVal;
763d02319f60ea Frank Wunderlich 2022-01-15  586  
763d02319f60ea Frank Wunderlich 2022-01-15  587                          if( (retVal = rtl8367c_setAsicReg(RTL8367C_REG_SDS_INDACS_CMD, 0x00C0)) != RT_ERR_OK)
763d02319f60ea Frank Wunderlich 2022-01-15  588                              return retVal;
763d02319f60ea Frank Wunderlich 2022-01-15  589                      }
763d02319f60ea Frank Wunderlich 2022-01-15  590                  }
763d02319f60ea Frank Wunderlich 2022-01-15  591                  else if ( ((regValue & 0x00F0) >> 4) == 0x0005)
763d02319f60ea Frank Wunderlich 2022-01-15  592                  {
763d02319f60ea Frank Wunderlich 2022-01-15  593                      for(i = 0; i <= 8; i++)
763d02319f60ea Frank Wunderlich 2022-01-15  594                      {
763d02319f60ea Frank Wunderlich 2022-01-15  595                          if( (retVal = rtl8367c_setAsicReg(RTL8367C_REG_SDS_INDACS_DATA, redData5[i][0])) != RT_ERR_OK)
763d02319f60ea Frank Wunderlich 2022-01-15  596                              return retVal;
763d02319f60ea Frank Wunderlich 2022-01-15  597  
763d02319f60ea Frank Wunderlich 2022-01-15  598                          if( (retVal = rtl8367c_setAsicReg(RTL8367C_REG_SDS_INDACS_ADR, redData5[i][1])) != RT_ERR_OK)
763d02319f60ea Frank Wunderlich 2022-01-15  599                              return retVal;
763d02319f60ea Frank Wunderlich 2022-01-15  600  
763d02319f60ea Frank Wunderlich 2022-01-15  601                          if( (retVal = rtl8367c_setAsicReg(RTL8367C_REG_SDS_INDACS_CMD, 0x00C0)) != RT_ERR_OK)
763d02319f60ea Frank Wunderlich 2022-01-15  602                              return retVal;
763d02319f60ea Frank Wunderlich 2022-01-15  603                      }
763d02319f60ea Frank Wunderlich 2022-01-15  604                  }
763d02319f60ea Frank Wunderlich 2022-01-15  605                  else if ( ((regValue & 0x00F0) >> 4) == 0x0006)
763d02319f60ea Frank Wunderlich 2022-01-15  606                  {
763d02319f60ea Frank Wunderlich 2022-01-15  607                      for(i = 0; i <= 8; i++)
763d02319f60ea Frank Wunderlich 2022-01-15  608                      {
763d02319f60ea Frank Wunderlich 2022-01-15  609                          if( (retVal = rtl8367c_setAsicReg(RTL8367C_REG_SDS_INDACS_DATA, redData6[i][0])) != RT_ERR_OK)
763d02319f60ea Frank Wunderlich 2022-01-15  610                              return retVal;
763d02319f60ea Frank Wunderlich 2022-01-15  611  
763d02319f60ea Frank Wunderlich 2022-01-15  612                          if( (retVal = rtl8367c_setAsicReg(RTL8367C_REG_SDS_INDACS_ADR, redData6[i][1])) != RT_ERR_OK)
763d02319f60ea Frank Wunderlich 2022-01-15  613                              return retVal;
763d02319f60ea Frank Wunderlich 2022-01-15  614  
763d02319f60ea Frank Wunderlich 2022-01-15  615                          if( (retVal = rtl8367c_setAsicReg(RTL8367C_REG_SDS_INDACS_CMD, 0x00C0)) != RT_ERR_OK)
763d02319f60ea Frank Wunderlich 2022-01-15  616                              return retVal;
763d02319f60ea Frank Wunderlich 2022-01-15  617                      }
763d02319f60ea Frank Wunderlich 2022-01-15  618                  }
763d02319f60ea Frank Wunderlich 2022-01-15  619                  else if ( ((regValue & 0x00F0) >> 4) == 0x0008)
763d02319f60ea Frank Wunderlich 2022-01-15  620                  {
763d02319f60ea Frank Wunderlich 2022-01-15  621                      for(i = 0; i <= 8; i++)
763d02319f60ea Frank Wunderlich 2022-01-15  622                      {
763d02319f60ea Frank Wunderlich 2022-01-15  623                          if( (retVal = rtl8367c_setAsicReg(RTL8367C_REG_SDS_INDACS_DATA, redData8[i][0])) != RT_ERR_OK)
763d02319f60ea Frank Wunderlich 2022-01-15  624                              return retVal;
763d02319f60ea Frank Wunderlich 2022-01-15  625  
763d02319f60ea Frank Wunderlich 2022-01-15  626                          if( (retVal = rtl8367c_setAsicReg(RTL8367C_REG_SDS_INDACS_ADR, redData8[i][1])) != RT_ERR_OK)
763d02319f60ea Frank Wunderlich 2022-01-15  627                              return retVal;
763d02319f60ea Frank Wunderlich 2022-01-15  628  
763d02319f60ea Frank Wunderlich 2022-01-15  629                          if( (retVal = rtl8367c_setAsicReg(RTL8367C_REG_SDS_INDACS_CMD, 0x00C0)) != RT_ERR_OK)
763d02319f60ea Frank Wunderlich 2022-01-15  630                              return retVal;
763d02319f60ea Frank Wunderlich 2022-01-15  631                      }
763d02319f60ea Frank Wunderlich 2022-01-15  632                  }
763d02319f60ea Frank Wunderlich 2022-01-15  633                  else if ( ((regValue & 0x00F0) >> 4) == 0x0009)
763d02319f60ea Frank Wunderlich 2022-01-15  634                  {
763d02319f60ea Frank Wunderlich 2022-01-15  635                      for(i = 0; i <= 8; i++)
763d02319f60ea Frank Wunderlich 2022-01-15  636                      {
763d02319f60ea Frank Wunderlich 2022-01-15  637                          if( (retVal = rtl8367c_setAsicReg(RTL8367C_REG_SDS_INDACS_DATA, redData9[i][0])) != RT_ERR_OK)
763d02319f60ea Frank Wunderlich 2022-01-15  638                              return retVal;
763d02319f60ea Frank Wunderlich 2022-01-15  639  
763d02319f60ea Frank Wunderlich 2022-01-15  640                          if( (retVal = rtl8367c_setAsicReg(RTL8367C_REG_SDS_INDACS_ADR, redData9[i][1])) != RT_ERR_OK)
763d02319f60ea Frank Wunderlich 2022-01-15  641                              return retVal;
763d02319f60ea Frank Wunderlich 2022-01-15  642  
763d02319f60ea Frank Wunderlich 2022-01-15  643                          if( (retVal = rtl8367c_setAsicReg(RTL8367C_REG_SDS_INDACS_CMD, 0x00C0)) != RT_ERR_OK)
763d02319f60ea Frank Wunderlich 2022-01-15  644                              return retVal;
763d02319f60ea Frank Wunderlich 2022-01-15  645                      }
763d02319f60ea Frank Wunderlich 2022-01-15  646                  }
763d02319f60ea Frank Wunderlich 2022-01-15  647              }
763d02319f60ea Frank Wunderlich 2022-01-15  648              else
763d02319f60ea Frank Wunderlich 2022-01-15  649              {
763d02319f60ea Frank Wunderlich 2022-01-15  650                  for(i = 0; i <= 8; i++)
763d02319f60ea Frank Wunderlich 2022-01-15  651                  {
763d02319f60ea Frank Wunderlich 2022-01-15  652                      if( (retVal = rtl8367c_setAsicReg(RTL8367C_REG_SDS_INDACS_DATA, redDataHB[i][0])) != RT_ERR_OK)
763d02319f60ea Frank Wunderlich 2022-01-15  653                          return retVal;
763d02319f60ea Frank Wunderlich 2022-01-15  654  
763d02319f60ea Frank Wunderlich 2022-01-15  655                      if( (retVal = rtl8367c_setAsicReg(RTL8367C_REG_SDS_INDACS_ADR, redDataHB[i][1])) != RT_ERR_OK)
763d02319f60ea Frank Wunderlich 2022-01-15  656                          return retVal;
763d02319f60ea Frank Wunderlich 2022-01-15  657  
763d02319f60ea Frank Wunderlich 2022-01-15  658                      if( (retVal = rtl8367c_setAsicReg(RTL8367C_REG_SDS_INDACS_CMD, 0x00C0)) != RT_ERR_OK)
763d02319f60ea Frank Wunderlich 2022-01-15  659                          return retVal;
763d02319f60ea Frank Wunderlich 2022-01-15  660                  }
763d02319f60ea Frank Wunderlich 2022-01-15  661              }
763d02319f60ea Frank Wunderlich 2022-01-15  662          }
763d02319f60ea Frank Wunderlich 2022-01-15  663  
763d02319f60ea Frank Wunderlich 2022-01-15  664          /* Only one ext port should care SGMII setting */
763d02319f60ea Frank Wunderlich 2022-01-15  665          if(id == 1)
763d02319f60ea Frank Wunderlich 2022-01-15  666          {
763d02319f60ea Frank Wunderlich 2022-01-15  667  
763d02319f60ea Frank Wunderlich 2022-01-15  668              if(mode == EXT_SGMII)
763d02319f60ea Frank Wunderlich 2022-01-15  669              {
763d02319f60ea Frank Wunderlich 2022-01-15  670                  if( (retVal = rtl8367c_setAsicRegBit(RTL8367C_REG_SDS_MISC, RTL8367C_CFG_MAC8_SEL_SGMII_OFFSET, 1)) != RT_ERR_OK)
763d02319f60ea Frank Wunderlich 2022-01-15  671                      return retVal;
763d02319f60ea Frank Wunderlich 2022-01-15  672  
763d02319f60ea Frank Wunderlich 2022-01-15  673                  if( (retVal = rtl8367c_setAsicRegBit(RTL8367C_REG_SDS_MISC, RTL8367C_CFG_MAC8_SEL_HSGMII_OFFSET, 0)) != RT_ERR_OK)
763d02319f60ea Frank Wunderlich 2022-01-15  674                      return retVal;
763d02319f60ea Frank Wunderlich 2022-01-15  675              }
763d02319f60ea Frank Wunderlich 2022-01-15  676              else if(mode == EXT_HSGMII)
763d02319f60ea Frank Wunderlich 2022-01-15  677              {
763d02319f60ea Frank Wunderlich 2022-01-15  678                  if( (retVal = rtl8367c_setAsicRegBit(RTL8367C_REG_SDS_MISC, RTL8367C_CFG_MAC8_SEL_SGMII_OFFSET, 0)) != RT_ERR_OK)
763d02319f60ea Frank Wunderlich 2022-01-15  679                      return retVal;
763d02319f60ea Frank Wunderlich 2022-01-15  680  
763d02319f60ea Frank Wunderlich 2022-01-15  681                  if( (retVal = rtl8367c_setAsicRegBit(RTL8367C_REG_SDS_MISC, RTL8367C_CFG_MAC8_SEL_HSGMII_OFFSET, 1)) != RT_ERR_OK)
763d02319f60ea Frank Wunderlich 2022-01-15  682                      return retVal;
763d02319f60ea Frank Wunderlich 2022-01-15  683              }
763d02319f60ea Frank Wunderlich 2022-01-15  684              else
763d02319f60ea Frank Wunderlich 2022-01-15  685              {
763d02319f60ea Frank Wunderlich 2022-01-15  686  
763d02319f60ea Frank Wunderlich 2022-01-15  687                  if((mode != EXT_1000X_100FX) && (mode != EXT_1000X) && (mode != EXT_100FX))
763d02319f60ea Frank Wunderlich 2022-01-15  688                  {
763d02319f60ea Frank Wunderlich 2022-01-15  689                      if( (retVal = rtl8367c_setAsicRegBit(RTL8367C_REG_SDS_MISC, RTL8367C_CFG_MAC8_SEL_SGMII_OFFSET, 0)) != RT_ERR_OK)
763d02319f60ea Frank Wunderlich 2022-01-15  690                          return retVal;
763d02319f60ea Frank Wunderlich 2022-01-15  691  
763d02319f60ea Frank Wunderlich 2022-01-15  692                      if( (retVal = rtl8367c_setAsicRegBit(RTL8367C_REG_SDS_MISC, RTL8367C_CFG_MAC8_SEL_HSGMII_OFFSET, 0)) != RT_ERR_OK)
763d02319f60ea Frank Wunderlich 2022-01-15  693                          return retVal;
763d02319f60ea Frank Wunderlich 2022-01-15  694                  }
763d02319f60ea Frank Wunderlich 2022-01-15  695              }
763d02319f60ea Frank Wunderlich 2022-01-15  696          }
763d02319f60ea Frank Wunderlich 2022-01-15  697  
763d02319f60ea Frank Wunderlich 2022-01-15  698          if(0 == id || 1 == id)
763d02319f60ea Frank Wunderlich 2022-01-15  699          {
763d02319f60ea Frank Wunderlich 2022-01-15  700              if((retVal = rtl8367c_setAsicRegBits(RTL8367C_REG_DIGITAL_INTERFACE_SELECT, RTL8367C_SELECT_GMII_0_MASK << (id * RTL8367C_SELECT_GMII_1_OFFSET), mode)) != RT_ERR_OK)
763d02319f60ea Frank Wunderlich 2022-01-15  701                  return retVal;
763d02319f60ea Frank Wunderlich 2022-01-15  702          }
763d02319f60ea Frank Wunderlich 2022-01-15  703          else
763d02319f60ea Frank Wunderlich 2022-01-15  704          {
763d02319f60ea Frank Wunderlich 2022-01-15  705              if((retVal = rtl8367c_setAsicRegBits(RTL8367C_REG_DIGITAL_INTERFACE_SELECT_1, RTL8367C_SELECT_GMII_2_MASK, mode)) != RT_ERR_OK)
763d02319f60ea Frank Wunderlich 2022-01-15  706                  return retVal;
763d02319f60ea Frank Wunderlich 2022-01-15  707          }
763d02319f60ea Frank Wunderlich 2022-01-15  708  
763d02319f60ea Frank Wunderlich 2022-01-15  709          /* Serdes not reset */
763d02319f60ea Frank Wunderlich 2022-01-15  710          if( (mode == EXT_SGMII) || (mode == EXT_HSGMII) )
763d02319f60ea Frank Wunderlich 2022-01-15  711          {
763d02319f60ea Frank Wunderlich 2022-01-15  712              if( (retVal = rtl8367c_setAsicReg(RTL8367C_REG_SDS_INDACS_DATA, 0x7106)) != RT_ERR_OK)
763d02319f60ea Frank Wunderlich 2022-01-15  713                  return retVal;
763d02319f60ea Frank Wunderlich 2022-01-15  714  
763d02319f60ea Frank Wunderlich 2022-01-15  715              if( (retVal = rtl8367c_setAsicReg(RTL8367C_REG_SDS_INDACS_ADR, 0x0003)) != RT_ERR_OK)
763d02319f60ea Frank Wunderlich 2022-01-15  716                  return retVal;
763d02319f60ea Frank Wunderlich 2022-01-15  717  
763d02319f60ea Frank Wunderlich 2022-01-15  718              if( (retVal = rtl8367c_setAsicReg(RTL8367C_REG_SDS_INDACS_CMD, 0x00C0)) != RT_ERR_OK)
763d02319f60ea Frank Wunderlich 2022-01-15  719                  return retVal;
763d02319f60ea Frank Wunderlich 2022-01-15  720          }
763d02319f60ea Frank Wunderlich 2022-01-15  721  
763d02319f60ea Frank Wunderlich 2022-01-15  722          if( (mode == EXT_SGMII) || (mode == EXT_HSGMII) )
763d02319f60ea Frank Wunderlich 2022-01-15  723          {
763d02319f60ea Frank Wunderlich 2022-01-15  724              if ((retVal = rtl8367c_setAsicRegBit(RTL8367C_REG_CHIP_RESET, RTL8367C_DW8051_RST_OFFSET, 1)) != RT_ERR_OK)
763d02319f60ea Frank Wunderlich 2022-01-15  725                  return retVal;
763d02319f60ea Frank Wunderlich 2022-01-15  726  
763d02319f60ea Frank Wunderlich 2022-01-15  727              if ((retVal = rtl8367c_setAsicRegBit(RTL8367C_REG_MISCELLANEOUS_CONFIGURE0, RTL8367C_DW8051_EN_OFFSET, 1)) != RT_ERR_OK)
763d02319f60ea Frank Wunderlich 2022-01-15  728                  return retVal;
763d02319f60ea Frank Wunderlich 2022-01-15  729  
763d02319f60ea Frank Wunderlich 2022-01-15  730              if ((retVal = rtl8367c_setAsicRegBit(RTL8367C_REG_DW8051_RDY, RTL8367C_ACS_IROM_ENABLE_OFFSET, 1)) != RT_ERR_OK)
763d02319f60ea Frank Wunderlich 2022-01-15  731                  return retVal;
763d02319f60ea Frank Wunderlich 2022-01-15  732  
763d02319f60ea Frank Wunderlich 2022-01-15  733              if ((retVal = rtl8367c_setAsicRegBit(RTL8367C_REG_DW8051_RDY, RTL8367C_IROM_MSB_OFFSET, 0)) != RT_ERR_OK)
763d02319f60ea Frank Wunderlich 2022-01-15  734                  return retVal;
763d02319f60ea Frank Wunderlich 2022-01-15  735  
763d02319f60ea Frank Wunderlich 2022-01-15  736              for(idx = 0; idx < SGMII_INIT_SIZE; idx++)
763d02319f60ea Frank Wunderlich 2022-01-15  737              {
763d02319f60ea Frank Wunderlich 2022-01-15  738                  if ((retVal = rtl8367c_setAsicReg(0xE000 + idx, (rtk_uint32)Sgmii_Init[idx])) != RT_ERR_OK)
763d02319f60ea Frank Wunderlich 2022-01-15  739                      return retVal;
763d02319f60ea Frank Wunderlich 2022-01-15  740              }
763d02319f60ea Frank Wunderlich 2022-01-15  741  
763d02319f60ea Frank Wunderlich 2022-01-15  742              if ((retVal = rtl8367c_setAsicRegBit(RTL8367C_REG_DW8051_RDY, RTL8367C_IROM_MSB_OFFSET, 0)) != RT_ERR_OK)
763d02319f60ea Frank Wunderlich 2022-01-15  743                  return retVal;
763d02319f60ea Frank Wunderlich 2022-01-15  744  
763d02319f60ea Frank Wunderlich 2022-01-15  745              if ((retVal = rtl8367c_setAsicRegBit(RTL8367C_REG_DW8051_RDY, RTL8367C_ACS_IROM_ENABLE_OFFSET, 0)) != RT_ERR_OK)
763d02319f60ea Frank Wunderlich 2022-01-15  746                  return retVal;
763d02319f60ea Frank Wunderlich 2022-01-15  747  
763d02319f60ea Frank Wunderlich 2022-01-15  748              if ((retVal = rtl8367c_setAsicRegBit(RTL8367C_REG_CHIP_RESET, RTL8367C_DW8051_RST_OFFSET, 0)) != RT_ERR_OK)
763d02319f60ea Frank Wunderlich 2022-01-15  749                  return retVal;
763d02319f60ea Frank Wunderlich 2022-01-15  750          }
763d02319f60ea Frank Wunderlich 2022-01-15  751      }
763d02319f60ea Frank Wunderlich 2022-01-15  752  
763d02319f60ea Frank Wunderlich 2022-01-15  753      return RT_ERR_OK;
763d02319f60ea Frank Wunderlich 2022-01-15  754  }
763d02319f60ea Frank Wunderlich 2022-01-15  755  

---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/kbuild-all@lists.01.org

                 reply	other threads:[~2022-02-09  1:46 UTC|newest]

Thread overview: [no followups] expand[flat|nested]  mbox.gz  Atom feed

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=202202090932.Ctx5XBbl-lkp@intel.com \
    --to=lkp@intel.com \
    --cc=kbuild@lists.01.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.