diff options
Diffstat (limited to 'kernel/irq/irqdesc.c')
| -rw-r--r-- | kernel/irq/irqdesc.c | 17 | 
1 files changed, 17 insertions, 0 deletions
| diff --git a/kernel/irq/irqdesc.c b/kernel/irq/irqdesc.c index 49b54e9979cc..d9ded088d336 100644 --- a/kernel/irq/irqdesc.c +++ b/kernel/irq/irqdesc.c @@ -210,6 +210,22 @@ static ssize_t type_show(struct kobject *kobj,  }  IRQ_ATTR_RO(type); +static ssize_t wakeup_show(struct kobject *kobj, +			   struct kobj_attribute *attr, char *buf) +{ +	struct irq_desc *desc = container_of(kobj, struct irq_desc, kobj); +	ssize_t ret = 0; + +	raw_spin_lock_irq(&desc->lock); +	ret = sprintf(buf, "%s\n", +		      irqd_is_wakeup_set(&desc->irq_data) ? "enabled" : "disabled"); +	raw_spin_unlock_irq(&desc->lock); + +	return ret; + +} +IRQ_ATTR_RO(wakeup); +  static ssize_t name_show(struct kobject *kobj,  			 struct kobj_attribute *attr, char *buf)  { @@ -253,6 +269,7 @@ static struct attribute *irq_attrs[] = {  	&chip_name_attr.attr,  	&hwirq_attr.attr,  	&type_attr.attr, +	&wakeup_attr.attr,  	&name_attr.attr,  	&actions_attr.attr,  	NULL | 
