162306a36Sopenharmony_ci/* SPDX-License-Identifier: GPL-2.0 */ 262306a36Sopenharmony_ci/* 362306a36Sopenharmony_ci * Debugging printout: 462306a36Sopenharmony_ci */ 562306a36Sopenharmony_ci 662306a36Sopenharmony_ci#define ___P(f) if (desc->status_use_accessors & f) printk("%14s set\n", #f) 762306a36Sopenharmony_ci#define ___PS(f) if (desc->istate & f) printk("%14s set\n", #f) 862306a36Sopenharmony_ci/* FIXME */ 962306a36Sopenharmony_ci#define ___PD(f) do { } while (0) 1062306a36Sopenharmony_ci 1162306a36Sopenharmony_cistatic inline void print_irq_desc(unsigned int irq, struct irq_desc *desc) 1262306a36Sopenharmony_ci{ 1362306a36Sopenharmony_ci static DEFINE_RATELIMIT_STATE(ratelimit, 5 * HZ, 5); 1462306a36Sopenharmony_ci 1562306a36Sopenharmony_ci if (!__ratelimit(&ratelimit)) 1662306a36Sopenharmony_ci return; 1762306a36Sopenharmony_ci 1862306a36Sopenharmony_ci printk("irq %d, desc: %p, depth: %d, count: %d, unhandled: %d\n", 1962306a36Sopenharmony_ci irq, desc, desc->depth, desc->irq_count, desc->irqs_unhandled); 2062306a36Sopenharmony_ci printk("->handle_irq(): %p, %pS\n", 2162306a36Sopenharmony_ci desc->handle_irq, desc->handle_irq); 2262306a36Sopenharmony_ci printk("->irq_data.chip(): %p, %pS\n", 2362306a36Sopenharmony_ci desc->irq_data.chip, desc->irq_data.chip); 2462306a36Sopenharmony_ci printk("->action(): %p\n", desc->action); 2562306a36Sopenharmony_ci if (desc->action) { 2662306a36Sopenharmony_ci printk("->action->handler(): %p, %pS\n", 2762306a36Sopenharmony_ci desc->action->handler, desc->action->handler); 2862306a36Sopenharmony_ci } 2962306a36Sopenharmony_ci 3062306a36Sopenharmony_ci ___P(IRQ_LEVEL); 3162306a36Sopenharmony_ci ___P(IRQ_PER_CPU); 3262306a36Sopenharmony_ci ___P(IRQ_NOPROBE); 3362306a36Sopenharmony_ci ___P(IRQ_NOREQUEST); 3462306a36Sopenharmony_ci ___P(IRQ_NOTHREAD); 3562306a36Sopenharmony_ci ___P(IRQ_NOAUTOEN); 3662306a36Sopenharmony_ci 3762306a36Sopenharmony_ci ___PS(IRQS_AUTODETECT); 3862306a36Sopenharmony_ci ___PS(IRQS_REPLAY); 3962306a36Sopenharmony_ci ___PS(IRQS_WAITING); 4062306a36Sopenharmony_ci ___PS(IRQS_PENDING); 4162306a36Sopenharmony_ci 4262306a36Sopenharmony_ci ___PD(IRQS_INPROGRESS); 4362306a36Sopenharmony_ci ___PD(IRQS_DISABLED); 4462306a36Sopenharmony_ci ___PD(IRQS_MASKED); 4562306a36Sopenharmony_ci} 4662306a36Sopenharmony_ci 4762306a36Sopenharmony_ci#undef ___P 4862306a36Sopenharmony_ci#undef ___PS 4962306a36Sopenharmony_ci#undef ___PD 50