STRUCT QMU_GPD(9)
π struct qmu_gpd(9) β the General Purpose Descriptor page β¨
okay so we're in the Kernel API Manual, section 9, and the main character is struct qmu_gpd(9) π«Ά. This is your group-chat breakdown of a kernel struct, so keep your brain online, bestie β it's giving "small struct, lots of bit lore" π.
πΈ NAME πΈ
struct qmu_gpd - General Purpose Descriptor (GPD): The format of TX GPD is a little different from RX one. And the size of GPD is 16 bytes. periodt π
β¨ SYNOPSIS β¨
here's the struct in all its glory, no edits, no cap:
struct qmu_gpd {
__le32 dw0_info;
__le32 next_gpd;
__le32 buffer;
__le32 dw3_info;
};
π Members π
okay so here's the member-by-member tea ββ¨:
dw0_infoβ the info word with a whole bit map, and she has lore:bit0: Hardware Own (HWO)bit1: Buffer Descriptor Present (BDP), always 0, BD is not supportedbit2: Bypass (BPS), 1: HW skips this GPD if HWO = 1bit6: [EL] Zero Length Packet (ZLP), moved from dw3_info[29]bit7: Interrupt On Completion (IOC)bit[31:16]: ([EL] bit[31:12]) allow data buffer length (RX ONLY), the buffer length of the data to receivebit[23:16]: ([EL] bit[31:24]) extension address (TX ONLY), lower 4 bits are extension bits of buffer, upper 4 bits are extension bits of next_gpd
next_gpdβ Physical address of the next GPDbufferβ Physical address of the data bufferdw3_infoβ thedw3_infomember, with its own bit map:bit[15:0]: ([EL] bit[19:0]) data buffer length, (TX): the buffer length of the data to transmit (RX): The total length of data receivedbit[23:16]: ([EL] bit[31:24]) extension address (RX ONLY), lower 4 bits are extension bits of buffer, upper 4 bits are extension bits of next_gpdbit29: ([EL] abandoned) Zero Length Packet (ZLP) (TX ONLY)
π¦ SEE ALSO π¦
Kernel file ./drivers/usb/mtu3/mtu3.h, plus the whole friend group:
enum mtu3_g_ep0_state(9)enum mtu3_dr_force_mode(9)struct mtu3_fifo_info(9)struct mtu3_gpd_ring(9)struct otg_switch_mtk(9)struct ssusb_mtk(9)struct mtu3_ep(9)struct mtu3(9)
that's the whole page, bestie β go flex that GPD knowledge π
β¨ source/version: ./drivers/usb/mtu3 Β· date: October 2026 Β· page: struct qmu_gpd(9).
π¦ where this page comes from
- nixpkgs unstable: linux-manual 7.3.1
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash-1017 on : a language model's rewrite of the original, under its terms