1. 01 6月, 2017 1 次提交
    • B
      ath10k: increase BMI timeout · 13c3b26a
      Ben Greear 提交于
      When testing a 9888 chipset NIC, I notice it often takes
      almost 2 seconds, and then many times OTP fails, probably due
      to the two-second timeout.
      
      [ 2269.841842] ath10k_pci 0000:05:00.0: bmi cmd took: 1984 jiffies (HZ: 1000), rv: 0
      [ 2273.608185] ath10k_pci 0000:05:00.0: bmi cmd took: 1986 jiffies (HZ: 1000), rv: 0
      [ 2277.294732] ath10k_pci 0000:05:00.0: bmi cmd took: 1989 jiffies (HZ: 1000), rv: 0
      
      So, increase the BMI timeout to 3 seconds.
      Signed-off-by: NBen Greear <greearb@candelatech.com>
      Signed-off-by: NKalle Valo <kvalo@qca.qualcomm.com>
      13c3b26a
  2. 31 5月, 2017 1 次提交
    • A
      ath10k: go back to using dma_alloc_coherent() for firmware scratch memory · 79e68821
      Adrian Chadd 提交于
      This reverts commit b0578865 ("ath10k: do not use coherent memory for
      allocated device memory chunks") in 2015 which converted this allocation from
      dma_map_coherent() to kzalloc() / dma_map_single().
      
      The current problem manifests when using later model NICs with larger
      (>700KiB) scratch spaces in memory.  Although the kzalloc call
      succeeds, the software IOMMU TLB code (via dma_map_single()) panics
      because it can't find 700KiB of linear physmem bounce buffers for DMA.
      Now, this is a bit of a silly failure mode for the dma map API,
      but it's what we currently have to play with.
      
      In these cases, doing kzalloc() works fine, but the dma_map_single()
      call fails.
      
      After chatting with Linus briefly about this, it indeed should be
      using dma_alloc_coherent() for doing larger device memory allocation
      that requires some kind of physical address mapping.
      
      You're not supposed to be using kzalloc and dma_map_* calls for
      large memory regions, and I'm guessing not for long-held mappings
      either.  Typically dma mappings should be temporary for DMA,
      not long held like these.
      
      Now, since hopefully the major annoying underlying problem has also been
      addressed (ie, ath10k is no longer tears down all of these allocations
      and reallocates them every time the vdevs are brought down) fragmentation
      should stop being such a touchy issue.  If it is though, using
      dma_alloc_coherent() use gets us access to the CMB APIs too relatively
      easily and ideally we would be allocating memory early in boot for
      exactly these reasons.
      Signed-off-by: NAdrian Chadd <adrian@FreeBSD.org>
      Signed-off-by: NKalle Valo <kvalo@qca.qualcomm.com>
      79e68821
  3. 23 5月, 2017 6 次提交
  4. 19 5月, 2017 20 次提交
  5. 18 5月, 2017 12 次提交