* [dinguyen:socfpga_sdhc_v2 6/7] drivers/mmc/host/sdhci-cadence6.c:762:9: error: call to undeclared function 'FIELD_PREP'; ISO C99 and later do not support implicit function declarations
@ 2026-04-20 20:32 kernel test robot
0 siblings, 0 replies; only message in thread
From: kernel test robot @ 2026-04-20 20:32 UTC (permalink / raw)
To: Tanmay Kathpalia; +Cc: llvm, oe-kbuild-all, Dinh Nguyen
tree: https://git.kernel.org/pub/scm/linux/kernel/git/dinguyen/linux.git socfpga_sdhc_v2
head: 974099b9e02f16aac84a51eb58fa25523e9d2319
commit: 497f87d1c1cc1e533e7067ee845b7a58539930a3 [6/7] mmc: sdhci-cadence: add Cadence SD6HC support
config: loongarch-allmodconfig (https://download.01.org/0day-ci/archive/20260421/202604210420.0JmcoWta-lkp@intel.com/config)
compiler: clang version 19.1.7 (https://github.com/llvm/llvm-project cd708029e0b2869e80abe31ddb175f7c35361f90)
reproduce (this is a W=1 build): (https://download.01.org/0day-ci/archive/20260421/202604210420.0JmcoWta-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/202604210420.0JmcoWta-lkp@intel.com/
All errors (new ones prefixed by >>):
>> drivers/mmc/host/sdhci-cadence6.c:762:9: error: call to undeclared function 'FIELD_PREP'; ISO C99 and later do not support implicit function declarations [-Wimplicit-function-declaration]
762 | reg |= FIELD_PREP(SDHCI_CDNS6_PHY_DQS_TIMING_USE_EXT_LPBK_DQS,
| ^
1 error generated.
vim +/FIELD_PREP +762 drivers/mmc/host/sdhci-cadence6.c
748
749 int sdhci_cdns6_phy_init(struct sdhci_cdns_priv *priv)
750 {
751 int ret;
752 u32 reg;
753 struct sdhci_cdns6_phy *phy = priv->phy;
754
755 sdhci_cdns6_dll_reset(priv, true);
756
757 reg = sdhci_cdns6_read_phy_reg(priv, SDHCI_CDNS6_PHY_DQS_TIMING_REG);
758 reg &= ~SDHCI_CDNS6_PHY_DQS_TIMING_USE_EXT_LPBK_DQS;
759 reg &= ~SDHCI_CDNS6_PHY_DQS_TIMING_USE_LPBK_DQS;
760 reg &= ~SDHCI_CDNS6_PHY_DQS_TIMING_USE_PHONY_DQS;
761 reg &= ~SDHCI_CDNS6_PHY_DQS_TIMING_USE_PHONY_DQS_CMD;
> 762 reg |= FIELD_PREP(SDHCI_CDNS6_PHY_DQS_TIMING_USE_EXT_LPBK_DQS,
763 phy->cp_use_ext_lpbk_dqs);
764 reg |= FIELD_PREP(SDHCI_CDNS6_PHY_DQS_TIMING_USE_LPBK_DQS,
765 phy->cp_use_lpbk_dqs);
766 reg |= FIELD_PREP(SDHCI_CDNS6_PHY_DQS_TIMING_USE_PHONY_DQS,
767 phy->cp_use_phony_dqs);
768 reg |= FIELD_PREP(SDHCI_CDNS6_PHY_DQS_TIMING_USE_PHONY_DQS_CMD,
769 phy->cp_use_phony_dqs_cmd);
770 sdhci_cdns6_write_phy_reg(priv, SDHCI_CDNS6_PHY_DQS_TIMING_REG, reg);
771
772 reg = sdhci_cdns6_read_phy_reg(priv, SDHCI_CDNS6_PHY_GATE_LPBK_CTRL_REG);
773 reg &= ~SDHCI_CDNS6_PHY_GATE_LPBK_CTRL_SYNC_METHOD;
774 reg &= ~SDHCI_CDNS6_PHY_GATE_LPBK_CTRL_SW_HALF_CYCLE_SHIFT;
775 reg &= ~SDHCI_CDNS6_PHY_GATE_LPBK_CTRL_RD_DEL_SEL;
776 reg &= ~SDHCI_CDNS6_PHY_GATE_LPBK_CTRL_UNDERRUN_SUPPRESS;
777 reg &= ~SDHCI_CDNS6_PHY_GATE_LPBK_CTRL_GATE_CFG_ALWAYS_ON;
778 reg |= FIELD_PREP(SDHCI_CDNS6_PHY_GATE_LPBK_CTRL_SYNC_METHOD,
779 phy->cp_sync_method);
780 reg |= FIELD_PREP(SDHCI_CDNS6_PHY_GATE_LPBK_CTRL_SW_HALF_CYCLE_SHIFT,
781 phy->cp_sw_half_cycle_shift);
782 reg |= FIELD_PREP(SDHCI_CDNS6_PHY_GATE_LPBK_CTRL_RD_DEL_SEL,
783 phy->cp_rd_del_sel);
784 reg |= FIELD_PREP(SDHCI_CDNS6_PHY_GATE_LPBK_CTRL_UNDERRUN_SUPPRESS,
785 phy->cp_underrun_suppress);
786 reg |= FIELD_PREP(SDHCI_CDNS6_PHY_GATE_LPBK_CTRL_GATE_CFG_ALWAYS_ON,
787 phy->cp_gate_cfg_always_on);
788 sdhci_cdns6_write_phy_reg(priv, SDHCI_CDNS6_PHY_GATE_LPBK_CTRL_REG, reg);
789
790 reg = FIELD_PREP(SDHCI_CDNS6_PHY_DLL_MASTER_CTRL_BYPASS_MODE,
791 phy->cp_dll_bypass_mode);
792 reg |= FIELD_PREP(SDHCI_CDNS6_PHY_DLL_MASTER_CTRL_PHASE_DETECT_SEL, 2);
793 reg |= FIELD_PREP(SDHCI_CDNS6_PHY_DLL_MASTER_CTRL_DLL_LOCK_NUM, 0);
794 reg |= FIELD_PREP(SDHCI_CDNS6_PHY_DLL_MASTER_CTRL_DLL_START_POINT,
795 phy->cp_dll_start_point);
796 sdhci_cdns6_write_phy_reg(priv, SDHCI_CDNS6_PHY_DLL_MASTER_CTRL_REG, reg);
797
798 reg = FIELD_PREP(SDHCI_CDNS6_PHY_DLL_SLAVE_CTRL_READ_DQS_CMD_DELAY,
799 phy->cp_read_dqs_cmd_delay);
800 reg |= FIELD_PREP(SDHCI_CDNS6_PHY_DLL_SLAVE_CTRL_CLK_WRDQS_DELAY,
801 phy->cp_clk_wrdqs_delay);
802 reg |= FIELD_PREP(SDHCI_CDNS6_PHY_DLL_SLAVE_CTRL_CLK_WR_DELAY,
803 phy->cp_clk_wr_delay);
804 reg |= FIELD_PREP(SDHCI_CDNS6_PHY_DLL_SLAVE_CTRL_READ_DQS_DELAY,
805 phy->cp_read_dqs_delay);
806 sdhci_cdns6_write_phy_reg(priv, SDHCI_CDNS6_PHY_DLL_SLAVE_CTRL_REG, reg);
807
808 reg = sdhci_cdns6_read_phy_reg(priv, SDHCI_CDNS6_PHY_CTRL_REG);
809 reg &= ~SDHCI_CDNS6_PHY_CTRL_PHONY_DQS_TIMING;
810 sdhci_cdns6_write_phy_reg(priv, SDHCI_CDNS6_PHY_CTRL_REG, reg);
811
812 smp_wmb(); /* drain writebuffer */
813
814 ret = sdhci_cdns6_dll_reset(priv, false);
815 if (ret)
816 return ret;
817
818 reg = sdhci_cdns6_read_phy_reg(priv, SDHCI_CDNS6_PHY_DQ_TIMING_REG);
819 reg &= ~SDHCI_CDNS6_PHY_DQ_TIMING_IO_MASK_ALWAYS_ON;
820 reg &= ~SDHCI_CDNS6_PHY_DQ_TIMING_IO_MASK_END;
821 reg &= ~SDHCI_CDNS6_PHY_DQ_TIMING_IO_MASK_START;
822 reg &= ~SDHCI_CDNS6_PHY_DQ_TIMING_DATA_SELECT_OE_END;
823 reg |= FIELD_PREP(SDHCI_CDNS6_PHY_DQ_TIMING_IO_MASK_ALWAYS_ON,
824 phy->cp_io_mask_always_on);
825 reg |= FIELD_PREP(SDHCI_CDNS6_PHY_DQ_TIMING_IO_MASK_END,
826 phy->cp_io_mask_end);
827 reg |= FIELD_PREP(SDHCI_CDNS6_PHY_DQ_TIMING_IO_MASK_START,
828 phy->cp_io_mask_start);
829 reg |= FIELD_PREP(SDHCI_CDNS6_PHY_DQ_TIMING_DATA_SELECT_OE_END,
830 phy->cp_data_select_oe_end);
831 sdhci_cdns6_write_phy_reg(priv, SDHCI_CDNS6_PHY_DQ_TIMING_REG, reg);
832
833 smp_wmb(); /* drain writebuffer */
834
835 reg = readl(priv->hrs_addr + SDHCI_CDNS_HRS09);
836 if (phy->sdhc_extended_wr_mode)
837 reg |= SDHCI_CDNS_HRS09_EXTENDED_WR_MODE;
838 else
839 reg &= ~SDHCI_CDNS_HRS09_EXTENDED_WR_MODE;
840
841 if (phy->sdhc_extended_rd_mode)
842 reg |= SDHCI_CDNS_HRS09_EXTENDED_RD_MODE;
843 else
844 reg &= ~SDHCI_CDNS_HRS09_EXTENDED_RD_MODE;
845
846 if (phy->sdhc_rddata_en)
847 reg |= SDHCI_CDNS_HRS09_RDDATA_EN;
848 else
849 reg &= ~SDHCI_CDNS_HRS09_RDDATA_EN;
850
851 if (phy->sdhc_rdcmd_en)
852 reg |= SDHCI_CDNS_HRS09_RDCMD_EN;
853 else
854 reg &= ~SDHCI_CDNS_HRS09_RDCMD_EN;
855
856 writel(reg, priv->hrs_addr + SDHCI_CDNS_HRS09);
857
858 reg = FIELD_PREP(SDHCI_CDNS_HRS10_HCSDCLKADJ, phy->sdhc_hcsdclkadj);
859 writel(reg, priv->hrs_addr + SDHCI_CDNS_HRS10);
860
861 reg = FIELD_PREP(SDHCI_CDNS_HRS16_WRDATA1_SDCLK_DLY,
862 phy->sdhc_wrdata1_sdclk_dly);
863 reg |= FIELD_PREP(SDHCI_CDNS_HRS16_WRDATA0_SDCLK_DLY,
864 phy->sdhc_wrdata0_sdclk_dly);
865 reg |= FIELD_PREP(SDHCI_CDNS_HRS16_WRCMD1_SDCLK_DLY,
866 phy->sdhc_wrcmd1_sdclk_dly);
867 reg |= FIELD_PREP(SDHCI_CDNS_HRS16_WRCMD0_SDCLK_DLY,
868 phy->sdhc_wrcmd0_sdclk_dly);
869 reg |= FIELD_PREP(SDHCI_CDNS_HRS16_WRDATA1_DLY,
870 phy->sdhc_wrdata1_dly);
871 reg |= FIELD_PREP(SDHCI_CDNS_HRS16_WRDATA0_DLY,
872 phy->sdhc_wrdata0_dly);
873 reg |= FIELD_PREP(SDHCI_CDNS_HRS16_WRCMD1_DLY,
874 phy->sdhc_wrcmd1_dly);
875 reg |= FIELD_PREP(SDHCI_CDNS_HRS16_WRCMD0_DLY,
876 phy->sdhc_wrcmd0_dly);
877 writel(reg, priv->hrs_addr + SDHCI_CDNS_HRS16);
878
879 reg = FIELD_PREP(SDHCI_CDNS_HRS07_RW_COMPENSATE,
880 phy->sdhc_rw_compensate);
881 reg |= FIELD_PREP(SDHCI_CDNS_HRS07_IDELAY_VAL,
882 phy->sdhc_idelay_val);
883 writel(reg, priv->hrs_addr + SDHCI_CDNS_HRS07);
884
885 /* Allow 5ms for clock and PHY signals to stabilize after configuration */
886 usleep_range(5000, 5500);
887
888 return 0;
889 }
890
--
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-04-20 20:32 UTC | newest]
Thread overview: (only message) (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2026-04-20 20:32 [dinguyen:socfpga_sdhc_v2 6/7] drivers/mmc/host/sdhci-cadence6.c:762:9: error: call to undeclared function 'FIELD_PREP'; ISO C99 and later do not support implicit function declarations kernel test robot
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox