tree:   https://git.kernel.org/pub/scm/linux/kernel/git/kvalo/ath.git 
ath11k-qca6390-mhi
head:   dc3ad30e8022e5f833d4ae26935f03aff6d1f733
commit: 2836722907d15b06d3e3ce9339f9f3cb2ab5da4e [36/48] ath11k: enable second 
mac related ring setup
config: arm-allyesconfig (attached as .config)
compiler: arm-linux-gnueabi-gcc (GCC) 7.5.0
reproduce:
        wget 
https://raw.githubusercontent.com/intel/lkp-tests/master/sbin/make.cross -O 
~/bin/make.cross
        chmod +x ~/bin/make.cross
        git checkout 2836722907d15b06d3e3ce9339f9f3cb2ab5da4e
        # save the attached .config to linux build tree
        GCC_VERSION=7.5.0 make.cross ARCH=arm 

If you fix the issue, kindly add following tag
Reported-by: kbuild test robot <[email protected]>

All warnings (new ones prefixed by >>):

   drivers/net/wireless/ath/ath11k/hal.c: In function 'ath11k_hal_srng_setup':
>> drivers/net/wireless/ath/ath11k/hal.c:1041:83: warning: format '%llx' 
>> expects argument of type 'long long unsigned int', but argument 8 has type 
>> 'dma_addr_t {aka unsigned int}' [-Wformat=]
     ath11k_info(ab, "%s type:%d, ring_num:%d, ring_id:%d, 
lmac_ring:%d,msi_addr:0x%llx, msi_data:%d\n",
                                                                                
   ~~~^
                                                                                
   %x
   drivers/net/wireless/ath/ath11k/hal.c:1043:7:
          srng->msi_addr, srng->msi_data);
          ~~~~~~~~~~~~~~                                                        
       

