Blame view
drivers/video/display-uclass.c
1.82 KB
83d290c56 SPDX: Convert all... |
1 |
// SPDX-License-Identifier: GPL-2.0+ |
2dcf14339 dm: video: Repurp... |
2 3 |
/* * Copyright 2014 Google Inc. |
2dcf14339 dm: video: Repurp... |
4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 |
*/ #include <common.h> #include <dm.h> #include <display.h> #include <edid.h> #include <errno.h> int display_read_edid(struct udevice *dev, u8 *buf, int buf_size) { struct dm_display_ops *ops = display_get_ops(dev); if (!ops || !ops->read_edid) return -ENOSYS; return ops->read_edid(dev, buf, buf_size); } int display_enable(struct udevice *dev, int panel_bpp, const struct display_timing *timing) { struct dm_display_ops *ops = display_get_ops(dev); |
1b68283b6 video: Track whet... |
25 26 |
struct display_plat *disp_uc_plat; int ret; |
2dcf14339 dm: video: Repurp... |
27 28 29 |
if (!ops || !ops->enable) return -ENOSYS; |
1b68283b6 video: Track whet... |
30 31 32 33 34 35 36 37 |
ret = ops->enable(dev, panel_bpp, timing); if (ret) return ret; disp_uc_plat = dev_get_uclass_platdata(dev); disp_uc_plat->in_use = true; return 0; |
2dcf14339 dm: video: Repurp... |
38 |
} |
eb4ee4e43 video: display: u... |
39 40 41 42 43 44 45 46 47 48 |
static bool display_mode_valid(void *priv, const struct display_timing *timing) { struct udevice *dev = priv; struct dm_display_ops *ops = display_get_ops(dev); if (ops && ops->mode_valid) return ops->mode_valid(dev, timing); return true; } |
2dcf14339 dm: video: Repurp... |
49 50 51 52 53 54 |
int display_read_timing(struct udevice *dev, struct display_timing *timing) { struct dm_display_ops *ops = display_get_ops(dev); int panel_bits_per_colour; u8 buf[EDID_EXT_SIZE]; int ret; |
eab314f59 dm: video: Add a ... |
55 56 |
if (ops && ops->read_timing) return ops->read_timing(dev, timing); |
2dcf14339 dm: video: Repurp... |
57 58 59 60 61 |
if (!ops || !ops->read_edid) return -ENOSYS; ret = ops->read_edid(dev, buf, sizeof(buf)); if (ret < 0) return ret; |
eb4ee4e43 video: display: u... |
62 63 64 |
return edid_get_timing_validate(buf, ret, timing, &panel_bits_per_colour, display_mode_valid, dev); |
2dcf14339 dm: video: Repurp... |
65 |
} |
1b68283b6 video: Track whet... |
66 67 68 69 70 71 |
bool display_in_use(struct udevice *dev) { struct display_plat *disp_uc_plat = dev_get_uclass_platdata(dev); return disp_uc_plat->in_use; } |
2dcf14339 dm: video: Repurp... |
72 73 74 |
UCLASS_DRIVER(display) = { .id = UCLASS_DISPLAY, .name = "display", |
9cdae927c MLK-23964-8 video... |
75 |
.flags = DM_UC_FLAG_SEQ_ALIAS, |
2dcf14339 dm: video: Repurp... |
76 77 |
.per_device_platdata_auto_alloc_size = sizeof(struct display_plat), }; |