1. 24 Sep, 2020 6 commits
    • Lorenzo Bianconi's avatar
      mt76: mt7615: move drv_own/fw_own in mt7615_mcu_ops · 186b659c
      Lorenzo Bianconi authored
      Introduce set_drv_ctrl and set_fw_ctrl function pointers in
      mt7615_mcu_ops data structure. This is a preliminary patch to enable
      runtime-pm for non-pci chipsets
      Signed-off-by: default avatarLorenzo Bianconi <lorenzo@kernel.org>
      Signed-off-by: default avatarFelix Fietkau <nbd@nbd.name>
      186b659c
    • Shayne Chen's avatar
      mt76: mt7615: register ext_phy if DBDC is detected · 7660a1bd
      Shayne Chen authored
      MT_EE_WIFI_CONF field can be used to detect if the chipset is MT7615D.
      Thus, add support to automatically register ext_phy if DBDC is detected.
      Signed-off-by: default avatarShayne Chen <shayne.chen@mediatek.com>
      Signed-off-by: default avatarFelix Fietkau <nbd@nbd.name>
      7660a1bd
    • Qinglang Miao's avatar
    • Andreas Färber's avatar
      rtw88: Fix potential probe error handling race with wow firmware loading · ac4bac99
      Andreas Färber authored
      If rtw_core_init() fails to load the wow firmware, rtw_core_deinit()
      will not get called to clean up the regular firmware.
      
      Ensure that an error loading the wow firmware does not produce an oops
      for the regular firmware by waiting on its completion to be signalled
      before returning. Also release the loaded firmware.
      
      Fixes: c8e5695e ("rtw88: load wowlan firmware if wowlan is supported")
      Cc: Chin-Yen Lee <timlee@realtek.com>
      Cc: Yan-Hsuan Chuang <yhchuang@realtek.com>
      Signed-off-by: default avatarAndreas Färber <afaerber@suse.de>
      Signed-off-by: default avatarKalle Valo <kvalo@codeaurora.org>
      Link: https://lore.kernel.org/r/20200920132621.26468-3-afaerber@suse.de
      ac4bac99
    • Andreas Färber's avatar
      rtw88: Fix probe error handling race with firmware loading · ecda9cda
      Andreas Färber authored
      In case of rtw8822be, a probe failure after successful rtw_core_init()
      has been observed to occasionally lead to an oops from rtw_load_firmware_cb():
      
      [    3.924268] pci 0001:01:00.0: [10ec:b822] type 00 class 0xff0000
      [    3.930531] pci 0001:01:00.0: reg 0x10: [io  0x0000-0x00ff]
      [    3.936360] pci 0001:01:00.0: reg 0x18: [mem 0x00000000-0x0000ffff 64bit]
      [    3.944042] pci 0001:01:00.0: supports D1 D2
      [    3.948438] pci 0001:01:00.0: PME# supported from D0 D1 D2 D3hot D3cold
      [    3.957312] pci 0001:01:00.0: BAR 2: no space for [mem size 0x00010000 64bit]
      [    3.964645] pci 0001:01:00.0: BAR 2: failed to assign [mem size 0x00010000 64bit]
      [    3.972332] pci 0001:01:00.0: BAR 0: assigned [io  0x10000-0x100ff]
      [    3.986240] rtw_8822be 0001:01:00.0: enabling device (0000 -> 0001)
      [    3.992735] rtw_8822be 0001:01:00.0: failed to map pci memory
      [    3.998638] rtw_8822be 0001:01:00.0: failed to request pci io region
      [    4.005166] rtw_8822be 0001:01:00.0: failed to setup pci resources
      [    4.011580] rtw_8822be: probe of 0001:01:00.0 failed with error -12
      [    4.018827] cfg80211: Loading compiled-in X.509 certificates for regulatory database
      [    4.029121] cfg80211: Loaded X.509 cert 'sforshee: 00b28ddf47aef9cea7'
      [    4.050828] Unable to handle kernel paging request at virtual address edafeaac9607952c
      [    4.058975] Mem abort info:
      [    4.058980]   ESR = 0x96000004
      [    4.058990]   EC = 0x25: DABT (current EL), IL = 32 bits
      [    4.070353]   SET = 0, FnV = 0
      [    4.073487]   EA = 0, S1PTW = 0
      [    4.073501] dw-apb-uart 98007800.serial: forbid DMA for kernel console
      [    4.076723] Data abort info:
      [    4.086415]   ISV = 0, ISS = 0x00000004
      [    4.087731] Freeing unused kernel memory: 1792K
      [    4.090391]   CM = 0, WnR = 0
      [    4.098091] [edafeaac9607952c] address between user and kernel address ranges
      [    4.105418] Internal error: Oops: 96000004 [#1] PREEMPT SMP
      [    4.111129] Modules linked in:
      [    4.114275] CPU: 1 PID: 31 Comm: kworker/1:1 Not tainted 5.9.0-rc5-next-20200915+ #700
      [    4.122386] Hardware name: Realtek Saola EVB (DT)
      [    4.127223] Workqueue: events request_firmware_work_func
      [    4.132676] pstate: 60000005 (nZCv daif -PAN -UAO BTYPE=--)
      [    4.138393] pc : rtw_load_firmware_cb+0x54/0xbc
      [    4.143040] lr : request_firmware_work_func+0x44/0xb4
      [    4.148217] sp : ffff800010133d70
      [    4.151616] x29: ffff800010133d70 x28: 0000000000000000
      [    4.157069] x27: 0000000000000000 x26: 0000000000000000
      [    4.162520] x25: 0000000000000000 x24: 0000000000000000
      [    4.167971] x23: ffff00007ac21908 x22: ffff00007ebb2100
      [    4.173424] x21: ffff00007ad35880 x20: edafeaac96079504
      [    4.178877] x19: ffff00007ad35870 x18: 0000000000000000
      [    4.184328] x17: 00000000000044d8 x16: 0000000000004310
      [    4.189780] x15: 0000000000000800 x14: 00000000ef006305
      [    4.195231] x13: ffffffff00000000 x12: ffffffffffffffff
      [    4.200682] x11: 0000000000000020 x10: 0000000000000003
      [    4.206135] x9 : 0000000000000000 x8 : ffff00007e73f680
      [    4.211585] x7 : 0000000000000000 x6 : ffff80001119b588
      [    4.217036] x5 : ffff00007e649c80 x4 : ffff00007e649c80
      [    4.222487] x3 : ffff80001119b588 x2 : ffff8000108d1718
      [    4.227940] x1 : ffff800011bd5000 x0 : ffff00007ac21600
      [    4.233391] Call trace:
      [    4.235906]  rtw_load_firmware_cb+0x54/0xbc
      [    4.240198]  request_firmware_work_func+0x44/0xb4
      [    4.245027]  process_one_work+0x178/0x1e4
      [    4.249142]  worker_thread+0x1d0/0x268
      [    4.252989]  kthread+0xe8/0xf8
      [    4.256127]  ret_from_fork+0x10/0x18
      [    4.259800] Code: f94013f5 a8c37bfd d65f03c0 f9000260 (f9401681)
      [    4.266049] ---[ end trace f822ebae1a8545c2 ]---
      
      To avoid this, wait on the completion callbacks in rtw_core_deinit()
      before releasing firmware and continuing teardown.
      
      Note that rtw_wait_firmware_completion() was introduced with
      c8e5695e ("rtw88: load wowlan firmware
      if wowlan is supported"), so backports to earlier branches may need to
      inline wait_for_completion(&rtwdev->fw.completion) instead.
      
      Fixes: e3037485 ("rtw88: new Realtek 802.11ac driver")
      Fixes: c8e5695e ("rtw88: load wowlan firmware if wowlan is supported")
      Cc: Yan-Hsuan Chuang <yhchuang@realtek.com>
      Signed-off-by: default avatarAndreas Färber <afaerber@suse.de>
      Signed-off-by: default avatarKalle Valo <kvalo@codeaurora.org>
      Link: https://lore.kernel.org/r/20200920132621.26468-2-afaerber@suse.de
      ecda9cda
    • Zhang Changzhong's avatar
      brcmfmac: check return value of driver_for_each_device() · 72a398a6
      Zhang Changzhong authored
      Fixes the following W=1 kernel build warning(s):
      
      drivers/net/wireless/broadcom/brcm80211/brcmfmac/usb.c:1576:6: warning:
       variable 'ret' set but not used [-Wunused-but-set-variable]
        1576 |  int ret;
             |      ^~~
      
      driver_for_each_device() has been declared with __must_check, so the
      return value should be checked.
      Signed-off-by: default avatarZhang Changzhong <zhangchangzhong@huawei.com>
      Signed-off-by: default avatarKalle Valo <kvalo@codeaurora.org>
      Link: https://lore.kernel.org/r/1600481191-14250-1-git-send-email-zhangchangzhong@huawei.com
      72a398a6
  2. 22 Sep, 2020 6 commits
  3. 21 Sep, 2020 11 commits
  4. 16 Sep, 2020 15 commits
  5. 12 Sep, 2020 2 commits
    • Barry Song's avatar
      net: hns: use IRQ_NOAUTOEN to avoid irq is enabled due to request_irq · 5a6bd84f
      Barry Song authored
      Rather than doing request_irq and then disabling the irq immediately, it
      should be safer to use IRQ_NOAUTOEN flag for the irq. It removes any gap
      between request_irq() and disable_irq().
      
      Cc: Salil Mehta <salil.mehta@huawei.com>
      Reviewed-by: default avatarYunsheng Lin <linyunsheng@huawei.com>
      Signed-off-by: default avatarBarry Song <song.bao.hua@hisilicon.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      5a6bd84f
    • David S. Miller's avatar
      Merge branch 'net-ethernet-ti-ale-add-static-configuration' · 1cf814a0
      David S. Miller authored
      Grygorii Strashko says:
      
      ====================
      net: ethernet: ti: ale: add static configuration
      
      As existing, as newly introduced CPSW ALE versions have differences in
      supported features and ALE table formats. Especially it's actual for the
      recent AM65x/J721E/J7200 and future AM64x SoCs, which supports more
      features like: auto-aging, classifiers, Link aggregation, additional HW
      filtering, etc.
      
      The existing ALE configuration interface is not practical in terms of
      adding new features and requires consumers to program a lot static
      parameters. And any attempt to add new features will case endless adding
      and maintaining different combination of flags and options. Because CPSW
      ALE configuration is static and fixed for SoC (or set of SoC), It is
      reasonable to add support for static ALE configurations inside ALE module.
      
      This series introduces static ALE configuration table for different ALE
      variants and provides option for consumers to select required ALE
      configuration by providing ALE const char *dev_id identifier (Patch 2).
      And all existing driver have been switched to use new approach (Patches 3-6).
      
      After this ALE HW auto-ageing feature can be enabled for AM65x CPSW ALE
      variant (Patch 7).
      
      Finally, Patches 8-9 introduces tables to describe the ALE VLAN entries
      fields as the ALE VLAN entries are too much differ between different TI
      CPSW ALE versions. So, handling them using flags, defines and get/set
      functions are became over-complicated.
      
      Patch 1 - is preparation patch
      
      Changes in v3:
      - fixed comment for Patch 2
      
      Changes in v2:
      - fixed sparse warnings
      
      v2: https://lore.kernel.org/patchwork/cover/1301684/
      v1: https://lore.kernel.org/patchwork/cover/1301048/
      ====================
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      1cf814a0