drivers/net/usb/r8152.c:7474:13: warning: stack frame size (8768) exceeds limit (8192) in function 'r8156b_hw_phy_cfg'
From: kernel test robot
Date: Fri Jun 25 2021 - 11:08:13 EST
tree: https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git master
head: 44db63d1ad8d71c6932cbe007eb41f31c434d140
commit: 8203c7ce4ef2840929d38b447b4ccd384727f92b Merge git://git.kernel.org/pub/scm/linux/kernel/git/netdev/net
date: 10 weeks ago
config: powerpc64-randconfig-r021-20210625 (attached as .config)
compiler: clang version 13.0.0 (https://github.com/llvm/llvm-project 7c8a507272587f181ec29401453949ebcd8fec65)
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 powerpc64 cross compiling tool for clang build
# apt-get install binutils-powerpc64-linux-gnu
# https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=8203c7ce4ef2840929d38b447b4ccd384727f92b
git remote add linus https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
git fetch --no-tags linus master
git checkout 8203c7ce4ef2840929d38b447b4ccd384727f92b
# save the attached .config to linux build tree
COMPILER_INSTALL_PATH=$HOME/0day COMPILER=clang make.cross ARCH=powerpc64
If you fix the issue, kindly add following tag as appropriate
Reported-by: kernel test robot <lkp@xxxxxxxxx>
All warnings (new ones prefixed by >>):
__do_insb
^
arch/powerpc/include/asm/io.h:556:56: note: expanded from macro '__do_insb'
#define __do_insb(p, b, n) readsb((PCI_IO_ADDR)_IO_BASE+(p), (b), (n))
~~~~~~~~~~~~~~~~~~~~~^
In file included from drivers/net/usb/r8152.c:9:
In file included from include/linux/netdevice.h:37:
In file included from include/net/net_namespace.h:38:
In file included from include/linux/skbuff.h:31:
In file included from include/linux/dma-mapping.h:10:
In file included from include/linux/scatterlist.h:9:
In file included from arch/powerpc/include/asm/io.h:619:
arch/powerpc/include/asm/io-defs.h:45:1: warning: performing pointer arithmetic on a null pointer has undefined behavior [-Wnull-pointer-arithmetic]
DEF_PCI_AC_NORET(insw, (unsigned long p, void *b, unsigned long c),
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
arch/powerpc/include/asm/io.h:616:3: note: expanded from macro 'DEF_PCI_AC_NORET'
__do_##name al; \
^~~~~~~~~~~~~~
<scratch space>:121:1: note: expanded from here
__do_insw
^
arch/powerpc/include/asm/io.h:557:56: note: expanded from macro '__do_insw'
#define __do_insw(p, b, n) readsw((PCI_IO_ADDR)_IO_BASE+(p), (b), (n))
~~~~~~~~~~~~~~~~~~~~~^
In file included from drivers/net/usb/r8152.c:9:
In file included from include/linux/netdevice.h:37:
In file included from include/net/net_namespace.h:38:
In file included from include/linux/skbuff.h:31:
In file included from include/linux/dma-mapping.h:10:
In file included from include/linux/scatterlist.h:9:
In file included from arch/powerpc/include/asm/io.h:619:
arch/powerpc/include/asm/io-defs.h:47:1: warning: performing pointer arithmetic on a null pointer has undefined behavior [-Wnull-pointer-arithmetic]
DEF_PCI_AC_NORET(insl, (unsigned long p, void *b, unsigned long c),
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
arch/powerpc/include/asm/io.h:616:3: note: expanded from macro 'DEF_PCI_AC_NORET'
__do_##name al; \
^~~~~~~~~~~~~~
<scratch space>:123:1: note: expanded from here
__do_insl
^
arch/powerpc/include/asm/io.h:558:56: note: expanded from macro '__do_insl'
#define __do_insl(p, b, n) readsl((PCI_IO_ADDR)_IO_BASE+(p), (b), (n))
~~~~~~~~~~~~~~~~~~~~~^
In file included from drivers/net/usb/r8152.c:9:
In file included from include/linux/netdevice.h:37:
In file included from include/net/net_namespace.h:38:
In file included from include/linux/skbuff.h:31:
In file included from include/linux/dma-mapping.h:10:
In file included from include/linux/scatterlist.h:9:
In file included from arch/powerpc/include/asm/io.h:619:
arch/powerpc/include/asm/io-defs.h:49:1: warning: performing pointer arithmetic on a null pointer has undefined behavior [-Wnull-pointer-arithmetic]
DEF_PCI_AC_NORET(outsb, (unsigned long p, const void *b, unsigned long c),
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
arch/powerpc/include/asm/io.h:616:3: note: expanded from macro 'DEF_PCI_AC_NORET'
__do_##name al; \
^~~~~~~~~~~~~~
<scratch space>:125:1: note: expanded from here
__do_outsb
^
arch/powerpc/include/asm/io.h:559:58: note: expanded from macro '__do_outsb'
#define __do_outsb(p, b, n) writesb((PCI_IO_ADDR)_IO_BASE+(p),(b),(n))
~~~~~~~~~~~~~~~~~~~~~^
In file included from drivers/net/usb/r8152.c:9:
In file included from include/linux/netdevice.h:37:
In file included from include/net/net_namespace.h:38:
In file included from include/linux/skbuff.h:31:
In file included from include/linux/dma-mapping.h:10:
In file included from include/linux/scatterlist.h:9:
In file included from arch/powerpc/include/asm/io.h:619:
arch/powerpc/include/asm/io-defs.h:51:1: warning: performing pointer arithmetic on a null pointer has undefined behavior [-Wnull-pointer-arithmetic]
DEF_PCI_AC_NORET(outsw, (unsigned long p, const void *b, unsigned long c),
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
arch/powerpc/include/asm/io.h:616:3: note: expanded from macro 'DEF_PCI_AC_NORET'
__do_##name al; \
^~~~~~~~~~~~~~
<scratch space>:127:1: note: expanded from here
__do_outsw
^
arch/powerpc/include/asm/io.h:560:58: note: expanded from macro '__do_outsw'
#define __do_outsw(p, b, n) writesw((PCI_IO_ADDR)_IO_BASE+(p),(b),(n))
~~~~~~~~~~~~~~~~~~~~~^
In file included from drivers/net/usb/r8152.c:9:
In file included from include/linux/netdevice.h:37:
In file included from include/net/net_namespace.h:38:
In file included from include/linux/skbuff.h:31:
In file included from include/linux/dma-mapping.h:10:
In file included from include/linux/scatterlist.h:9:
In file included from arch/powerpc/include/asm/io.h:619:
arch/powerpc/include/asm/io-defs.h:53:1: warning: performing pointer arithmetic on a null pointer has undefined behavior [-Wnull-pointer-arithmetic]
DEF_PCI_AC_NORET(outsl, (unsigned long p, const void *b, unsigned long c),
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
arch/powerpc/include/asm/io.h:616:3: note: expanded from macro 'DEF_PCI_AC_NORET'
__do_##name al; \
^~~~~~~~~~~~~~
<scratch space>:129:1: note: expanded from here
__do_outsl
^
arch/powerpc/include/asm/io.h:561:58: note: expanded from macro '__do_outsl'
#define __do_outsl(p, b, n) writesl((PCI_IO_ADDR)_IO_BASE+(p),(b),(n))
~~~~~~~~~~~~~~~~~~~~~^
>> drivers/net/usb/r8152.c:7474:13: warning: stack frame size (8768) exceeds limit (8192) in function 'r8156b_hw_phy_cfg' [-Wframe-larger-than]
static void r8156b_hw_phy_cfg(struct r8152 *tp)
^
8 warnings generated.
vim +/r8156b_hw_phy_cfg +7474 drivers/net/usb/r8152.c
195aae321c829dd Hayes Wang 2021-04-16 7473
195aae321c829dd Hayes Wang 2021-04-16 @7474 static void r8156b_hw_phy_cfg(struct r8152 *tp)
195aae321c829dd Hayes Wang 2021-04-16 7475 {
195aae321c829dd Hayes Wang 2021-04-16 7476 u32 ocp_data;
195aae321c829dd Hayes Wang 2021-04-16 7477 u16 data;
195aae321c829dd Hayes Wang 2021-04-16 7478
195aae321c829dd Hayes Wang 2021-04-16 7479 switch (tp->version) {
195aae321c829dd Hayes Wang 2021-04-16 7480 case RTL_VER_12:
195aae321c829dd Hayes Wang 2021-04-16 7481 ocp_reg_write(tp, 0xbf86, 0x9000);
195aae321c829dd Hayes Wang 2021-04-16 7482 data = ocp_reg_read(tp, 0xc402);
195aae321c829dd Hayes Wang 2021-04-16 7483 data |= BIT(10);
195aae321c829dd Hayes Wang 2021-04-16 7484 ocp_reg_write(tp, 0xc402, data);
195aae321c829dd Hayes Wang 2021-04-16 7485 data &= ~BIT(10);
195aae321c829dd Hayes Wang 2021-04-16 7486 ocp_reg_write(tp, 0xc402, data);
195aae321c829dd Hayes Wang 2021-04-16 7487 ocp_reg_write(tp, 0xbd86, 0x1010);
195aae321c829dd Hayes Wang 2021-04-16 7488 ocp_reg_write(tp, 0xbd88, 0x1010);
195aae321c829dd Hayes Wang 2021-04-16 7489 data = ocp_reg_read(tp, 0xbd4e);
195aae321c829dd Hayes Wang 2021-04-16 7490 data &= ~(BIT(10) | BIT(11));
195aae321c829dd Hayes Wang 2021-04-16 7491 data |= BIT(11);
195aae321c829dd Hayes Wang 2021-04-16 7492 ocp_reg_write(tp, 0xbd4e, data);
195aae321c829dd Hayes Wang 2021-04-16 7493 data = ocp_reg_read(tp, 0xbf46);
195aae321c829dd Hayes Wang 2021-04-16 7494 data &= ~0xf00;
195aae321c829dd Hayes Wang 2021-04-16 7495 data |= 0x700;
195aae321c829dd Hayes Wang 2021-04-16 7496 ocp_reg_write(tp, 0xbf46, data);
195aae321c829dd Hayes Wang 2021-04-16 7497 break;
195aae321c829dd Hayes Wang 2021-04-16 7498 case RTL_VER_13:
195aae321c829dd Hayes Wang 2021-04-16 7499 case RTL_VER_15:
195aae321c829dd Hayes Wang 2021-04-16 7500 r8156b_wait_loading_flash(tp);
195aae321c829dd Hayes Wang 2021-04-16 7501 break;
195aae321c829dd Hayes Wang 2021-04-16 7502 default:
195aae321c829dd Hayes Wang 2021-04-16 7503 break;
195aae321c829dd Hayes Wang 2021-04-16 7504 }
195aae321c829dd Hayes Wang 2021-04-16 7505
195aae321c829dd Hayes Wang 2021-04-16 7506 ocp_data = ocp_read_word(tp, MCU_TYPE_USB, USB_MISC_0);
195aae321c829dd Hayes Wang 2021-04-16 7507 if (ocp_data & PCUT_STATUS) {
195aae321c829dd Hayes Wang 2021-04-16 7508 ocp_data &= ~PCUT_STATUS;
195aae321c829dd Hayes Wang 2021-04-16 7509 ocp_write_word(tp, MCU_TYPE_USB, USB_MISC_0, ocp_data);
195aae321c829dd Hayes Wang 2021-04-16 7510 }
195aae321c829dd Hayes Wang 2021-04-16 7511
195aae321c829dd Hayes Wang 2021-04-16 7512 data = r8153_phy_status(tp, 0);
195aae321c829dd Hayes Wang 2021-04-16 7513 switch (data) {
195aae321c829dd Hayes Wang 2021-04-16 7514 case PHY_STAT_EXT_INIT:
195aae321c829dd Hayes Wang 2021-04-16 7515 rtl8152_apply_firmware(tp, true);
195aae321c829dd Hayes Wang 2021-04-16 7516
195aae321c829dd Hayes Wang 2021-04-16 7517 data = ocp_reg_read(tp, 0xa466);
195aae321c829dd Hayes Wang 2021-04-16 7518 data &= ~BIT(0);
195aae321c829dd Hayes Wang 2021-04-16 7519 ocp_reg_write(tp, 0xa466, data);
195aae321c829dd Hayes Wang 2021-04-16 7520
195aae321c829dd Hayes Wang 2021-04-16 7521 data = ocp_reg_read(tp, 0xa468);
195aae321c829dd Hayes Wang 2021-04-16 7522 data &= ~(BIT(3) | BIT(1));
195aae321c829dd Hayes Wang 2021-04-16 7523 ocp_reg_write(tp, 0xa468, data);
195aae321c829dd Hayes Wang 2021-04-16 7524 break;
195aae321c829dd Hayes Wang 2021-04-16 7525 case PHY_STAT_LAN_ON:
195aae321c829dd Hayes Wang 2021-04-16 7526 case PHY_STAT_PWRDN:
195aae321c829dd Hayes Wang 2021-04-16 7527 default:
195aae321c829dd Hayes Wang 2021-04-16 7528 rtl8152_apply_firmware(tp, false);
195aae321c829dd Hayes Wang 2021-04-16 7529 break;
195aae321c829dd Hayes Wang 2021-04-16 7530 }
195aae321c829dd Hayes Wang 2021-04-16 7531
195aae321c829dd Hayes Wang 2021-04-16 7532 data = r8152_mdio_read(tp, MII_BMCR);
195aae321c829dd Hayes Wang 2021-04-16 7533 if (data & BMCR_PDOWN) {
195aae321c829dd Hayes Wang 2021-04-16 7534 data &= ~BMCR_PDOWN;
195aae321c829dd Hayes Wang 2021-04-16 7535 r8152_mdio_write(tp, MII_BMCR, data);
195aae321c829dd Hayes Wang 2021-04-16 7536 }
195aae321c829dd Hayes Wang 2021-04-16 7537
195aae321c829dd Hayes Wang 2021-04-16 7538 /* disable ALDPS before updating the PHY parameters */
195aae321c829dd Hayes Wang 2021-04-16 7539 r8153_aldps_en(tp, false);
195aae321c829dd Hayes Wang 2021-04-16 7540
195aae321c829dd Hayes Wang 2021-04-16 7541 /* disable EEE before updating the PHY parameters */
195aae321c829dd Hayes Wang 2021-04-16 7542 rtl_eee_enable(tp, false);
195aae321c829dd Hayes Wang 2021-04-16 7543
195aae321c829dd Hayes Wang 2021-04-16 7544 data = r8153_phy_status(tp, PHY_STAT_LAN_ON);
195aae321c829dd Hayes Wang 2021-04-16 7545 WARN_ON_ONCE(data != PHY_STAT_LAN_ON);
195aae321c829dd Hayes Wang 2021-04-16 7546
195aae321c829dd Hayes Wang 2021-04-16 7547 ocp_data = ocp_read_word(tp, MCU_TYPE_PLA, PLA_PHY_PWR);
195aae321c829dd Hayes Wang 2021-04-16 7548 ocp_data |= PFM_PWM_SWITCH;
195aae321c829dd Hayes Wang 2021-04-16 7549 ocp_write_word(tp, MCU_TYPE_PLA, PLA_PHY_PWR, ocp_data);
195aae321c829dd Hayes Wang 2021-04-16 7550
195aae321c829dd Hayes Wang 2021-04-16 7551 switch (tp->version) {
195aae321c829dd Hayes Wang 2021-04-16 7552 case RTL_VER_12:
195aae321c829dd Hayes Wang 2021-04-16 7553 data = ocp_reg_read(tp, 0xbc08);
195aae321c829dd Hayes Wang 2021-04-16 7554 data |= BIT(3) | BIT(2);
195aae321c829dd Hayes Wang 2021-04-16 7555 ocp_reg_write(tp, 0xbc08, data);
195aae321c829dd Hayes Wang 2021-04-16 7556
195aae321c829dd Hayes Wang 2021-04-16 7557 data = sram_read(tp, 0x8fff);
195aae321c829dd Hayes Wang 2021-04-16 7558 data &= ~0xff00;
195aae321c829dd Hayes Wang 2021-04-16 7559 data |= 0x0400;
195aae321c829dd Hayes Wang 2021-04-16 7560 sram_write(tp, 0x8fff, data);
195aae321c829dd Hayes Wang 2021-04-16 7561
195aae321c829dd Hayes Wang 2021-04-16 7562 data = ocp_reg_read(tp, 0xacda);
195aae321c829dd Hayes Wang 2021-04-16 7563 data |= 0xff00;
195aae321c829dd Hayes Wang 2021-04-16 7564 ocp_reg_write(tp, 0xacda, data);
195aae321c829dd Hayes Wang 2021-04-16 7565 data = ocp_reg_read(tp, 0xacde);
195aae321c829dd Hayes Wang 2021-04-16 7566 data |= 0xf000;
195aae321c829dd Hayes Wang 2021-04-16 7567 ocp_reg_write(tp, 0xacde, data);
195aae321c829dd Hayes Wang 2021-04-16 7568 ocp_reg_write(tp, 0xac8c, 0x0ffc);
195aae321c829dd Hayes Wang 2021-04-16 7569 ocp_reg_write(tp, 0xac46, 0xb7b4);
195aae321c829dd Hayes Wang 2021-04-16 7570 ocp_reg_write(tp, 0xac50, 0x0fbc);
195aae321c829dd Hayes Wang 2021-04-16 7571 ocp_reg_write(tp, 0xac3c, 0x9240);
195aae321c829dd Hayes Wang 2021-04-16 7572 ocp_reg_write(tp, 0xac4e, 0x0db4);
195aae321c829dd Hayes Wang 2021-04-16 7573 ocp_reg_write(tp, 0xacc6, 0x0707);
195aae321c829dd Hayes Wang 2021-04-16 7574 ocp_reg_write(tp, 0xacc8, 0xa0d3);
195aae321c829dd Hayes Wang 2021-04-16 7575 ocp_reg_write(tp, 0xad08, 0x0007);
195aae321c829dd Hayes Wang 2021-04-16 7576
195aae321c829dd Hayes Wang 2021-04-16 7577 ocp_reg_write(tp, 0xb87c, 0x8560);
195aae321c829dd Hayes Wang 2021-04-16 7578 ocp_reg_write(tp, 0xb87e, 0x19cc);
195aae321c829dd Hayes Wang 2021-04-16 7579 ocp_reg_write(tp, 0xb87c, 0x8562);
195aae321c829dd Hayes Wang 2021-04-16 7580 ocp_reg_write(tp, 0xb87e, 0x19cc);
195aae321c829dd Hayes Wang 2021-04-16 7581 ocp_reg_write(tp, 0xb87c, 0x8564);
195aae321c829dd Hayes Wang 2021-04-16 7582 ocp_reg_write(tp, 0xb87e, 0x19cc);
195aae321c829dd Hayes Wang 2021-04-16 7583 ocp_reg_write(tp, 0xb87c, 0x8566);
195aae321c829dd Hayes Wang 2021-04-16 7584 ocp_reg_write(tp, 0xb87e, 0x147d);
195aae321c829dd Hayes Wang 2021-04-16 7585 ocp_reg_write(tp, 0xb87c, 0x8568);
195aae321c829dd Hayes Wang 2021-04-16 7586 ocp_reg_write(tp, 0xb87e, 0x147d);
195aae321c829dd Hayes Wang 2021-04-16 7587 ocp_reg_write(tp, 0xb87c, 0x856a);
195aae321c829dd Hayes Wang 2021-04-16 7588 ocp_reg_write(tp, 0xb87e, 0x147d);
195aae321c829dd Hayes Wang 2021-04-16 7589 ocp_reg_write(tp, 0xb87c, 0x8ffe);
195aae321c829dd Hayes Wang 2021-04-16 7590 ocp_reg_write(tp, 0xb87e, 0x0907);
195aae321c829dd Hayes Wang 2021-04-16 7591 ocp_reg_write(tp, 0xb87c, 0x80d6);
195aae321c829dd Hayes Wang 2021-04-16 7592 ocp_reg_write(tp, 0xb87e, 0x2801);
195aae321c829dd Hayes Wang 2021-04-16 7593 ocp_reg_write(tp, 0xb87c, 0x80f2);
195aae321c829dd Hayes Wang 2021-04-16 7594 ocp_reg_write(tp, 0xb87e, 0x2801);
195aae321c829dd Hayes Wang 2021-04-16 7595 ocp_reg_write(tp, 0xb87c, 0x80f4);
195aae321c829dd Hayes Wang 2021-04-16 7596 ocp_reg_write(tp, 0xb87e, 0x6077);
195aae321c829dd Hayes Wang 2021-04-16 7597 ocp_reg_write(tp, 0xb506, 0x01e7);
195aae321c829dd Hayes Wang 2021-04-16 7598
195aae321c829dd Hayes Wang 2021-04-16 7599 ocp_reg_write(tp, 0xb87c, 0x8013);
195aae321c829dd Hayes Wang 2021-04-16 7600 ocp_reg_write(tp, 0xb87e, 0x0700);
195aae321c829dd Hayes Wang 2021-04-16 7601 ocp_reg_write(tp, 0xb87c, 0x8fb9);
195aae321c829dd Hayes Wang 2021-04-16 7602 ocp_reg_write(tp, 0xb87e, 0x2801);
195aae321c829dd Hayes Wang 2021-04-16 7603 ocp_reg_write(tp, 0xb87c, 0x8fba);
195aae321c829dd Hayes Wang 2021-04-16 7604 ocp_reg_write(tp, 0xb87e, 0x0100);
195aae321c829dd Hayes Wang 2021-04-16 7605 ocp_reg_write(tp, 0xb87c, 0x8fbc);
195aae321c829dd Hayes Wang 2021-04-16 7606 ocp_reg_write(tp, 0xb87e, 0x1900);
195aae321c829dd Hayes Wang 2021-04-16 7607 ocp_reg_write(tp, 0xb87c, 0x8fbe);
195aae321c829dd Hayes Wang 2021-04-16 7608 ocp_reg_write(tp, 0xb87e, 0xe100);
195aae321c829dd Hayes Wang 2021-04-16 7609 ocp_reg_write(tp, 0xb87c, 0x8fc0);
195aae321c829dd Hayes Wang 2021-04-16 7610 ocp_reg_write(tp, 0xb87e, 0x0800);
195aae321c829dd Hayes Wang 2021-04-16 7611 ocp_reg_write(tp, 0xb87c, 0x8fc2);
195aae321c829dd Hayes Wang 2021-04-16 7612 ocp_reg_write(tp, 0xb87e, 0xe500);
195aae321c829dd Hayes Wang 2021-04-16 7613 ocp_reg_write(tp, 0xb87c, 0x8fc4);
195aae321c829dd Hayes Wang 2021-04-16 7614 ocp_reg_write(tp, 0xb87e, 0x0f00);
195aae321c829dd Hayes Wang 2021-04-16 7615 ocp_reg_write(tp, 0xb87c, 0x8fc6);
195aae321c829dd Hayes Wang 2021-04-16 7616 ocp_reg_write(tp, 0xb87e, 0xf100);
195aae321c829dd Hayes Wang 2021-04-16 7617 ocp_reg_write(tp, 0xb87c, 0x8fc8);
195aae321c829dd Hayes Wang 2021-04-16 7618 ocp_reg_write(tp, 0xb87e, 0x0400);
195aae321c829dd Hayes Wang 2021-04-16 7619 ocp_reg_write(tp, 0xb87c, 0x8fca);
195aae321c829dd Hayes Wang 2021-04-16 7620 ocp_reg_write(tp, 0xb87e, 0xf300);
195aae321c829dd Hayes Wang 2021-04-16 7621 ocp_reg_write(tp, 0xb87c, 0x8fcc);
195aae321c829dd Hayes Wang 2021-04-16 7622 ocp_reg_write(tp, 0xb87e, 0xfd00);
195aae321c829dd Hayes Wang 2021-04-16 7623 ocp_reg_write(tp, 0xb87c, 0x8fce);
195aae321c829dd Hayes Wang 2021-04-16 7624 ocp_reg_write(tp, 0xb87e, 0xff00);
195aae321c829dd Hayes Wang 2021-04-16 7625 ocp_reg_write(tp, 0xb87c, 0x8fd0);
195aae321c829dd Hayes Wang 2021-04-16 7626 ocp_reg_write(tp, 0xb87e, 0xfb00);
195aae321c829dd Hayes Wang 2021-04-16 7627 ocp_reg_write(tp, 0xb87c, 0x8fd2);
195aae321c829dd Hayes Wang 2021-04-16 7628 ocp_reg_write(tp, 0xb87e, 0x0100);
195aae321c829dd Hayes Wang 2021-04-16 7629 ocp_reg_write(tp, 0xb87c, 0x8fd4);
195aae321c829dd Hayes Wang 2021-04-16 7630 ocp_reg_write(tp, 0xb87e, 0xf400);
195aae321c829dd Hayes Wang 2021-04-16 7631 ocp_reg_write(tp, 0xb87c, 0x8fd6);
195aae321c829dd Hayes Wang 2021-04-16 7632 ocp_reg_write(tp, 0xb87e, 0xff00);
195aae321c829dd Hayes Wang 2021-04-16 7633 ocp_reg_write(tp, 0xb87c, 0x8fd8);
195aae321c829dd Hayes Wang 2021-04-16 7634 ocp_reg_write(tp, 0xb87e, 0xf600);
195aae321c829dd Hayes Wang 2021-04-16 7635
195aae321c829dd Hayes Wang 2021-04-16 7636 ocp_data = ocp_read_byte(tp, MCU_TYPE_PLA, PLA_USB_CFG);
195aae321c829dd Hayes Wang 2021-04-16 7637 ocp_data |= EN_XG_LIP | EN_G_LIP;
195aae321c829dd Hayes Wang 2021-04-16 7638 ocp_write_byte(tp, MCU_TYPE_PLA, PLA_USB_CFG, ocp_data);
195aae321c829dd Hayes Wang 2021-04-16 7639 ocp_reg_write(tp, 0xb87c, 0x813d);
195aae321c829dd Hayes Wang 2021-04-16 7640 ocp_reg_write(tp, 0xb87e, 0x390e);
195aae321c829dd Hayes Wang 2021-04-16 7641 ocp_reg_write(tp, 0xb87c, 0x814f);
195aae321c829dd Hayes Wang 2021-04-16 7642 ocp_reg_write(tp, 0xb87e, 0x790e);
195aae321c829dd Hayes Wang 2021-04-16 7643 ocp_reg_write(tp, 0xb87c, 0x80b0);
195aae321c829dd Hayes Wang 2021-04-16 7644 ocp_reg_write(tp, 0xb87e, 0x0f31);
195aae321c829dd Hayes Wang 2021-04-16 7645 data = ocp_reg_read(tp, 0xbf4c);
195aae321c829dd Hayes Wang 2021-04-16 7646 data |= BIT(1);
195aae321c829dd Hayes Wang 2021-04-16 7647 ocp_reg_write(tp, 0xbf4c, data);
195aae321c829dd Hayes Wang 2021-04-16 7648 data = ocp_reg_read(tp, 0xbcca);
195aae321c829dd Hayes Wang 2021-04-16 7649 data |= BIT(9) | BIT(8);
195aae321c829dd Hayes Wang 2021-04-16 7650 ocp_reg_write(tp, 0xbcca, data);
195aae321c829dd Hayes Wang 2021-04-16 7651 ocp_reg_write(tp, 0xb87c, 0x8141);
195aae321c829dd Hayes Wang 2021-04-16 7652 ocp_reg_write(tp, 0xb87e, 0x320e);
195aae321c829dd Hayes Wang 2021-04-16 7653 ocp_reg_write(tp, 0xb87c, 0x8153);
195aae321c829dd Hayes Wang 2021-04-16 7654 ocp_reg_write(tp, 0xb87e, 0x720e);
195aae321c829dd Hayes Wang 2021-04-16 7655 ocp_reg_write(tp, 0xb87c, 0x8529);
195aae321c829dd Hayes Wang 2021-04-16 7656 ocp_reg_write(tp, 0xb87e, 0x050e);
195aae321c829dd Hayes Wang 2021-04-16 7657 data = ocp_reg_read(tp, OCP_EEE_CFG);
195aae321c829dd Hayes Wang 2021-04-16 7658 data &= ~CTAP_SHORT_EN;
195aae321c829dd Hayes Wang 2021-04-16 7659 ocp_reg_write(tp, OCP_EEE_CFG, data);
195aae321c829dd Hayes Wang 2021-04-16 7660
195aae321c829dd Hayes Wang 2021-04-16 7661 sram_write(tp, 0x816c, 0xc4a0);
195aae321c829dd Hayes Wang 2021-04-16 7662 sram_write(tp, 0x8170, 0xc4a0);
195aae321c829dd Hayes Wang 2021-04-16 7663 sram_write(tp, 0x8174, 0x04a0);
195aae321c829dd Hayes Wang 2021-04-16 7664 sram_write(tp, 0x8178, 0x04a0);
195aae321c829dd Hayes Wang 2021-04-16 7665 sram_write(tp, 0x817c, 0x0719);
195aae321c829dd Hayes Wang 2021-04-16 7666 sram_write(tp, 0x8ff4, 0x0400);
195aae321c829dd Hayes Wang 2021-04-16 7667 sram_write(tp, 0x8ff1, 0x0404);
195aae321c829dd Hayes Wang 2021-04-16 7668
195aae321c829dd Hayes Wang 2021-04-16 7669 ocp_reg_write(tp, 0xbf4a, 0x001b);
195aae321c829dd Hayes Wang 2021-04-16 7670 ocp_reg_write(tp, 0xb87c, 0x8033);
195aae321c829dd Hayes Wang 2021-04-16 7671 ocp_reg_write(tp, 0xb87e, 0x7c13);
195aae321c829dd Hayes Wang 2021-04-16 7672 ocp_reg_write(tp, 0xb87c, 0x8037);
195aae321c829dd Hayes Wang 2021-04-16 7673 ocp_reg_write(tp, 0xb87e, 0x7c13);
195aae321c829dd Hayes Wang 2021-04-16 7674 ocp_reg_write(tp, 0xb87c, 0x803b);
195aae321c829dd Hayes Wang 2021-04-16 7675 ocp_reg_write(tp, 0xb87e, 0xfc32);
195aae321c829dd Hayes Wang 2021-04-16 7676 ocp_reg_write(tp, 0xb87c, 0x803f);
195aae321c829dd Hayes Wang 2021-04-16 7677 ocp_reg_write(tp, 0xb87e, 0x7c13);
195aae321c829dd Hayes Wang 2021-04-16 7678 ocp_reg_write(tp, 0xb87c, 0x8043);
195aae321c829dd Hayes Wang 2021-04-16 7679 ocp_reg_write(tp, 0xb87e, 0x7c13);
195aae321c829dd Hayes Wang 2021-04-16 7680 ocp_reg_write(tp, 0xb87c, 0x8047);
195aae321c829dd Hayes Wang 2021-04-16 7681 ocp_reg_write(tp, 0xb87e, 0x7c13);
195aae321c829dd Hayes Wang 2021-04-16 7682
195aae321c829dd Hayes Wang 2021-04-16 7683 ocp_reg_write(tp, 0xb87c, 0x8145);
195aae321c829dd Hayes Wang 2021-04-16 7684 ocp_reg_write(tp, 0xb87e, 0x370e);
195aae321c829dd Hayes Wang 2021-04-16 7685 ocp_reg_write(tp, 0xb87c, 0x8157);
195aae321c829dd Hayes Wang 2021-04-16 7686 ocp_reg_write(tp, 0xb87e, 0x770e);
195aae321c829dd Hayes Wang 2021-04-16 7687 ocp_reg_write(tp, 0xb87c, 0x8169);
195aae321c829dd Hayes Wang 2021-04-16 7688 ocp_reg_write(tp, 0xb87e, 0x0d0a);
195aae321c829dd Hayes Wang 2021-04-16 7689 ocp_reg_write(tp, 0xb87c, 0x817b);
195aae321c829dd Hayes Wang 2021-04-16 7690 ocp_reg_write(tp, 0xb87e, 0x1d0a);
195aae321c829dd Hayes Wang 2021-04-16 7691
195aae321c829dd Hayes Wang 2021-04-16 7692 data = sram_read(tp, 0x8217);
195aae321c829dd Hayes Wang 2021-04-16 7693 data &= ~0xff00;
195aae321c829dd Hayes Wang 2021-04-16 7694 data |= 0x5000;
195aae321c829dd Hayes Wang 2021-04-16 7695 sram_write(tp, 0x8217, data);
195aae321c829dd Hayes Wang 2021-04-16 7696 data = sram_read(tp, 0x821a);
195aae321c829dd Hayes Wang 2021-04-16 7697 data &= ~0xff00;
195aae321c829dd Hayes Wang 2021-04-16 7698 data |= 0x5000;
195aae321c829dd Hayes Wang 2021-04-16 7699 sram_write(tp, 0x821a, data);
195aae321c829dd Hayes Wang 2021-04-16 7700 sram_write(tp, 0x80da, 0x0403);
195aae321c829dd Hayes Wang 2021-04-16 7701 data = sram_read(tp, 0x80dc);
195aae321c829dd Hayes Wang 2021-04-16 7702 data &= ~0xff00;
195aae321c829dd Hayes Wang 2021-04-16 7703 data |= 0x1000;
195aae321c829dd Hayes Wang 2021-04-16 7704 sram_write(tp, 0x80dc, data);
195aae321c829dd Hayes Wang 2021-04-16 7705 sram_write(tp, 0x80b3, 0x0384);
195aae321c829dd Hayes Wang 2021-04-16 7706 sram_write(tp, 0x80b7, 0x2007);
195aae321c829dd Hayes Wang 2021-04-16 7707 data = sram_read(tp, 0x80ba);
195aae321c829dd Hayes Wang 2021-04-16 7708 data &= ~0xff00;
195aae321c829dd Hayes Wang 2021-04-16 7709 data |= 0x6c00;
195aae321c829dd Hayes Wang 2021-04-16 7710 sram_write(tp, 0x80ba, data);
195aae321c829dd Hayes Wang 2021-04-16 7711 sram_write(tp, 0x80b5, 0xf009);
195aae321c829dd Hayes Wang 2021-04-16 7712 data = sram_read(tp, 0x80bd);
195aae321c829dd Hayes Wang 2021-04-16 7713 data &= ~0xff00;
195aae321c829dd Hayes Wang 2021-04-16 7714 data |= 0x9f00;
195aae321c829dd Hayes Wang 2021-04-16 7715 sram_write(tp, 0x80bd, data);
195aae321c829dd Hayes Wang 2021-04-16 7716 sram_write(tp, 0x80c7, 0xf083);
195aae321c829dd Hayes Wang 2021-04-16 7717 sram_write(tp, 0x80dd, 0x03f0);
195aae321c829dd Hayes Wang 2021-04-16 7718 data = sram_read(tp, 0x80df);
195aae321c829dd Hayes Wang 2021-04-16 7719 data &= ~0xff00;
195aae321c829dd Hayes Wang 2021-04-16 7720 data |= 0x1000;
195aae321c829dd Hayes Wang 2021-04-16 7721 sram_write(tp, 0x80df, data);
195aae321c829dd Hayes Wang 2021-04-16 7722 sram_write(tp, 0x80cb, 0x2007);
195aae321c829dd Hayes Wang 2021-04-16 7723 data = sram_read(tp, 0x80ce);
195aae321c829dd Hayes Wang 2021-04-16 7724 data &= ~0xff00;
195aae321c829dd Hayes Wang 2021-04-16 7725 data |= 0x6c00;
195aae321c829dd Hayes Wang 2021-04-16 7726 sram_write(tp, 0x80ce, data);
195aae321c829dd Hayes Wang 2021-04-16 7727 sram_write(tp, 0x80c9, 0x8009);
195aae321c829dd Hayes Wang 2021-04-16 7728 data = sram_read(tp, 0x80d1);
195aae321c829dd Hayes Wang 2021-04-16 7729 data &= ~0xff00;
195aae321c829dd Hayes Wang 2021-04-16 7730 data |= 0x8000;
195aae321c829dd Hayes Wang 2021-04-16 7731 sram_write(tp, 0x80d1, data);
195aae321c829dd Hayes Wang 2021-04-16 7732 sram_write(tp, 0x80a3, 0x200a);
195aae321c829dd Hayes Wang 2021-04-16 7733 sram_write(tp, 0x80a5, 0xf0ad);
195aae321c829dd Hayes Wang 2021-04-16 7734 sram_write(tp, 0x809f, 0x6073);
195aae321c829dd Hayes Wang 2021-04-16 7735 sram_write(tp, 0x80a1, 0x000b);
195aae321c829dd Hayes Wang 2021-04-16 7736 data = sram_read(tp, 0x80a9);
195aae321c829dd Hayes Wang 2021-04-16 7737 data &= ~0xff00;
195aae321c829dd Hayes Wang 2021-04-16 7738 data |= 0xc000;
195aae321c829dd Hayes Wang 2021-04-16 7739 sram_write(tp, 0x80a9, data);
195aae321c829dd Hayes Wang 2021-04-16 7740
195aae321c829dd Hayes Wang 2021-04-16 7741 if (rtl_phy_patch_request(tp, true, true))
195aae321c829dd Hayes Wang 2021-04-16 7742 return;
195aae321c829dd Hayes Wang 2021-04-16 7743
195aae321c829dd Hayes Wang 2021-04-16 7744 data = ocp_reg_read(tp, 0xb896);
195aae321c829dd Hayes Wang 2021-04-16 7745 data &= ~BIT(0);
195aae321c829dd Hayes Wang 2021-04-16 7746 ocp_reg_write(tp, 0xb896, data);
195aae321c829dd Hayes Wang 2021-04-16 7747 data = ocp_reg_read(tp, 0xb892);
195aae321c829dd Hayes Wang 2021-04-16 7748 data &= ~0xff00;
195aae321c829dd Hayes Wang 2021-04-16 7749 ocp_reg_write(tp, 0xb892, data);
195aae321c829dd Hayes Wang 2021-04-16 7750 ocp_reg_write(tp, 0xb88e, 0xc23e);
195aae321c829dd Hayes Wang 2021-04-16 7751 ocp_reg_write(tp, 0xb890, 0x0000);
195aae321c829dd Hayes Wang 2021-04-16 7752 ocp_reg_write(tp, 0xb88e, 0xc240);
195aae321c829dd Hayes Wang 2021-04-16 7753 ocp_reg_write(tp, 0xb890, 0x0103);
195aae321c829dd Hayes Wang 2021-04-16 7754 ocp_reg_write(tp, 0xb88e, 0xc242);
195aae321c829dd Hayes Wang 2021-04-16 7755 ocp_reg_write(tp, 0xb890, 0x0507);
195aae321c829dd Hayes Wang 2021-04-16 7756 ocp_reg_write(tp, 0xb88e, 0xc244);
195aae321c829dd Hayes Wang 2021-04-16 7757 ocp_reg_write(tp, 0xb890, 0x090b);
195aae321c829dd Hayes Wang 2021-04-16 7758 ocp_reg_write(tp, 0xb88e, 0xc246);
195aae321c829dd Hayes Wang 2021-04-16 7759 ocp_reg_write(tp, 0xb890, 0x0c0e);
195aae321c829dd Hayes Wang 2021-04-16 7760 ocp_reg_write(tp, 0xb88e, 0xc248);
195aae321c829dd Hayes Wang 2021-04-16 7761 ocp_reg_write(tp, 0xb890, 0x1012);
195aae321c829dd Hayes Wang 2021-04-16 7762 ocp_reg_write(tp, 0xb88e, 0xc24a);
195aae321c829dd Hayes Wang 2021-04-16 7763 ocp_reg_write(tp, 0xb890, 0x1416);
195aae321c829dd Hayes Wang 2021-04-16 7764 data = ocp_reg_read(tp, 0xb896);
195aae321c829dd Hayes Wang 2021-04-16 7765 data |= BIT(0);
195aae321c829dd Hayes Wang 2021-04-16 7766 ocp_reg_write(tp, 0xb896, data);
195aae321c829dd Hayes Wang 2021-04-16 7767
195aae321c829dd Hayes Wang 2021-04-16 7768 rtl_phy_patch_request(tp, false, true);
195aae321c829dd Hayes Wang 2021-04-16 7769
195aae321c829dd Hayes Wang 2021-04-16 7770 data = ocp_reg_read(tp, 0xa86a);
195aae321c829dd Hayes Wang 2021-04-16 7771 data |= BIT(0);
195aae321c829dd Hayes Wang 2021-04-16 7772 ocp_reg_write(tp, 0xa86a, data);
195aae321c829dd Hayes Wang 2021-04-16 7773 data = ocp_reg_read(tp, 0xa6f0);
195aae321c829dd Hayes Wang 2021-04-16 7774 data |= BIT(0);
195aae321c829dd Hayes Wang 2021-04-16 7775 ocp_reg_write(tp, 0xa6f0, data);
195aae321c829dd Hayes Wang 2021-04-16 7776
195aae321c829dd Hayes Wang 2021-04-16 7777 ocp_reg_write(tp, 0xbfa0, 0xd70d);
195aae321c829dd Hayes Wang 2021-04-16 7778 ocp_reg_write(tp, 0xbfa2, 0x4100);
195aae321c829dd Hayes Wang 2021-04-16 7779 ocp_reg_write(tp, 0xbfa4, 0xe868);
195aae321c829dd Hayes Wang 2021-04-16 7780 ocp_reg_write(tp, 0xbfa6, 0xdc59);
195aae321c829dd Hayes Wang 2021-04-16 7781 ocp_reg_write(tp, 0xb54c, 0x3c18);
195aae321c829dd Hayes Wang 2021-04-16 7782 data = ocp_reg_read(tp, 0xbfa4);
195aae321c829dd Hayes Wang 2021-04-16 7783 data &= ~BIT(5);
195aae321c829dd Hayes Wang 2021-04-16 7784 ocp_reg_write(tp, 0xbfa4, data);
195aae321c829dd Hayes Wang 2021-04-16 7785 data = sram_read(tp, 0x817d);
195aae321c829dd Hayes Wang 2021-04-16 7786 data |= BIT(12);
195aae321c829dd Hayes Wang 2021-04-16 7787 sram_write(tp, 0x817d, data);
195aae321c829dd Hayes Wang 2021-04-16 7788 break;
195aae321c829dd Hayes Wang 2021-04-16 7789 case RTL_VER_13:
195aae321c829dd Hayes Wang 2021-04-16 7790 /* 2.5G INRX */
195aae321c829dd Hayes Wang 2021-04-16 7791 data = ocp_reg_read(tp, 0xac46);
195aae321c829dd Hayes Wang 2021-04-16 7792 data &= ~0x00f0;
195aae321c829dd Hayes Wang 2021-04-16 7793 data |= 0x0090;
195aae321c829dd Hayes Wang 2021-04-16 7794 ocp_reg_write(tp, 0xac46, data);
195aae321c829dd Hayes Wang 2021-04-16 7795 data = ocp_reg_read(tp, 0xad30);
195aae321c829dd Hayes Wang 2021-04-16 7796 data &= ~0x0003;
195aae321c829dd Hayes Wang 2021-04-16 7797 data |= 0x0001;
195aae321c829dd Hayes Wang 2021-04-16 7798 ocp_reg_write(tp, 0xad30, data);
195aae321c829dd Hayes Wang 2021-04-16 7799 fallthrough;
195aae321c829dd Hayes Wang 2021-04-16 7800 case RTL_VER_15:
195aae321c829dd Hayes Wang 2021-04-16 7801 /* EEE parameter */
195aae321c829dd Hayes Wang 2021-04-16 7802 ocp_reg_write(tp, 0xb87c, 0x80f5);
195aae321c829dd Hayes Wang 2021-04-16 7803 ocp_reg_write(tp, 0xb87e, 0x760e);
195aae321c829dd Hayes Wang 2021-04-16 7804 ocp_reg_write(tp, 0xb87c, 0x8107);
195aae321c829dd Hayes Wang 2021-04-16 7805 ocp_reg_write(tp, 0xb87e, 0x360e);
195aae321c829dd Hayes Wang 2021-04-16 7806 ocp_reg_write(tp, 0xb87c, 0x8551);
195aae321c829dd Hayes Wang 2021-04-16 7807 data = ocp_reg_read(tp, 0xb87e);
195aae321c829dd Hayes Wang 2021-04-16 7808 data &= ~0xff00;
195aae321c829dd Hayes Wang 2021-04-16 7809 data |= 0x0800;
195aae321c829dd Hayes Wang 2021-04-16 7810 ocp_reg_write(tp, 0xb87e, data);
195aae321c829dd Hayes Wang 2021-04-16 7811
195aae321c829dd Hayes Wang 2021-04-16 7812 /* ADC_PGA parameter */
195aae321c829dd Hayes Wang 2021-04-16 7813 data = ocp_reg_read(tp, 0xbf00);
195aae321c829dd Hayes Wang 2021-04-16 7814 data &= ~0xe000;
195aae321c829dd Hayes Wang 2021-04-16 7815 data |= 0xa000;
195aae321c829dd Hayes Wang 2021-04-16 7816 ocp_reg_write(tp, 0xbf00, data);
195aae321c829dd Hayes Wang 2021-04-16 7817 data = ocp_reg_read(tp, 0xbf46);
195aae321c829dd Hayes Wang 2021-04-16 7818 data &= ~0x0f00;
195aae321c829dd Hayes Wang 2021-04-16 7819 data |= 0x0300;
195aae321c829dd Hayes Wang 2021-04-16 7820 ocp_reg_write(tp, 0xbf46, data);
195aae321c829dd Hayes Wang 2021-04-16 7821
195aae321c829dd Hayes Wang 2021-04-16 7822 /* Green Table-PGA, 1G full viterbi */
195aae321c829dd Hayes Wang 2021-04-16 7823 sram_write(tp, 0x8044, 0x2417);
195aae321c829dd Hayes Wang 2021-04-16 7824 sram_write(tp, 0x804a, 0x2417);
195aae321c829dd Hayes Wang 2021-04-16 7825 sram_write(tp, 0x8050, 0x2417);
195aae321c829dd Hayes Wang 2021-04-16 7826 sram_write(tp, 0x8056, 0x2417);
195aae321c829dd Hayes Wang 2021-04-16 7827 sram_write(tp, 0x805c, 0x2417);
195aae321c829dd Hayes Wang 2021-04-16 7828 sram_write(tp, 0x8062, 0x2417);
195aae321c829dd Hayes Wang 2021-04-16 7829 sram_write(tp, 0x8068, 0x2417);
195aae321c829dd Hayes Wang 2021-04-16 7830 sram_write(tp, 0x806e, 0x2417);
195aae321c829dd Hayes Wang 2021-04-16 7831 sram_write(tp, 0x8074, 0x2417);
195aae321c829dd Hayes Wang 2021-04-16 7832 sram_write(tp, 0x807a, 0x2417);
195aae321c829dd Hayes Wang 2021-04-16 7833
195aae321c829dd Hayes Wang 2021-04-16 7834 /* XG PLL */
195aae321c829dd Hayes Wang 2021-04-16 7835 data = ocp_reg_read(tp, 0xbf84);
195aae321c829dd Hayes Wang 2021-04-16 7836 data &= ~0xe000;
195aae321c829dd Hayes Wang 2021-04-16 7837 data |= 0xa000;
195aae321c829dd Hayes Wang 2021-04-16 7838 ocp_reg_write(tp, 0xbf84, data);
195aae321c829dd Hayes Wang 2021-04-16 7839 break;
195aae321c829dd Hayes Wang 2021-04-16 7840 default:
195aae321c829dd Hayes Wang 2021-04-16 7841 break;
195aae321c829dd Hayes Wang 2021-04-16 7842 }
195aae321c829dd Hayes Wang 2021-04-16 7843
195aae321c829dd Hayes Wang 2021-04-16 7844 if (rtl_phy_patch_request(tp, true, true))
195aae321c829dd Hayes Wang 2021-04-16 7845 return;
195aae321c829dd Hayes Wang 2021-04-16 7846
195aae321c829dd Hayes Wang 2021-04-16 7847 ocp_data = ocp_read_word(tp, MCU_TYPE_PLA, PLA_MAC_PWR_CTRL4);
195aae321c829dd Hayes Wang 2021-04-16 7848 ocp_data |= EEE_SPDWN_EN;
195aae321c829dd Hayes Wang 2021-04-16 7849 ocp_write_word(tp, MCU_TYPE_PLA, PLA_MAC_PWR_CTRL4, ocp_data);
195aae321c829dd Hayes Wang 2021-04-16 7850
195aae321c829dd Hayes Wang 2021-04-16 7851 data = ocp_reg_read(tp, OCP_DOWN_SPEED);
195aae321c829dd Hayes Wang 2021-04-16 7852 data &= ~(EN_EEE_100 | EN_EEE_1000);
195aae321c829dd Hayes Wang 2021-04-16 7853 data |= EN_10M_CLKDIV;
195aae321c829dd Hayes Wang 2021-04-16 7854 ocp_reg_write(tp, OCP_DOWN_SPEED, data);
195aae321c829dd Hayes Wang 2021-04-16 7855 tp->ups_info._10m_ckdiv = true;
195aae321c829dd Hayes Wang 2021-04-16 7856 tp->ups_info.eee_plloff_100 = false;
195aae321c829dd Hayes Wang 2021-04-16 7857 tp->ups_info.eee_plloff_giga = false;
195aae321c829dd Hayes Wang 2021-04-16 7858
195aae321c829dd Hayes Wang 2021-04-16 7859 data = ocp_reg_read(tp, OCP_POWER_CFG);
195aae321c829dd Hayes Wang 2021-04-16 7860 data &= ~EEE_CLKDIV_EN;
195aae321c829dd Hayes Wang 2021-04-16 7861 ocp_reg_write(tp, OCP_POWER_CFG, data);
195aae321c829dd Hayes Wang 2021-04-16 7862 tp->ups_info.eee_ckdiv = false;
195aae321c829dd Hayes Wang 2021-04-16 7863
195aae321c829dd Hayes Wang 2021-04-16 7864 rtl_phy_patch_request(tp, false, true);
195aae321c829dd Hayes Wang 2021-04-16 7865
195aae321c829dd Hayes Wang 2021-04-16 7866 rtl_green_en(tp, test_bit(GREEN_ETHERNET, &tp->flags));
195aae321c829dd Hayes Wang 2021-04-16 7867
195aae321c829dd Hayes Wang 2021-04-16 7868 data = ocp_reg_read(tp, 0xa428);
195aae321c829dd Hayes Wang 2021-04-16 7869 data &= ~BIT(9);
195aae321c829dd Hayes Wang 2021-04-16 7870 ocp_reg_write(tp, 0xa428, data);
195aae321c829dd Hayes Wang 2021-04-16 7871 data = ocp_reg_read(tp, 0xa5ea);
195aae321c829dd Hayes Wang 2021-04-16 7872 data &= ~BIT(0);
195aae321c829dd Hayes Wang 2021-04-16 7873 ocp_reg_write(tp, 0xa5ea, data);
195aae321c829dd Hayes Wang 2021-04-16 7874 tp->ups_info.lite_mode = 0;
195aae321c829dd Hayes Wang 2021-04-16 7875
195aae321c829dd Hayes Wang 2021-04-16 7876 if (tp->eee_en)
195aae321c829dd Hayes Wang 2021-04-16 7877 rtl_eee_enable(tp, true);
195aae321c829dd Hayes Wang 2021-04-16 7878
195aae321c829dd Hayes Wang 2021-04-16 7879 r8153_aldps_en(tp, true);
195aae321c829dd Hayes Wang 2021-04-16 7880 r8152b_enable_fc(tp);
195aae321c829dd Hayes Wang 2021-04-16 7881 r8153_u2p3en(tp, true);
195aae321c829dd Hayes Wang 2021-04-16 7882
195aae321c829dd Hayes Wang 2021-04-16 7883 set_bit(PHY_RESET, &tp->flags);
ac718b69301c7c0 hayeswang 2013-05-02 7884 }
ac718b69301c7c0 hayeswang 2013-05-02 7885
:::::: The code at line 7474 was first introduced by commit
:::::: 195aae321c829dd1945900d75561e6aa79cce208 r8152: support new chips
:::::: TO: Hayes Wang <hayeswang@xxxxxxxxxxx>
:::::: CC: David S. Miller <davem@xxxxxxxxxxxxx>
---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/kbuild-all@xxxxxxxxxxxx
Attachment:
.config.gz
Description: application/gzip