* [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]
@ 2022-02-09 1:46 kernel test robot
0 siblings, 0 replies; only message in thread
From: kernel test robot @ 2022-02-09 1:46 UTC (permalink / raw)
To: kbuild
[-- 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, ®Value)) != 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, ®Value)) != 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
^ permalink raw reply [flat|nested] only message in thread
only message in thread, other threads:[~2022-02-09 1:46 UTC | newest]
Thread overview: (only message) (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2022-02-09 1:46 [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] kernel test robot
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.