[RFC PATCH] genirq: implement read_irq_line for interrupt lines

Abhijeet Dharmapurikar adharmap at codeaurora.org
Fri Apr 15 18:17:32 EDT 2011


David Daney wrote:
> On 04/15/2011 11:42 AM, Abhijeet Dharmapurikar wrote:
> [...]
>>
>> +/**
>> + *    irq_read_line - read the value on an irq line
>> + *    @irq: Interrupt number representing a hardware line
>> + *
>> + *    This function may be called from IRQ context only when
>> + *    desc->chip->bus_lock and desc->chip->bus_sync_unlock are NULL !
> 
> What does it return?  I can see that -EINVAL is returned if it isn't 
> applicable to this irq.  But what if chip->irq_read_line is implemented?

It returns the logical state of that line (0 when it is low or 1 when it 
is high). Will add the return type in the comment.

> 
> 
> 
> 
>> + */
>> +int irq_read_line(unsigned int irq)
>> +{
>> +    struct irq_desc *desc = irq_to_desc(irq);
>> +    unsigned long flags;
>> +    int val;
>> +
>> +    if (!desc || !desc->irq_data.chip->irq_read_line)
>> +        return -EINVAL;

It returns -EINVAL is irq_read_line is not implemented.

>> +
>> +    chip_bus_lock(desc);
>> +    raw_spin_lock_irqsave(&desc->lock, flags);



--
Sent by an employee of the Qualcomm Innovation Center, Inc. The Qualcomm 
Innovation Center, Inc. is a member of the Code Aurora Forum.



More information about the linux-arm-kernel mailing list