From: kbuild test robot <lkp@intel.com>
To: Michal Kalderon <michal.kalderon@marvell.com>
Cc: kbuild-all@lists.01.org, michal.kalderon@marvell.com,
ariel.elior@marvell.com, davem@davemloft.net,
netdev@vger.kernel.org, linux-rdma@vger.kernel.org,
linux-scsi@vger.kernel.org
Subject: Re: [PATCH v2 net-next 05/13] qed: Use dmae to write to widebus registers in fw_funcs
Date: Tue, 28 Jan 2020 07:39:44 +0800 [thread overview]
Message-ID: <202001280733.Fb6BWwaH%lkp@intel.com> (raw)
In-Reply-To: <20200123105836.15090-6-michal.kalderon@marvell.com>
Hi Michal,
I love your patch! Perhaps something to improve:
[auto build test WARNING on net-next/master]
[also build test WARNING on linus/master v5.5 next-20200122]
[if your patch is applied to the wrong git tree, please drop us a note to help
improve the system. BTW, we also suggest to use '--base' option to specify the
base tree in git format-patch, please see https://stackoverflow.com/a/37406982]
url: https://github.com/0day-ci/linux/commits/Michal-Kalderon/qed-Utilize-FW-8-42-2-0/20200125-055253
base: https://git.kernel.org/pub/scm/linux/kernel/git/davem/net-next.git 9bbc8be29d66cc34b650510f2c67b5c55235fe5d
reproduce:
# apt-get install sparse
# sparse version: v0.6.1-153-g47b6dfef-dirty
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@intel.com>
sparse warnings: (new ones prefixed by >>)
>> drivers/net/ethernet/qlogic/qed/qed_dev.c:910:9: sparse: sparse: invalid assignment: &=
>> drivers/net/ethernet/qlogic/qed/qed_dev.c:910:9: sparse: left side has type restricted __le32
>> drivers/net/ethernet/qlogic/qed/qed_dev.c:910:9: sparse: right side has type int
drivers/net/ethernet/qlogic/qed/qed_dev.c:910:9: sparse: sparse: invalid assignment: |=
>> drivers/net/ethernet/qlogic/qed/qed_dev.c:910:9: sparse: left side has type restricted __le32
>> drivers/net/ethernet/qlogic/qed/qed_dev.c:910:9: sparse: right side has type unsigned long long
--
>> drivers/net/ethernet/qlogic/qed/qed_hw.c:413:20: sparse: sparse: restricted __le32 degrades to integer
drivers/net/ethernet/qlogic/qed/qed_hw.c:420:20: sparse: sparse: restricted __le32 degrades to integer
drivers/net/ethernet/qlogic/qed/qed_hw.c:432:13: sparse: sparse: restricted __le32 degrades to integer
drivers/net/ethernet/qlogic/qed/qed_hw.c:438:20: sparse: sparse: restricted __le32 degrades to integer
drivers/net/ethernet/qlogic/qed/qed_hw.c:449:13: sparse: sparse: restricted __le32 degrades to integer
drivers/net/ethernet/qlogic/qed/qed_hw.c:455:13: sparse: sparse: restricted __le32 degrades to integer
drivers/net/ethernet/qlogic/qed/qed_hw.c:739:22: sparse: sparse: restricted __le32 degrades to integer
--
drivers/net/ethernet/qlogic/qed/qed_init_fw_funcs.c:1056:9: sparse: right side has type int
drivers/net/ethernet/qlogic/qed/qed_init_fw_funcs.c:1056:9: sparse: sparse: invalid assignment: |=
drivers/net/ethernet/qlogic/qed/qed_init_fw_funcs.c:1056:9: sparse: left side has type restricted __le32
drivers/net/ethernet/qlogic/qed/qed_init_fw_funcs.c:1056:9: sparse: right side has type unsigned long long
drivers/net/ethernet/qlogic/qed/qed_init_fw_funcs.c:1354:9: sparse: sparse: invalid assignment: &=
drivers/net/ethernet/qlogic/qed/qed_init_fw_funcs.c:1354:9: sparse: left side has type restricted __le32
drivers/net/ethernet/qlogic/qed/qed_init_fw_funcs.c:1354:9: sparse: right side has type int
drivers/net/ethernet/qlogic/qed/qed_init_fw_funcs.c:1354:9: sparse: sparse: invalid assignment: |=
drivers/net/ethernet/qlogic/qed/qed_init_fw_funcs.c:1354:9: sparse: left side has type restricted __le32
drivers/net/ethernet/qlogic/qed/qed_init_fw_funcs.c:1354:9: sparse: right side has type unsigned long long
drivers/net/ethernet/qlogic/qed/qed_init_fw_funcs.c:1355:9: sparse: sparse: invalid assignment: &=
drivers/net/ethernet/qlogic/qed/qed_init_fw_funcs.c:1355:9: sparse: left side has type restricted __le32
drivers/net/ethernet/qlogic/qed/qed_init_fw_funcs.c:1355:9: sparse: right side has type int
drivers/net/ethernet/qlogic/qed/qed_init_fw_funcs.c:1355:9: sparse: sparse: invalid assignment: |=
drivers/net/ethernet/qlogic/qed/qed_init_fw_funcs.c:1355:9: sparse: left side has type restricted __le32
drivers/net/ethernet/qlogic/qed/qed_init_fw_funcs.c:1355:9: sparse: right side has type unsigned long long
drivers/net/ethernet/qlogic/qed/qed_init_fw_funcs.c:1358:17: sparse: sparse: invalid assignment: &=
drivers/net/ethernet/qlogic/qed/qed_init_fw_funcs.c:1358:17: sparse: left side has type restricted __le32
drivers/net/ethernet/qlogic/qed/qed_init_fw_funcs.c:1358:17: sparse: right side has type int
drivers/net/ethernet/qlogic/qed/qed_init_fw_funcs.c:1358:17: sparse: sparse: invalid assignment: |=
drivers/net/ethernet/qlogic/qed/qed_init_fw_funcs.c:1358:17: sparse: left side has type restricted __le32
drivers/net/ethernet/qlogic/qed/qed_init_fw_funcs.c:1358:17: sparse: right side has type unsigned long long
drivers/net/ethernet/qlogic/qed/qed_init_fw_funcs.c:1359:17: sparse: sparse: invalid assignment: &=
drivers/net/ethernet/qlogic/qed/qed_init_fw_funcs.c:1359:17: sparse: left side has type restricted __le32
drivers/net/ethernet/qlogic/qed/qed_init_fw_funcs.c:1359:17: sparse: right side has type int
drivers/net/ethernet/qlogic/qed/qed_init_fw_funcs.c:1359:17: sparse: sparse: invalid assignment: |=
drivers/net/ethernet/qlogic/qed/qed_init_fw_funcs.c:1359:17: sparse: left side has type restricted __le32
drivers/net/ethernet/qlogic/qed/qed_init_fw_funcs.c:1359:17: sparse: right side has type unsigned long long
drivers/net/ethernet/qlogic/qed/qed_init_fw_funcs.c:1360:17: sparse: sparse: invalid assignment: &=
drivers/net/ethernet/qlogic/qed/qed_init_fw_funcs.c:1360:17: sparse: left side has type restricted __le32
drivers/net/ethernet/qlogic/qed/qed_init_fw_funcs.c:1360:17: sparse: right side has type int
drivers/net/ethernet/qlogic/qed/qed_init_fw_funcs.c:1360:17: sparse: sparse: invalid assignment: |=
drivers/net/ethernet/qlogic/qed/qed_init_fw_funcs.c:1360:17: sparse: left side has type restricted __le32
drivers/net/ethernet/qlogic/qed/qed_init_fw_funcs.c:1360:17: sparse: right side has type unsigned long long
drivers/net/ethernet/qlogic/qed/qed_init_fw_funcs.c:1361:17: sparse: sparse: invalid assignment: &=
drivers/net/ethernet/qlogic/qed/qed_init_fw_funcs.c:1361:17: sparse: left side has type restricted __le32
drivers/net/ethernet/qlogic/qed/qed_init_fw_funcs.c:1361:17: sparse: right side has type int
drivers/net/ethernet/qlogic/qed/qed_init_fw_funcs.c:1361:17: sparse: sparse: invalid assignment: |=
drivers/net/ethernet/qlogic/qed/qed_init_fw_funcs.c:1361:17: sparse: left side has type restricted __le32
drivers/net/ethernet/qlogic/qed/qed_init_fw_funcs.c:1361:17: sparse: right side has type unsigned long long
drivers/net/ethernet/qlogic/qed/qed_init_fw_funcs.c:1362:17: sparse: sparse: invalid assignment: &=
drivers/net/ethernet/qlogic/qed/qed_init_fw_funcs.c:1362:17: sparse: left side has type restricted __le32
drivers/net/ethernet/qlogic/qed/qed_init_fw_funcs.c:1362:17: sparse: right side has type int
drivers/net/ethernet/qlogic/qed/qed_init_fw_funcs.c:1362:17: sparse: sparse: invalid assignment: |=
drivers/net/ethernet/qlogic/qed/qed_init_fw_funcs.c:1362:17: sparse: left side has type restricted __le32
drivers/net/ethernet/qlogic/qed/qed_init_fw_funcs.c:1362:17: sparse: right side has type unsigned long long
drivers/net/ethernet/qlogic/qed/qed_init_fw_funcs.c:1363:17: sparse: sparse: invalid assignment: &=
drivers/net/ethernet/qlogic/qed/qed_init_fw_funcs.c:1363:17: sparse: left side has type restricted __le32
drivers/net/ethernet/qlogic/qed/qed_init_fw_funcs.c:1363:17: sparse: right side has type int
drivers/net/ethernet/qlogic/qed/qed_init_fw_funcs.c:1363:17: sparse: sparse: invalid assignment: |=
drivers/net/ethernet/qlogic/qed/qed_init_fw_funcs.c:1363:17: sparse: left side has type restricted __le32
drivers/net/ethernet/qlogic/qed/qed_init_fw_funcs.c:1363:17: sparse: right side has type unsigned long long
drivers/net/ethernet/qlogic/qed/qed_init_fw_funcs.c:1365:17: sparse: sparse: invalid assignment: &=
drivers/net/ethernet/qlogic/qed/qed_init_fw_funcs.c:1365:17: sparse: left side has type restricted __le32
drivers/net/ethernet/qlogic/qed/qed_init_fw_funcs.c:1365:17: sparse: right side has type int
drivers/net/ethernet/qlogic/qed/qed_init_fw_funcs.c:1365:17: sparse: sparse: invalid assignment: |=
drivers/net/ethernet/qlogic/qed/qed_init_fw_funcs.c:1365:17: sparse: left side has type restricted __le32
drivers/net/ethernet/qlogic/qed/qed_init_fw_funcs.c:1365:17: sparse: right side has type unsigned long long
drivers/net/ethernet/qlogic/qed/qed_init_fw_funcs.c:1366:17: sparse: sparse: invalid assignment: &=
drivers/net/ethernet/qlogic/qed/qed_init_fw_funcs.c:1366:17: sparse: left side has type restricted __le32
drivers/net/ethernet/qlogic/qed/qed_init_fw_funcs.c:1366:17: sparse: right side has type int
drivers/net/ethernet/qlogic/qed/qed_init_fw_funcs.c:1366:17: sparse: sparse: invalid assignment: |=
drivers/net/ethernet/qlogic/qed/qed_init_fw_funcs.c:1366:17: sparse: left side has type restricted __le32
drivers/net/ethernet/qlogic/qed/qed_init_fw_funcs.c:1366:17: sparse: right side has type unsigned long long
drivers/net/ethernet/qlogic/qed/qed_init_fw_funcs.c:1367:17: sparse: sparse: invalid assignment: &=
drivers/net/ethernet/qlogic/qed/qed_init_fw_funcs.c:1367:17: sparse: left side has type restricted __le32
drivers/net/ethernet/qlogic/qed/qed_init_fw_funcs.c:1367:17: sparse: right side has type int
drivers/net/ethernet/qlogic/qed/qed_init_fw_funcs.c:1367:17: sparse: sparse: invalid assignment: |=
drivers/net/ethernet/qlogic/qed/qed_init_fw_funcs.c:1367:17: sparse: left side has type restricted __le32
drivers/net/ethernet/qlogic/qed/qed_init_fw_funcs.c:1367:17: sparse: right side has type unsigned long long
drivers/net/ethernet/qlogic/qed/qed_init_fw_funcs.c:1369:17: sparse: sparse: invalid assignment: &=
drivers/net/ethernet/qlogic/qed/qed_init_fw_funcs.c:1369:17: sparse: left side has type restricted __le32
drivers/net/ethernet/qlogic/qed/qed_init_fw_funcs.c:1369:17: sparse: right side has type int
drivers/net/ethernet/qlogic/qed/qed_init_fw_funcs.c:1369:17: sparse: sparse: invalid assignment: |=
drivers/net/ethernet/qlogic/qed/qed_init_fw_funcs.c:1369:17: sparse: left side has type restricted __le32
drivers/net/ethernet/qlogic/qed/qed_init_fw_funcs.c:1369:17: sparse: right side has type unsigned long long
drivers/net/ethernet/qlogic/qed/qed_init_fw_funcs.c:1370:17: sparse: sparse: invalid assignment: &=
drivers/net/ethernet/qlogic/qed/qed_init_fw_funcs.c:1370:17: sparse: left side has type restricted __le32
drivers/net/ethernet/qlogic/qed/qed_init_fw_funcs.c:1370:17: sparse: right side has type int
drivers/net/ethernet/qlogic/qed/qed_init_fw_funcs.c:1370:17: sparse: sparse: invalid assignment: |=
drivers/net/ethernet/qlogic/qed/qed_init_fw_funcs.c:1370:17: sparse: left side has type restricted __le32
drivers/net/ethernet/qlogic/qed/qed_init_fw_funcs.c:1370:17: sparse: right side has type unsigned long long
drivers/net/ethernet/qlogic/qed/qed_init_fw_funcs.c:1372:17: sparse: sparse: invalid assignment: &=
drivers/net/ethernet/qlogic/qed/qed_init_fw_funcs.c:1372:17: sparse: left side has type restricted __le32
drivers/net/ethernet/qlogic/qed/qed_init_fw_funcs.c:1372:17: sparse: right side has type int
drivers/net/ethernet/qlogic/qed/qed_init_fw_funcs.c:1372:17: sparse: sparse: invalid assignment: |=
drivers/net/ethernet/qlogic/qed/qed_init_fw_funcs.c:1372:17: sparse: left side has type restricted __le32
drivers/net/ethernet/qlogic/qed/qed_init_fw_funcs.c:1372:17: sparse: right side has type unsigned long long
drivers/net/ethernet/qlogic/qed/qed_init_fw_funcs.c:1373:17: sparse: sparse: invalid assignment: &=
drivers/net/ethernet/qlogic/qed/qed_init_fw_funcs.c:1373:17: sparse: left side has type restricted __le32
drivers/net/ethernet/qlogic/qed/qed_init_fw_funcs.c:1373:17: sparse: right side has type int
drivers/net/ethernet/qlogic/qed/qed_init_fw_funcs.c:1373:17: sparse: sparse: invalid assignment: |=
drivers/net/ethernet/qlogic/qed/qed_init_fw_funcs.c:1373:17: sparse: left side has type restricted __le32
drivers/net/ethernet/qlogic/qed/qed_init_fw_funcs.c:1373:17: sparse: right side has type unsigned long long
drivers/net/ethernet/qlogic/qed/qed_init_fw_funcs.c:1375:17: sparse: sparse: invalid assignment: &=
drivers/net/ethernet/qlogic/qed/qed_init_fw_funcs.c:1375:17: sparse: left side has type restricted __le32
drivers/net/ethernet/qlogic/qed/qed_init_fw_funcs.c:1375:17: sparse: right side has type int
drivers/net/ethernet/qlogic/qed/qed_init_fw_funcs.c:1375:17: sparse: sparse: invalid assignment: |=
drivers/net/ethernet/qlogic/qed/qed_init_fw_funcs.c:1375:17: sparse: left side has type restricted __le32
drivers/net/ethernet/qlogic/qed/qed_init_fw_funcs.c:1375:17: sparse: right side has type unsigned long long
>> drivers/net/ethernet/qlogic/qed/qed_init_fw_funcs.c:1388:21: sparse: sparse: incorrect type in assignment (different base types)
>> drivers/net/ethernet/qlogic/qed/qed_init_fw_funcs.c:1388:21: sparse: expected restricted __le32 [addressable] [usertype] lo
>> drivers/net/ethernet/qlogic/qed/qed_init_fw_funcs.c:1388:21: sparse: got unsigned int
drivers/net/ethernet/qlogic/qed/qed_init_fw_funcs.c:1389:21: sparse: sparse: incorrect type in assignment (different base types)
>> drivers/net/ethernet/qlogic/qed/qed_init_fw_funcs.c:1389:21: sparse: expected restricted __le32 [addressable] [usertype] hi
>> drivers/net/ethernet/qlogic/qed/qed_init_fw_funcs.c:1389:21: sparse: got int
drivers/net/ethernet/qlogic/qed/qed_init_fw_funcs.c:1430:23: sparse: sparse: cast to restricted __be32
drivers/net/ethernet/qlogic/qed/qed_init_fw_funcs.c:1430:23: sparse: sparse: cast to restricted __be32
drivers/net/ethernet/qlogic/qed/qed_init_fw_funcs.c:1430:23: sparse: sparse: cast to restricted __be32
drivers/net/ethernet/qlogic/qed/qed_init_fw_funcs.c:1430:23: sparse: sparse: cast to restricted __be32
drivers/net/ethernet/qlogic/qed/qed_init_fw_funcs.c:1430:23: sparse: sparse: cast to restricted __be32
drivers/net/ethernet/qlogic/qed/qed_init_fw_funcs.c:1430:23: sparse: sparse: cast to restricted __be32
--
>> drivers/net/ethernet/qlogic/qed/qed_init_ops.c:218:9: sparse: sparse: invalid assignment: &=
>> drivers/net/ethernet/qlogic/qed/qed_init_ops.c:218:9: sparse: left side has type restricted __le32
>> drivers/net/ethernet/qlogic/qed/qed_init_ops.c:218:9: sparse: right side has type int
drivers/net/ethernet/qlogic/qed/qed_init_ops.c:218:9: sparse: sparse: invalid assignment: |=
>> drivers/net/ethernet/qlogic/qed/qed_init_ops.c:218:9: sparse: left side has type restricted __le32
>> drivers/net/ethernet/qlogic/qed/qed_init_ops.c:218:9: sparse: right side has type unsigned long long
drivers/net/ethernet/qlogic/qed/qed_init_ops.c:239:33: sparse: sparse: cast to restricted __le32
drivers/net/ethernet/qlogic/qed/qed_init_ops.c:240:20: sparse: sparse: cast to restricted __le32
drivers/net/ethernet/qlogic/qed/qed_init_ops.c:253:16: sparse: sparse: cast to restricted __le32
drivers/net/ethernet/qlogic/qed/qed_init_ops.c:310:20: sparse: sparse: cast to restricted __le32
drivers/net/ethernet/qlogic/qed/qed_init_ops.c:326:24: sparse: sparse: cast to restricted __le32
drivers/net/ethernet/qlogic/qed/qed_init_ops.c:330:24: sparse: sparse: cast to restricted __le32
drivers/net/ethernet/qlogic/qed/qed_init_ops.c:342:29: sparse: sparse: cast to restricted __le16
drivers/net/ethernet/qlogic/qed/qed_init_ops.c:343:29: sparse: sparse: cast to restricted __le16
drivers/net/ethernet/qlogic/qed/qed_init_ops.c:375:16: sparse: sparse: cast to restricted __le32
drivers/net/ethernet/qlogic/qed/qed_init_ops.c:401:16: sparse: sparse: cast to restricted __le32
drivers/net/ethernet/qlogic/qed/qed_init_ops.c:410:17: sparse: sparse: cast to restricted __le32
drivers/net/ethernet/qlogic/qed/qed_init_ops.c:410:17: sparse: sparse: cast to restricted __le32
drivers/net/ethernet/qlogic/qed/qed_init_ops.c:466:22: sparse: sparse: cast to restricted __le16
drivers/net/ethernet/qlogic/qed/qed_init_ops.c:471:24: sparse: sparse: cast to restricted __le32
drivers/net/ethernet/qlogic/qed/qed_init_ops.c:479:20: sparse: sparse: cast to restricted __le32
drivers/net/ethernet/qlogic/qed/qed_init_ops.c:480:23: sparse: sparse: cast to restricted __le32
drivers/net/ethernet/qlogic/qed/qed_init_ops.c:508:28: sparse: sparse: cast to restricted __le32
drivers/net/ethernet/qlogic/qed/qed_init_ops.c:531:25: sparse: sparse: cast to restricted __le32
drivers/net/ethernet/qlogic/qed/qed_init_ops.c:531:25: sparse: sparse: cast to restricted __le32
drivers/net/ethernet/qlogic/qed/qed_init_ops.c:531:25: sparse: sparse: cast to restricted __le32
drivers/net/ethernet/qlogic/qed/qed_init_ops.c:531:25: sparse: sparse: cast to restricted __le32
--
>> drivers/net/ethernet/qlogic/qed/qed_sriov.c:355:9: sparse: sparse: invalid assignment: &=
>> drivers/net/ethernet/qlogic/qed/qed_sriov.c:355:9: sparse: left side has type restricted __le32
>> drivers/net/ethernet/qlogic/qed/qed_sriov.c:355:9: sparse: right side has type int
drivers/net/ethernet/qlogic/qed/qed_sriov.c:355:9: sparse: sparse: invalid assignment: |=
>> drivers/net/ethernet/qlogic/qed/qed_sriov.c:355:9: sparse: left side has type restricted __le32
>> drivers/net/ethernet/qlogic/qed/qed_sriov.c:355:9: sparse: right side has type unsigned long long
drivers/net/ethernet/qlogic/qed/qed_sriov.c:575:35: sparse: sparse: incorrect type in argument 3 (incompatible argument 3 (different base types))
drivers/net/ethernet/qlogic/qed/qed_sriov.c:575:35: sparse: expected int ( *[usertype] cb )( ... )
drivers/net/ethernet/qlogic/qed/qed_sriov.c:575:35: sparse: got int ( * )( ... )
drivers/net/ethernet/qlogic/qed/qed_sriov.c:1229:9: sparse: sparse: invalid assignment: &=
drivers/net/ethernet/qlogic/qed/qed_sriov.c:1229:9: sparse: left side has type restricted __le32
drivers/net/ethernet/qlogic/qed/qed_sriov.c:1229:9: sparse: right side has type int
drivers/net/ethernet/qlogic/qed/qed_sriov.c:1229:9: sparse: sparse: invalid assignment: |=
drivers/net/ethernet/qlogic/qed/qed_sriov.c:1229:9: sparse: left side has type restricted __le32
drivers/net/ethernet/qlogic/qed/qed_sriov.c:1229:9: sparse: right side has type unsigned long long
drivers/net/ethernet/qlogic/qed/qed_sriov.c:4029:39: sparse: sparse: cast from restricted __le32
drivers/net/ethernet/qlogic/qed/qed_sriov.c:4029:70: sparse: sparse: restricted __le32 degrades to integer
drivers/net/ethernet/qlogic/qed/qed_sriov.c:4107:9: sparse: sparse: invalid assignment: &=
drivers/net/ethernet/qlogic/qed/qed_sriov.c:4107:9: sparse: left side has type restricted __le32
drivers/net/ethernet/qlogic/qed/qed_sriov.c:4107:9: sparse: right side has type int
drivers/net/ethernet/qlogic/qed/qed_sriov.c:4107:9: sparse: sparse: invalid assignment: |=
drivers/net/ethernet/qlogic/qed/qed_sriov.c:4107:9: sparse: left side has type restricted __le32
drivers/net/ethernet/qlogic/qed/qed_sriov.c:4107:9: sparse: right side has type unsigned long long
drivers/net/ethernet/qlogic/qed/qed_sriov.c:4108:9: sparse: sparse: invalid assignment: &=
drivers/net/ethernet/qlogic/qed/qed_sriov.c:4108:9: sparse: left side has type restricted __le32
drivers/net/ethernet/qlogic/qed/qed_sriov.c:4108:9: sparse: right side has type int
drivers/net/ethernet/qlogic/qed/qed_sriov.c:4108:9: sparse: sparse: invalid assignment: |=
drivers/net/ethernet/qlogic/qed/qed_sriov.c:4108:9: sparse: left side has type restricted __le32
drivers/net/ethernet/qlogic/qed/qed_sriov.c:4108:9: sparse: right side has type unsigned long long
vim +910 drivers/net/ethernet/qlogic/qed/qed_dev.c
867
868 static int
869 qed_llh_access_filter(struct qed_hwfn *p_hwfn,
870 struct qed_ptt *p_ptt,
871 u8 abs_ppfid,
872 u8 filter_idx,
873 struct qed_llh_filter_details *p_details)
874 {
875 struct qed_dmae_params params = {0};
876 u32 addr;
877 u8 pfid;
878 int rc;
879
880 /* The NIG/LLH registers that are accessed in this function have only 16
881 * rows which are exposed to a PF. I.e. only the 16 filters of its
882 * default ppfid. Accessing filters of other ppfids requires pretending
883 * to another PFs.
884 * The calculation of PPFID->PFID in AH is based on the relative index
885 * of a PF on its port.
886 * For BB the pfid is actually the abs_ppfid.
887 */
888 if (QED_IS_BB(p_hwfn->cdev))
889 pfid = abs_ppfid;
890 else
891 pfid = abs_ppfid * p_hwfn->cdev->num_ports_in_engine +
892 MFW_PORT(p_hwfn);
893
894 /* Filter enable - should be done first when removing a filter */
895 if (!p_details->enable) {
896 qed_fid_pretend(p_hwfn, p_ptt,
897 pfid << PXP_PRETEND_CONCRETE_FID_PFID_SHIFT);
898
899 addr = NIG_REG_LLH_FUNC_FILTER_EN + filter_idx * 0x4;
900 qed_wr(p_hwfn, p_ptt, addr, p_details->enable);
901
902 qed_fid_pretend(p_hwfn, p_ptt,
903 p_hwfn->rel_pf_id <<
904 PXP_PRETEND_CONCRETE_FID_PFID_SHIFT);
905 }
906
907 /* Filter value */
908 addr = NIG_REG_LLH_FUNC_FILTER_VALUE + 2 * filter_idx * 0x4;
909
> 910 SET_FIELD(params.flags, QED_DMAE_PARAMS_DST_PF_VALID, 0x1);
911 params.dst_pfid = pfid;
912 rc = qed_dmae_host2grc(p_hwfn,
913 p_ptt,
914 (u64)(uintptr_t)&p_details->value,
915 addr, 2 /* size_in_dwords */,
916 ¶ms);
917 if (rc)
918 return rc;
919
920 qed_fid_pretend(p_hwfn, p_ptt,
921 pfid << PXP_PRETEND_CONCRETE_FID_PFID_SHIFT);
922
923 /* Filter mode */
924 addr = NIG_REG_LLH_FUNC_FILTER_MODE + filter_idx * 0x4;
925 qed_wr(p_hwfn, p_ptt, addr, p_details->mode);
926
927 /* Filter protocol type */
928 addr = NIG_REG_LLH_FUNC_FILTER_PROTOCOL_TYPE + filter_idx * 0x4;
929 qed_wr(p_hwfn, p_ptt, addr, p_details->protocol_type);
930
931 /* Filter header select */
932 addr = NIG_REG_LLH_FUNC_FILTER_HDR_SEL + filter_idx * 0x4;
933 qed_wr(p_hwfn, p_ptt, addr, p_details->hdr_sel);
934
935 /* Filter enable - should be done last when adding a filter */
936 if (p_details->enable) {
937 addr = NIG_REG_LLH_FUNC_FILTER_EN + filter_idx * 0x4;
938 qed_wr(p_hwfn, p_ptt, addr, p_details->enable);
939 }
940
941 qed_fid_pretend(p_hwfn, p_ptt,
942 p_hwfn->rel_pf_id <<
943 PXP_PRETEND_CONCRETE_FID_PFID_SHIFT);
944
945 return 0;
946 }
947
---
0-DAY kernel test infrastructure Open Source Technology Center
https://lists.01.org/hyperkitty/list/kbuild-all@lists.01.org Intel Corporation
next prev parent reply other threads:[~2020-01-27 23:40 UTC|newest]
Thread overview: 24+ messages / expand[flat|nested] mbox.gz Atom feed top
2020-01-23 10:58 [PATCH v2 net-next 00/13] qed*: Utilize FW 8.42.2.0 Michal Kalderon
2020-01-23 10:58 ` [PATCH v2 net-next 01/13] qed: FW 8.42.2.0 Internal ram offsets modifications Michal Kalderon
2020-01-23 10:58 ` [PATCH v2 net-next 02/13] qed: FW 8.42.2.0 Expose new registers and change windows Michal Kalderon
2020-01-23 10:58 ` [PATCH v2 net-next 03/13] qed: FW 8.42.2.0 Queue Manager changes Michal Kalderon
2020-01-23 10:58 ` [PATCH v2 net-next 04/13] qed: FW 8.42.2.0 Parser offsets modified Michal Kalderon
2020-01-23 10:58 ` [PATCH v2 net-next 05/13] qed: Use dmae to write to widebus registers in fw_funcs Michal Kalderon
2020-01-26 23:30 ` kbuild test robot
2020-01-27 23:39 ` kbuild test robot [this message]
2020-01-23 10:58 ` [PATCH v2 net-next 06/13] qed: FW 8.42.2.0 Additional ll2 type Michal Kalderon
2020-01-23 10:58 ` [PATCH v2 net-next 07/13] qed: Add abstraction for different hsi values per chip Michal Kalderon
2020-01-23 10:58 ` [PATCH v2 net-next 08/13] qed: FW 8.42.2.0 iscsi/fcoe changes Michal Kalderon
2020-01-23 10:58 ` [PATCH v2 net-next 09/13] qed: FW 8.42.2.0 HSI changes Michal Kalderon
2020-01-27 2:51 ` kbuild test robot
2020-01-28 3:45 ` kbuild test robot
2020-01-23 10:58 ` [PATCH v2 net-next 10/13] qed: FW 8.42.2.0 Add fw overlay feature Michal Kalderon
2020-01-23 10:58 ` [PATCH v2 net-next 11/13] qed: Debug feature: ilt and mdump Michal Kalderon
2020-01-27 6:00 ` kbuild test robot
2020-01-27 6:00 ` [RFC PATCH] qed: Debug feature: qed_dbg_ilt_get_dump_buf_size() can be static kbuild test robot
2020-01-23 10:58 ` [PATCH v2 net-next 12/13] qed: rt init valid initialization changed Michal Kalderon
2020-01-23 10:58 ` [PATCH v2 net-next 13/13] qed: FW 8.42.2.0 debug features Michal Kalderon
2020-01-27 8:57 ` kbuild test robot
2020-01-23 17:16 ` [PATCH v2 net-next 00/13] qed*: Utilize FW 8.42.2.0 Jakub Kicinski
2020-01-26 11:29 ` Michal Kalderon
2020-01-26 20:30 ` Jakub Kicinski
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=202001280733.Fb6BWwaH%lkp@intel.com \
--to=lkp@intel.com \
--cc=ariel.elior@marvell.com \
--cc=davem@davemloft.net \
--cc=kbuild-all@lists.01.org \
--cc=linux-rdma@vger.kernel.org \
--cc=linux-scsi@vger.kernel.org \
--cc=michal.kalderon@marvell.com \
--cc=netdev@vger.kernel.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).