RE: [PATCH v9] QE: remove PPCisms for QE

From: Qiang Zhao
Date: Mon Dec 05 2016 - 02:10:38 EST


This patch depends on the patchset of QEIC as following links:
http://patchwork.ozlabs.org/patch/675925/
http://patchwork.ozlabs.org/patch/675926/
http://patchwork.ozlabs.org/patch/675927/
http://patchwork.ozlabs.org/patch/675928/

> -----Original Message-----
> From: kbuild test robot [mailto:lkp@xxxxxxxxx]
> Sent: Monday, December 05, 2016 3:00 PM
> To: Qiang Zhao <qiang.zhao@xxxxxxx>
> Cc: kbuild-all@xxxxxx; oss@xxxxxxxxxxxx; balbi@xxxxxxxxxx;
> gregkh@xxxxxxxxxxxxxxxxxxx; Xiaobo Xie <xiaobo.xie@xxxxxxx>; linux-
> kernel@xxxxxxxxxxxxxxx; linuxppc-dev@xxxxxxxxxxxxxxxx; Qiang Zhao
> <qiang.zhao@xxxxxxx>
> Subject: Re: [PATCH v9] QE: remove PPCisms for QE
>
> Hi Zhao,
>
> [auto build test ERROR on linus/master]
> [also build test ERROR on v4.9-rc8]
> [cannot apply to next-20161202]
> [if your patch is applied to the wrong git tree, please drop us a note to help
> improve the system]
>
> url: https://github.com/0day-ci/linux/commits/Zhao-Qiang/QE-remove-
> PPCisms-for-QE/20161205-131352
> config: i386-allmodconfig (attached as .config)
> compiler: gcc-6 (Debian 6.2.0-3) 6.2.0 20160901
> reproduce:
> # save the attached .config to linux build tree
> make ARCH=i386
>
> All errors (new ones prefixed by >>):
>
> In file included from drivers/soc/fsl/qe/qe_ic.c:31:0:
> include/soc/fsl/qe/qe_ic.h: In function 'qe_ic_cascade_low_ipic':
> >> include/soc/fsl/qe/qe_ic.h:86:21: error: 'NO_IRQ' undeclared (first use in
> this function)
> if (cascade_irq != NO_IRQ)
> ^~~~~~
> include/soc/fsl/qe/qe_ic.h:86:21: note: each undeclared identifier is reported
> only once for each function it appears in
> include/soc/fsl/qe/qe_ic.h: In function 'qe_ic_cascade_high_ipic':
> include/soc/fsl/qe/qe_ic.h:95:21: error: 'NO_IRQ' undeclared (first use in this
> function)
> if (cascade_irq != NO_IRQ)
> ^~~~~~
> include/soc/fsl/qe/qe_ic.h: In function 'qe_ic_cascade_low_mpic':
> include/soc/fsl/qe/qe_ic.h:105:21: error: 'NO_IRQ' undeclared (first use in
> this function)
> if (cascade_irq != NO_IRQ)
> ^~~~~~
> include/soc/fsl/qe/qe_ic.h: In function 'qe_ic_cascade_high_mpic':
> include/soc/fsl/qe/qe_ic.h:117:21: error: 'NO_IRQ' undeclared (first use in
> this function)
> if (cascade_irq != NO_IRQ)
> ^~~~~~
> include/soc/fsl/qe/qe_ic.h: In function 'qe_ic_cascade_muxed_mpic':
> include/soc/fsl/qe/qe_ic.h:130:21: error: 'NO_IRQ' undeclared (first use in
> this function)
> if (cascade_irq == NO_IRQ)
> ^~~~~~
> drivers/soc/fsl/qe/qe_ic.c: In function 'qe_ic_read':
> >> drivers/soc/fsl/qe/qe_ic.c:180:9: error: implicit declaration of function
> 'in_be32' [-Werror=implicit-function-declaration]
> return in_be32(base + (reg >> 2));
> ^~~~~~~
> drivers/soc/fsl/qe/qe_ic.c: In function 'qe_ic_write':
> >> drivers/soc/fsl/qe/qe_ic.c:186:2: error: implicit declaration of function
> 'out_be32' [-Werror=implicit-function-declaration]
> out_be32(base + (reg >> 2), value);
> ^~~~~~~~
> drivers/soc/fsl/qe/qe_ic.c: In function 'qe_ic_get_low_irq':
> >> drivers/soc/fsl/qe/qe_ic.c:299:10: error: 'NO_IRQ' undeclared (first use in
> this function)
> return NO_IRQ;
> ^~~~~~
> drivers/soc/fsl/qe/qe_ic.c: In function 'qe_ic_get_high_irq':
> drivers/soc/fsl/qe/qe_ic.c:315:10: error: 'NO_IRQ' undeclared (first use in this
> function)
> return NO_IRQ;
> ^~~~~~
> drivers/soc/fsl/qe/qe_ic.c: In function 'qe_ic_init':
> drivers/soc/fsl/qe/qe_ic.c:350:25: error: 'NO_IRQ' undeclared (first use in this
> function)
> if (qe_ic->virq_low == NO_IRQ) {
> ^~~~~~
> drivers/soc/fsl/qe/qe_ic.c: In function 'qe_ic_set_highest_priority':
> >> drivers/soc/fsl/qe/qe_ic.c:392:21: error: implicit declaration of function
> 'virq_to_hw' [-Werror=implicit-function-declaration]
> unsigned int src = virq_to_hw(virq);
> ^~~~~~~~~~
> cc1: some warnings being treated as errors
>
> vim +/in_be32 +180 drivers/soc/fsl/qe/qe_ic.c
>
> 98658538 arch/powerpc/sysdev/qe_lib/qe_ic.c Li Yang 2006-10-03 174
> .pri_reg = QEIC_CIPYCC,
> 98658538 arch/powerpc/sysdev/qe_lib/qe_ic.c Li Yang 2006-10-03 175
> },
> 98658538 arch/powerpc/sysdev/qe_lib/qe_ic.c Li Yang 2006-10-03 176 };
> 98658538 arch/powerpc/sysdev/qe_lib/qe_ic.c Li Yang 2006-10-03 177
> 98658538 arch/powerpc/sysdev/qe_lib/qe_ic.c Li Yang 2006-10-03 178
> static inline u32 qe_ic_read(volatile __be32 __iomem * base, unsigned int reg)
> 98658538 arch/powerpc/sysdev/qe_lib/qe_ic.c Li Yang 2006-10-03 179 {
> 98658538 arch/powerpc/sysdev/qe_lib/qe_ic.c Li Yang 2006-10-03 @180
> return in_be32(base + (reg >> 2));
> 98658538 arch/powerpc/sysdev/qe_lib/qe_ic.c Li Yang 2006-10-03 181 }
> 98658538 arch/powerpc/sysdev/qe_lib/qe_ic.c Li Yang 2006-10-03 182
> 98658538 arch/powerpc/sysdev/qe_lib/qe_ic.c Li Yang 2006-10-03 183
> static inline void qe_ic_write(volatile __be32 __iomem * base, unsigned int
> reg,
> 98658538 arch/powerpc/sysdev/qe_lib/qe_ic.c Li Yang 2006-10-03 184
> u32 value)
> 98658538 arch/powerpc/sysdev/qe_lib/qe_ic.c Li Yang 2006-10-03 185 {
> 98658538 arch/powerpc/sysdev/qe_lib/qe_ic.c Li Yang 2006-10-03 @186
> out_be32(base + (reg >> 2), value);
> 98658538 arch/powerpc/sysdev/qe_lib/qe_ic.c Li Yang 2006-10-03 187 }
> 98658538 arch/powerpc/sysdev/qe_lib/qe_ic.c Li Yang 2006-10-03 188
> 98658538 arch/powerpc/sysdev/qe_lib/qe_ic.c Li Yang 2006-10-03 189
> static inline struct qe_ic *qe_ic_from_irq(unsigned int virq)
> 98658538 arch/powerpc/sysdev/qe_lib/qe_ic.c Li Yang 2006-10-03 190 {
> ec775d0e arch/powerpc/sysdev/qe_lib/qe_ic.c Thomas Gleixner 2011-03-25
> 191 return irq_get_chip_data(virq);
> 3a0adfab arch/powerpc/sysdev/qe_lib/qe_ic.c Lennert Buytenhek 2011-03-08
> 192 }
> 3a0adfab arch/powerpc/sysdev/qe_lib/qe_ic.c Lennert Buytenhek 2011-03-08
> 193
> 3a0adfab arch/powerpc/sysdev/qe_lib/qe_ic.c Lennert Buytenhek 2011-03-08
> 194 static inline struct qe_ic *qe_ic_from_irq_data(struct irq_data *d)
> 3a0adfab arch/powerpc/sysdev/qe_lib/qe_ic.c Lennert Buytenhek 2011-03-08
> 195 {
> 3a0adfab arch/powerpc/sysdev/qe_lib/qe_ic.c Lennert Buytenhek 2011-03-08
> 196 return irq_data_get_irq_chip_data(d);
> 98658538 arch/powerpc/sysdev/qe_lib/qe_ic.c Li Yang 2006-10-03 197 }
> 98658538 arch/powerpc/sysdev/qe_lib/qe_ic.c Li Yang 2006-10-03 198
> 3a0adfab arch/powerpc/sysdev/qe_lib/qe_ic.c Lennert Buytenhek 2011-03-08
> 199 static void qe_ic_unmask_irq(struct irq_data *d)
> 98658538 arch/powerpc/sysdev/qe_lib/qe_ic.c Li Yang 2006-10-03 200 {
> 3a0adfab arch/powerpc/sysdev/qe_lib/qe_ic.c Lennert Buytenhek 2011-03-08
> 201 struct qe_ic *qe_ic = qe_ic_from_irq_data(d);
> 476eb491 arch/powerpc/sysdev/qe_lib/qe_ic.c Grant Likely 2011-05-04 202
> unsigned int src = irqd_to_hwirq(d);
> 98658538 arch/powerpc/sysdev/qe_lib/qe_ic.c Li Yang 2006-10-03 203
> unsigned long flags;
> 98658538 arch/powerpc/sysdev/qe_lib/qe_ic.c Li Yang 2006-10-03 204
> u32 temp;
> 98658538 arch/powerpc/sysdev/qe_lib/qe_ic.c Li Yang 2006-10-03 205
> 43a5a01b arch/powerpc/sysdev/qe_lib/qe_ic.c Anton Vorontsov 2010-02-18
> 206 raw_spin_lock_irqsave(&qe_ic_lock, flags);
> 98658538 arch/powerpc/sysdev/qe_lib/qe_ic.c Li Yang 2006-10-03 207
> 98658538 arch/powerpc/sysdev/qe_lib/qe_ic.c Li Yang 2006-10-03 208
> temp = qe_ic_read(qe_ic->regs, qe_ic_info[src].mask_reg);
> 98658538 arch/powerpc/sysdev/qe_lib/qe_ic.c Li Yang 2006-10-03 209
> qe_ic_write(qe_ic->regs, qe_ic_info[src].mask_reg,
> 98658538 arch/powerpc/sysdev/qe_lib/qe_ic.c Li Yang 2006-10-03 210
> temp | qe_ic_info[src].mask);
> 98658538 arch/powerpc/sysdev/qe_lib/qe_ic.c Li Yang 2006-10-03 211
> 43a5a01b arch/powerpc/sysdev/qe_lib/qe_ic.c Anton Vorontsov 2010-02-18
> 212 raw_spin_unlock_irqrestore(&qe_ic_lock, flags);
> 98658538 arch/powerpc/sysdev/qe_lib/qe_ic.c Li Yang 2006-10-03 213 }
> 98658538 arch/powerpc/sysdev/qe_lib/qe_ic.c Li Yang 2006-10-03 214
> 3a0adfab arch/powerpc/sysdev/qe_lib/qe_ic.c Lennert Buytenhek 2011-03-08
> 215 static void qe_ic_mask_irq(struct irq_data *d)
> 98658538 arch/powerpc/sysdev/qe_lib/qe_ic.c Li Yang 2006-10-03 216 {
> 3a0adfab arch/powerpc/sysdev/qe_lib/qe_ic.c Lennert Buytenhek 2011-03-08
> 217 struct qe_ic *qe_ic = qe_ic_from_irq_data(d);
> 476eb491 arch/powerpc/sysdev/qe_lib/qe_ic.c Grant Likely 2011-05-04 218
> unsigned int src = irqd_to_hwirq(d);
> 98658538 arch/powerpc/sysdev/qe_lib/qe_ic.c Li Yang 2006-10-03 219
> unsigned long flags;
> 98658538 arch/powerpc/sysdev/qe_lib/qe_ic.c Li Yang 2006-10-03 220
> u32 temp;
> 98658538 arch/powerpc/sysdev/qe_lib/qe_ic.c Li Yang 2006-10-03 221
> 43a5a01b arch/powerpc/sysdev/qe_lib/qe_ic.c Anton Vorontsov 2010-02-18
> 222 raw_spin_lock_irqsave(&qe_ic_lock, flags);
> 98658538 arch/powerpc/sysdev/qe_lib/qe_ic.c Li Yang 2006-10-03 223
> 98658538 arch/powerpc/sysdev/qe_lib/qe_ic.c Li Yang 2006-10-03 224
> temp = qe_ic_read(qe_ic->regs, qe_ic_info[src].mask_reg);
> 98658538 arch/powerpc/sysdev/qe_lib/qe_ic.c Li Yang 2006-10-03 225
> qe_ic_write(qe_ic->regs, qe_ic_info[src].mask_reg,
> 98658538 arch/powerpc/sysdev/qe_lib/qe_ic.c Li Yang 2006-10-03 226
> temp & ~qe_ic_info[src].mask);
> 98658538 arch/powerpc/sysdev/qe_lib/qe_ic.c Li Yang 2006-10-03 227
> 2c1d2f34 arch/powerpc/sysdev/qe_lib/qe_ic.c Scott Wood 2006-12-06 228
> /* Flush the above write before enabling interrupts; otherwise,
> 2c1d2f34 arch/powerpc/sysdev/qe_lib/qe_ic.c Scott Wood 2006-12-06 229
> * spurious interrupts will sometimes happen. To be 100% sure
> 2c1d2f34 arch/powerpc/sysdev/qe_lib/qe_ic.c Scott Wood 2006-12-06 230
> * that the write has reached the device before interrupts are
> 2c1d2f34 arch/powerpc/sysdev/qe_lib/qe_ic.c Scott Wood 2006-12-06 231
> * enabled, the mask register would have to be read back; however,
> 2c1d2f34 arch/powerpc/sysdev/qe_lib/qe_ic.c Scott Wood 2006-12-06 232
> * this is not required for correctness, only to avoid wasting
> 2c1d2f34 arch/powerpc/sysdev/qe_lib/qe_ic.c Scott Wood 2006-12-06 233
> * time on a large number of spurious interrupts. In testing,
> 2c1d2f34 arch/powerpc/sysdev/qe_lib/qe_ic.c Scott Wood 2006-12-06 234
> * a sync reduced the observed spurious interrupts to zero.
> 2c1d2f34 arch/powerpc/sysdev/qe_lib/qe_ic.c Scott Wood 2006-12-06 235
> */
> 2c1d2f34 arch/powerpc/sysdev/qe_lib/qe_ic.c Scott Wood 2006-12-06 236
> mb();
> 98658538 arch/powerpc/sysdev/qe_lib/qe_ic.c Li Yang 2006-10-03 237
> 43a5a01b arch/powerpc/sysdev/qe_lib/qe_ic.c Anton Vorontsov 2010-02-18
> 238 raw_spin_unlock_irqrestore(&qe_ic_lock, flags);
> 98658538 arch/powerpc/sysdev/qe_lib/qe_ic.c Li Yang 2006-10-03 239 }
> 98658538 arch/powerpc/sysdev/qe_lib/qe_ic.c Li Yang 2006-10-03 240
> 98658538 arch/powerpc/sysdev/qe_lib/qe_ic.c Li Yang 2006-10-03 241
> static struct irq_chip qe_ic_irq_chip = {
> b27df672 arch/powerpc/sysdev/qe_lib/qe_ic.c Thomas Gleixner 2009-11-18
> 242 .name = "QEIC",
> 3a0adfab arch/powerpc/sysdev/qe_lib/qe_ic.c Lennert Buytenhek 2011-03-08
> 243 .irq_unmask = qe_ic_unmask_irq,
> 3a0adfab arch/powerpc/sysdev/qe_lib/qe_ic.c Lennert Buytenhek 2011-03-08
> 244 .irq_mask = qe_ic_mask_irq,
> 3a0adfab arch/powerpc/sysdev/qe_lib/qe_ic.c Lennert Buytenhek 2011-03-08
> 245 .irq_mask_ack = qe_ic_mask_irq,
> 98658538 arch/powerpc/sysdev/qe_lib/qe_ic.c Li Yang 2006-10-03 246 };
> 98658538 arch/powerpc/sysdev/qe_lib/qe_ic.c Li Yang 2006-10-03 247
> ad3aedfb arch/powerpc/sysdev/qe_lib/qe_ic.c Marc Zyngier 2015-07-28
> 248 static int qe_ic_host_match(struct irq_domain *h, struct device_node
> *node,
> ad3aedfb arch/powerpc/sysdev/qe_lib/qe_ic.c Marc Zyngier 2015-07-28
> 249 enum irq_domain_bus_token bus_token)
> 98658538 arch/powerpc/sysdev/qe_lib/qe_ic.c Li Yang 2006-10-03 250 {
> 98658538 arch/powerpc/sysdev/qe_lib/qe_ic.c Li Yang 2006-10-03 251
> /* Exact match, unless qe_ic node is NULL */
> 5d4c9bc7 arch/powerpc/sysdev/qe_lib/qe_ic.c Marc Zyngier 2015-10-13
> 252 struct device_node *of_node = irq_domain_get_of_node(h);
> 5d4c9bc7 arch/powerpc/sysdev/qe_lib/qe_ic.c Marc Zyngier 2015-10-13
> 253 return of_node == NULL || of_node == node;
> 98658538 arch/powerpc/sysdev/qe_lib/qe_ic.c Li Yang 2006-10-03 254 }
> 98658538 arch/powerpc/sysdev/qe_lib/qe_ic.c Li Yang 2006-10-03 255
> bae1d8f1 arch/powerpc/sysdev/qe_lib/qe_ic.c Grant Likely 2012-02-14 256
> static int qe_ic_host_map(struct irq_domain *h, unsigned int virq,
> 98658538 arch/powerpc/sysdev/qe_lib/qe_ic.c Li Yang 2006-10-03 257
> irq_hw_number_t hw)
> 98658538 arch/powerpc/sysdev/qe_lib/qe_ic.c Li Yang 2006-10-03 258 {
> 98658538 arch/powerpc/sysdev/qe_lib/qe_ic.c Li Yang 2006-10-03 259
> struct qe_ic *qe_ic = h->host_data;
> 98658538 arch/powerpc/sysdev/qe_lib/qe_ic.c Li Yang 2006-10-03 260
> struct irq_chip *chip;
> 98658538 arch/powerpc/sysdev/qe_lib/qe_ic.c Li Yang 2006-10-03 261
> c9ee69c5 drivers/soc/fsl/qe/qe_ic.c Zhao Qiang 2016-01-21 262
> if (hw >= ARRAY_SIZE(qe_ic_info)) {
> c9ee69c5 drivers/soc/fsl/qe/qe_ic.c Zhao Qiang 2016-01-21 263
> pr_err("%s: Invalid hw irq number for QEIC\n", __func__);
> c9ee69c5 drivers/soc/fsl/qe/qe_ic.c Zhao Qiang 2016-01-21 264
> return -EINVAL;
> c9ee69c5 drivers/soc/fsl/qe/qe_ic.c Zhao Qiang 2016-01-21 265 }
> c9ee69c5 drivers/soc/fsl/qe/qe_ic.c Zhao Qiang 2016-01-21 266
> 98658538 arch/powerpc/sysdev/qe_lib/qe_ic.c Li Yang 2006-10-03 267
> if (qe_ic_info[hw].mask == 0) {
> 98658538 arch/powerpc/sysdev/qe_lib/qe_ic.c Li Yang 2006-10-03 268
> printk(KERN_ERR "Can't map reserved IRQ\n");
> 98658538 arch/powerpc/sysdev/qe_lib/qe_ic.c Li Yang 2006-10-03 269
> return -EINVAL;
> 98658538 arch/powerpc/sysdev/qe_lib/qe_ic.c Li Yang 2006-10-03 270 }
> 98658538 arch/powerpc/sysdev/qe_lib/qe_ic.c Li Yang 2006-10-03 271
> /* Default chip */
> 98658538 arch/powerpc/sysdev/qe_lib/qe_ic.c Li Yang 2006-10-03 272
> chip = &qe_ic->hc_irq;
> 98658538 arch/powerpc/sysdev/qe_lib/qe_ic.c Li Yang 2006-10-03 273
> ec775d0e arch/powerpc/sysdev/qe_lib/qe_ic.c Thomas Gleixner 2011-03-25
> 274 irq_set_chip_data(virq, qe_ic);
> 98488db9 arch/powerpc/sysdev/qe_lib/qe_ic.c Thomas Gleixner 2011-03-25
> 275 irq_set_status_flags(virq, IRQ_LEVEL);
> 98658538 arch/powerpc/sysdev/qe_lib/qe_ic.c Li Yang 2006-10-03 276
> ec775d0e arch/powerpc/sysdev/qe_lib/qe_ic.c Thomas Gleixner 2011-03-25
> 277 irq_set_chip_and_handler(virq, chip, handle_level_irq);
> 98658538 arch/powerpc/sysdev/qe_lib/qe_ic.c Li Yang 2006-10-03 278
> 98658538 arch/powerpc/sysdev/qe_lib/qe_ic.c Li Yang 2006-10-03 279
> return 0;
> 98658538 arch/powerpc/sysdev/qe_lib/qe_ic.c Li Yang 2006-10-03 280 }
> 98658538 arch/powerpc/sysdev/qe_lib/qe_ic.c Li Yang 2006-10-03 281
> 202648a6 arch/powerpc/sysdev/qe_lib/qe_ic.c Krzysztof Kozlowski 2015-04-27
> 282 static const struct irq_domain_ops qe_ic_host_ops = {
> 98658538 arch/powerpc/sysdev/qe_lib/qe_ic.c Li Yang 2006-10-03 283
> .match = qe_ic_host_match,
> 98658538 arch/powerpc/sysdev/qe_lib/qe_ic.c Li Yang 2006-10-03 284
> .map = qe_ic_host_map,
> ff8c3ab8 arch/powerpc/sysdev/qe_lib/qe_ic.c Grant Likely 2012-01-24 285
> .xlate = irq_domain_xlate_onetwocell,
> 98658538 arch/powerpc/sysdev/qe_lib/qe_ic.c Li Yang 2006-10-03 286 };
> 98658538 arch/powerpc/sysdev/qe_lib/qe_ic.c Li Yang 2006-10-03 287
> 98658538 arch/powerpc/sysdev/qe_lib/qe_ic.c Li Yang 2006-10-03 288 /*
> Return an interrupt vector or NO_IRQ if no interrupt is pending. */
> 35a84c2f arch/powerpc/sysdev/qe_lib/qe_ic.c Olaf Hering 2006-10-07 289
> unsigned int qe_ic_get_low_irq(struct qe_ic *qe_ic)
> 98658538 arch/powerpc/sysdev/qe_lib/qe_ic.c Li Yang 2006-10-03 290 {
> 98658538 arch/powerpc/sysdev/qe_lib/qe_ic.c Li Yang 2006-10-03 291
> int irq;
> 98658538 arch/powerpc/sysdev/qe_lib/qe_ic.c Li Yang 2006-10-03 292
> 98658538 arch/powerpc/sysdev/qe_lib/qe_ic.c Li Yang 2006-10-03 293
> BUG_ON(qe_ic == NULL);
> 98658538 arch/powerpc/sysdev/qe_lib/qe_ic.c Li Yang 2006-10-03 294
> 98658538 arch/powerpc/sysdev/qe_lib/qe_ic.c Li Yang 2006-10-03 295
> /* get the interrupt source vector. */
> 98658538 arch/powerpc/sysdev/qe_lib/qe_ic.c Li Yang 2006-10-03 296
> irq = qe_ic_read(qe_ic->regs, QEIC_CIVEC) >> 26;
> 98658538 arch/powerpc/sysdev/qe_lib/qe_ic.c Li Yang 2006-10-03 297
> 98658538 arch/powerpc/sysdev/qe_lib/qe_ic.c Li Yang 2006-10-03 298
> if (irq == 0)
> 98658538 arch/powerpc/sysdev/qe_lib/qe_ic.c Li Yang 2006-10-03 @299
> return NO_IRQ;
> 98658538 arch/powerpc/sysdev/qe_lib/qe_ic.c Li Yang 2006-10-03 300
> 98658538 arch/powerpc/sysdev/qe_lib/qe_ic.c Li Yang 2006-10-03 301
> return irq_linear_revmap(qe_ic->irqhost, irq);
> 98658538 arch/powerpc/sysdev/qe_lib/qe_ic.c Li Yang 2006-10-03 302 }
> 98658538 arch/powerpc/sysdev/qe_lib/qe_ic.c Li Yang 2006-10-03 303
> 98658538 arch/powerpc/sysdev/qe_lib/qe_ic.c Li Yang 2006-10-03 304 /*
> Return an interrupt vector or NO_IRQ if no interrupt is pending. */
> 35a84c2f arch/powerpc/sysdev/qe_lib/qe_ic.c Olaf Hering 2006-10-07 305
> unsigned int qe_ic_get_high_irq(struct qe_ic *qe_ic)
> 98658538 arch/powerpc/sysdev/qe_lib/qe_ic.c Li Yang 2006-10-03 306 {
> 98658538 arch/powerpc/sysdev/qe_lib/qe_ic.c Li Yang 2006-10-03 307
> int irq;
> 98658538 arch/powerpc/sysdev/qe_lib/qe_ic.c Li Yang 2006-10-03 308
> 98658538 arch/powerpc/sysdev/qe_lib/qe_ic.c Li Yang 2006-10-03 309
> BUG_ON(qe_ic == NULL);
> 98658538 arch/powerpc/sysdev/qe_lib/qe_ic.c Li Yang 2006-10-03 310
> 98658538 arch/powerpc/sysdev/qe_lib/qe_ic.c Li Yang 2006-10-03 311
> /* get the interrupt source vector. */
> 98658538 arch/powerpc/sysdev/qe_lib/qe_ic.c Li Yang 2006-10-03 312
> irq = qe_ic_read(qe_ic->regs, QEIC_CHIVEC) >> 26;
> 98658538 arch/powerpc/sysdev/qe_lib/qe_ic.c Li Yang 2006-10-03 313
> 98658538 arch/powerpc/sysdev/qe_lib/qe_ic.c Li Yang 2006-10-03 314
> if (irq == 0)
> 98658538 arch/powerpc/sysdev/qe_lib/qe_ic.c Li Yang 2006-10-03 @315
> return NO_IRQ;
> 98658538 arch/powerpc/sysdev/qe_lib/qe_ic.c Li Yang 2006-10-03 316
> 98658538 arch/powerpc/sysdev/qe_lib/qe_ic.c Li Yang 2006-10-03 317
> return irq_linear_revmap(qe_ic->irqhost, irq);
> 98658538 arch/powerpc/sysdev/qe_lib/qe_ic.c Li Yang 2006-10-03 318 }
>
> :::::: The code at line 180 was first introduced by commit
> :::::: 9865853851313e0d94a4acde42d6f9d8070bb376 [POWERPC] Add QUICC
> Engine (QE) infrastructure
>
> :::::: TO: Li Yang <leoli@xxxxxxxxxxxxx>
> :::::: CC: Paul Mackerras <paulus@xxxxxxxxx>
>
> ---
> 0-DAY kernel test infrastructure Open Source Technology Center
> https://lists.01.org/pipermail/kbuild-all Intel Corporation