drivers/media/platform/renesas/vsp1/vsp1.h
Source file repositories/reference/linux-study-clean/drivers/media/platform/renesas/vsp1/vsp1.h
File Facts
- System
- Linux kernel
- Corpus path
drivers/media/platform/renesas/vsp1/vsp1.h- Extension
.h- Size
- 2899 bytes
- Lines
- 133
- 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
linux/io.hlinux/list.hlinux/mutex.hmedia/media-device.hmedia/v4l2-device.hmedia/v4l2-subdev.hvsp1_regs.h
Detected Declarations
struct clkstruct devicestruct rcar_fcp_devicestruct reset_controlstruct vsp1_drmstruct vsp1_entitystruct vsp1_platform_datastruct vsp1_brxstruct vsp1_clustruct vsp1_hgostruct vsp1_hgtstruct vsp1_hsitstruct vsp1_iifstruct vsp1_lifstruct vsp1_lutstruct vsp1_rwpfstruct vsp1_srustruct vsp1_udsstruct vsp1_uifstruct vsp1_device_infostruct vsp1_devicefunction vsp1_readfunction vsp1_write
Annotated Snippet
struct vsp1_device_info {
u32 version;
const char *model;
unsigned int gen;
unsigned int features;
unsigned int lif_count;
unsigned int rpf_count;
unsigned int uds_count;
unsigned int uif_count;
unsigned int wpf_count;
unsigned int num_bru_inputs;
u8 soc;
bool uapi;
};
#define vsp1_feature(vsp1, f) ((vsp1)->info->features & (f))
struct vsp1_device {
struct device *dev;
const struct vsp1_device_info *info;
u32 version;
void __iomem *mmio;
struct rcar_fcp_device *fcp;
struct device *bus_master;
struct reset_control *rstc;
struct vsp1_brx *brs;
struct vsp1_brx *bru;
struct vsp1_clu *clu;
struct vsp1_hgo *hgo;
struct vsp1_hgt *hgt;
struct vsp1_hsit *hsi;
struct vsp1_hsit *hst;
struct vsp1_iif *iif;
struct vsp1_lif *lif[VSP1_MAX_LIF];
struct vsp1_lut *lut;
struct vsp1_rwpf *rpf[VSP1_MAX_RPF];
struct vsp1_sru *sru;
struct vsp1_uds *uds[VSP1_MAX_UDS];
struct vsp1_uif *uif[VSP1_MAX_UIF];
struct vsp1_rwpf *wpf[VSP1_MAX_WPF];
struct list_head entities;
struct list_head videos;
struct v4l2_device v4l2_dev;
struct media_device media_dev;
struct media_entity_operations media_ops;
struct vsp1_drm *drm;
struct vsp1_vspx *vspx;
};
int vsp1_device_get(struct vsp1_device *vsp1);
void vsp1_device_put(struct vsp1_device *vsp1);
int vsp1_reset_wpf(struct vsp1_device *vsp1, unsigned int index);
static inline u32 vsp1_read(struct vsp1_device *vsp1, u32 reg)
{
return ioread32(vsp1->mmio + reg);
}
static inline void vsp1_write(struct vsp1_device *vsp1, u32 reg, u32 data)
{
iowrite32(data, vsp1->mmio + reg);
}
#endif /* __VSP1_H__ */
Annotation
- Immediate include surface: `linux/io.h`, `linux/list.h`, `linux/mutex.h`, `media/media-device.h`, `media/v4l2-device.h`, `media/v4l2-subdev.h`, `vsp1_regs.h`.
- Detected declarations: `struct clk`, `struct device`, `struct rcar_fcp_device`, `struct reset_control`, `struct vsp1_drm`, `struct vsp1_entity`, `struct vsp1_platform_data`, `struct vsp1_brx`, `struct vsp1_clu`, `struct vsp1_hgo`.
- 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.