tree:
https://github.com/nbd168/wireless mt76
head: f40ac0f3d3c0e2b17185e1707a3b4552e5187dd5
commit: f40ac0f3d3c0e2b17185e1707a3b4552e5187dd5 [35/35] mt76: mt7615: introduce mt7663e
support
reproduce:
# apt-get install sparse
# sparse version: v0.6.1-180-g0558317d-dirty
git checkout f40ac0f3d3c0e2b17185e1707a3b4552e5187dd5
make ARCH=x86_64 allmodconfig
make C=1 CF='-fdiagnostic-prefix -D__CHECK_ENDIAN__'
If you fix the issue, kindly add following tag
Reported-by: kbuild test robot <lkp(a)intel.com>
sparse warnings: (new ones prefixed by >>)
drivers/net/wireless/mediatek/mt76/mt7615/mcu.c:125:30: sparse: sparse: incorrect type
in assignment (different base types) @@ expected restricted __le16 [usertype] cid @@
got pe] cid @@
drivers/net/wireless/mediatek/mt76/mt7615/mcu.c:125:30: sparse: expected restricted
__le16 [usertype] cid
drivers/net/wireless/mediatek/mt76/mt7615/mcu.c:125:30: sparse: got int mcu_cmd
drivers/net/wireless/mediatek/mt76/mt7615/mcu.c:190:5: sparse: sparse: symbol
'mt7615_mcu_wait_response' was not declared. Should it be static?
> drivers/net/wireless/mediatek/mt76/mt7615/mcu.c:1884:24: sparse:
sparse: cast to restricted __le32
drivers/net/wireless/mediatek/mt76/mt7615/mcu.c:1885:23: sparse: sparse: cast to
restricted __le32
drivers/net/wireless/mediatek/mt76/mt7615/mcu.c:1901:41: sparse: sparse: cast to
restricted __le32
vim +1884 drivers/net/wireless/mediatek/mt76/mt7615/mcu.c
1848
1849 static int mt7663_load_n9(struct mt7615_dev *dev, const char *name)
1850 {
1851 u32 offset = 0, override_addr = 0, flag = 0;
1852 const struct mt7663_fw_trailer *hdr;
1853 const struct mt7663_fw_buf *buf;
1854 const struct firmware *fw;
1855 const u8 *base_addr;
1856 int i, ret;
1857
1858 ret = request_firmware(&fw, name, dev->mt76.dev);
1859 if (ret)
1860 return ret;
1861
1862 if (!fw || !fw->data || fw->size < FW_V3_COMMON_TAILER_SIZE) {
1863 dev_err(dev->mt76.dev, "Invalid firmware\n");
1864 ret = -EINVAL;
1865 goto out;
1866 }
1867
1868 hdr = (const struct mt7663_fw_trailer *)(fw->data + fw->size -
1869 FW_V3_COMMON_TAILER_SIZE);
1870
1871 dev_info(dev->mt76.dev, "N9 Firmware Version: %.10s, Build Time:
%.15s\n",
1872 hdr->fw_ver, hdr->build_date);
1873 dev_info(dev->mt76.dev, "Region number: 0x%x\n", hdr->n_region);
1874
1875 base_addr = fw->data + fw->size - FW_V3_COMMON_TAILER_SIZE;
1876 for (i = 0; i < hdr->n_region; i++) {
1877 u32 shift = (hdr->n_region - i) * FW_V3_REGION_TAILER_SIZE;
1878 u32 len, addr, mode;
1879
1880 dev_info(dev->mt76.dev, "Parsing tailer Region: %d\n", i);
1881
1882 buf = (const struct mt7663_fw_buf *)(base_addr - shift);
1883 mode = mt7615_mcu_gen_dl_mode(buf->feature_set, false);
1884 addr = le32_to_cpu(buf->img_dest_addr);
1885 len
= le32_to_cpu(buf->img_size);
1886
1887 ret = mt7615_mcu_init_download(dev, addr, len, mode);
1888 if (ret) {
1889 dev_err(dev->mt76.dev, "Download request failed\n");
1890 goto out;
1891 }
1892
1893 ret = mt7615_mcu_send_firmware(dev, fw->data + offset, len);
1894 if (ret) {
1895 dev_err(dev->mt76.dev, "Failed to send firmware\n");
1896 goto out;
1897 }
1898
1899 offset += buf->img_size;
1900 if (buf->feature_set & DL_MODE_VALID_RAM_ENTRY) {
1901 override_addr = le32_to_cpu(buf->img_dest_addr);
1902 dev_info(dev->mt76.dev, "Region %d, override_addr = 0x%08x\n",
1903 i, override_addr);
1904 }
1905 }
1906
1907 if (is_mt7663(&dev->mt76)) {
1908 flag |= FW_START_DLYCAL;
1909 if (override_addr)
1910 flag |= FW_START_OVERRIDE;
1911
1912 dev_info(dev->mt76.dev, "override_addr = 0x%08x, option = %d\n",
1913 override_addr, flag);
1914 }
1915
1916 ret = mt7615_mcu_start_firmware(dev, override_addr, flag);
1917 if (ret)
1918 dev_err(dev->mt76.dev, "Failed to start N9 firmware\n");
1919
1920 out:
1921 release_firmware(fw);
1922
1923 return ret;
1924 }
1925
---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/kbuild-all@lists.01.org