drivers/media/pci/cobalt/cobalt-cpld.c
Source file repositories/reference/linux-study-clean/drivers/media/pci/cobalt/cobalt-cpld.c
File Facts
- System
- Linux kernel
- Corpus path
drivers/media/pci/cobalt/cobalt-cpld.c- Extension
.c- Size
- 12754 bytes
- Lines
- 325
- 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/delay.hcobalt-cpld.h
Detected Declarations
struct multiplierfunction cpld_readfunction cpld_writefunction cpld_info_ver3function cobalt_cpld_statusfunction cobalt_cpld_set_freq
Annotated Snippet
struct multiplier {
unsigned mult, hsdiv, n1;
};
/* List all possible multipliers (= hsdiv * n1). There are lots of duplicates,
which are all removed in this list to keep the list as short as possible.
The values for hsdiv and n1 are the actual values, not the register values.
*/
static const struct multiplier multipliers[] = {
{ 4, 4, 1 }, { 5, 5, 1 }, { 6, 6, 1 },
{ 7, 7, 1 }, { 8, 4, 2 }, { 9, 9, 1 },
{ 10, 5, 2 }, { 11, 11, 1 }, { 12, 6, 2 },
{ 14, 7, 2 }, { 16, 4, 4 }, { 18, 9, 2 },
{ 20, 5, 4 }, { 22, 11, 2 }, { 24, 4, 6 },
{ 28, 7, 4 }, { 30, 5, 6 }, { 32, 4, 8 },
{ 36, 6, 6 }, { 40, 4, 10 }, { 42, 7, 6 },
{ 44, 11, 4 }, { 48, 4, 12 }, { 50, 5, 10 },
{ 54, 9, 6 }, { 56, 4, 14 }, { 60, 5, 12 },
{ 64, 4, 16 }, { 66, 11, 6 }, { 70, 5, 14 },
{ 72, 4, 18 }, { 80, 4, 20 }, { 84, 6, 14 },
{ 88, 11, 8 }, { 90, 5, 18 }, { 96, 4, 24 },
{ 98, 7, 14 }, { 100, 5, 20 }, { 104, 4, 26 },
{ 108, 6, 18 }, { 110, 11, 10 }, { 112, 4, 28 },
{ 120, 4, 30 }, { 126, 7, 18 }, { 128, 4, 32 },
{ 130, 5, 26 }, { 132, 11, 12 }, { 136, 4, 34 },
{ 140, 5, 28 }, { 144, 4, 36 }, { 150, 5, 30 },
{ 152, 4, 38 }, { 154, 11, 14 }, { 156, 6, 26 },
{ 160, 4, 40 }, { 162, 9, 18 }, { 168, 4, 42 },
{ 170, 5, 34 }, { 176, 11, 16 }, { 180, 5, 36 },
{ 182, 7, 26 }, { 184, 4, 46 }, { 190, 5, 38 },
{ 192, 4, 48 }, { 196, 7, 28 }, { 198, 11, 18 },
{ 198, 9, 22 }, { 200, 4, 50 }, { 204, 6, 34 },
{ 208, 4, 52 }, { 210, 5, 42 }, { 216, 4, 54 },
{ 220, 11, 20 }, { 224, 4, 56 }, { 228, 6, 38 },
{ 230, 5, 46 }, { 232, 4, 58 }, { 234, 9, 26 },
{ 238, 7, 34 }, { 240, 4, 60 }, { 242, 11, 22 },
{ 248, 4, 62 }, { 250, 5, 50 }, { 252, 6, 42 },
{ 256, 4, 64 }, { 260, 5, 52 }, { 264, 11, 24 },
{ 266, 7, 38 }, { 270, 5, 54 }, { 272, 4, 68 },
{ 276, 6, 46 }, { 280, 4, 70 }, { 286, 11, 26 },
{ 288, 4, 72 }, { 290, 5, 58 }, { 294, 7, 42 },
{ 296, 4, 74 }, { 300, 5, 60 }, { 304, 4, 76 },
{ 306, 9, 34 }, { 308, 11, 28 }, { 310, 5, 62 },
{ 312, 4, 78 }, { 320, 4, 80 }, { 322, 7, 46 },
{ 324, 6, 54 }, { 328, 4, 82 }, { 330, 11, 30 },
{ 336, 4, 84 }, { 340, 5, 68 }, { 342, 9, 38 },
{ 344, 4, 86 }, { 348, 6, 58 }, { 350, 5, 70 },
{ 352, 11, 32 }, { 360, 4, 90 }, { 364, 7, 52 },
{ 368, 4, 92 }, { 370, 5, 74 }, { 372, 6, 62 },
{ 374, 11, 34 }, { 376, 4, 94 }, { 378, 7, 54 },
{ 380, 5, 76 }, { 384, 4, 96 }, { 390, 5, 78 },
{ 392, 4, 98 }, { 396, 11, 36 }, { 400, 4, 100 },
{ 406, 7, 58 }, { 408, 4, 102 }, { 410, 5, 82 },
{ 414, 9, 46 }, { 416, 4, 104 }, { 418, 11, 38 },
{ 420, 5, 84 }, { 424, 4, 106 }, { 430, 5, 86 },
{ 432, 4, 108 }, { 434, 7, 62 }, { 440, 11, 40 },
{ 444, 6, 74 }, { 448, 4, 112 }, { 450, 5, 90 },
{ 456, 4, 114 }, { 460, 5, 92 }, { 462, 11, 42 },
{ 464, 4, 116 }, { 468, 6, 78 }, { 470, 5, 94 },
{ 472, 4, 118 }, { 476, 7, 68 }, { 480, 4, 120 },
{ 484, 11, 44 }, { 486, 9, 54 }, { 488, 4, 122 },
{ 490, 5, 98 }, { 492, 6, 82 }, { 496, 4, 124 },
{ 500, 5, 100 }, { 504, 4, 126 }, { 506, 11, 46 },
{ 510, 5, 102 }, { 512, 4, 128 }, { 516, 6, 86 },
{ 518, 7, 74 }, { 520, 5, 104 }, { 522, 9, 58 },
{ 528, 11, 48 }, { 530, 5, 106 }, { 532, 7, 76 },
{ 540, 5, 108 }, { 546, 7, 78 }, { 550, 11, 50 },
{ 552, 6, 92 }, { 558, 9, 62 }, { 560, 5, 112 },
{ 564, 6, 94 }, { 570, 5, 114 }, { 572, 11, 52 },
{ 574, 7, 82 }, { 576, 6, 96 }, { 580, 5, 116 },
{ 588, 6, 98 }, { 590, 5, 118 }, { 594, 11, 54 },
{ 600, 5, 120 }, { 602, 7, 86 }, { 610, 5, 122 },
{ 612, 6, 102 }, { 616, 11, 56 }, { 620, 5, 124 },
{ 624, 6, 104 }, { 630, 5, 126 }, { 636, 6, 106 },
{ 638, 11, 58 }, { 640, 5, 128 }, { 644, 7, 92 },
{ 648, 6, 108 }, { 658, 7, 94 }, { 660, 11, 60 },
{ 666, 9, 74 }, { 672, 6, 112 }, { 682, 11, 62 },
{ 684, 6, 114 }, { 686, 7, 98 }, { 696, 6, 116 },
{ 700, 7, 100 }, { 702, 9, 78 }, { 704, 11, 64 },
{ 708, 6, 118 }, { 714, 7, 102 }, { 720, 6, 120 },
{ 726, 11, 66 }, { 728, 7, 104 }, { 732, 6, 122 },
{ 738, 9, 82 }, { 742, 7, 106 }, { 744, 6, 124 },
{ 748, 11, 68 }, { 756, 6, 126 }, { 768, 6, 128 },
{ 770, 11, 70 }, { 774, 9, 86 }, { 784, 7, 112 },
{ 792, 11, 72 }, { 798, 7, 114 }, { 810, 9, 90 },
{ 812, 7, 116 }, { 814, 11, 74 }, { 826, 7, 118 },
{ 828, 9, 92 }, { 836, 11, 76 }, { 840, 7, 120 },
{ 846, 9, 94 }, { 854, 7, 122 }, { 858, 11, 78 },
{ 864, 9, 96 }, { 868, 7, 124 }, { 880, 11, 80 },
{ 882, 7, 126 }, { 896, 7, 128 }, { 900, 9, 100 },
Annotation
- Immediate include surface: `linux/delay.h`, `cobalt-cpld.h`.
- Detected declarations: `struct multiplier`, `function cpld_read`, `function cpld_write`, `function cpld_info_ver3`, `function cobalt_cpld_status`, `function cobalt_cpld_set_freq`.
- 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.