[Intel-wired-lan] [PATCH intel-next] ice: Fix E810 PTP reset flow
kernel test robot
lkp at intel.com
Tue Dec 14 18:05:05 UTC 2021
Hi Karol,
Thank you for the patch! Yet something to improve:
[auto build test ERROR on v5.16-rc5]
[also build test ERROR on next-20211213]
[cannot apply to tnguy-next-queue/dev-queue]
[If your patch is applied to the wrong git tree, kindly drop us a note.
And when submitting patch, we suggest to use '--base' as documented in
https://git-scm.com/docs/git-format-patch]
url: https://github.com/0day-ci/linux/commits/Karol-Kolacinski/ice-Fix-E810-PTP-reset-flow/20211214-205421
base: 2585cf9dfaaddf00b069673f27bb3f8530e2039c
config: arc-allyesconfig (https://download.01.org/0day-ci/archive/20211215/202112150216.KjZRqhcv-lkp@intel.com/config)
compiler: arceb-elf-gcc (GCC) 11.2.0
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
# https://github.com/0day-ci/linux/commit/b0b4ffaf89f2043ff019a735373e6cf0b9439683
git remote add linux-review https://github.com/0day-ci/linux
git fetch --no-tags linux-review Karol-Kolacinski/ice-Fix-E810-PTP-reset-flow/20211214-205421
git checkout b0b4ffaf89f2043ff019a735373e6cf0b9439683
# save the config file to linux build tree
mkdir build_dir
COMPILER_INSTALL_PATH=$HOME/0day COMPILER=gcc-11.2.0 make.cross O=build_dir ARCH=arc SHELL=/bin/bash
If you fix the issue, kindly add following tag as appropriate
Reported-by: kernel test robot <lkp at intel.com>
All errors (new ones prefixed by >>):
drivers/net/ethernet/intel/ice/ice_ptp.c: In function 'ice_ptp_reset':
>> drivers/net/ethernet/intel/ice/ice_ptp.c:1792:22: error: 'hw' undeclared (first use in this function)
1792 | u8 src_idx = hw->func_caps.ts_func_info.tmr_index_owned;
| ^~
drivers/net/ethernet/intel/ice/ice_ptp.c:1792:22: note: each undeclared identifier is reported only once for each function it appears in
>> drivers/net/ethernet/intel/ice/ice_ptp.c:1799:22: error: '__ICE_PFR_REQ' undeclared (first use in this function); did you mean 'ICE_PFR_REQ'?
1799 | if (test_bit(__ICE_PFR_REQ, pf->state))
| ^~~~~~~~~~~~~
| ICE_PFR_REQ
drivers/net/ethernet/intel/ice/ice_ptp.c: In function 'ice_ptp_prepare_for_reset':
drivers/net/ethernet/intel/ice/ice_ptp.c:1883:22: error: '__ICE_PFR_REQ' undeclared (first use in this function); did you mean 'ICE_PFR_REQ'?
1883 | if (test_bit(__ICE_PFR_REQ, pf->state))
| ^~~~~~~~~~~~~
| ICE_PFR_REQ
vim +/hw +1792 drivers/net/ethernet/intel/ice/ice_ptp.c
1785
1786 /**
1787 * ice_ptp_reset - Initialize PTP hardware clock support after reset
1788 * @pf: Board private structure
1789 */
1790 void ice_ptp_reset(struct ice_pf *pf)
1791 {
> 1792 u8 src_idx = hw->func_caps.ts_func_info.tmr_index_owned;
1793 struct ice_ptp *ptp = &pf->ptp;
1794 struct ice_hw *hw = &pf->hw;
1795 struct timespec64 ts;
1796 int err = 1;
1797 u64 time_diff;
1798
> 1799 if (test_bit(__ICE_PFR_REQ, pf->state))
1800 goto pfr;
1801
1802 wr32(hw, GLTSYN_SYNC_DLAY, 0);
1803
1804 /* Enable source clocks */
1805 wr32(hw, GLTSYN_ENA(src_idx), GLTSYN_ENA_TSYN_ENA_M);
1806
1807 /* Enable PHY time sync */
1808 err = ice_ptp_init_phy_e810(hw);
1809 if (err)
1810 goto err;
1811
1812 /* Clear event status indications for auxiliary pins */
1813 (void)rd32(hw, GLTSYN_STAT(src_idx));
1814
1815 /* Acquire the global hardware lock */
1816 if (!ice_ptp_lock(hw)) {
1817 err = -EBUSY;
1818 goto err;
1819 }
1820
1821 /* Write the increment time value to PHY and LAN */
1822 err = ice_ptp_write_incval(hw, ICE_PTP_NOMINAL_INCVAL_E810);
1823 if (err) {
1824 ice_ptp_unlock(hw);
1825 goto err;
1826 }
1827
1828 /* Write the initial Time value to PHY and LAN using the cached PHC
1829 * time before the reset and time difference between stopping and
1830 * starting the clock.
1831 */
1832 if (ptp->cached_phc_time) {
1833 time_diff = ktime_get_real_ns() - ptp->reset_time;
1834 ts = ns_to_timespec64(ptp->cached_phc_time + time_diff);
1835 } else {
1836 ts = ktime_to_timespec64(ktime_get_real());
1837 }
1838 err = ice_ptp_write_init(pf, &ts);
1839 if (err) {
1840 ice_ptp_unlock(hw);
1841 goto err;
1842 }
1843
1844 /* Release the global hardware lock */
1845 ice_ptp_unlock(hw);
1846
1847 pfr:
1848 /* Init Tx structures */
1849 if (ice_is_e810(&pf->hw))
1850 err = ice_ptp_init_tx_e810(pf, &ptp->port.tx);
1851 if (err)
1852 goto err;
1853
1854 set_bit(ICE_FLAG_PTP, pf->flags);
1855
1856 /* Start periodic work going */
1857 kthread_queue_delayed_work(ptp->kworker, &ptp->work, 0);
1858
1859 dev_info(ice_pf_to_dev(pf), "PTP reset successful\n");
1860 return;
1861
1862 err:
1863 dev_err(ice_pf_to_dev(pf), "PTP reset failed %d\n", err);
1864 }
1865
---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/kbuild-all@lists.01.org
More information about the Intel-wired-lan
mailing list