[RFC 0/4] xHCI: multiple interrupters implementation

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



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


[Index of Archives]     [Linux Media]     [Linux Input]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]     [Old Linux USB Devel Archive]

  Powered by Linux