From: Dan Carpenter <dan.carpenter@oracle.com>
To: kbuild@lists.01.org
Subject: [habanaai:habanalabs-next 17/17] drivers/misc/habanalabs/gaudi/gaudi.c:6077 gaudi_is_device_idle() warn: should '!is_eng_idle << (0 + dma_id)' be a 64 bit
Date: Mon, 24 Aug 2020 13:49:48 +0300 [thread overview]
Message-ID: <20200824104948.GC1793@kadam> (raw)
[-- Attachment #1: Type: text/plain, Size: 9688 bytes --]
tree: https://github.com/HabanaAI/linux.git habanalabs-next
head: eb5cb5d380ac735874da3b555f4c8ab6ea814c90
commit: eb5cb5d380ac735874da3b555f4c8ab6ea814c90 [17/17] habanalabs: extend busy engines mask to 64 bits
config: x86_64-randconfig-m001-20200820 (attached as .config)
compiler: gcc-9 (Debian 9.3.0-15) 9.3.0
If you fix the issue, kindly add following tag as appropriate
Reported-by: kernel test robot <lkp@intel.com>
Reported-by: Dan Carpenter <dan.carpenter@oracle.com>
smatch warnings:
drivers/misc/habanalabs/gaudi/gaudi.c:6077 gaudi_is_device_idle() warn: should '!is_eng_idle << (0 + dma_id)' be a 64 bit type?
# https://github.com/HabanaAI/linux/commit/eb5cb5d380ac735874da3b555f4c8ab6ea814c90
git remote add habanaai https://github.com/HabanaAI/linux.git
git fetch --no-tags habanaai habanalabs-next
git checkout eb5cb5d380ac735874da3b555f4c8ab6ea814c90
vim +6077 drivers/misc/habanalabs/gaudi/gaudi.c
eb5cb5d380ac735 farah kassabri 2020-08-12 6044 static bool gaudi_is_device_idle(struct hl_device *hdev, u64 *mask,
^^^^^^^^^
This is now 64 bit.
ac0ae6a96aa58ee Oded Gabbay 2020-05-11 6045 struct seq_file *s)
ac0ae6a96aa58ee Oded Gabbay 2020-05-11 6046 {
ac0ae6a96aa58ee Oded Gabbay 2020-05-11 6047 struct gaudi_device *gaudi = hdev->asic_specific;
ac0ae6a96aa58ee Oded Gabbay 2020-05-11 6048 const char *fmt = "%-5d%-9s%#-14x%#-12x%#x\n";
ac0ae6a96aa58ee Oded Gabbay 2020-05-11 6049 const char *mme_slave_fmt = "%-5d%-9s%-14s%-12s%#x\n";
ac0ae6a96aa58ee Oded Gabbay 2020-05-11 6050 u32 qm_glbl_sts0, qm_cgm_sts, dma_core_sts0, tpc_cfg_sts, mme_arch_sts;
ac0ae6a96aa58ee Oded Gabbay 2020-05-11 6051 bool is_idle = true, is_eng_idle, is_slave;
ac0ae6a96aa58ee Oded Gabbay 2020-05-11 6052 u64 offset;
ac0ae6a96aa58ee Oded Gabbay 2020-05-11 6053 int i, dma_id;
ac0ae6a96aa58ee Oded Gabbay 2020-05-11 6054
ac0ae6a96aa58ee Oded Gabbay 2020-05-11 6055 mutex_lock(&gaudi->clk_gate_mutex);
ac0ae6a96aa58ee Oded Gabbay 2020-05-11 6056
ac0ae6a96aa58ee Oded Gabbay 2020-05-11 6057 hdev->asic_funcs->disable_clock_gating(hdev);
ac0ae6a96aa58ee Oded Gabbay 2020-05-11 6058
ac0ae6a96aa58ee Oded Gabbay 2020-05-11 6059 if (s)
ac0ae6a96aa58ee Oded Gabbay 2020-05-11 6060 seq_puts(s,
ac0ae6a96aa58ee Oded Gabbay 2020-05-11 6061 "\nDMA is_idle QM_GLBL_STS0 QM_CGM_STS DMA_CORE_STS0\n"
ac0ae6a96aa58ee Oded Gabbay 2020-05-11 6062 "--- ------- ------------ ---------- -------------\n");
ac0ae6a96aa58ee Oded Gabbay 2020-05-11 6063
ac0ae6a96aa58ee Oded Gabbay 2020-05-11 6064 for (i = 0 ; i < DMA_NUMBER_OF_CHNLS ; i++) {
ac0ae6a96aa58ee Oded Gabbay 2020-05-11 6065 dma_id = gaudi_dma_assignment[i];
ac0ae6a96aa58ee Oded Gabbay 2020-05-11 6066 offset = dma_id * DMA_QMAN_OFFSET;
ac0ae6a96aa58ee Oded Gabbay 2020-05-11 6067
ac0ae6a96aa58ee Oded Gabbay 2020-05-11 6068 qm_glbl_sts0 = RREG32(mmDMA0_QM_GLBL_STS0 + offset);
ac0ae6a96aa58ee Oded Gabbay 2020-05-11 6069 qm_cgm_sts = RREG32(mmDMA0_QM_CGM_STS + offset);
ac0ae6a96aa58ee Oded Gabbay 2020-05-11 6070 dma_core_sts0 = RREG32(mmDMA0_CORE_STS0 + offset);
ac0ae6a96aa58ee Oded Gabbay 2020-05-11 6071 is_eng_idle = IS_QM_IDLE(qm_glbl_sts0, qm_cgm_sts) &&
ac0ae6a96aa58ee Oded Gabbay 2020-05-11 6072 IS_DMA_IDLE(dma_core_sts0);
ac0ae6a96aa58ee Oded Gabbay 2020-05-11 6073 is_idle &= is_eng_idle;
ac0ae6a96aa58ee Oded Gabbay 2020-05-11 6074
ac0ae6a96aa58ee Oded Gabbay 2020-05-11 6075 if (mask)
ac0ae6a96aa58ee Oded Gabbay 2020-05-11 6076 *mask |= !is_eng_idle <<
ac0ae6a96aa58ee Oded Gabbay 2020-05-11 @6077 (GAUDI_ENGINE_ID_DMA_0 + dma_id);
So this needs to be:
*mask |= (u64)s_eng_idle << (GAUDI_ENGINE_ID_DMA_0 + dma_id);
to prevent shift wrapping. Smatch doesn't know the value of dma_id.
ac0ae6a96aa58ee Oded Gabbay 2020-05-11 6078 if (s)
ac0ae6a96aa58ee Oded Gabbay 2020-05-11 6079 seq_printf(s, fmt, dma_id,
ac0ae6a96aa58ee Oded Gabbay 2020-05-11 6080 is_eng_idle ? "Y" : "N", qm_glbl_sts0,
ac0ae6a96aa58ee Oded Gabbay 2020-05-11 6081 qm_cgm_sts, dma_core_sts0);
ac0ae6a96aa58ee Oded Gabbay 2020-05-11 6082 }
ac0ae6a96aa58ee Oded Gabbay 2020-05-11 6083
ac0ae6a96aa58ee Oded Gabbay 2020-05-11 6084 if (s)
ac0ae6a96aa58ee Oded Gabbay 2020-05-11 6085 seq_puts(s,
ac0ae6a96aa58ee Oded Gabbay 2020-05-11 6086 "\nTPC is_idle QM_GLBL_STS0 QM_CGM_STS CFG_STATUS\n"
ac0ae6a96aa58ee Oded Gabbay 2020-05-11 6087 "--- ------- ------------ ---------- ----------\n");
ac0ae6a96aa58ee Oded Gabbay 2020-05-11 6088
ac0ae6a96aa58ee Oded Gabbay 2020-05-11 6089 for (i = 0 ; i < TPC_NUMBER_OF_ENGINES ; i++) {
ac0ae6a96aa58ee Oded Gabbay 2020-05-11 6090 offset = i * TPC_QMAN_OFFSET;
ac0ae6a96aa58ee Oded Gabbay 2020-05-11 6091 qm_glbl_sts0 = RREG32(mmTPC0_QM_GLBL_STS0 + offset);
ac0ae6a96aa58ee Oded Gabbay 2020-05-11 6092 qm_cgm_sts = RREG32(mmTPC0_QM_CGM_STS + offset);
ac0ae6a96aa58ee Oded Gabbay 2020-05-11 6093 tpc_cfg_sts = RREG32(mmTPC0_CFG_STATUS + offset);
ac0ae6a96aa58ee Oded Gabbay 2020-05-11 6094 is_eng_idle = IS_QM_IDLE(qm_glbl_sts0, qm_cgm_sts) &&
ac0ae6a96aa58ee Oded Gabbay 2020-05-11 6095 IS_TPC_IDLE(tpc_cfg_sts);
ac0ae6a96aa58ee Oded Gabbay 2020-05-11 6096 is_idle &= is_eng_idle;
ac0ae6a96aa58ee Oded Gabbay 2020-05-11 6097
ac0ae6a96aa58ee Oded Gabbay 2020-05-11 6098 if (mask)
ac0ae6a96aa58ee Oded Gabbay 2020-05-11 6099 *mask |= !is_eng_idle << (GAUDI_ENGINE_ID_TPC_0 + i);
Presumably Smatch knows that TPC_NUMBER_OF_ENGINES + GAUDI_ENGINE_ID_TPC_0
is less than 31.
ac0ae6a96aa58ee Oded Gabbay 2020-05-11 6100 if (s)
ac0ae6a96aa58ee Oded Gabbay 2020-05-11 6101 seq_printf(s, fmt, i,
ac0ae6a96aa58ee Oded Gabbay 2020-05-11 6102 is_eng_idle ? "Y" : "N",
ac0ae6a96aa58ee Oded Gabbay 2020-05-11 6103 qm_glbl_sts0, qm_cgm_sts, tpc_cfg_sts);
ac0ae6a96aa58ee Oded Gabbay 2020-05-11 6104 }
ac0ae6a96aa58ee Oded Gabbay 2020-05-11 6105
ac0ae6a96aa58ee Oded Gabbay 2020-05-11 6106 if (s)
ac0ae6a96aa58ee Oded Gabbay 2020-05-11 6107 seq_puts(s,
ac0ae6a96aa58ee Oded Gabbay 2020-05-11 6108 "\nMME is_idle QM_GLBL_STS0 QM_CGM_STS ARCH_STATUS\n"
ac0ae6a96aa58ee Oded Gabbay 2020-05-11 6109 "--- ------- ------------ ---------- -----------\n");
ac0ae6a96aa58ee Oded Gabbay 2020-05-11 6110
ac0ae6a96aa58ee Oded Gabbay 2020-05-11 6111 for (i = 0 ; i < MME_NUMBER_OF_ENGINES ; i++) {
ac0ae6a96aa58ee Oded Gabbay 2020-05-11 6112 offset = i * MME_QMAN_OFFSET;
ac0ae6a96aa58ee Oded Gabbay 2020-05-11 6113 mme_arch_sts = RREG32(mmMME0_CTRL_ARCH_STATUS + offset);
ac0ae6a96aa58ee Oded Gabbay 2020-05-11 6114 is_eng_idle = IS_MME_IDLE(mme_arch_sts);
ac0ae6a96aa58ee Oded Gabbay 2020-05-11 6115
ac0ae6a96aa58ee Oded Gabbay 2020-05-11 6116 /* MME 1 & 3 are slaves, no need to check their QMANs */
ac0ae6a96aa58ee Oded Gabbay 2020-05-11 6117 is_slave = i % 2;
ac0ae6a96aa58ee Oded Gabbay 2020-05-11 6118 if (!is_slave) {
ac0ae6a96aa58ee Oded Gabbay 2020-05-11 6119 qm_glbl_sts0 = RREG32(mmMME0_QM_GLBL_STS0 + offset);
ac0ae6a96aa58ee Oded Gabbay 2020-05-11 6120 qm_cgm_sts = RREG32(mmMME0_QM_CGM_STS + offset);
ac0ae6a96aa58ee Oded Gabbay 2020-05-11 6121 is_eng_idle &= IS_QM_IDLE(qm_glbl_sts0, qm_cgm_sts);
ac0ae6a96aa58ee Oded Gabbay 2020-05-11 6122 }
ac0ae6a96aa58ee Oded Gabbay 2020-05-11 6123
ac0ae6a96aa58ee Oded Gabbay 2020-05-11 6124 is_idle &= is_eng_idle;
ac0ae6a96aa58ee Oded Gabbay 2020-05-11 6125
ac0ae6a96aa58ee Oded Gabbay 2020-05-11 6126 if (mask)
ac0ae6a96aa58ee Oded Gabbay 2020-05-11 6127 *mask |= !is_eng_idle << (GAUDI_ENGINE_ID_MME_0 + i);
ac0ae6a96aa58ee Oded Gabbay 2020-05-11 6128 if (s) {
ac0ae6a96aa58ee Oded Gabbay 2020-05-11 6129 if (!is_slave)
ac0ae6a96aa58ee Oded Gabbay 2020-05-11 6130 seq_printf(s, fmt, i,
ac0ae6a96aa58ee Oded Gabbay 2020-05-11 6131 is_eng_idle ? "Y" : "N",
ac0ae6a96aa58ee Oded Gabbay 2020-05-11 6132 qm_glbl_sts0, qm_cgm_sts, mme_arch_sts);
ac0ae6a96aa58ee Oded Gabbay 2020-05-11 6133 else
ac0ae6a96aa58ee Oded Gabbay 2020-05-11 6134 seq_printf(s, mme_slave_fmt, i,
ac0ae6a96aa58ee Oded Gabbay 2020-05-11 6135 is_eng_idle ? "Y" : "N", "-",
ac0ae6a96aa58ee Oded Gabbay 2020-05-11 6136 "-", mme_arch_sts);
ac0ae6a96aa58ee Oded Gabbay 2020-05-11 6137 }
ac0ae6a96aa58ee Oded Gabbay 2020-05-11 6138 }
ac0ae6a96aa58ee Oded Gabbay 2020-05-11 6139
ac0ae6a96aa58ee Oded Gabbay 2020-05-11 6140 if (s)
ac0ae6a96aa58ee Oded Gabbay 2020-05-11 6141 seq_puts(s, "\n");
ac0ae6a96aa58ee Oded Gabbay 2020-05-11 6142
e38bfd30e08802d Oded Gabbay 2020-07-03 6143 hdev->asic_funcs->set_clock_gating(hdev);
ac0ae6a96aa58ee Oded Gabbay 2020-05-11 6144
ac0ae6a96aa58ee Oded Gabbay 2020-05-11 6145 mutex_unlock(&gaudi->clk_gate_mutex);
ac0ae6a96aa58ee Oded Gabbay 2020-05-11 6146
ac0ae6a96aa58ee Oded Gabbay 2020-05-11 6147 return is_idle;
ac0ae6a96aa58ee Oded Gabbay 2020-05-11 6148 }
---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/kbuild-all(a)lists.01.org
[-- Attachment #2: config.gz --]
[-- Type: application/gzip, Size: 36161 bytes --]
WARNING: multiple messages have this Message-ID (diff)
From: Dan Carpenter <dan.carpenter@oracle.com>
To: kbuild-all@lists.01.org
Subject: [habanaai:habanalabs-next 17/17] drivers/misc/habanalabs/gaudi/gaudi.c:6077 gaudi_is_device_idle() warn: should '!is_eng_idle << (0 + dma_id)' be a 64 bit
Date: Mon, 24 Aug 2020 13:49:48 +0300 [thread overview]
Message-ID: <20200824104948.GC1793@kadam> (raw)
[-- Attachment #1: Type: text/plain, Size: 9688 bytes --]
tree: https://github.com/HabanaAI/linux.git habanalabs-next
head: eb5cb5d380ac735874da3b555f4c8ab6ea814c90
commit: eb5cb5d380ac735874da3b555f4c8ab6ea814c90 [17/17] habanalabs: extend busy engines mask to 64 bits
config: x86_64-randconfig-m001-20200820 (attached as .config)
compiler: gcc-9 (Debian 9.3.0-15) 9.3.0
If you fix the issue, kindly add following tag as appropriate
Reported-by: kernel test robot <lkp@intel.com>
Reported-by: Dan Carpenter <dan.carpenter@oracle.com>
smatch warnings:
drivers/misc/habanalabs/gaudi/gaudi.c:6077 gaudi_is_device_idle() warn: should '!is_eng_idle << (0 + dma_id)' be a 64 bit type?
# https://github.com/HabanaAI/linux/commit/eb5cb5d380ac735874da3b555f4c8ab6ea814c90
git remote add habanaai https://github.com/HabanaAI/linux.git
git fetch --no-tags habanaai habanalabs-next
git checkout eb5cb5d380ac735874da3b555f4c8ab6ea814c90
vim +6077 drivers/misc/habanalabs/gaudi/gaudi.c
eb5cb5d380ac735 farah kassabri 2020-08-12 6044 static bool gaudi_is_device_idle(struct hl_device *hdev, u64 *mask,
^^^^^^^^^
This is now 64 bit.
ac0ae6a96aa58ee Oded Gabbay 2020-05-11 6045 struct seq_file *s)
ac0ae6a96aa58ee Oded Gabbay 2020-05-11 6046 {
ac0ae6a96aa58ee Oded Gabbay 2020-05-11 6047 struct gaudi_device *gaudi = hdev->asic_specific;
ac0ae6a96aa58ee Oded Gabbay 2020-05-11 6048 const char *fmt = "%-5d%-9s%#-14x%#-12x%#x\n";
ac0ae6a96aa58ee Oded Gabbay 2020-05-11 6049 const char *mme_slave_fmt = "%-5d%-9s%-14s%-12s%#x\n";
ac0ae6a96aa58ee Oded Gabbay 2020-05-11 6050 u32 qm_glbl_sts0, qm_cgm_sts, dma_core_sts0, tpc_cfg_sts, mme_arch_sts;
ac0ae6a96aa58ee Oded Gabbay 2020-05-11 6051 bool is_idle = true, is_eng_idle, is_slave;
ac0ae6a96aa58ee Oded Gabbay 2020-05-11 6052 u64 offset;
ac0ae6a96aa58ee Oded Gabbay 2020-05-11 6053 int i, dma_id;
ac0ae6a96aa58ee Oded Gabbay 2020-05-11 6054
ac0ae6a96aa58ee Oded Gabbay 2020-05-11 6055 mutex_lock(&gaudi->clk_gate_mutex);
ac0ae6a96aa58ee Oded Gabbay 2020-05-11 6056
ac0ae6a96aa58ee Oded Gabbay 2020-05-11 6057 hdev->asic_funcs->disable_clock_gating(hdev);
ac0ae6a96aa58ee Oded Gabbay 2020-05-11 6058
ac0ae6a96aa58ee Oded Gabbay 2020-05-11 6059 if (s)
ac0ae6a96aa58ee Oded Gabbay 2020-05-11 6060 seq_puts(s,
ac0ae6a96aa58ee Oded Gabbay 2020-05-11 6061 "\nDMA is_idle QM_GLBL_STS0 QM_CGM_STS DMA_CORE_STS0\n"
ac0ae6a96aa58ee Oded Gabbay 2020-05-11 6062 "--- ------- ------------ ---------- -------------\n");
ac0ae6a96aa58ee Oded Gabbay 2020-05-11 6063
ac0ae6a96aa58ee Oded Gabbay 2020-05-11 6064 for (i = 0 ; i < DMA_NUMBER_OF_CHNLS ; i++) {
ac0ae6a96aa58ee Oded Gabbay 2020-05-11 6065 dma_id = gaudi_dma_assignment[i];
ac0ae6a96aa58ee Oded Gabbay 2020-05-11 6066 offset = dma_id * DMA_QMAN_OFFSET;
ac0ae6a96aa58ee Oded Gabbay 2020-05-11 6067
ac0ae6a96aa58ee Oded Gabbay 2020-05-11 6068 qm_glbl_sts0 = RREG32(mmDMA0_QM_GLBL_STS0 + offset);
ac0ae6a96aa58ee Oded Gabbay 2020-05-11 6069 qm_cgm_sts = RREG32(mmDMA0_QM_CGM_STS + offset);
ac0ae6a96aa58ee Oded Gabbay 2020-05-11 6070 dma_core_sts0 = RREG32(mmDMA0_CORE_STS0 + offset);
ac0ae6a96aa58ee Oded Gabbay 2020-05-11 6071 is_eng_idle = IS_QM_IDLE(qm_glbl_sts0, qm_cgm_sts) &&
ac0ae6a96aa58ee Oded Gabbay 2020-05-11 6072 IS_DMA_IDLE(dma_core_sts0);
ac0ae6a96aa58ee Oded Gabbay 2020-05-11 6073 is_idle &= is_eng_idle;
ac0ae6a96aa58ee Oded Gabbay 2020-05-11 6074
ac0ae6a96aa58ee Oded Gabbay 2020-05-11 6075 if (mask)
ac0ae6a96aa58ee Oded Gabbay 2020-05-11 6076 *mask |= !is_eng_idle <<
ac0ae6a96aa58ee Oded Gabbay 2020-05-11 @6077 (GAUDI_ENGINE_ID_DMA_0 + dma_id);
So this needs to be:
*mask |= (u64)s_eng_idle << (GAUDI_ENGINE_ID_DMA_0 + dma_id);
to prevent shift wrapping. Smatch doesn't know the value of dma_id.
ac0ae6a96aa58ee Oded Gabbay 2020-05-11 6078 if (s)
ac0ae6a96aa58ee Oded Gabbay 2020-05-11 6079 seq_printf(s, fmt, dma_id,
ac0ae6a96aa58ee Oded Gabbay 2020-05-11 6080 is_eng_idle ? "Y" : "N", qm_glbl_sts0,
ac0ae6a96aa58ee Oded Gabbay 2020-05-11 6081 qm_cgm_sts, dma_core_sts0);
ac0ae6a96aa58ee Oded Gabbay 2020-05-11 6082 }
ac0ae6a96aa58ee Oded Gabbay 2020-05-11 6083
ac0ae6a96aa58ee Oded Gabbay 2020-05-11 6084 if (s)
ac0ae6a96aa58ee Oded Gabbay 2020-05-11 6085 seq_puts(s,
ac0ae6a96aa58ee Oded Gabbay 2020-05-11 6086 "\nTPC is_idle QM_GLBL_STS0 QM_CGM_STS CFG_STATUS\n"
ac0ae6a96aa58ee Oded Gabbay 2020-05-11 6087 "--- ------- ------------ ---------- ----------\n");
ac0ae6a96aa58ee Oded Gabbay 2020-05-11 6088
ac0ae6a96aa58ee Oded Gabbay 2020-05-11 6089 for (i = 0 ; i < TPC_NUMBER_OF_ENGINES ; i++) {
ac0ae6a96aa58ee Oded Gabbay 2020-05-11 6090 offset = i * TPC_QMAN_OFFSET;
ac0ae6a96aa58ee Oded Gabbay 2020-05-11 6091 qm_glbl_sts0 = RREG32(mmTPC0_QM_GLBL_STS0 + offset);
ac0ae6a96aa58ee Oded Gabbay 2020-05-11 6092 qm_cgm_sts = RREG32(mmTPC0_QM_CGM_STS + offset);
ac0ae6a96aa58ee Oded Gabbay 2020-05-11 6093 tpc_cfg_sts = RREG32(mmTPC0_CFG_STATUS + offset);
ac0ae6a96aa58ee Oded Gabbay 2020-05-11 6094 is_eng_idle = IS_QM_IDLE(qm_glbl_sts0, qm_cgm_sts) &&
ac0ae6a96aa58ee Oded Gabbay 2020-05-11 6095 IS_TPC_IDLE(tpc_cfg_sts);
ac0ae6a96aa58ee Oded Gabbay 2020-05-11 6096 is_idle &= is_eng_idle;
ac0ae6a96aa58ee Oded Gabbay 2020-05-11 6097
ac0ae6a96aa58ee Oded Gabbay 2020-05-11 6098 if (mask)
ac0ae6a96aa58ee Oded Gabbay 2020-05-11 6099 *mask |= !is_eng_idle << (GAUDI_ENGINE_ID_TPC_0 + i);
Presumably Smatch knows that TPC_NUMBER_OF_ENGINES + GAUDI_ENGINE_ID_TPC_0
is less than 31.
ac0ae6a96aa58ee Oded Gabbay 2020-05-11 6100 if (s)
ac0ae6a96aa58ee Oded Gabbay 2020-05-11 6101 seq_printf(s, fmt, i,
ac0ae6a96aa58ee Oded Gabbay 2020-05-11 6102 is_eng_idle ? "Y" : "N",
ac0ae6a96aa58ee Oded Gabbay 2020-05-11 6103 qm_glbl_sts0, qm_cgm_sts, tpc_cfg_sts);
ac0ae6a96aa58ee Oded Gabbay 2020-05-11 6104 }
ac0ae6a96aa58ee Oded Gabbay 2020-05-11 6105
ac0ae6a96aa58ee Oded Gabbay 2020-05-11 6106 if (s)
ac0ae6a96aa58ee Oded Gabbay 2020-05-11 6107 seq_puts(s,
ac0ae6a96aa58ee Oded Gabbay 2020-05-11 6108 "\nMME is_idle QM_GLBL_STS0 QM_CGM_STS ARCH_STATUS\n"
ac0ae6a96aa58ee Oded Gabbay 2020-05-11 6109 "--- ------- ------------ ---------- -----------\n");
ac0ae6a96aa58ee Oded Gabbay 2020-05-11 6110
ac0ae6a96aa58ee Oded Gabbay 2020-05-11 6111 for (i = 0 ; i < MME_NUMBER_OF_ENGINES ; i++) {
ac0ae6a96aa58ee Oded Gabbay 2020-05-11 6112 offset = i * MME_QMAN_OFFSET;
ac0ae6a96aa58ee Oded Gabbay 2020-05-11 6113 mme_arch_sts = RREG32(mmMME0_CTRL_ARCH_STATUS + offset);
ac0ae6a96aa58ee Oded Gabbay 2020-05-11 6114 is_eng_idle = IS_MME_IDLE(mme_arch_sts);
ac0ae6a96aa58ee Oded Gabbay 2020-05-11 6115
ac0ae6a96aa58ee Oded Gabbay 2020-05-11 6116 /* MME 1 & 3 are slaves, no need to check their QMANs */
ac0ae6a96aa58ee Oded Gabbay 2020-05-11 6117 is_slave = i % 2;
ac0ae6a96aa58ee Oded Gabbay 2020-05-11 6118 if (!is_slave) {
ac0ae6a96aa58ee Oded Gabbay 2020-05-11 6119 qm_glbl_sts0 = RREG32(mmMME0_QM_GLBL_STS0 + offset);
ac0ae6a96aa58ee Oded Gabbay 2020-05-11 6120 qm_cgm_sts = RREG32(mmMME0_QM_CGM_STS + offset);
ac0ae6a96aa58ee Oded Gabbay 2020-05-11 6121 is_eng_idle &= IS_QM_IDLE(qm_glbl_sts0, qm_cgm_sts);
ac0ae6a96aa58ee Oded Gabbay 2020-05-11 6122 }
ac0ae6a96aa58ee Oded Gabbay 2020-05-11 6123
ac0ae6a96aa58ee Oded Gabbay 2020-05-11 6124 is_idle &= is_eng_idle;
ac0ae6a96aa58ee Oded Gabbay 2020-05-11 6125
ac0ae6a96aa58ee Oded Gabbay 2020-05-11 6126 if (mask)
ac0ae6a96aa58ee Oded Gabbay 2020-05-11 6127 *mask |= !is_eng_idle << (GAUDI_ENGINE_ID_MME_0 + i);
ac0ae6a96aa58ee Oded Gabbay 2020-05-11 6128 if (s) {
ac0ae6a96aa58ee Oded Gabbay 2020-05-11 6129 if (!is_slave)
ac0ae6a96aa58ee Oded Gabbay 2020-05-11 6130 seq_printf(s, fmt, i,
ac0ae6a96aa58ee Oded Gabbay 2020-05-11 6131 is_eng_idle ? "Y" : "N",
ac0ae6a96aa58ee Oded Gabbay 2020-05-11 6132 qm_glbl_sts0, qm_cgm_sts, mme_arch_sts);
ac0ae6a96aa58ee Oded Gabbay 2020-05-11 6133 else
ac0ae6a96aa58ee Oded Gabbay 2020-05-11 6134 seq_printf(s, mme_slave_fmt, i,
ac0ae6a96aa58ee Oded Gabbay 2020-05-11 6135 is_eng_idle ? "Y" : "N", "-",
ac0ae6a96aa58ee Oded Gabbay 2020-05-11 6136 "-", mme_arch_sts);
ac0ae6a96aa58ee Oded Gabbay 2020-05-11 6137 }
ac0ae6a96aa58ee Oded Gabbay 2020-05-11 6138 }
ac0ae6a96aa58ee Oded Gabbay 2020-05-11 6139
ac0ae6a96aa58ee Oded Gabbay 2020-05-11 6140 if (s)
ac0ae6a96aa58ee Oded Gabbay 2020-05-11 6141 seq_puts(s, "\n");
ac0ae6a96aa58ee Oded Gabbay 2020-05-11 6142
e38bfd30e08802d Oded Gabbay 2020-07-03 6143 hdev->asic_funcs->set_clock_gating(hdev);
ac0ae6a96aa58ee Oded Gabbay 2020-05-11 6144
ac0ae6a96aa58ee Oded Gabbay 2020-05-11 6145 mutex_unlock(&gaudi->clk_gate_mutex);
ac0ae6a96aa58ee Oded Gabbay 2020-05-11 6146
ac0ae6a96aa58ee Oded Gabbay 2020-05-11 6147 return is_idle;
ac0ae6a96aa58ee Oded Gabbay 2020-05-11 6148 }
---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/kbuild-all(a)lists.01.org
[-- Attachment #2: config.gz --]
[-- Type: application/gzip, Size: 36161 bytes --]
next reply other threads:[~2020-08-24 10:49 UTC|newest]
Thread overview: 3+ messages / expand[flat|nested] mbox.gz Atom feed top
2020-08-24 10:49 Dan Carpenter [this message]
2020-08-24 10:49 ` [habanaai:habanalabs-next 17/17] drivers/misc/habanalabs/gaudi/gaudi.c:6077 gaudi_is_device_idle() warn: should '!is_eng_idle << (0 + dma_id)' be a 64 bit Dan Carpenter
-- strict thread matches above, loose matches on Subject: below --
2020-08-20 22:16 kernel test robot
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=20200824104948.GC1793@kadam \
--to=dan.carpenter@oracle.com \
--cc=kbuild@lists.01.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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.