1*97917e9eSGerd Hoffmann #include "qemu/osdep.h" 2*97917e9eSGerd Hoffmann #include "qemu-common.h" 3*97917e9eSGerd Hoffmann #include "hw/display/edid.h" 4*97917e9eSGerd Hoffmann 5*97917e9eSGerd Hoffmann static uint64_t edid_region_read(void *ptr, hwaddr addr, unsigned size) 6*97917e9eSGerd Hoffmann { 7*97917e9eSGerd Hoffmann uint8_t *edid = ptr; 8*97917e9eSGerd Hoffmann 9*97917e9eSGerd Hoffmann return edid[addr]; 10*97917e9eSGerd Hoffmann } 11*97917e9eSGerd Hoffmann 12*97917e9eSGerd Hoffmann static void edid_region_write(void *ptr, hwaddr addr, 13*97917e9eSGerd Hoffmann uint64_t val, unsigned size) 14*97917e9eSGerd Hoffmann { 15*97917e9eSGerd Hoffmann /* read only */ 16*97917e9eSGerd Hoffmann } 17*97917e9eSGerd Hoffmann 18*97917e9eSGerd Hoffmann static const MemoryRegionOps edid_region_ops = { 19*97917e9eSGerd Hoffmann .read = edid_region_read, 20*97917e9eSGerd Hoffmann .write = edid_region_write, 21*97917e9eSGerd Hoffmann .valid.min_access_size = 1, 22*97917e9eSGerd Hoffmann .valid.max_access_size = 4, 23*97917e9eSGerd Hoffmann .impl.min_access_size = 1, 24*97917e9eSGerd Hoffmann .impl.max_access_size = 1, 25*97917e9eSGerd Hoffmann .endianness = DEVICE_LITTLE_ENDIAN, 26*97917e9eSGerd Hoffmann }; 27*97917e9eSGerd Hoffmann 28*97917e9eSGerd Hoffmann void qemu_edid_region_io(MemoryRegion *region, Object *owner, 29*97917e9eSGerd Hoffmann uint8_t *edid, size_t size) 30*97917e9eSGerd Hoffmann { 31*97917e9eSGerd Hoffmann memory_region_init_io(region, owner, &edid_region_ops, 32*97917e9eSGerd Hoffmann edid, "edid", size); 33*97917e9eSGerd Hoffmann } 34