Hi, This is the xHCI driver interrupters implementation patchset for RFC. xHCI driver uses MSI-X by default and has multiple vectors. However, currently it only has one ERST(Event Ring Segment Table) and event ring and only the first MSI-X vector is used. An interrupter manages events and their notification to the host. The xHCI supports up to 1024 interrupters, and the implementation in this patchset support up to 32 interrupters. Each interrupter consists of an Interrupter Management Register, an Interrupter Moderation Register and an Event Ring. Each interrupter shall be mapped to a single MSI or MSI-X interrupter vector, and shall assert an interrupt if it's enabled and its associated Event Ring contains Event TRBs that require an interrupt. The patchset allocates and enable multiple interrupters to make use of all the MSI-X vectors. The 1st patch is a preparation for the following patches; The 2nd patch allocates multiple ERST and event rings, but still only use one interrupter; The 3rd patch enable the interrupters and modify irq handler to check all the interrupters when an interrupt is triggered, and the 4th patch make devices use different interrupters based on their slot_id. Devices can decide which interrupter they will use flexibly, and one device can use different interrupters simultaneously. Different interrupters may have different interrupt modulation interval set too. The best interrupter assignment mechanism is not decided yet. Thanks, Andiry -- To unsubscribe from this list: send the line "unsubscribe linux-usb" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html