drivers/gpu/drm/panel/panel-samsung-s6e88a0-ams427ap24.c
Source file repositories/reference/linux-study-clean/drivers/gpu/drm/panel/panel-samsung-s6e88a0-ams427ap24.c
File Facts
- System
- Linux kernel
- Corpus path
drivers/gpu/drm/panel/panel-samsung-s6e88a0-ams427ap24.c- Extension
.c- Size
- 27543 bytes
- Lines
- 769
- Domain
- Driver Families
- Bucket
- drivers/gpu
- 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/backlight.hlinux/delay.hlinux/gpio/consumer.hlinux/mod_devicetable.hlinux/module.hlinux/property.hlinux/regulator/consumer.hvideo/mipi_display.hdrm/drm_mipi_dsi.hdrm/drm_modes.hdrm/drm_panel.hdrm/drm_probe_helper.h
Detected Declarations
struct s6e88a0_ams427ap24enum candelafunction s6e88a0_ams427ap24_set_brightnessfunction s6e88a0_ams427ap24_resetfunction s6e88a0_ams427ap24_onfunction s6e88a0_ams427ap24_offfunction s6e88a0_ams427ap24_preparefunction s6e88a0_ams427ap24_unpreparefunction s6e88a0_ams427ap24_get_modesfunction s6e88a0_ams427ap24_register_backlightfunction s6e88a0_ams427ap24_probefunction s6e88a0_ams427ap24_remove
Annotated Snippet
struct s6e88a0_ams427ap24 {
struct drm_panel panel;
struct backlight_device *bl_dev;
struct mipi_dsi_device *dsi;
struct regulator_bulk_data *supplies;
struct gpio_desc *reset_gpio;
bool flip_horizontal;
};
static const struct regulator_bulk_data s6e88a0_ams427ap24_supplies[] = {
{ .supply = "vdd3" },
{ .supply = "vci" },
};
static inline
struct s6e88a0_ams427ap24 *to_s6e88a0_ams427ap24(struct drm_panel *panel)
{
return container_of(panel, struct s6e88a0_ams427ap24, panel);
}
enum candela {
CANDELA_10CD, /* 0 */
CANDELA_11CD,
CANDELA_12CD,
CANDELA_13CD,
CANDELA_14CD,
CANDELA_15CD,
CANDELA_16CD,
CANDELA_17CD,
CANDELA_19CD,
CANDELA_20CD,
CANDELA_21CD,
CANDELA_22CD,
CANDELA_24CD,
CANDELA_25CD,
CANDELA_27CD,
CANDELA_29CD,
CANDELA_30CD,
CANDELA_32CD,
CANDELA_34CD,
CANDELA_37CD,
CANDELA_39CD,
CANDELA_41CD,
CANDELA_44CD,
CANDELA_47CD,
CANDELA_50CD,
CANDELA_53CD,
CANDELA_56CD,
CANDELA_60CD,
CANDELA_64CD,
CANDELA_68CD,
CANDELA_72CD,
CANDELA_77CD,
CANDELA_82CD,
CANDELA_87CD,
CANDELA_93CD,
CANDELA_98CD,
CANDELA_105CD,
CANDELA_111CD,
CANDELA_119CD,
CANDELA_126CD,
CANDELA_134CD,
CANDELA_143CD,
CANDELA_152CD,
CANDELA_162CD,
CANDELA_172CD,
CANDELA_183CD,
CANDELA_195CD,
CANDELA_207CD,
CANDELA_220CD,
CANDELA_234CD,
CANDELA_249CD,
CANDELA_265CD,
CANDELA_282CD,
CANDELA_300CD, /* 53 */
};
static const int s6e88a0_ams427ap24_br_to_cd[NUM_STEPS_CANDELA] = {
/* columns: brightness from, brightness till, candela */
/* 0 */ 10, /* 10CD */
/* 11 */ 11, /* 11CD */
/* 12 */ 12, /* 12CD */
/* 13 */ 13, /* 13CD */
/* 14 */ 14, /* 14CD */
/* 15 */ 15, /* 15CD */
/* 16 */ 16, /* 16CD */
/* 17 */ 17, /* 17CD */
/* 18 */ 18, /* 19CD */
/* 19 */ 19, /* 20CD */
/* 20 */ 20, /* 21CD */
Annotation
- Immediate include surface: `linux/backlight.h`, `linux/delay.h`, `linux/gpio/consumer.h`, `linux/mod_devicetable.h`, `linux/module.h`, `linux/property.h`, `linux/regulator/consumer.h`, `video/mipi_display.h`.
- Detected declarations: `struct s6e88a0_ams427ap24`, `enum candela`, `function s6e88a0_ams427ap24_set_brightness`, `function s6e88a0_ams427ap24_reset`, `function s6e88a0_ams427ap24_on`, `function s6e88a0_ams427ap24_off`, `function s6e88a0_ams427ap24_prepare`, `function s6e88a0_ams427ap24_unprepare`, `function s6e88a0_ams427ap24_get_modes`, `function s6e88a0_ams427ap24_register_backlight`.
- Atlas domain: Driver Families / drivers/gpu.
- 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.