* [rclaveau:b4/add-adla_npu-t7-vim4 2/3] drivers/accel/adla/adla_job.c:54:9: error: implicit declaration of function 'dev_info'
@ 2026-09-28 22:00 kernel test robot
0 siblings, 0 replies; only message in thread
From: kernel test robot @ 2026-09-28 22:00 UTC (permalink / raw)
To: Ronald Claveau; +Cc: oe-kbuild-all
tree: https://github.com/rclaveau-tech/linux-khadas.git b4/add-adla_npu-t7-vim4
head: b241726da9a0ab608a73cfcd35abe19291802e04
commit: 8fd3b956c364f13fc30b90a616b533dcb410a101 [2/3] accel: adla: Add driver for Amlogic NPU
config: m68k-allmodconfig (https://download.01.org/0day-ci/archive/20260929/202609290510.Hofxb6ZK-lkp@intel.com/config)
compiler: m68k-linux-gcc (GCC) 16.1.0
reproduce (this is a W=1 build): (https://download.01.org/0day-ci/archive/20260929/202609290510.Hofxb6ZK-lkp@intel.com/reproduce)
If you fix the issue in a separate patch/commit (i.e. not just a new version of
the same patch/commit), kindly add following tags
| Reported-by: kernel test robot <lkp@intel.com>
| Closes: https://lore.kernel.org/oe-kbuild-all/202609290510.Hofxb6ZK-lkp@intel.com/
All errors (new ones prefixed by >>):
drivers/accel/adla/adla_job.c: In function 'adla_rb_flush':
>> drivers/accel/adla/adla_job.c:54:9: error: implicit declaration of function 'dev_info' [-Wimplicit-function-declaration]
54 | dev_info(adla->drm.dev, "flush: wpt=0x%x\n", adla->rbf_wpt);
| ^~~~~~~~
drivers/accel/adla/adla_job.c: In function 'adla_timedout_job':
>> drivers/accel/adla/adla_job.c:170:9: error: implicit declaration of function 'dev_warn' [-Wimplicit-function-declaration]
170 | dev_warn(adla->drm.dev, "timeout: IRQ_RAW=0x%x IRQ_MASKED=0x%x IRQ_MASK=0x%x PS_STS=0x%x TIME_STAMP=0x%x\n",
| ^~~~~~~~
>> drivers/accel/adla/adla_job.c:183:9: error: implicit declaration of function 'dev_err' [-Wimplicit-function-declaration]
183 | dev_err(adla->drm.dev, "job %u timed out, STS_REPORT=0x%08x\n",
| ^~~~~~~
drivers/accel/adla/adla_job.c: In function 'adla_job_init':
>> drivers/accel/adla/adla_job.c:348:24: error: implicit declaration of function 'dev_err_probe' [-Wimplicit-function-declaration]
348 | return dev_err_probe(dev, ret, "failed to init scheduler\n");
| ^~~~~~~~~~~~~
vim +/dev_info +54 drivers/accel/adla/adla_job.c
50
51 static void adla_rb_flush(struct adla_device *adla)
52 {
53 adla_rb_align(adla);
> 54 dev_info(adla->drm.dev, "flush: wpt=0x%x\n", adla->rbf_wpt);
55
56 dev_info(adla->drm.dev, "pre-flush: CLK_AUTOCLK=0x%x MC_CTL=0x%x\n",
57 readl(adla->regs + REG_ADLA_CLK_AUTOCLK),
58 readl(adla->regs + REG_ADLA_MC_CTL));
59 dev_info(adla->drm.dev, "pre-flush: ENABLE=0x%x SMMU_EN=0x%x\n",
60 readl(adla->regs + REG_ADLA_ENABLE),
61 readl(adla->regs + REG_ADLA_SMMU_EN));
62 dev_info(adla->drm.dev, "pre-flush: RBF_BASE=0x%x RBF_SIZE=0x%x\n",
63 readl(adla->regs + REG_ADLA_PS_RBF_BASE),
64 readl(adla->regs + REG_ADLA_PS_RBF_SIZE));
65 dev_info(adla->drm.dev, "pre-flush: PS_STS=0x%x RPT=0x%x WPT=0x%x\n",
66 readl(adla->regs + REG_ADLA_PS_STS),
67 readl(adla->regs + REG_ADLA_PS_RBF_RPT),
68 readl(adla->regs + REG_ADLA_PS_RBF_WPT));
69 dev_info(adla->drm.dev, "ring buffer dump (%u bytes):\n", adla->rbf_wpt);
70 for (u32 i = 0; i < adla->rbf_wpt / 4; i++)
71 dev_info(adla->drm.dev, " [%02x] 0x%08x\n",
72 i * 4, ((u32 *)adla->rbf_cpu)[i]);
73
74 writel(adla->rbf_wpt & 0x0FFFFFFF, adla->regs + REG_ADLA_PS_RBF_WPT);
75 dev_info(adla->drm.dev, "after WPT: PS_STS=0x%x\n",
76 readl(adla->regs + REG_ADLA_PS_STS));
77 dev_info(adla->drm.dev, "PS_STS=0x%x RPT=0x%x IRQ_RAW=0x%x\n",
78 readl(adla->regs + REG_ADLA_PS_STS),
79 readl(adla->regs + REG_ADLA_PS_RBF_RPT),
80 readl(adla->regs + REG_ADLA_IRQ_RAW));
81 //writel(ADLA_PS_CTRL_START, adla->regs + REG_ADLA_PS_CTRL);
82 for (int i = 0; i < 20; i++) {
83 udelay(100);
84 dev_info(adla->drm.dev, "PS_STS[%d]=0x%x RPT=0x%x IRQ_RAW=0x%x\n",
85 i,
86 readl(adla->regs + REG_ADLA_PS_STS),
87 readl(adla->regs + REG_ADLA_PS_RBF_RPT),
88 readl(adla->regs + REG_ADLA_IRQ_RAW));
89 }
90 dev_info(adla->drm.dev, "after START: PS_STS=0x%x\n",
91 readl(adla->regs + REG_ADLA_PS_STS));
92
93 udelay(10);
94 dev_info(adla->drm.dev, "PS_CTRL=0x%x PS_STS=0x%x RPT=0x%x\n",
95 readl(adla->regs + REG_ADLA_PS_CTRL),
96 readl(adla->regs + REG_ADLA_PS_STS),
97 readl(adla->regs + REG_ADLA_PS_RBF_RPT));
98
99 udelay(100);
100 dev_info(adla->drm.dev, "PS_STS=0x%x RPT=0x%x\n",
101 readl(adla->regs + REG_ADLA_PS_STS),
102 readl(adla->regs + REG_ADLA_PS_RBF_RPT));
103 dev_info(adla->drm.dev, "post-flush: PS_STS=0x%x PS_CTRL=0x%x\n",
104 readl(adla->regs + REG_ADLA_PS_STS),
105 readl(adla->regs + REG_ADLA_PS_CTRL));
106 }
107
108 static struct dma_fence *adla_run_job(struct drm_sched_job *sched_job)
109 {
110 struct adla_job *job = container_of(sched_job, struct adla_job, base);
111 struct adla_device *adla = job->adla;
112 struct dma_fence *fence;
113 u32 config_wpt, off;
114
115 job->hw_fence = kmem_cache_zalloc(adla_fence_cache, GFP_KERNEL);
116 dma_fence_init(job->hw_fence, &adla_fence_ops, &adla->fence_lock,
117 adla->fence_ctx, ++adla->fence_seqno);
118
119 spin_lock(&adla->fence_lock);
120 adla->current_fence = dma_fence_get(job->hw_fence);
121 spin_unlock(&adla->fence_lock);
122
123 adla_rb_write(adla, ADLA_CMD_SET_FENCE | 0x700000);
124 adla_rb_write(adla, ADLA_CMD_RESET_ID);
125 adla_rb_align(adla);
126
127 adla_rb_write(adla, ADLA_CMD_SET_SW_ID | (job->id & ADLA_SW_ID_MASK));
128 adla_rb_write(adla, ADLA_CMD_SET_DEPENDENCY | job->dep);
129 adla_rb_write(adla, ADLA_CMD_EXECUTE | job->output_modules);
130 adla_rb_write(adla, ADLA_CMD_CONFIG | job->active_modules);
131
132 config_wpt = adla->rbf_wpt;
133
134 for (int i = 0; i < job->config_size / sizeof(u32); i++)
135 adla_rb_write(adla, job->config[i]);
136
137 for (u32 i = 0; i < job->fixup_count; i++) {
138 struct adla_fixup *f = &job->fixups[i];
139 off = (config_wpt + f->blob_offset) % adla->rbf_size;
140 *((u32 *)(adla->rbf_cpu + off)) = lower_32_bits(f->iova);
141 }
142
143 adla_rb_write(adla, ADLA_CMD_SET_FENCE | job->fence_modules);
144 adla_rb_align(adla);
145 adla_rb_write(adla, ADLA_CMD_SET_TIME_STAMP | ADLA_TIME_STAMP_IRQ);
146 adla_rb_write(adla, job->id);
147
148 fence = dma_fence_get(job->hw_fence);
149
150 adla_rb_flush(adla);
151 dev_info(adla->drm.dev, "job %u: wpt=0x%x rbf_base=0x%llx\n",
152 job->id, adla->rbf_wpt, (u64)adla->rbf_dma);
153 dev_info(adla->drm.dev, "HW wpt=0x%x rpt=0x%x\n",
154 readl(adla->regs + REG_ADLA_PS_RBF_WPT),
155 readl(adla->regs + REG_ADLA_PS_RBF_RPT));
156 dev_info(adla->drm.dev, "IRQ_MASK=0x%x IRQ_RAW=0x%x IRQ_MASKED=0x%x\n",
157 readl(adla->regs + REG_ADLA_IRQ_MASK),
158 readl(adla->regs + REG_ADLA_IRQ_RAW),
159 readl(adla->regs + REG_ADLA_IRQ_MASKED));
160
161 return fence;
162 }
163
164 static enum drm_gpu_sched_stat adla_timedout_job(struct drm_sched_job *sched_job)
165 {
166 struct adla_job *job = container_of(sched_job, struct adla_job, base);
167 struct adla_device *adla = job->adla;
168 //u32 sts;
169
> 170 dev_warn(adla->drm.dev, "timeout: IRQ_RAW=0x%x IRQ_MASKED=0x%x IRQ_MASK=0x%x PS_STS=0x%x TIME_STAMP=0x%x\n",
171 readl(adla->regs + REG_ADLA_IRQ_RAW),
172 readl(adla->regs + REG_ADLA_IRQ_MASKED),
173 readl(adla->regs + REG_ADLA_IRQ_MASK),
174 readl(adla->regs + REG_ADLA_PS_STS),
175 readl(adla->regs + 0x60));
176
177 /*sts = readl(adla->regs + REG_ADLA_PS_STS);
178 if (!(sts & ADLA_PS_STS_BUSY)) {
179 dev_warn(adla->drm.dev, "job %u: timed out but idle parser\n", job->id);
180 return DRM_GPU_SCHED_STAT_NO_HANG;
181 }*/
182
> 183 dev_err(adla->drm.dev, "job %u timed out, STS_REPORT=0x%08x\n",
184 job->id, readl(adla->regs + REG_ADLA_STS_REPORT));
185
186 /* Reset hardware */
187 writel(0, adla->regs + REG_ADLA_IRQ_MASK);
188 writel(ADLA_SWRST_ASSERT, adla->regs + REG_ADLA_SWRST);
189 udelay(10);
190 writel(0, adla->regs + REG_ADLA_SWRST);
191
192 /* Ring buffer reinit */
193 adla->rbf_wpt = 0;
194 writel(0, adla->regs + REG_ADLA_PS_RBF_WPT);
195 writel(0, adla->regs + REG_ADLA_PS_RBF_RPT);
196
197 if (readl(adla->regs + REG_ADLA_REVISION) == 0xFFFFFFFF) {
198 dev_err(adla->drm.dev, "hardware unreachable after reset\n");
199 return DRM_GPU_SCHED_STAT_ENODEV;
200 }
201
202 writel(ADLA_ENABLE_BIT, adla->regs + REG_ADLA_ENABLE);
203 writel(ADLA_IRQ_PARSER_STOP_CMD |
204 ADLA_IRQ_PARSER_STOP_ERR |
205 ADLA_IRQ_INVALID_IOVA,
206 adla->regs + REG_ADLA_IRQ_MASK);
207
208 return DRM_GPU_SCHED_STAT_RESET;
209 }
210
--
0-DAY CI Kernel Test Service
https://github.com/intel/lkp-tests/wiki
^ permalink raw reply [flat|nested] only message in thread
only message in thread, other threads:[~2026-09-28 22:00 UTC | newest]
Thread overview: (only message) (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2026-09-28 22:00 [rclaveau:b4/add-adla_npu-t7-vim4 2/3] drivers/accel/adla/adla_job.c:54:9: error: implicit declaration of function 'dev_info' kernel test robot
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.