[arm:zii 148/159] drivers/net/ethernet/freescale/fman/fman_memac.c:622:37: error: unknown type name 'phy_interface_mode_t'; did you mean 'phy_interface_t'?
kernel test robot
lkp at intel.com
Tue Aug 15 12:33:47 PDT 2023
tree: git://git.armlinux.org.uk/~rmk/linux-arm.git zii
head: 720a626609a91425edfe4838cc74f94ebb395418
commit: fc14a2207a68c1d255f7d9358074dd5a504d86cf [148/159] net: fman: convert to .mac_get_caps()
config: x86_64-allyesconfig (https://download.01.org/0day-ci/archive/20230816/202308160303.yUV7NXjd-lkp@intel.com/config)
compiler: gcc-12 (Debian 12.2.0-14) 12.2.0
reproduce: (https://download.01.org/0day-ci/archive/20230816/202308160303.yUV7NXjd-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 at intel.com>
| Closes: https://lore.kernel.org/oe-kbuild-all/202308160303.yUV7NXjd-lkp@intel.com/
All errors (new ones prefixed by >>):
>> drivers/net/ethernet/freescale/fman/fman_memac.c:622:37: error: unknown type name 'phy_interface_mode_t'; did you mean 'phy_interface_t'?
622 | phy_interface_mode_t interface)
| ^~~~~~~~~~~~~~~~~~~~
| phy_interface_t
>> drivers/net/ethernet/freescale/fman/fman_memac.c:778:25: error: 'memac_get_caps' undeclared here (not in a function)
778 | .mac_get_caps = memac_get_caps,
| ^~~~~~~~~~~~~~
vim +622 drivers/net/ethernet/freescale/fman/fman_memac.c
620
621 static unsigned long memac_get_caps(struct phylink_config *config,
> 622 phy_interface_mode_t interface)
623 {
624 struct fman_mac *memac = fman_config_to_mac(config)->fman_mac;
625 unsigned long caps = config->mac_capabilities;
626
627 if (phy_interface_mode_is_rgmii(interface) &&
628 memac->rgmii_no_half_duplex)
629 caps &= ~(MAC_10HD | MAC_100HD);
630
631 return caps;
632 }
633
634 /**
635 * memac_if_mode() - Convert an interface mode into an IF_MODE config
636 * @interface: A phy interface mode
637 *
638 * Return: A configuration word, suitable for programming into the lower bits
639 * of %IF_MODE.
640 */
641 static u32 memac_if_mode(phy_interface_t interface)
642 {
643 switch (interface) {
644 case PHY_INTERFACE_MODE_MII:
645 return IF_MODE_MII;
646 case PHY_INTERFACE_MODE_RGMII:
647 case PHY_INTERFACE_MODE_RGMII_ID:
648 case PHY_INTERFACE_MODE_RGMII_RXID:
649 case PHY_INTERFACE_MODE_RGMII_TXID:
650 return IF_MODE_GMII | IF_MODE_RGMII;
651 case PHY_INTERFACE_MODE_SGMII:
652 case PHY_INTERFACE_MODE_1000BASEX:
653 case PHY_INTERFACE_MODE_QSGMII:
654 return IF_MODE_GMII;
655 case PHY_INTERFACE_MODE_10GBASER:
656 return IF_MODE_10G;
657 default:
658 WARN_ON_ONCE(1);
659 return 0;
660 }
661 }
662
663 static struct phylink_pcs *memac_select_pcs(struct phylink_config *config,
664 phy_interface_t iface)
665 {
666 struct fman_mac *memac = fman_config_to_mac(config)->fman_mac;
667
668 switch (iface) {
669 case PHY_INTERFACE_MODE_SGMII:
670 case PHY_INTERFACE_MODE_1000BASEX:
671 return memac->sgmii_pcs;
672 case PHY_INTERFACE_MODE_QSGMII:
673 return memac->qsgmii_pcs;
674 case PHY_INTERFACE_MODE_10GBASER:
675 return memac->xfi_pcs;
676 default:
677 return NULL;
678 }
679 }
680
681 static int memac_prepare(struct phylink_config *config, unsigned int mode,
682 phy_interface_t iface)
683 {
684 struct fman_mac *memac = fman_config_to_mac(config)->fman_mac;
685
686 switch (iface) {
687 case PHY_INTERFACE_MODE_SGMII:
688 case PHY_INTERFACE_MODE_1000BASEX:
689 case PHY_INTERFACE_MODE_QSGMII:
690 case PHY_INTERFACE_MODE_10GBASER:
691 return phy_set_mode_ext(memac->serdes, PHY_MODE_ETHERNET,
692 iface);
693 default:
694 return 0;
695 }
696 }
697
698 static void memac_mac_config(struct phylink_config *config, unsigned int mode,
699 const struct phylink_link_state *state)
700 {
701 struct mac_device *mac_dev = fman_config_to_mac(config);
702 struct memac_regs __iomem *regs = mac_dev->fman_mac->regs;
703 u32 tmp = ioread32be(®s->if_mode);
704
705 tmp &= ~(IF_MODE_MASK | IF_MODE_RGMII);
706 tmp |= memac_if_mode(state->interface);
707 if (phylink_autoneg_inband(mode))
708 tmp |= IF_MODE_RGMII_AUTO;
709 iowrite32be(tmp, ®s->if_mode);
710 }
711
712 static void memac_link_up(struct phylink_config *config, struct phy_device *phy,
713 unsigned int mode, phy_interface_t interface,
714 int speed, int duplex, bool tx_pause, bool rx_pause)
715 {
716 struct mac_device *mac_dev = fman_config_to_mac(config);
717 struct fman_mac *memac = mac_dev->fman_mac;
718 struct memac_regs __iomem *regs = memac->regs;
719 u32 tmp = memac_if_mode(interface);
720 u16 pause_time = tx_pause ? FSL_FM_PAUSE_TIME_ENABLE :
721 FSL_FM_PAUSE_TIME_DISABLE;
722
723 memac_set_tx_pause_frames(memac, 0, pause_time, 0);
724 memac_accept_rx_pause_frames(memac, rx_pause);
725
726 if (duplex == DUPLEX_HALF)
727 tmp |= IF_MODE_HD;
728
729 switch (speed) {
730 case SPEED_1000:
731 tmp |= IF_MODE_RGMII_1000;
732 break;
733 case SPEED_100:
734 tmp |= IF_MODE_RGMII_100;
735 break;
736 case SPEED_10:
737 tmp |= IF_MODE_RGMII_10;
738 break;
739 }
740 iowrite32be(tmp, ®s->if_mode);
741
742 /* TODO: EEE? */
743
744 if (speed == SPEED_10000) {
745 if (memac->fm_rev_info.major == 6 &&
746 memac->fm_rev_info.minor == 4)
747 tmp = TX_FIFO_SECTIONS_TX_AVAIL_SLOW_10G;
748 else
749 tmp = TX_FIFO_SECTIONS_TX_AVAIL_10G;
750 tmp |= TX_FIFO_SECTIONS_TX_EMPTY_DEFAULT_10G;
751 } else {
752 tmp = TX_FIFO_SECTIONS_TX_AVAIL_1G |
753 TX_FIFO_SECTIONS_TX_EMPTY_DEFAULT_1G;
754 }
755 iowrite32be(tmp, ®s->tx_fifo_sections);
756
757 mac_dev->update_speed(mac_dev, speed);
758
759 tmp = ioread32be(®s->command_config);
760 tmp |= CMD_CFG_RX_EN | CMD_CFG_TX_EN;
761 iowrite32be(tmp, ®s->command_config);
762 }
763
764 static void memac_link_down(struct phylink_config *config, unsigned int mode,
765 phy_interface_t interface)
766 {
767 struct fman_mac *memac = fman_config_to_mac(config)->fman_mac;
768 struct memac_regs __iomem *regs = memac->regs;
769 u32 tmp;
770
771 /* TODO: graceful */
772 tmp = ioread32be(®s->command_config);
773 tmp &= ~(CMD_CFG_RX_EN | CMD_CFG_TX_EN);
774 iowrite32be(tmp, ®s->command_config);
775 }
776
777 static const struct phylink_mac_ops memac_mac_ops = {
> 778 .mac_get_caps = memac_get_caps,
779 .mac_select_pcs = memac_select_pcs,
780 .mac_prepare = memac_prepare,
781 .mac_config = memac_mac_config,
782 .mac_link_up = memac_link_up,
783 .mac_link_down = memac_link_down,
784 };
785
--
0-DAY CI Kernel Test Service
https://github.com/intel/lkp-tests/wiki
More information about the linux-arm-kernel
mailing list