vim +1041 drivers/net/wireless/ath/ath11k/hal.c

   949  
   950  int ath11k_hal_srng_setup(struct ath11k_base *ab, enum hal_ring_type 
type,
   951                            int ring_num, int mac_id,
   952                            struct hal_srng_params *params)
   953  {
   954          struct ath11k_hal *hal = &ab->hal;
   955          struct hal_srng_config *srng_config = &hw_srng_config[type];
   956          struct hal_srng *srng;
   957          int ring_id;
   958          u32 lmac_idx;
   959          int i;
   960          u32 reg_base;
   961  
   962          ring_id = ath11k_hal_srng_get_ring_id(ab, type, ring_num, 
mac_id);
   963          if (ring_id < 0)
   964                  return ring_id;
   965  
   966          srng = &hal->srng_list[ring_id];
   967  
   968          srng->ring_id = ring_id;
   969          srng->ring_dir = srng_config->ring_dir;
   970          srng->ring_base_paddr = params->ring_base_paddr;
   971          srng->ring_base_vaddr = params->ring_base_vaddr;
   972          srng->entry_size = srng_config->entry_size;
   973          srng->num_entries = params->num_entries;
   974          srng->ring_size = srng->entry_size * srng->num_entries;
   975          srng->intr_batch_cntr_thres_entries =
   976                                  params->intr_batch_cntr_thres_entries;
   977          srng->intr_timer_thres_us = params->intr_timer_thres_us;
   978          srng->flags = params->flags;
   979          srng->msi_addr = params->msi_addr;
   980          srng->msi_data = params->msi_data;
   981          spin_lock_init(&srng->lock);
   982  
   983          for (i = 0; i < HAL_SRNG_NUM_REG_GRP; i++) {
   984                  srng->hwreg_base[i] = srng_config->reg_start[i] +
   985                                        (ring_num * 
srng_config->reg_size[i]);
   986          }
   987  
   988          memset(srng->ring_base_vaddr, 0,
   989                 (srng->entry_size * srng->num_entries) << 2);
   990  
   991          /* TODO: Add comments on these swap configurations */
   992          if (IS_ENABLED(CONFIG_CPU_BIG_ENDIAN))
   993                  srng->flags |= HAL_SRNG_FLAGS_MSI_SWAP | 
HAL_SRNG_FLAGS_DATA_TLV_SWAP |
   994                                 HAL_SRNG_FLAGS_RING_PTR_SWAP;
   995  
   996          reg_base = srng->hwreg_base[HAL_SRNG_REG_GRP_R2];
   997  
   998          if (srng->ring_dir == HAL_SRNG_DIR_SRC) {
   999                  srng->u.src_ring.hp = 0;
  1000                  srng->u.src_ring.cached_tp = 0;
  1001                  srng->u.src_ring.reap_hp = srng->ring_size - 
srng->entry_size;
  1002                  srng->u.src_ring.tp_addr = (void *)(hal->rdp.vaddr + 
ring_id);
  1003                  srng->u.src_ring.low_threshold = params->low_threshold *
  1004                                                   srng->entry_size;
  1005                  if (srng_config->lmac_ring) {
  1006                          lmac_idx = ring_id - 
HAL_SRNG_RING_ID_LMAC1_ID_START;
  1007                          srng->u.src_ring.hp_addr = (void 
*)(hal->wrp.vaddr +
  1008                                                     lmac_idx);
  1009                          srng->flags |= HAL_SRNG_FLAGS_LMAC_RING;
  1010                  } else {
  1011                          srng->u.src_ring.hp_addr =
  1012                                  (u32 *)((unsigned long)ab->mem + 
reg_base);
  1013                  }
  1014          } else {
  1015                  /* During initialization loop count in all the 
descriptors
  1016                   * will be set to zero, and HW will set it to 1 on 
completing
  1017                   * descriptor update in first loop, and increments it 
by 1 on
  1018                   * subsequent loops (loop count wraps around after 
reaching
  1019                   * 0xffff). The 'loop_cnt' in SW ring state is the 
expected
  1020                   * loop count in descriptors updated by HW (to be 
processed
  1021                   * by SW).
  1022                   */
  1023                  srng->u.dst_ring.loop_cnt = 1;
  1024                  srng->u.dst_ring.tp = 0;
  1025                  srng->u.dst_ring.cached_hp = 0;
  1026                  srng->u.dst_ring.hp_addr = (void *)(hal->rdp.vaddr + 
ring_id);
  1027                  if (srng_config->lmac_ring) {
  1028                          /* For LMAC rings, tail pointer updates will be 
done
  1029                           * through FW by writing to a shared memory 
location
  1030                           */
  1031                          lmac_idx = ring_id - 
HAL_SRNG_RING_ID_LMAC1_ID_START;
  1032                          srng->u.dst_ring.tp_addr = (void 
*)(hal->wrp.vaddr +
  1033                                                     lmac_idx);
  1034                          srng->flags |= HAL_SRNG_FLAGS_LMAC_RING;
  1035                  } else {
  1036                          srng->u.dst_ring.tp_addr =
  1037                                  (u32 *)((unsigned long)ab->mem + 
reg_base +
  1038                                          (HAL_REO1_RING_TP - 
HAL_REO1_RING_HP));
  1039                  }
  1040          }
> 1041          ath11k_info(ab, "%s type:%d, ring_num:%d, ring_id:%d, 
> lmac_ring:%d,msi_addr:0x%llx, msi_data:%d\n",
  1042                      __func__, type, ring_num, srng->ring_id, 
srng_config->lmac_ring,
  1043                      srng->msi_addr, srng->msi_data);
  1044  
  1045          if (srng_config->lmac_ring)
  1046                  return ring_id;
  1047  
  1048          ath11k_hal_srng_hw_init(ab, srng);
  1049  
  1050          if (type == HAL_CE_DST) {
  1051                  srng->u.dst_ring.max_buffer_length = 
params->max_buffer_len;
  1052                  ath11k_hal_ce_dst_setup(ab, srng, ring_num);
  1053          }
  1054  
  1055          return ring_id;
  1056  }
  1057  

---
0-DAY kernel test infrastructure                 Open Source Technology Center
https://lists.01.org/hyperkitty/list/[email protected] Intel Corporation

Attachment: .config.gz
Description: application/gzip

_______________________________________________
ath10k mailing list
[email protected]
http://lists.infradead.org/mailman/listinfo/ath10k

Reply via email to