diff options
Diffstat (limited to 'kernel/irq/debugfs.c')
-rw-r--r-- | kernel/irq/debugfs.c | 12 |
1 files changed, 12 insertions, 0 deletions
diff --git a/kernel/irq/debugfs.c b/kernel/irq/debugfs.c index c3fdb36dec30..7f608ac39653 100644 --- a/kernel/irq/debugfs.c +++ b/kernel/irq/debugfs.c | |||
@@ -81,6 +81,8 @@ irq_debug_show_data(struct seq_file *m, struct irq_data *data, int ind) | |||
81 | data->domain ? data->domain->name : ""); | 81 | data->domain ? data->domain->name : ""); |
82 | seq_printf(m, "%*shwirq: 0x%lx\n", ind + 1, "", data->hwirq); | 82 | seq_printf(m, "%*shwirq: 0x%lx\n", ind + 1, "", data->hwirq); |
83 | irq_debug_show_chip(m, data, ind + 1); | 83 | irq_debug_show_chip(m, data, ind + 1); |
84 | if (data->domain && data->domain->ops && data->domain->ops->debug_show) | ||
85 | data->domain->ops->debug_show(m, NULL, data, ind + 1); | ||
84 | #ifdef CONFIG_IRQ_DOMAIN_HIERARCHY | 86 | #ifdef CONFIG_IRQ_DOMAIN_HIERARCHY |
85 | if (!data->parent_data) | 87 | if (!data->parent_data) |
86 | return; | 88 | return; |
@@ -149,6 +151,7 @@ static int irq_debug_show(struct seq_file *m, void *p) | |||
149 | raw_spin_lock_irq(&desc->lock); | 151 | raw_spin_lock_irq(&desc->lock); |
150 | data = irq_desc_get_irq_data(desc); | 152 | data = irq_desc_get_irq_data(desc); |
151 | seq_printf(m, "handler: %pf\n", desc->handle_irq); | 153 | seq_printf(m, "handler: %pf\n", desc->handle_irq); |
154 | seq_printf(m, "device: %s\n", desc->dev_name); | ||
152 | seq_printf(m, "status: 0x%08x\n", desc->status_use_accessors); | 155 | seq_printf(m, "status: 0x%08x\n", desc->status_use_accessors); |
153 | irq_debug_show_bits(m, 0, desc->status_use_accessors, irqdesc_states, | 156 | irq_debug_show_bits(m, 0, desc->status_use_accessors, irqdesc_states, |
154 | ARRAY_SIZE(irqdesc_states)); | 157 | ARRAY_SIZE(irqdesc_states)); |
@@ -226,6 +229,15 @@ static const struct file_operations dfs_irq_ops = { | |||
226 | .release = single_release, | 229 | .release = single_release, |
227 | }; | 230 | }; |
228 | 231 | ||
232 | void irq_debugfs_copy_devname(int irq, struct device *dev) | ||
233 | { | ||
234 | struct irq_desc *desc = irq_to_desc(irq); | ||
235 | const char *name = dev_name(dev); | ||
236 | |||
237 | if (name) | ||
238 | desc->dev_name = kstrdup(name, GFP_KERNEL); | ||
239 | } | ||
240 | |||
229 | void irq_add_debugfs_entry(unsigned int irq, struct irq_desc *desc) | 241 | void irq_add_debugfs_entry(unsigned int irq, struct irq_desc *desc) |
230 | { | 242 | { |
231 | char name [10]; | 243 | char name [10]; |