* [frank-w-bpi-r2-4.14:7.2-rc 137/160] drivers/net/phy/as21xx_1.9.1/as21xxx.c:664:40: sparse: sparse: cast to restricted __le16
@ 2026-06-30 6:35 kernel test robot
0 siblings, 0 replies; only message in thread
From: kernel test robot @ 2026-06-30 6:35 UTC (permalink / raw)
To: Frank Wunderlich; +Cc: oe-kbuild-all
tree: https://github.com/frank-w/BPI-R2-4.14 7.2-rc
head: 39cd8d05e83250c6294b8e0da3ca69359eff8a3c
commit: e423349afa350a784a8c5293ef243e13a60b61c6 [137/160] net: phy: rename as21xx v1.9.1 like it's done for 1.9.2
config: powerpc64-randconfig-r131-20260630 (https://download.01.org/0day-ci/archive/20260630/202606301450.VnloERVb-lkp@intel.com/config)
compiler: clang version 23.0.0git (https://github.com/llvm/llvm-project 6cc609bb250b21b47fc7d394b4019101e9983597)
sparse: v0.6.5-rc1
reproduce (this is a W=1 build): (https://download.01.org/0day-ci/archive/20260630/202606301450.VnloERVb-lkp@intel.com/reproduce)
If you fix the issue in a separate patch/commit (i.e. not just a new version of
the same patch/commit), kindly add following tags
| Reported-by: kernel test robot <lkp@intel.com>
| Closes: https://lore.kernel.org/oe-kbuild-all/202606301450.VnloERVb-lkp@intel.com/
sparse warnings: (new ones prefixed by >>)
>> drivers/net/phy/as21xx_1.9.1/as21xxx.c:664:40: sparse: sparse: cast to restricted __le16
drivers/net/phy/as21xx_1.9.1/as21xxx.c:665:40: sparse: sparse: cast to restricted __le16
drivers/net/phy/as21xx_1.9.1/as21xxx.c:674:48: sparse: sparse: cast to restricted __le16
drivers/net/phy/as21xx_1.9.1/as21xxx.c:675:48: sparse: sparse: cast to restricted __le16
>> drivers/net/phy/as21xx_1.9.1/as21xxx.c:779:15: sparse: sparse: unsigned value that used to be signed checked against zero?
drivers/net/phy/as21xx_1.9.1/as21xxx.c:779:15: sparse: signed value source
drivers/net/phy/as21xx_1.9.1/as21xxx.c:787:19: sparse: sparse: unsigned value that used to be signed checked against zero?
drivers/net/phy/as21xx_1.9.1/as21xxx.c:779:15: sparse: signed value source
vim +664 drivers/net/phy/as21xx_1.9.1/as21xxx.c
b730d693792d69 drivers/net/phy/as21xxx/as21xxx.c Frank Wunderlich 2026-03-07 637
b730d693792d69 drivers/net/phy/as21xxx/as21xxx.c Frank Wunderlich 2026-03-07 638 static int aeon_set_default_value(struct phy_device *phydev)
b730d693792d69 drivers/net/phy/as21xxx/as21xxx.c Frank Wunderlich 2026-03-07 639 {
b730d693792d69 drivers/net/phy/as21xxx/as21xxx.c Frank Wunderlich 2026-03-07 640 static const unsigned char base_data[] = {0x32, 0x30, 0x32, 0x33, 0x30, 0x37, 0x31, 0x34};
b730d693792d69 drivers/net/phy/as21xxx/as21xxx.c Frank Wunderlich 2026-03-07 641 unsigned char bytebuf[16];
b730d693792d69 drivers/net/phy/as21xxx/as21xxx.c Frank Wunderlich 2026-03-07 642 unsigned short *wdata;
b730d693792d69 drivers/net/phy/as21xxx/as21xxx.c Frank Wunderlich 2026-03-07 643 unsigned int mask;
b730d693792d69 drivers/net/phy/as21xxx/as21xxx.c Frank Wunderlich 2026-03-07 644 int byte_count, wdata_count = 0;
b730d693792d69 drivers/net/phy/as21xxx/as21xxx.c Frank Wunderlich 2026-03-07 645 int pos = 0, val, ret = 0, remaining;
b730d693792d69 drivers/net/phy/as21xxx/as21xxx.c Frank Wunderlich 2026-03-07 646 unsigned char padded_bytes[MEM_WORD_SIZE] = {0};
b730d693792d69 drivers/net/phy/as21xxx/as21xxx.c Frank Wunderlich 2026-03-07 647
b730d693792d69 drivers/net/phy/as21xxx/as21xxx.c Frank Wunderlich 2026-03-07 648 mask = param1 | 14;
b730d693792d69 drivers/net/phy/as21xxx/as21xxx.c Frank Wunderlich 2026-03-07 649 memcpy(bytebuf, base_data, sizeof(base_data));
b730d693792d69 drivers/net/phy/as21xxx/as21xxx.c Frank Wunderlich 2026-03-07 650 bytebuf[8] = mask & 0xff;
b730d693792d69 drivers/net/phy/as21xxx/as21xxx.c Frank Wunderlich 2026-03-07 651 bytebuf[9] = (mask >> 8) & 0xff;
b730d693792d69 drivers/net/phy/as21xxx/as21xxx.c Frank Wunderlich 2026-03-07 652 byte_count = 10;
b730d693792d69 drivers/net/phy/as21xxx/as21xxx.c Frank Wunderlich 2026-03-07 653
b730d693792d69 drivers/net/phy/as21xxx/as21xxx.c Frank Wunderlich 2026-03-07 654 wdata = kmalloc(MAX_WDATA_SIZE * sizeof(unsigned short), GFP_KERNEL);
b730d693792d69 drivers/net/phy/as21xxx/as21xxx.c Frank Wunderlich 2026-03-07 655 if (!wdata)
b730d693792d69 drivers/net/phy/as21xxx/as21xxx.c Frank Wunderlich 2026-03-07 656 return -ENOMEM;
b730d693792d69 drivers/net/phy/as21xxx/as21xxx.c Frank Wunderlich 2026-03-07 657
b730d693792d69 drivers/net/phy/as21xxx/as21xxx.c Frank Wunderlich 2026-03-07 658 while (pos + MEM_WORD_SIZE <= byte_count) {
b730d693792d69 drivers/net/phy/as21xxx/as21xxx.c Frank Wunderlich 2026-03-07 659 if (wdata_count + 2 > MAX_WDATA_SIZE) {
b730d693792d69 drivers/net/phy/as21xxx/as21xxx.c Frank Wunderlich 2026-03-07 660 pr_err("wdata array overflow\n");
b730d693792d69 drivers/net/phy/as21xxx/as21xxx.c Frank Wunderlich 2026-03-07 661 ret = -ENOSPC;
b730d693792d69 drivers/net/phy/as21xxx/as21xxx.c Frank Wunderlich 2026-03-07 662 goto cleanup;
b730d693792d69 drivers/net/phy/as21xxx/as21xxx.c Frank Wunderlich 2026-03-07 663 }
b730d693792d69 drivers/net/phy/as21xxx/as21xxx.c Frank Wunderlich 2026-03-07 @664 wdata[wdata_count++] = le16_to_cpu(*(unsigned short *)&bytebuf[pos]);
b730d693792d69 drivers/net/phy/as21xxx/as21xxx.c Frank Wunderlich 2026-03-07 665 wdata[wdata_count++] = le16_to_cpu(*(unsigned short *)&bytebuf[pos + 2]);
b730d693792d69 drivers/net/phy/as21xxx/as21xxx.c Frank Wunderlich 2026-03-07 666 pos += MEM_WORD_SIZE;
b730d693792d69 drivers/net/phy/as21xxx/as21xxx.c Frank Wunderlich 2026-03-07 667 }
b730d693792d69 drivers/net/phy/as21xxx/as21xxx.c Frank Wunderlich 2026-03-07 668
b730d693792d69 drivers/net/phy/as21xxx/as21xxx.c Frank Wunderlich 2026-03-07 669 remaining = byte_count - pos;
b730d693792d69 drivers/net/phy/as21xxx/as21xxx.c Frank Wunderlich 2026-03-07 670 if (remaining > 0) {
b730d693792d69 drivers/net/phy/as21xxx/as21xxx.c Frank Wunderlich 2026-03-07 671 if (wdata_count + 2 <= MAX_WDATA_SIZE) {
b730d693792d69 drivers/net/phy/as21xxx/as21xxx.c Frank Wunderlich 2026-03-07 672 // Here we just need padded_bytes once, otherwise we need to read from mem
b730d693792d69 drivers/net/phy/as21xxx/as21xxx.c Frank Wunderlich 2026-03-07 673 memcpy(padded_bytes, &bytebuf[pos], remaining);
b730d693792d69 drivers/net/phy/as21xxx/as21xxx.c Frank Wunderlich 2026-03-07 674 wdata[wdata_count++] = le16_to_cpu(*(unsigned short *)&padded_bytes[0]);
b730d693792d69 drivers/net/phy/as21xxx/as21xxx.c Frank Wunderlich 2026-03-07 675 wdata[wdata_count++] = le16_to_cpu(*(unsigned short *)&padded_bytes[2]);
b730d693792d69 drivers/net/phy/as21xxx/as21xxx.c Frank Wunderlich 2026-03-07 676 }
b730d693792d69 drivers/net/phy/as21xxx/as21xxx.c Frank Wunderlich 2026-03-07 677 }
b730d693792d69 drivers/net/phy/as21xxx/as21xxx.c Frank Wunderlich 2026-03-07 678
b730d693792d69 drivers/net/phy/as21xxx/as21xxx.c Frank Wunderlich 2026-03-07 679 val = phy_read_mmd(phydev, MDIO_MMD_VEND1, VEND1_GLB_REG_CPU_CTRL); //GLB_REG_CPU_CTRL
b730d693792d69 drivers/net/phy/as21xxx/as21xxx.c Frank Wunderlich 2026-03-07 680 val |= 0x12;
b730d693792d69 drivers/net/phy/as21xxx/as21xxx.c Frank Wunderlich 2026-03-07 681 phy_write_mmd(phydev, MDIO_MMD_VEND1, VEND1_GLB_REG_CPU_CTRL, val);
b730d693792d69 drivers/net/phy/as21xxx/as21xxx.c Frank Wunderlich 2026-03-07 682 phy_write_mmd(phydev, MDIO_MMD_VEND1, VEND1_FW_START_ADDR,
b730d693792d69 drivers/net/phy/as21xxx/as21xxx.c Frank Wunderlich 2026-03-07 683 (u16)(AEON_MEM_DEFAULT_ADDR & 0xFFFF));
b730d693792d69 drivers/net/phy/as21xxx/as21xxx.c Frank Wunderlich 2026-03-07 684 phy_modify_mmd(phydev, MDIO_MMD_VEND1,
b730d693792d69 drivers/net/phy/as21xxx/as21xxx.c Frank Wunderlich 2026-03-07 685 VEND1_GLB_REG_MDIO_INDIRECT_ADDRCMD,
b730d693792d69 drivers/net/phy/as21xxx/as21xxx.c Frank Wunderlich 2026-03-07 686 0x3ffc, 0xc000);
b730d693792d69 drivers/net/phy/as21xxx/as21xxx.c Frank Wunderlich 2026-03-07 687 aeon_cl45_write_burst(phydev, MDIO_MMD_VEND1, VEND1_GLB_REG_MDIO_INDIRECT_LOAD,
b730d693792d69 drivers/net/phy/as21xxx/as21xxx.c Frank Wunderlich 2026-03-07 688 (unsigned char *)wdata, wdata_count*2);
b730d693792d69 drivers/net/phy/as21xxx/as21xxx.c Frank Wunderlich 2026-03-07 689 val = phy_read_mmd(phydev, MDIO_MMD_VEND1,
b730d693792d69 drivers/net/phy/as21xxx/as21xxx.c Frank Wunderlich 2026-03-07 690 VEND1_GLB_REG_MDIO_INDIRECT_ADDRCMD); //GLB_REG_MDIO_INDIRECT_ADDRCMD
b730d693792d69 drivers/net/phy/as21xxx/as21xxx.c Frank Wunderlich 2026-03-07 691 val &= 0x3FFF;
b730d693792d69 drivers/net/phy/as21xxx/as21xxx.c Frank Wunderlich 2026-03-07 692 phy_write_mmd(phydev, MDIO_MMD_VEND1, VEND1_GLB_REG_MDIO_INDIRECT_ADDRCMD, val);
b730d693792d69 drivers/net/phy/as21xxx/as21xxx.c Frank Wunderlich 2026-03-07 693 val = phy_read_mmd(phydev, MDIO_MMD_VEND1, VEND1_GLB_REG_CPU_CTRL); //GLB_REG_CPU_CTRL
b730d693792d69 drivers/net/phy/as21xxx/as21xxx.c Frank Wunderlich 2026-03-07 694 val &= 0xFFED;
b730d693792d69 drivers/net/phy/as21xxx/as21xxx.c Frank Wunderlich 2026-03-07 695 phy_write_mmd(phydev, MDIO_MMD_VEND1, VEND1_GLB_REG_CPU_CTRL, val);
b730d693792d69 drivers/net/phy/as21xxx/as21xxx.c Frank Wunderlich 2026-03-07 696
b730d693792d69 drivers/net/phy/as21xxx/as21xxx.c Frank Wunderlich 2026-03-07 697 cleanup:
b730d693792d69 drivers/net/phy/as21xxx/as21xxx.c Frank Wunderlich 2026-03-07 698 kfree(wdata);
b730d693792d69 drivers/net/phy/as21xxx/as21xxx.c Frank Wunderlich 2026-03-07 699 return 0;
b730d693792d69 drivers/net/phy/as21xxx/as21xxx.c Frank Wunderlich 2026-03-07 700 }
b730d693792d69 drivers/net/phy/as21xxx/as21xxx.c Frank Wunderlich 2026-03-07 701
b730d693792d69 drivers/net/phy/as21xxx/as21xxx.c Frank Wunderlich 2026-03-07 702 static void aeon_set_fast_mdc_timing(struct phy_device *phydev)
b730d693792d69 drivers/net/phy/as21xxx/as21xxx.c Frank Wunderlich 2026-03-07 703 {
b730d693792d69 drivers/net/phy/as21xxx/as21xxx.c Frank Wunderlich 2026-03-07 704 if (param1) {
b730d693792d69 drivers/net/phy/as21xxx/as21xxx.c Frank Wunderlich 2026-03-07 705 phy_write_mmd(phydev, MDIO_MMD_VEND1, 0x53, 0xFFFF);
b730d693792d69 drivers/net/phy/as21xxx/as21xxx.c Frank Wunderlich 2026-03-07 706 phy_write_mmd(phydev, MDIO_MMD_VEND1, 0x54, 0xFFFF);
b730d693792d69 drivers/net/phy/as21xxx/as21xxx.c Frank Wunderlich 2026-03-07 707 phy_write_mmd(phydev, MDIO_MMD_VEND1, 0x55, 0xFFFF);
b730d693792d69 drivers/net/phy/as21xxx/as21xxx.c Frank Wunderlich 2026-03-07 708 } else {
b730d693792d69 drivers/net/phy/as21xxx/as21xxx.c Frank Wunderlich 2026-03-07 709 phy_write_mmd(phydev, MDIO_MMD_VEND1, 0x53, 0);
b730d693792d69 drivers/net/phy/as21xxx/as21xxx.c Frank Wunderlich 2026-03-07 710 phy_write_mmd(phydev, MDIO_MMD_VEND1, 0x54, 0);
b730d693792d69 drivers/net/phy/as21xxx/as21xxx.c Frank Wunderlich 2026-03-07 711 phy_write_mmd(phydev, MDIO_MMD_VEND1, 0x55, 0);
b730d693792d69 drivers/net/phy/as21xxx/as21xxx.c Frank Wunderlich 2026-03-07 712 }
b730d693792d69 drivers/net/phy/as21xxx/as21xxx.c Frank Wunderlich 2026-03-07 713 }
b730d693792d69 drivers/net/phy/as21xxx/as21xxx.c Frank Wunderlich 2026-03-07 714
b730d693792d69 drivers/net/phy/as21xxx/as21xxx.c Frank Wunderlich 2026-03-07 715 static int aeon_firmware_load(struct phy_device *phydev)
b730d693792d69 drivers/net/phy/as21xxx/as21xxx.c Frank Wunderlich 2026-03-07 716 {
b730d693792d69 drivers/net/phy/as21xxx/as21xxx.c Frank Wunderlich 2026-03-07 717 struct device *dev = &phydev->mdio.dev;
b730d693792d69 drivers/net/phy/as21xxx/as21xxx.c Frank Wunderlich 2026-03-07 718 const struct firmware *fw;
b730d693792d69 drivers/net/phy/as21xxx/as21xxx.c Frank Wunderlich 2026-03-07 719 const char *fw_name;
b730d693792d69 drivers/net/phy/as21xxx/as21xxx.c Frank Wunderlich 2026-03-07 720 int ret;
b730d693792d69 drivers/net/phy/as21xxx/as21xxx.c Frank Wunderlich 2026-03-07 721
b730d693792d69 drivers/net/phy/as21xxx/as21xxx.c Frank Wunderlich 2026-03-07 722 ret = of_property_read_string(dev->of_node, "firmware-name",
b730d693792d69 drivers/net/phy/as21xxx/as21xxx.c Frank Wunderlich 2026-03-07 723 &fw_name);
b730d693792d69 drivers/net/phy/as21xxx/as21xxx.c Frank Wunderlich 2026-03-07 724 if (ret) {
b730d693792d69 drivers/net/phy/as21xxx/as21xxx.c Frank Wunderlich 2026-03-07 725 phydev_err(phydev, "missing DT property 'firmware-name' (%d)\n",
b730d693792d69 drivers/net/phy/as21xxx/as21xxx.c Frank Wunderlich 2026-03-07 726 ret);
b730d693792d69 drivers/net/phy/as21xxx/as21xxx.c Frank Wunderlich 2026-03-07 727 return ret;
b730d693792d69 drivers/net/phy/as21xxx/as21xxx.c Frank Wunderlich 2026-03-07 728 }
b730d693792d69 drivers/net/phy/as21xxx/as21xxx.c Frank Wunderlich 2026-03-07 729
b730d693792d69 drivers/net/phy/as21xxx/as21xxx.c Frank Wunderlich 2026-03-07 730 ret = request_firmware(&fw, fw_name, dev);
b730d693792d69 drivers/net/phy/as21xxx/as21xxx.c Frank Wunderlich 2026-03-07 731 if (ret) {
b730d693792d69 drivers/net/phy/as21xxx/as21xxx.c Frank Wunderlich 2026-03-07 732 phydev_err(phydev, "failed to find FW file %s (%d)\n",
b730d693792d69 drivers/net/phy/as21xxx/as21xxx.c Frank Wunderlich 2026-03-07 733 fw_name, ret);
b730d693792d69 drivers/net/phy/as21xxx/as21xxx.c Frank Wunderlich 2026-03-07 734 return ret;
b730d693792d69 drivers/net/phy/as21xxx/as21xxx.c Frank Wunderlich 2026-03-07 735 }
b730d693792d69 drivers/net/phy/as21xxx/as21xxx.c Frank Wunderlich 2026-03-07 736
b730d693792d69 drivers/net/phy/as21xxx/as21xxx.c Frank Wunderlich 2026-03-07 737 ret = aeon_firmware_boot(phydev, fw->data, fw->size);
b730d693792d69 drivers/net/phy/as21xxx/as21xxx.c Frank Wunderlich 2026-03-07 738 release_firmware(fw);
b730d693792d69 drivers/net/phy/as21xxx/as21xxx.c Frank Wunderlich 2026-03-07 739 if (ret)
b730d693792d69 drivers/net/phy/as21xxx/as21xxx.c Frank Wunderlich 2026-03-07 740 phydev_err(phydev, "firmware boot failed for %s (%d)\n",
b730d693792d69 drivers/net/phy/as21xxx/as21xxx.c Frank Wunderlich 2026-03-07 741 fw_name, ret);
b730d693792d69 drivers/net/phy/as21xxx/as21xxx.c Frank Wunderlich 2026-03-07 742
b730d693792d69 drivers/net/phy/as21xxx/as21xxx.c Frank Wunderlich 2026-03-07 743 return ret;
b730d693792d69 drivers/net/phy/as21xxx/as21xxx.c Frank Wunderlich 2026-03-07 744 }
b730d693792d69 drivers/net/phy/as21xxx/as21xxx.c Frank Wunderlich 2026-03-07 745
b730d693792d69 drivers/net/phy/as21xxx/as21xxx.c Frank Wunderlich 2026-03-07 746 static int aeon_ipc_send_cmd(struct phy_device *phydev,
b730d693792d69 drivers/net/phy/as21xxx/as21xxx.c Frank Wunderlich 2026-03-07 747 struct as21xxx_priv *priv,
b730d693792d69 drivers/net/phy/as21xxx/as21xxx.c Frank Wunderlich 2026-03-07 748 u16 cmd, u16 *ret_sts)
b730d693792d69 drivers/net/phy/as21xxx/as21xxx.c Frank Wunderlich 2026-03-07 749 {
b730d693792d69 drivers/net/phy/as21xxx/as21xxx.c Frank Wunderlich 2026-03-07 750 bool curr_parity;
b730d693792d69 drivers/net/phy/as21xxx/as21xxx.c Frank Wunderlich 2026-03-07 751 int ret;
b730d693792d69 drivers/net/phy/as21xxx/as21xxx.c Frank Wunderlich 2026-03-07 752 unsigned int val;
b730d693792d69 drivers/net/phy/as21xxx/as21xxx.c Frank Wunderlich 2026-03-07 753
b730d693792d69 drivers/net/phy/as21xxx/as21xxx.c Frank Wunderlich 2026-03-07 754 /* The IPC sync by using a single parity bit.
b730d693792d69 drivers/net/phy/as21xxx/as21xxx.c Frank Wunderlich 2026-03-07 755 * Each CMD have alternately this bit set or clear
b730d693792d69 drivers/net/phy/as21xxx/as21xxx.c Frank Wunderlich 2026-03-07 756 * to understand correct flow and packet order.
b730d693792d69 drivers/net/phy/as21xxx/as21xxx.c Frank Wunderlich 2026-03-07 757 */
b730d693792d69 drivers/net/phy/as21xxx/as21xxx.c Frank Wunderlich 2026-03-07 758 curr_parity = priv->parity_status;
b730d693792d69 drivers/net/phy/as21xxx/as21xxx.c Frank Wunderlich 2026-03-07 759 if (priv->parity_status)
b730d693792d69 drivers/net/phy/as21xxx/as21xxx.c Frank Wunderlich 2026-03-07 760 cmd |= AEON_IPC_CMD_PARITY;
b730d693792d69 drivers/net/phy/as21xxx/as21xxx.c Frank Wunderlich 2026-03-07 761 /* Always update parity for next packet */
b730d693792d69 drivers/net/phy/as21xxx/as21xxx.c Frank Wunderlich 2026-03-07 762 priv->parity_status = !priv->parity_status;
b730d693792d69 drivers/net/phy/as21xxx/as21xxx.c Frank Wunderlich 2026-03-07 763
b730d693792d69 drivers/net/phy/as21xxx/as21xxx.c Frank Wunderlich 2026-03-07 764 ret = phy_write_mmd(phydev, MDIO_MMD_VEND1, VEND1_IPC_CMD, cmd);
b730d693792d69 drivers/net/phy/as21xxx/as21xxx.c Frank Wunderlich 2026-03-07 765 if (ret)
b730d693792d69 drivers/net/phy/as21xxx/as21xxx.c Frank Wunderlich 2026-03-07 766 return ret;
b730d693792d69 drivers/net/phy/as21xxx/as21xxx.c Frank Wunderlich 2026-03-07 767
b730d693792d69 drivers/net/phy/as21xxx/as21xxx.c Frank Wunderlich 2026-03-07 768 /* Wait for packet to be processed */
b730d693792d69 drivers/net/phy/as21xxx/as21xxx.c Frank Wunderlich 2026-03-07 769 usleep_range(AEON_IPC_DELAY, AEON_IPC_DELAY + 5000);
b730d693792d69 drivers/net/phy/as21xxx/as21xxx.c Frank Wunderlich 2026-03-07 770 /* With no ret_sts, ignore waiting for packet completion
b730d693792d69 drivers/net/phy/as21xxx/as21xxx.c Frank Wunderlich 2026-03-07 771 * (ipc parity bit sync)
b730d693792d69 drivers/net/phy/as21xxx/as21xxx.c Frank Wunderlich 2026-03-07 772 */
b730d693792d69 drivers/net/phy/as21xxx/as21xxx.c Frank Wunderlich 2026-03-07 773 if (!ret_sts)
b730d693792d69 drivers/net/phy/as21xxx/as21xxx.c Frank Wunderlich 2026-03-07 774 return 0;
b730d693792d69 drivers/net/phy/as21xxx/as21xxx.c Frank Wunderlich 2026-03-07 775 /* Exit condition logic:
b730d693792d69 drivers/net/phy/as21xxx/as21xxx.c Frank Wunderlich 2026-03-07 776 * - Wait for parity bit equal
b730d693792d69 drivers/net/phy/as21xxx/as21xxx.c Frank Wunderlich 2026-03-07 777 * - Wait for status success, error OR ready
b730d693792d69 drivers/net/phy/as21xxx/as21xxx.c Frank Wunderlich 2026-03-07 778 */
b730d693792d69 drivers/net/phy/as21xxx/as21xxx.c Frank Wunderlich 2026-03-07 @779 ret = read_poll_timeout(phy_read_mmd, val,
b730d693792d69 drivers/net/phy/as21xxx/as21xxx.c Frank Wunderlich 2026-03-07 780 (FIELD_GET(AEON_IPC_STS_PARITY, val) == curr_parity &&
b730d693792d69 drivers/net/phy/as21xxx/as21xxx.c Frank Wunderlich 2026-03-07 781 (val & AEON_IPC_STS_STATUS) != AEON_IPC_STS_STATUS_RCVD &&
b730d693792d69 drivers/net/phy/as21xxx/as21xxx.c Frank Wunderlich 2026-03-07 782 (val & AEON_IPC_STS_STATUS) != AEON_IPC_STS_STATUS_PROCESS &&
b730d693792d69 drivers/net/phy/as21xxx/as21xxx.c Frank Wunderlich 2026-03-07 783 (val & AEON_IPC_STS_STATUS) != AEON_IPC_STS_STATUS_BUSY) ||
b730d693792d69 drivers/net/phy/as21xxx/as21xxx.c Frank Wunderlich 2026-03-07 784 (val < 0),
b730d693792d69 drivers/net/phy/as21xxx/as21xxx.c Frank Wunderlich 2026-03-07 785 10000, 2000000, false,
b730d693792d69 drivers/net/phy/as21xxx/as21xxx.c Frank Wunderlich 2026-03-07 786 phydev, MDIO_MMD_VEND1, VEND1_IPC_STS);
b730d693792d69 drivers/net/phy/as21xxx/as21xxx.c Frank Wunderlich 2026-03-07 787 if (val < 0)
b730d693792d69 drivers/net/phy/as21xxx/as21xxx.c Frank Wunderlich 2026-03-07 788 ret = val;
b730d693792d69 drivers/net/phy/as21xxx/as21xxx.c Frank Wunderlich 2026-03-07 789 if (ret)
b730d693792d69 drivers/net/phy/as21xxx/as21xxx.c Frank Wunderlich 2026-03-07 790 phydev_err(phydev, "%s fail to polling status failed: %d\n", __func__, ret);
b730d693792d69 drivers/net/phy/as21xxx/as21xxx.c Frank Wunderlich 2026-03-07 791 *ret_sts = val;
b730d693792d69 drivers/net/phy/as21xxx/as21xxx.c Frank Wunderlich 2026-03-07 792 if ((val & AEON_IPC_STS_STATUS) != AEON_IPC_STS_STATUS_SUCCESS)
b730d693792d69 drivers/net/phy/as21xxx/as21xxx.c Frank Wunderlich 2026-03-07 793 return -EINVAL;
b730d693792d69 drivers/net/phy/as21xxx/as21xxx.c Frank Wunderlich 2026-03-07 794
b730d693792d69 drivers/net/phy/as21xxx/as21xxx.c Frank Wunderlich 2026-03-07 795 return 0;
b730d693792d69 drivers/net/phy/as21xxx/as21xxx.c Frank Wunderlich 2026-03-07 796 }
b730d693792d69 drivers/net/phy/as21xxx/as21xxx.c Frank Wunderlich 2026-03-07 797
:::::: The code at line 664 was first introduced by commit
:::::: b730d693792d69a7614babcf39fbfa4188a06f88 net: phy: add as21xx downstream driver from 6.19 (1.9.1)
:::::: TO: Frank Wunderlich <frank-w@public-files.de>
:::::: CC: Frank Wunderlich <frank-w@public-files.de>
--
0-DAY CI Kernel Test Service
https://github.com/intel/lkp-tests/wiki
^ permalink raw reply [flat|nested] only message in thread
only message in thread, other threads:[~2026-06-30 6:35 UTC | newest]
Thread overview: (only message) (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2026-06-30 6:35 [frank-w-bpi-r2-4.14:7.2-rc 137/160] drivers/net/phy/as21xx_1.9.1/as21xxx.c:664:40: sparse: sparse: cast to restricted __le16 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.