All of lore.kernel.org
 help / color / mirror / Atom feed
* [openeuler:OLK-6.6 2439/2439] drivers/net/ethernet/linkdata/sxe/sxepf/sxe_hw.c:843:6: error: no previous prototype for function 'sxe_hw_specific_irq_disable'
@ 2025-07-05  0:05 kernel test robot
  0 siblings, 0 replies; only message in thread
From: kernel test robot @ 2025-07-05  0:05 UTC (permalink / raw)
  To: kernel; +Cc: oe-kbuild-all

Hi openeuler-ci-bot,

FYI, the error/warning still remains.

tree:   https://gitee.com/openeuler/kernel.git OLK-6.6
head:   016a2eb38be5e29bea5011bd5fed627886f59f65
commit: 0ba0ebb029b99864fa5963024535f48299373354 [2439/2439] !15589 [OLK-6.6] Ethernet: Supports Linkdata ethernet Controllers
config: arm64-allmodconfig (https://download.01.org/0day-ci/archive/20250705/202507050814.KUGpMC88-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/20250705/202507050814.KUGpMC88-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/202507050814.KUGpMC88-lkp@intel.com/

All errors (new ones prefixed by >>):

         | ^
         | static 
   drivers/net/ethernet/linkdata/sxe/sxepf/sxe_hw.c:262:6: error: no previous prototype for function 'sxe_hw_uc_addr_pool_del' [-Werror,-Wmissing-prototypes]
     262 | void sxe_hw_uc_addr_pool_del(struct sxe_hw *hw, u32 rar_idx, u32 pool_idx)
         |      ^
   drivers/net/ethernet/linkdata/sxe/sxepf/sxe_hw.c:262:1: note: declare 'static' if the function is not intended to be used outside of this translation unit
     262 | void sxe_hw_uc_addr_pool_del(struct sxe_hw *hw, u32 rar_idx, u32 pool_idx)
         | ^
         | static 
   drivers/net/ethernet/linkdata/sxe/sxepf/sxe_hw.c:283:5: error: no previous prototype for function 'sxe_hw_uc_addr_pool_enable' [-Werror,-Wmissing-prototypes]
     283 | s32 sxe_hw_uc_addr_pool_enable(struct sxe_hw *hw, u8 rar_idx, u8 pool_idx)
         |     ^
   drivers/net/ethernet/linkdata/sxe/sxepf/sxe_hw.c:283:1: note: declare 'static' if the function is not intended to be used outside of this translation unit
     283 | s32 sxe_hw_uc_addr_pool_enable(struct sxe_hw *hw, u8 rar_idx, u8 pool_idx)
         | ^
         | static 
   drivers/net/ethernet/linkdata/sxe/sxepf/sxe_hw.c:337:5: error: no previous prototype for function 'sxe_hw_nic_reset' [-Werror,-Wmissing-prototypes]
     337 | s32 sxe_hw_nic_reset(struct sxe_hw *hw)
         |     ^
   drivers/net/ethernet/linkdata/sxe/sxepf/sxe_hw.c:337:1: note: declare 'static' if the function is not intended to be used outside of this translation unit
     337 | s32 sxe_hw_nic_reset(struct sxe_hw *hw)
         | ^
         | static 
   drivers/net/ethernet/linkdata/sxe/sxepf/sxe_hw.c:367:6: error: no previous prototype for function 'sxe_hw_pf_rst_done_set' [-Werror,-Wmissing-prototypes]
     367 | void sxe_hw_pf_rst_done_set(struct sxe_hw *hw)
         |      ^
   drivers/net/ethernet/linkdata/sxe/sxepf/sxe_hw.c:367:1: note: declare 'static' if the function is not intended to be used outside of this translation unit
     367 | void sxe_hw_pf_rst_done_set(struct sxe_hw *hw)
         | ^
         | static 
   drivers/net/ethernet/linkdata/sxe/sxepf/sxe_hw.c:735:5: error: no previous prototype for function 'sxe_hw_pending_irq_read_clear' [-Werror,-Wmissing-prototypes]
     735 | u32 sxe_hw_pending_irq_read_clear(struct sxe_hw *hw)
         |     ^
   drivers/net/ethernet/linkdata/sxe/sxepf/sxe_hw.c:735:1: note: declare 'static' if the function is not intended to be used outside of this translation unit
     735 | u32 sxe_hw_pending_irq_read_clear(struct sxe_hw *hw)
         | ^
         | static 
   drivers/net/ethernet/linkdata/sxe/sxepf/sxe_hw.c:740:6: error: no previous prototype for function 'sxe_hw_pending_irq_write_clear' [-Werror,-Wmissing-prototypes]
     740 | void sxe_hw_pending_irq_write_clear(struct sxe_hw *hw, u32 value)
         |      ^
   drivers/net/ethernet/linkdata/sxe/sxepf/sxe_hw.c:740:1: note: declare 'static' if the function is not intended to be used outside of this translation unit
     740 | void sxe_hw_pending_irq_write_clear(struct sxe_hw *hw, u32 value)
         | ^
         | static 
   drivers/net/ethernet/linkdata/sxe/sxepf/sxe_hw.c:745:5: error: no previous prototype for function 'sxe_hw_irq_cause_get' [-Werror,-Wmissing-prototypes]
     745 | u32 sxe_hw_irq_cause_get(struct sxe_hw *hw)
         |     ^
   drivers/net/ethernet/linkdata/sxe/sxepf/sxe_hw.c:745:1: note: declare 'static' if the function is not intended to be used outside of this translation unit
     745 | u32 sxe_hw_irq_cause_get(struct sxe_hw *hw)
         | ^
         | static 
   drivers/net/ethernet/linkdata/sxe/sxepf/sxe_hw.c:765:6: error: no previous prototype for function 'sxe_hw_ring_irq_auto_disable' [-Werror,-Wmissing-prototypes]
     765 | void sxe_hw_ring_irq_auto_disable(struct sxe_hw *hw, bool is_msix)
         |      ^
   drivers/net/ethernet/linkdata/sxe/sxepf/sxe_hw.c:765:1: note: declare 'static' if the function is not intended to be used outside of this translation unit
     765 | void sxe_hw_ring_irq_auto_disable(struct sxe_hw *hw, bool is_msix)
         | ^
         | static 
   drivers/net/ethernet/linkdata/sxe/sxepf/sxe_hw.c:775:6: error: no previous prototype for function 'sxe_hw_irq_general_reg_set' [-Werror,-Wmissing-prototypes]
     775 | void sxe_hw_irq_general_reg_set(struct sxe_hw *hw, u32 value)
         |      ^
   drivers/net/ethernet/linkdata/sxe/sxepf/sxe_hw.c:775:1: note: declare 'static' if the function is not intended to be used outside of this translation unit
     775 | void sxe_hw_irq_general_reg_set(struct sxe_hw *hw, u32 value)
         | ^
         | static 
   drivers/net/ethernet/linkdata/sxe/sxepf/sxe_hw.c:780:5: error: no previous prototype for function 'sxe_hw_irq_general_reg_get' [-Werror,-Wmissing-prototypes]
     780 | u32 sxe_hw_irq_general_reg_get(struct sxe_hw *hw)
         |     ^
   drivers/net/ethernet/linkdata/sxe/sxepf/sxe_hw.c:780:1: note: declare 'static' if the function is not intended to be used outside of this translation unit
     780 | u32 sxe_hw_irq_general_reg_get(struct sxe_hw *hw)
         | ^
         | static 
   drivers/net/ethernet/linkdata/sxe/sxepf/sxe_hw.c:790:6: error: no previous prototype for function 'sxe_hw_event_irq_map' [-Werror,-Wmissing-prototypes]
     790 | void sxe_hw_event_irq_map(struct sxe_hw *hw, u8 offset, u16 irq_idx)
         |      ^
   drivers/net/ethernet/linkdata/sxe/sxepf/sxe_hw.c:790:1: note: declare 'static' if the function is not intended to be used outside of this translation unit
     790 | void sxe_hw_event_irq_map(struct sxe_hw *hw, u8 offset, u16 irq_idx)
         | ^
         | static 
   drivers/net/ethernet/linkdata/sxe/sxepf/sxe_hw.c:806:6: error: no previous prototype for function 'sxe_hw_ring_irq_map' [-Werror,-Wmissing-prototypes]
     806 | void sxe_hw_ring_irq_map(struct sxe_hw *hw, bool is_tx, u16 reg_idx,
         |      ^
   drivers/net/ethernet/linkdata/sxe/sxepf/sxe_hw.c:806:1: note: declare 'static' if the function is not intended to be used outside of this translation unit
     806 | void sxe_hw_ring_irq_map(struct sxe_hw *hw, bool is_tx, u16 reg_idx,
         | ^
         | static 
   drivers/net/ethernet/linkdata/sxe/sxepf/sxe_hw.c:823:6: error: no previous prototype for function 'sxe_hw_ring_irq_interval_set' [-Werror,-Wmissing-prototypes]
     823 | void sxe_hw_ring_irq_interval_set(struct sxe_hw *hw, u16 irq_idx, u32 interval)
         |      ^
   drivers/net/ethernet/linkdata/sxe/sxepf/sxe_hw.c:823:1: note: declare 'static' if the function is not intended to be used outside of this translation unit
     823 | void sxe_hw_ring_irq_interval_set(struct sxe_hw *hw, u16 irq_idx, u32 interval)
         | ^
         | static 
   drivers/net/ethernet/linkdata/sxe/sxepf/sxe_hw.c:838:6: error: no previous prototype for function 'sxe_hw_event_irq_auto_clear_set' [-Werror,-Wmissing-prototypes]
     838 | void sxe_hw_event_irq_auto_clear_set(struct sxe_hw *hw, u32 value)
         |      ^
   drivers/net/ethernet/linkdata/sxe/sxepf/sxe_hw.c:838:1: note: declare 'static' if the function is not intended to be used outside of this translation unit
     838 | void sxe_hw_event_irq_auto_clear_set(struct sxe_hw *hw, u32 value)
         | ^
         | static 
>> drivers/net/ethernet/linkdata/sxe/sxepf/sxe_hw.c:843:6: error: no previous prototype for function 'sxe_hw_specific_irq_disable' [-Werror,-Wmissing-prototypes]
     843 | void sxe_hw_specific_irq_disable(struct sxe_hw *hw, u32 value)
         |      ^
   drivers/net/ethernet/linkdata/sxe/sxepf/sxe_hw.c:843:1: note: declare 'static' if the function is not intended to be used outside of this translation unit
     843 | void sxe_hw_specific_irq_disable(struct sxe_hw *hw, u32 value)
         | ^
         | static 
>> drivers/net/ethernet/linkdata/sxe/sxepf/sxe_hw.c:848:6: error: no previous prototype for function 'sxe_hw_specific_irq_enable' [-Werror,-Wmissing-prototypes]
     848 | void sxe_hw_specific_irq_enable(struct sxe_hw *hw, u32 value)
         |      ^
   drivers/net/ethernet/linkdata/sxe/sxepf/sxe_hw.c:848:1: note: declare 'static' if the function is not intended to be used outside of this translation unit
     848 | void sxe_hw_specific_irq_enable(struct sxe_hw *hw, u32 value)
         | ^
         | static 
>> drivers/net/ethernet/linkdata/sxe/sxepf/sxe_hw.c:876:6: error: no previous prototype for function 'sxe_hw_all_irq_disable' [-Werror,-Wmissing-prototypes]
     876 | void sxe_hw_all_irq_disable(struct sxe_hw *hw)
         |      ^
   drivers/net/ethernet/linkdata/sxe/sxepf/sxe_hw.c:876:1: note: declare 'static' if the function is not intended to be used outside of this translation unit
     876 | void sxe_hw_all_irq_disable(struct sxe_hw *hw)
         | ^
         | static 
>> drivers/net/ethernet/linkdata/sxe/sxepf/sxe_hw.c:994:5: error: no previous prototype for function 'sxe_hw_link_speed_get' [-Werror,-Wmissing-prototypes]
     994 | u32 sxe_hw_link_speed_get(struct sxe_hw *hw)
         |     ^
   drivers/net/ethernet/linkdata/sxe/sxepf/sxe_hw.c:994:1: note: declare 'static' if the function is not intended to be used outside of this translation unit
     994 | u32 sxe_hw_link_speed_get(struct sxe_hw *hw)
         | ^
         | static 
   fatal error: too many errors emitted, stopping now [-ferror-limit=]
   20 errors generated.
--
   In file included from drivers/net/ethernet/linkdata/sxevf/sxevf/sxevf_ethtool.c:12:
   In file included from drivers/net/ethernet/linkdata/sxevf/sxevf/sxevf_ethtool.h:14:
   In file included from include/linux/ethtool.h:16:
   In file included from include/linux/bitmap.h:11:
   In file included from include/linux/string.h:294:
>> include/linux/fortify-string.h:606:4: error: call to '__read_overflow2_field' declared with 'warning' attribute: detected read beyond size of field (2nd parameter); maybe use struct_group()? [-Werror,-Wattribute-warning]
     606 |                         __read_overflow2_field(q_size_field, size);
         |                         ^
   1 error generated.
--
         | ^
         | static 
   drivers/net/ethernet/linkdata/sxevf/sxevf/sxevf_hw.c:187:6: error: no previous prototype for function 'sxevf_msg_write' [-Werror,-Wmissing-prototypes]
     187 | void sxevf_msg_write(struct sxevf_hw *hw, u8 index, u32 msg)
         |      ^
   drivers/net/ethernet/linkdata/sxevf/sxevf/sxevf_hw.c:187:1: note: declare 'static' if the function is not intended to be used outside of this translation unit
     187 | void sxevf_msg_write(struct sxevf_hw *hw, u8 index, u32 msg)
         | ^
         | static 
   drivers/net/ethernet/linkdata/sxevf/sxevf/sxevf_hw.c:196:5: error: no previous prototype for function 'sxevf_msg_read' [-Werror,-Wmissing-prototypes]
     196 | u32 sxevf_msg_read(struct sxevf_hw *hw, u8 index)
         |     ^
   drivers/net/ethernet/linkdata/sxevf/sxevf/sxevf_hw.c:196:1: note: declare 'static' if the function is not intended to be used outside of this translation unit
     196 | u32 sxevf_msg_read(struct sxevf_hw *hw, u8 index)
         | ^
         | static 
   drivers/net/ethernet/linkdata/sxevf/sxevf/sxevf_hw.c:206:5: error: no previous prototype for function 'sxevf_mailbox_read' [-Werror,-Wmissing-prototypes]
     206 | u32 sxevf_mailbox_read(struct sxevf_hw *hw)
         |     ^
   drivers/net/ethernet/linkdata/sxevf/sxevf/sxevf_hw.c:206:1: note: declare 'static' if the function is not intended to be used outside of this translation unit
     206 | u32 sxevf_mailbox_read(struct sxevf_hw *hw)
         | ^
         | static 
   drivers/net/ethernet/linkdata/sxevf/sxevf/sxevf_hw.c:211:6: error: no previous prototype for function 'sxevf_mailbox_write' [-Werror,-Wmissing-prototypes]
     211 | void sxevf_mailbox_write(struct sxevf_hw *hw, u32 value)
         |      ^
   drivers/net/ethernet/linkdata/sxevf/sxevf/sxevf_hw.c:211:1: note: declare 'static' if the function is not intended to be used outside of this translation unit
     211 | void sxevf_mailbox_write(struct sxevf_hw *hw, u32 value)
         | ^
         | static 
   drivers/net/ethernet/linkdata/sxevf/sxevf/sxevf_hw.c:216:6: error: no previous prototype for function 'sxevf_pf_req_irq_trigger' [-Werror,-Wmissing-prototypes]
     216 | void sxevf_pf_req_irq_trigger(struct sxevf_hw *hw)
         |      ^
   drivers/net/ethernet/linkdata/sxevf/sxevf/sxevf_hw.c:216:1: note: declare 'static' if the function is not intended to be used outside of this translation unit
     216 | void sxevf_pf_req_irq_trigger(struct sxevf_hw *hw)
         | ^
         | static 
   drivers/net/ethernet/linkdata/sxevf/sxevf/sxevf_hw.c:221:6: error: no previous prototype for function 'sxevf_pf_ack_irq_trigger' [-Werror,-Wmissing-prototypes]
     221 | void sxevf_pf_ack_irq_trigger(struct sxevf_hw *hw)
         |      ^
   drivers/net/ethernet/linkdata/sxevf/sxevf/sxevf_hw.c:221:1: note: declare 'static' if the function is not intended to be used outside of this translation unit
     221 | void sxevf_pf_ack_irq_trigger(struct sxevf_hw *hw)
         | ^
         | static 
   drivers/net/ethernet/linkdata/sxevf/sxevf/sxevf_hw.c:226:6: error: no previous prototype for function 'sxevf_event_irq_map' [-Werror,-Wmissing-prototypes]
     226 | void sxevf_event_irq_map(struct sxevf_hw *hw, u16 vector)
         |      ^
   drivers/net/ethernet/linkdata/sxevf/sxevf/sxevf_hw.c:226:1: note: declare 'static' if the function is not intended to be used outside of this translation unit
     226 | void sxevf_event_irq_map(struct sxevf_hw *hw, u16 vector)
         | ^
         | static 
   drivers/net/ethernet/linkdata/sxevf/sxevf/sxevf_hw.c:240:6: error: no previous prototype for function 'sxevf_specific_irq_enable' [-Werror,-Wmissing-prototypes]
     240 | void sxevf_specific_irq_enable(struct sxevf_hw *hw, u32 value)
         |      ^
   drivers/net/ethernet/linkdata/sxevf/sxevf/sxevf_hw.c:240:1: note: declare 'static' if the function is not intended to be used outside of this translation unit
     240 | void sxevf_specific_irq_enable(struct sxevf_hw *hw, u32 value)
         | ^
         | static 
   drivers/net/ethernet/linkdata/sxevf/sxevf/sxevf_hw.c:245:6: error: no previous prototype for function 'sxevf_irq_enable' [-Werror,-Wmissing-prototypes]
     245 | void sxevf_irq_enable(struct sxevf_hw *hw, u32 mask)
         |      ^
   drivers/net/ethernet/linkdata/sxevf/sxevf/sxevf_hw.c:245:1: note: declare 'static' if the function is not intended to be used outside of this translation unit
     245 | void sxevf_irq_enable(struct sxevf_hw *hw, u32 mask)
         | ^
         | static 
   drivers/net/ethernet/linkdata/sxevf/sxevf/sxevf_hw.c:251:6: error: no previous prototype for function 'sxevf_irq_disable' [-Werror,-Wmissing-prototypes]
     251 | void sxevf_irq_disable(struct sxevf_hw *hw)
         |      ^
   drivers/net/ethernet/linkdata/sxevf/sxevf/sxevf_hw.c:251:1: note: declare 'static' if the function is not intended to be used outside of this translation unit
     251 | void sxevf_irq_disable(struct sxevf_hw *hw)
         | ^
         | static 
   drivers/net/ethernet/linkdata/sxevf/sxevf/sxevf_hw.c:259:6: error: no previous prototype for function 'sxevf_hw_ring_irq_map' [-Werror,-Wmissing-prototypes]
     259 | void sxevf_hw_ring_irq_map(struct sxevf_hw *hw, bool is_tx, u16 hw_ring_idx,
         |      ^
   drivers/net/ethernet/linkdata/sxevf/sxevf/sxevf_hw.c:259:1: note: declare 'static' if the function is not intended to be used outside of this translation unit
     259 | void sxevf_hw_ring_irq_map(struct sxevf_hw *hw, bool is_tx, u16 hw_ring_idx,
         | ^
         | static 
   drivers/net/ethernet/linkdata/sxevf/sxevf/sxevf_hw.c:276:6: error: no previous prototype for function 'sxevf_ring_irq_interval_set' [-Werror,-Wmissing-prototypes]
     276 | void sxevf_ring_irq_interval_set(struct sxevf_hw *hw, u16 irq_idx, u32 interval)
         |      ^
   drivers/net/ethernet/linkdata/sxevf/sxevf/sxevf_hw.c:276:1: note: declare 'static' if the function is not intended to be used outside of this translation unit
     276 | void sxevf_ring_irq_interval_set(struct sxevf_hw *hw, u16 irq_idx, u32 interval)
         | ^
         | static 
   drivers/net/ethernet/linkdata/sxevf/sxevf/sxevf_hw.c:313:6: error: no previous prototype for function 'sxevf_hw_reset' [-Werror,-Wmissing-prototypes]
     313 | void sxevf_hw_reset(struct sxevf_hw *hw)
         |      ^
   drivers/net/ethernet/linkdata/sxevf/sxevf/sxevf_hw.c:313:1: note: declare 'static' if the function is not intended to be used outside of this translation unit
     313 | void sxevf_hw_reset(struct sxevf_hw *hw)
         | ^
         | static 
   drivers/net/ethernet/linkdata/sxevf/sxevf/sxevf_hw.c:324:5: error: no previous prototype for function 'sxevf_link_state_get' [-Werror,-Wmissing-prototypes]
     324 | u32 sxevf_link_state_get(struct sxevf_hw *hw)
         |     ^
   drivers/net/ethernet/linkdata/sxevf/sxevf/sxevf_hw.c:324:1: note: declare 'static' if the function is not intended to be used outside of this translation unit
     324 | u32 sxevf_link_state_get(struct sxevf_hw *hw)
         | ^
         | static 
>> drivers/net/ethernet/linkdata/sxevf/sxevf/sxevf_hw.c:539:6: error: no previous prototype for function 'sxevf_tx_ring_switch' [-Werror,-Wmissing-prototypes]
     539 | void sxevf_tx_ring_switch(struct sxevf_hw *hw, u8 reg_idx, bool is_on)
         |      ^
   drivers/net/ethernet/linkdata/sxevf/sxevf/sxevf_hw.c:539:1: note: declare 'static' if the function is not intended to be used outside of this translation unit
     539 | void sxevf_tx_ring_switch(struct sxevf_hw *hw, u8 reg_idx, bool is_on)
         | ^
         | static 
>> drivers/net/ethernet/linkdata/sxevf/sxevf/sxevf_hw.c:594:6: error: no previous prototype for function 'sxevf_rx_ring_switch' [-Werror,-Wmissing-prototypes]
     594 | void sxevf_rx_ring_switch(struct sxevf_hw *hw, u8 reg_idx, bool is_on)
         |      ^
   drivers/net/ethernet/linkdata/sxevf/sxevf/sxevf_hw.c:594:1: note: declare 'static' if the function is not intended to be used outside of this translation unit
     594 | void sxevf_rx_ring_switch(struct sxevf_hw *hw, u8 reg_idx, bool is_on)
         | ^
         | static 
>> drivers/net/ethernet/linkdata/sxevf/sxevf/sxevf_hw.c:626:6: error: no previous prototype for function 'sxevf_rx_ring_desc_configure' [-Werror,-Wmissing-prototypes]
     626 | void sxevf_rx_ring_desc_configure(struct sxevf_hw *hw, u32 desc_mem_len,
         |      ^
   drivers/net/ethernet/linkdata/sxevf/sxevf/sxevf_hw.c:626:1: note: declare 'static' if the function is not intended to be used outside of this translation unit
     626 | void sxevf_rx_ring_desc_configure(struct sxevf_hw *hw, u32 desc_mem_len,
         | ^
         | static 
>> drivers/net/ethernet/linkdata/sxevf/sxevf/sxevf_hw.c:640:6: error: no previous prototype for function 'sxevf_rx_rcv_ctl_configure' [-Werror,-Wmissing-prototypes]
     640 | void sxevf_rx_rcv_ctl_configure(struct sxevf_hw *hw, u8 reg_idx,
         |      ^
   drivers/net/ethernet/linkdata/sxevf/sxevf/sxevf_hw.c:640:1: note: declare 'static' if the function is not intended to be used outside of this translation unit
     640 | void sxevf_rx_rcv_ctl_configure(struct sxevf_hw *hw, u8 reg_idx,
         | ^
         | static 
   fatal error: too many errors emitted, stopping now [-ferror-limit=]
   20 errors generated.


vim +/sxe_hw_specific_irq_disable +843 drivers/net/ethernet/linkdata/sxe/sxepf/sxe_hw.c

dd013ad487534c liujie_answer 2025-04-15   842  
dd013ad487534c liujie_answer 2025-04-15  @843  void sxe_hw_specific_irq_disable(struct sxe_hw *hw, u32 value)
dd013ad487534c liujie_answer 2025-04-15   844  {
dd013ad487534c liujie_answer 2025-04-15   845  	SXE_REG_WRITE(hw, SXE_EIMC, value);
dd013ad487534c liujie_answer 2025-04-15   846  }
dd013ad487534c liujie_answer 2025-04-15   847  
dd013ad487534c liujie_answer 2025-04-15  @848  void sxe_hw_specific_irq_enable(struct sxe_hw *hw, u32 value)
dd013ad487534c liujie_answer 2025-04-15   849  {
dd013ad487534c liujie_answer 2025-04-15   850  	SXE_REG_WRITE(hw, SXE_EIMS, value);
dd013ad487534c liujie_answer 2025-04-15   851  }
dd013ad487534c liujie_answer 2025-04-15   852  
dd013ad487534c liujie_answer 2025-04-15   853  static u32 sxe_hw_spp_state_get(struct sxe_hw *hw)
dd013ad487534c liujie_answer 2025-04-15   854  {
dd013ad487534c liujie_answer 2025-04-15   855  	return SXE_REG_READ(hw, SXE_SPP_STATE);
dd013ad487534c liujie_answer 2025-04-15   856  }
dd013ad487534c liujie_answer 2025-04-15   857  
dd013ad487534c liujie_answer 2025-04-15   858  static void sxe_hw_rx_los_disable(struct sxe_hw *hw)
dd013ad487534c liujie_answer 2025-04-15   859  {
dd013ad487534c liujie_answer 2025-04-15   860  	u32 value;
dd013ad487534c liujie_answer 2025-04-15   861  
dd013ad487534c liujie_answer 2025-04-15   862  	value = SXE_REG_READ(hw, SXE_EIMS);
dd013ad487534c liujie_answer 2025-04-15   863  	value &= ~SXE_EIMS_GPI_SPP1;
dd013ad487534c liujie_answer 2025-04-15   864  	SXE_REG_WRITE(hw, SXE_EIMS, value);
dd013ad487534c liujie_answer 2025-04-15   865  }
dd013ad487534c liujie_answer 2025-04-15   866  
dd013ad487534c liujie_answer 2025-04-15   867  static void sxe_hw_rx_los_enable(struct sxe_hw *hw)
dd013ad487534c liujie_answer 2025-04-15   868  {
dd013ad487534c liujie_answer 2025-04-15   869  	u32 value;
dd013ad487534c liujie_answer 2025-04-15   870  
dd013ad487534c liujie_answer 2025-04-15   871  	value = SXE_REG_READ(hw, SXE_EIMS);
dd013ad487534c liujie_answer 2025-04-15   872  	value |= SXE_EIMS_GPI_SPP1;
dd013ad487534c liujie_answer 2025-04-15   873  	SXE_REG_WRITE(hw, SXE_EIMS, value);
dd013ad487534c liujie_answer 2025-04-15   874  }
dd013ad487534c liujie_answer 2025-04-15   875  
dd013ad487534c liujie_answer 2025-04-15  @876  void sxe_hw_all_irq_disable(struct sxe_hw *hw)
dd013ad487534c liujie_answer 2025-04-15   877  {
dd013ad487534c liujie_answer 2025-04-15   878  	SXE_REG_WRITE(hw, SXE_EIMC, 0xFFFF0000);
dd013ad487534c liujie_answer 2025-04-15   879  
dd013ad487534c liujie_answer 2025-04-15   880  	SXE_REG_WRITE(hw, SXE_EIMC_EX(0), ~0);
dd013ad487534c liujie_answer 2025-04-15   881  	SXE_REG_WRITE(hw, SXE_EIMC_EX(1), ~0);
dd013ad487534c liujie_answer 2025-04-15   882  
dd013ad487534c liujie_answer 2025-04-15   883  	SXE_WRITE_FLUSH(hw);
dd013ad487534c liujie_answer 2025-04-15   884  }
dd013ad487534c liujie_answer 2025-04-15   885  
dd013ad487534c liujie_answer 2025-04-15   886  static void sxe_hw_spp_configure(struct sxe_hw *hw, u32 hw_spp_proc_delay_us)
dd013ad487534c liujie_answer 2025-04-15   887  {
dd013ad487534c liujie_answer 2025-04-15   888  	u32 reg = SXE_REG_READ(hw, SXE_SPP_PROC);
dd013ad487534c liujie_answer 2025-04-15   889  
dd013ad487534c liujie_answer 2025-04-15   890  	reg &= ~SXE_SPP_PROC_DELAY_US_MASK;
dd013ad487534c liujie_answer 2025-04-15   891  	reg |= hw_spp_proc_delay_us;
dd013ad487534c liujie_answer 2025-04-15   892  	reg &= SXE_SPP_PROC_SPP2_TRIGGER_MASK;
dd013ad487534c liujie_answer 2025-04-15   893  	reg |= SXE_SPP_PROC_SPP2_TRIGGER;
dd013ad487534c liujie_answer 2025-04-15   894  
dd013ad487534c liujie_answer 2025-04-15   895  	SXE_REG_WRITE(hw, SXE_SPP_PROC, reg);
dd013ad487534c liujie_answer 2025-04-15   896  }
dd013ad487534c liujie_answer 2025-04-15   897  
dd013ad487534c liujie_answer 2025-04-15   898  static s32 sxe_hw_irq_test(struct sxe_hw *hw, u32 *icr, bool shared)
dd013ad487534c liujie_answer 2025-04-15   899  {
dd013ad487534c liujie_answer 2025-04-15   900  	s32 ret = 0;
dd013ad487534c liujie_answer 2025-04-15   901  	u32 i, mask;
dd013ad487534c liujie_answer 2025-04-15   902  	struct sxe_adapter *adapter = hw->adapter;
dd013ad487534c liujie_answer 2025-04-15   903  
dd013ad487534c liujie_answer 2025-04-15   904  	sxe_hw_specific_irq_disable(hw, 0xFFFFFFFF);
dd013ad487534c liujie_answer 2025-04-15   905  	sxe_hw_regs_flush(hw);
dd013ad487534c liujie_answer 2025-04-15   906  	usleep_range(10000, 20000);
dd013ad487534c liujie_answer 2025-04-15   907  
dd013ad487534c liujie_answer 2025-04-15   908  	for (i = 0; i < 10; i++) {
dd013ad487534c liujie_answer 2025-04-15   909  		mask = BIT(i);
dd013ad487534c liujie_answer 2025-04-15   910  		if (!shared) {
dd013ad487534c liujie_answer 2025-04-15   911  			LOG_INFO_BDF("test irq: irq test start\n");
dd013ad487534c liujie_answer 2025-04-15   912  			*icr = 0;
dd013ad487534c liujie_answer 2025-04-15   913  			SXE_REG_WRITE(hw, SXE_EIMC, ~mask & 0x00007FFF);
dd013ad487534c liujie_answer 2025-04-15   914  			SXE_REG_WRITE(hw, SXE_EICS, ~mask & 0x00007FFF);
dd013ad487534c liujie_answer 2025-04-15   915  			sxe_hw_regs_flush(hw);
dd013ad487534c liujie_answer 2025-04-15   916  			usleep_range(10000, 20000);
dd013ad487534c liujie_answer 2025-04-15   917  
dd013ad487534c liujie_answer 2025-04-15   918  			if (*icr & mask) {
dd013ad487534c liujie_answer 2025-04-15   919  				LOG_ERROR_BDF("test irq: failed, eicr = %x\n", *icr);
dd013ad487534c liujie_answer 2025-04-15   920  				ret = -SXE_DIAG_DISABLE_IRQ_TEST_ERR;
dd013ad487534c liujie_answer 2025-04-15   921  				break;
dd013ad487534c liujie_answer 2025-04-15   922  			}
dd013ad487534c liujie_answer 2025-04-15   923  			LOG_INFO_BDF("test irq: irq test end\n");
dd013ad487534c liujie_answer 2025-04-15   924  		}
dd013ad487534c liujie_answer 2025-04-15   925  
dd013ad487534c liujie_answer 2025-04-15   926  		LOG_INFO_BDF("test irq: mask irq test start\n");
dd013ad487534c liujie_answer 2025-04-15   927  		*icr = 0;
dd013ad487534c liujie_answer 2025-04-15   928  		SXE_REG_WRITE(hw, SXE_EIMS, mask);
dd013ad487534c liujie_answer 2025-04-15   929  		SXE_REG_WRITE(hw, SXE_EICS, mask);
dd013ad487534c liujie_answer 2025-04-15   930  		sxe_hw_regs_flush(hw);
dd013ad487534c liujie_answer 2025-04-15   931  		usleep_range(10000, 20000);
dd013ad487534c liujie_answer 2025-04-15   932  
dd013ad487534c liujie_answer 2025-04-15   933  		if (!(*icr & mask)) {
dd013ad487534c liujie_answer 2025-04-15   934  			LOG_ERROR_BDF("test irq: mask failed, eicr = %x\n", *icr);
dd013ad487534c liujie_answer 2025-04-15   935  			ret = -SXE_DIAG_ENABLE_IRQ_TEST_ERR;
dd013ad487534c liujie_answer 2025-04-15   936  			break;
dd013ad487534c liujie_answer 2025-04-15   937  		}
dd013ad487534c liujie_answer 2025-04-15   938  		LOG_INFO_BDF("test irq: mask irq test end\n");
dd013ad487534c liujie_answer 2025-04-15   939  
dd013ad487534c liujie_answer 2025-04-15   940  		sxe_hw_specific_irq_disable(hw, mask);
dd013ad487534c liujie_answer 2025-04-15   941  		sxe_hw_regs_flush(hw);
dd013ad487534c liujie_answer 2025-04-15   942  		usleep_range(10000, 20000);
dd013ad487534c liujie_answer 2025-04-15   943  
dd013ad487534c liujie_answer 2025-04-15   944  		if (!shared) {
dd013ad487534c liujie_answer 2025-04-15   945  			LOG_INFO_BDF("test irq: other irq test start\n");
dd013ad487534c liujie_answer 2025-04-15   946  			*icr = 0;
dd013ad487534c liujie_answer 2025-04-15   947  			SXE_REG_WRITE(hw, SXE_EIMC, ~mask & 0x00007FFF);
dd013ad487534c liujie_answer 2025-04-15   948  			SXE_REG_WRITE(hw, SXE_EICS, ~mask & 0x00007FFF);
dd013ad487534c liujie_answer 2025-04-15   949  			sxe_hw_regs_flush(hw);
dd013ad487534c liujie_answer 2025-04-15   950  			usleep_range(10000, 20000);
dd013ad487534c liujie_answer 2025-04-15   951  
dd013ad487534c liujie_answer 2025-04-15   952  			if (*icr) {
dd013ad487534c liujie_answer 2025-04-15   953  				LOG_ERROR_BDF("test irq: other irq failed, eicr = %x\n", *icr);
dd013ad487534c liujie_answer 2025-04-15   954  				ret = -SXE_DIAG_DISABLE_OTHER_IRQ_TEST_ERR;
dd013ad487534c liujie_answer 2025-04-15   955  				break;
dd013ad487534c liujie_answer 2025-04-15   956  			}
dd013ad487534c liujie_answer 2025-04-15   957  			LOG_INFO_BDF("test irq: other irq test end\n");
dd013ad487534c liujie_answer 2025-04-15   958  		}
dd013ad487534c liujie_answer 2025-04-15   959  	}
dd013ad487534c liujie_answer 2025-04-15   960  
dd013ad487534c liujie_answer 2025-04-15   961  	sxe_hw_specific_irq_disable(hw, 0xFFFFFFFF);
dd013ad487534c liujie_answer 2025-04-15   962  	sxe_hw_regs_flush(hw);
dd013ad487534c liujie_answer 2025-04-15   963  	usleep_range(10000, 20000);
dd013ad487534c liujie_answer 2025-04-15   964  
dd013ad487534c liujie_answer 2025-04-15   965  	return ret;
dd013ad487534c liujie_answer 2025-04-15   966  }
dd013ad487534c liujie_answer 2025-04-15   967  
dd013ad487534c liujie_answer 2025-04-15   968  static const struct sxe_irq_operations sxe_irq_ops = {
dd013ad487534c liujie_answer 2025-04-15   969  	.event_irq_auto_clear_set = sxe_hw_event_irq_auto_clear_set,
dd013ad487534c liujie_answer 2025-04-15   970  	.ring_irq_interval_set = sxe_hw_ring_irq_interval_set,
dd013ad487534c liujie_answer 2025-04-15   971  	.event_irq_interval_set = sxe_hw_event_irq_interval_set,
dd013ad487534c liujie_answer 2025-04-15   972  	.set_eitrsel = sxe_hw_set_eitrsel,
dd013ad487534c liujie_answer 2025-04-15   973  	.ring_irq_map = sxe_hw_ring_irq_map,
dd013ad487534c liujie_answer 2025-04-15   974  	.event_irq_map = sxe_hw_event_irq_map,
dd013ad487534c liujie_answer 2025-04-15   975  	.irq_general_reg_set = sxe_hw_irq_general_reg_set,
dd013ad487534c liujie_answer 2025-04-15   976  	.irq_general_reg_get = sxe_hw_irq_general_reg_get,
dd013ad487534c liujie_answer 2025-04-15   977  	.ring_irq_auto_disable = sxe_hw_ring_irq_auto_disable,
dd013ad487534c liujie_answer 2025-04-15   978  	.pending_irq_read_clear = sxe_hw_pending_irq_read_clear,
dd013ad487534c liujie_answer 2025-04-15   979  	.pending_irq_write_clear = sxe_hw_pending_irq_write_clear,
dd013ad487534c liujie_answer 2025-04-15   980  	.ring_irq_enable = sxe_hw_ring_irq_enable,
dd013ad487534c liujie_answer 2025-04-15   981  	.irq_cause_get = sxe_hw_irq_cause_get,
dd013ad487534c liujie_answer 2025-04-15   982  	.event_irq_trigger = sxe_hw_event_irq_trigger,
dd013ad487534c liujie_answer 2025-04-15   983  	.ring_irq_trigger = sxe_hw_ring_irq_trigger,
dd013ad487534c liujie_answer 2025-04-15   984  	.specific_irq_disable = sxe_hw_specific_irq_disable,
dd013ad487534c liujie_answer 2025-04-15   985  	.specific_irq_enable = sxe_hw_specific_irq_enable,
dd013ad487534c liujie_answer 2025-04-15   986  	.spp_state_get = sxe_hw_spp_state_get,
dd013ad487534c liujie_answer 2025-04-15   987  	.rx_los_disable = sxe_hw_rx_los_disable,
dd013ad487534c liujie_answer 2025-04-15   988  	.rx_los_enable = sxe_hw_rx_los_enable,
dd013ad487534c liujie_answer 2025-04-15   989  	.all_irq_disable = sxe_hw_all_irq_disable,
dd013ad487534c liujie_answer 2025-04-15   990  	.spp_configure = sxe_hw_spp_configure,
dd013ad487534c liujie_answer 2025-04-15   991  	.irq_test = sxe_hw_irq_test,
dd013ad487534c liujie_answer 2025-04-15   992  };
dd013ad487534c liujie_answer 2025-04-15   993  
dd013ad487534c liujie_answer 2025-04-15  @994  u32 sxe_hw_link_speed_get(struct sxe_hw *hw)
dd013ad487534c liujie_answer 2025-04-15   995  {
dd013ad487534c liujie_answer 2025-04-15   996  	u32 speed, value;
dd013ad487534c liujie_answer 2025-04-15   997  	struct sxe_adapter *adapter = hw->adapter;
dd013ad487534c liujie_answer 2025-04-15   998  
dd013ad487534c liujie_answer 2025-04-15   999  	value = SXE_REG_READ(hw, SXE_COMCTRL);
dd013ad487534c liujie_answer 2025-04-15  1000  
dd013ad487534c liujie_answer 2025-04-15  1001  	if ((value & SXE_COMCTRL_SPEED_10G) == SXE_COMCTRL_SPEED_10G)
dd013ad487534c liujie_answer 2025-04-15  1002  		speed = SXE_LINK_SPEED_10GB_FULL;
dd013ad487534c liujie_answer 2025-04-15  1003  	else if ((value & SXE_COMCTRL_SPEED_1G) == SXE_COMCTRL_SPEED_1G)
dd013ad487534c liujie_answer 2025-04-15  1004  		speed = SXE_LINK_SPEED_1GB_FULL;
dd013ad487534c liujie_answer 2025-04-15  1005  	else
dd013ad487534c liujie_answer 2025-04-15  1006  		speed = SXE_LINK_SPEED_UNKNOWN;
dd013ad487534c liujie_answer 2025-04-15  1007  
dd013ad487534c liujie_answer 2025-04-15  1008  	LOG_DEBUG_BDF("hw link speed=%x, (0x80=10G, 0x20=1G)\n, reg=%x",
dd013ad487534c liujie_answer 2025-04-15  1009  		      speed, value);
dd013ad487534c liujie_answer 2025-04-15  1010  
dd013ad487534c liujie_answer 2025-04-15  1011  	return speed;
dd013ad487534c liujie_answer 2025-04-15  1012  }
dd013ad487534c liujie_answer 2025-04-15  1013  

:::::: The code at line 843 was first introduced by commit
:::::: dd013ad487534c1838afc2f55efdb5daec15aace Ethernet: Linkdata: Supports Linkdata ethernet Controllers

:::::: TO: liujie_answer <liujie5@linkdatatechnology.com>
:::::: CC: liujie_answer <liujie5@linkdatatechnology.com>

-- 
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:[~2025-07-05  0:06 UTC | newest]

Thread overview: (only message) (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2025-07-05  0:05 [openeuler:OLK-6.6 2439/2439] drivers/net/ethernet/linkdata/sxe/sxepf/sxe_hw.c:843:6: error: no previous prototype for function 'sxe_hw_specific_irq_disable' 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.