title: How IRQS get assigned
body: <p>I'm having some question regarding PCI and IRQS.</p>
  
  <p>How IRQs get assigned to devices that is connected to PCI bus , does it get assigned by the BIOS at boot time , or the bus choose it or the bus controller choose it automaticlly by itself who is responsable for that choice of IRQS numbers ? </p>
  
  <p>when a device gets connected to a PCI bus can the device fill the IRQ field in the PCI Controller configuration register?</p>
  
  <p>Can the Linux kernel assign and change the IRQS of connected devices ? </p>
  
  <p>What about device controller like USB controller or SATA controller how we can assign an IRQ to the controller since it have more than one device that is connected to it , and how multiple devices like that are connected to the same controller use IRQS ?</p>
  
  <p>How Linux identify devices that gets connected to the machine while it's running and how they get assigned an IRQ number and who is responsable for that ?</p>