drivers/media/pci/saa7164/saa7164-types.h
Source file repositories/reference/linux-study-clean/drivers/media/pci/saa7164/saa7164-types.h
File Facts
- System
- Linux kernel
- Corpus path
drivers/media/pci/saa7164/saa7164-types.h- Extension
.h- Size
- 8968 bytes
- Lines
- 429
- Domain
- Driver Families
- Bucket
- drivers/media
- Inferred role
- Driver Families: implementation source
- Status
- source implementation candidate
Why This File Exists
Repeatable hardware-adapter layer. Deep compatibility for every driver is out of scope; this atlas records patterns, probe lifecycles, bus glue, IRQ/DMA usage, and links back to core abstractions.
- Repeatable hardware-adapter layer. Deep compatibility for every driver is out of scope; this atlas records patterns, probe lifecycles, bus glue, IRQ/DMA usage, and links back to core abstractions.
- Defines or uses C structs; map object ownership, embedded links, reference counts, and lock ownership.
Dependency Surface
- No C-style include directives detected by the generator.
Detected Declarations
struct tmComResHWDescrstruct tmComResInterfaceDescrstruct tmComResBusDescrstruct tmComResBusInfostruct tmComResInfostruct cmdstruct tmDescriptorstruct tmComResDescrHeaderstruct tmComResExtDevDescrHeaderstruct tmComResGPIOstruct tmComResPathDescrHeaderstruct tmComResAntTermDescrHeaderstruct tmComResTunerDescrHeaderstruct tmBufferstruct tmHWStreamParametersstruct tmStreamParametersstruct tmComResDMATermDescrHeaderstruct tmComResTSFormatDescrHeaderstruct tmComResSelDescrHeaderstruct tmComResProcDescrHeaderstruct tmComResEncVideoBitRatestruct tmComResEncVideoInputAspectRatiostruct tmComResEncVideoGopStructurestruct tmComResEncoderDescrHeaderstruct tmComResAFeatureDescrHeaderstruct tmComResAudioDefaultsstruct tmComResEncAudioBitRatestruct tmComResTunerStandardstruct tmComResTunerStandardAutostruct tmComResPSFormatDescrHeaderstruct tmComResVBIFormatDescrHeaderstruct tmComResProbeCommitstruct tmComResDebugSetLevelstruct tmComResDebugGetDatastruct tmFwInfoStructenum tmBusTypeenum tmComResCmdenum tmComResTermTypeenum tmBufferFlag
Annotated Snippet
struct tmComResHWDescr {
u8 bLength;
u8 bDescriptorType;
u8 bDescriptorSubtype;
u16 bcdSpecVersion;
u32 dwClockFrequency;
u32 dwClockUpdateRes;
u8 bCapabilities;
u32 dwDeviceRegistersLocation;
u32 dwHostMemoryRegion;
u32 dwHostMemoryRegionSize;
u32 dwHostHibernatMemRegion;
u32 dwHostHibernatMemRegionSize;
} __attribute__((packed));
/* This is DWORD aligned on windows but I can't find the right
* gcc syntax to match the binary data from the device.
* I've manually padded with Reserved[3] bytes to match the hardware,
* but this could break if GCC decides to pack in a different way.
*/
struct tmComResInterfaceDescr {
u8 bLength;
u8 bDescriptorType;
u8 bDescriptorSubtype;
u8 bFlags;
u8 bInterfaceType;
u8 bInterfaceId;
u8 bBaseInterface;
u8 bInterruptId;
u8 bDebugInterruptId;
u8 BARLocation;
u8 Reserved[3];
};
struct tmComResBusDescr {
u64 CommandRing;
u64 ResponseRing;
u32 CommandWrite;
u32 CommandRead;
u32 ResponseWrite;
u32 ResponseRead;
};
enum tmBusType {
NONE = 0,
TYPE_BUS_PCI = 1,
TYPE_BUS_PCIe = 2,
TYPE_BUS_USB = 3,
TYPE_BUS_I2C = 4
};
struct tmComResBusInfo {
enum tmBusType Type;
u16 m_wMaxReqSize;
u8 __iomem *m_pdwSetRing;
u32 m_dwSizeSetRing;
u8 __iomem *m_pdwGetRing;
u32 m_dwSizeGetRing;
u32 m_dwSetWritePos;
u32 m_dwSetReadPos;
u32 m_dwGetWritePos;
u32 m_dwGetReadPos;
/* All access is protected */
struct mutex lock;
};
struct tmComResInfo {
u8 id;
u8 flags;
u16 size;
u32 command;
u16 controlselector;
u8 seqno;
} __attribute__((packed));
enum tmComResCmd {
SET_CUR = 0x01,
GET_CUR = 0x81,
GET_MIN = 0x82,
GET_MAX = 0x83,
GET_RES = 0x84,
GET_LEN = 0x85,
GET_INFO = 0x86,
GET_DEF = 0x87
};
struct cmd {
u8 seqno;
Annotation
- Detected declarations: `struct tmComResHWDescr`, `struct tmComResInterfaceDescr`, `struct tmComResBusDescr`, `struct tmComResBusInfo`, `struct tmComResInfo`, `struct cmd`, `struct tmDescriptor`, `struct tmComResDescrHeader`, `struct tmComResExtDevDescrHeader`, `struct tmComResGPIO`.
- Atlas domain: Driver Families / drivers/media.
- Implementation status: source implementation candidate.
Implementation Notes
- This generated page is the file-by-file coverage layer; curated subsystem chapters should link here when they synthesize a multi-file control flow.
- Core OS pages should be promoted from atlas-only to deep-reviewed when they explain data structures, invariants, locking, lifecycle, and C implementation snippets.
- Driver-family pages are intentionally pattern-oriented unless they are part of the selected PCIe/NVMe representative device path.