1*4882a593Smuzhiyun=============== 2*4882a593SmuzhiyunWhat is an IRQ? 3*4882a593Smuzhiyun=============== 4*4882a593Smuzhiyun 5*4882a593SmuzhiyunAn IRQ is an interrupt request from a device. 6*4882a593SmuzhiyunCurrently they can come in over a pin, or over a packet. 7*4882a593SmuzhiyunSeveral devices may be connected to the same pin thus 8*4882a593Smuzhiyunsharing an IRQ. 9*4882a593Smuzhiyun 10*4882a593SmuzhiyunAn IRQ number is a kernel identifier used to talk about a hardware 11*4882a593Smuzhiyuninterrupt source. Typically this is an index into the global irq_desc 12*4882a593Smuzhiyunarray, but except for what linux/interrupt.h implements the details 13*4882a593Smuzhiyunare architecture specific. 14*4882a593Smuzhiyun 15*4882a593SmuzhiyunAn IRQ number is an enumeration of the possible interrupt sources on a 16*4882a593Smuzhiyunmachine. Typically what is enumerated is the number of input pins on 17*4882a593Smuzhiyunall of the interrupt controller in the system. In the case of ISA 18*4882a593Smuzhiyunwhat is enumerated are the 16 input pins on the two i8259 interrupt 19*4882a593Smuzhiyuncontrollers. 20*4882a593Smuzhiyun 21*4882a593SmuzhiyunArchitectures can assign additional meaning to the IRQ numbers, and 22*4882a593Smuzhiyunare encouraged to in the case where there is any manual configuration 23*4882a593Smuzhiyunof the hardware involved. The ISA IRQs are a classic example of 24*4882a593Smuzhiyunassigning this kind of additional meaning. 25