733-v6.4-22-net-mtk_eth_soc-use-WO-firmware-for-MT7981.patch 1.6 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546
  1. From f5af7931d2a2cae66d0f9dad4ba517b1b00620b3 Mon Sep 17 00:00:00 2001
  2. From: Daniel Golle <[email protected]>
  3. Date: Wed, 19 Apr 2023 19:07:23 +0100
  4. Subject: [PATCH] net: mtk_eth_soc: use WO firmware for MT7981
  5. In order to support wireless offloading on MT7981 we need to load the
  6. appropriate firmware. Recognize MT7981 and load mt7981_wo.bin.
  7. Signed-off-by: Daniel Golle <[email protected]>
  8. ---
  9. drivers/net/ethernet/mediatek/mtk_wed_mcu.c | 7 ++++++-
  10. drivers/net/ethernet/mediatek/mtk_wed_wo.h | 1 +
  11. 2 files changed, 7 insertions(+), 1 deletion(-)
  12. --- a/drivers/net/ethernet/mediatek/mtk_wed_mcu.c
  13. +++ b/drivers/net/ethernet/mediatek/mtk_wed_mcu.c
  14. @@ -326,7 +326,11 @@ mtk_wed_mcu_load_firmware(struct mtk_wed
  15. wo->hw->index + 1);
  16. /* load firmware */
  17. - fw_name = wo->hw->index ? MT7986_FIRMWARE_WO1 : MT7986_FIRMWARE_WO0;
  18. + if (of_device_is_compatible(wo->hw->node, "mediatek,mt7981-wed"))
  19. + fw_name = MT7981_FIRMWARE_WO;
  20. + else
  21. + fw_name = wo->hw->index ? MT7986_FIRMWARE_WO1 : MT7986_FIRMWARE_WO0;
  22. +
  23. ret = request_firmware(&fw, fw_name, wo->hw->dev);
  24. if (ret)
  25. return ret;
  26. @@ -386,5 +390,6 @@ int mtk_wed_mcu_init(struct mtk_wed_wo *
  27. 100, MTK_FW_DL_TIMEOUT);
  28. }
  29. +MODULE_FIRMWARE(MT7981_FIRMWARE_WO);
  30. MODULE_FIRMWARE(MT7986_FIRMWARE_WO0);
  31. MODULE_FIRMWARE(MT7986_FIRMWARE_WO1);
  32. --- a/drivers/net/ethernet/mediatek/mtk_wed_wo.h
  33. +++ b/drivers/net/ethernet/mediatek/mtk_wed_wo.h
  34. @@ -88,6 +88,7 @@ enum mtk_wed_dummy_cr_idx {
  35. MTK_WED_DUMMY_CR_WO_STATUS,
  36. };
  37. +#define MT7981_FIRMWARE_WO "mediatek/mt7981_wo.bin"
  38. #define MT7986_FIRMWARE_WO0 "mediatek/mt7986_wo_0.bin"
  39. #define MT7986_FIRMWARE_WO1 "mediatek/mt7986_wo_1.bin"