From cfebf4439b777036826d7a0c8eec321d801b779e Mon Sep 17 00:00:00 2001 From: Cacodemon345 Date: Mon, 19 Feb 2024 04:19:55 +0600 Subject: [PATCH 1/2] C&T 69000: avoid stale linear mappings --- src/video/vid_chips_69000.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/video/vid_chips_69000.c b/src/video/vid_chips_69000.c index 04a543884f..b649e41e58 100644 --- a/src/video/vid_chips_69000.c +++ b/src/video/vid_chips_69000.c @@ -1887,7 +1887,7 @@ chips_69000_pci_write(int func, int addr, uint8_t val, void *p) case 0x13: { // if (!(chips->pci_conf_status & PCI_COMMAND_MEM)) { - chips->linear_mapping.base = val << 24; + // chips->linear_mapping.base = val << 24; // break; // } mem_mapping_set_addr(&chips->linear_mapping, val << 24, (1 << 24)); From 91aa53d8a6bfda4fb43ee33c953d7c4edb942e66 Mon Sep 17 00:00:00 2001 From: Cacodemon345 Date: Mon, 19 Feb 2024 04:31:08 +0600 Subject: [PATCH 2/2] More correct linear mapping behaviour --- src/video/vid_chips_69000.c | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/src/video/vid_chips_69000.c b/src/video/vid_chips_69000.c index b649e41e58..6060010560 100644 --- a/src/video/vid_chips_69000.c +++ b/src/video/vid_chips_69000.c @@ -1886,10 +1886,10 @@ chips_69000_pci_write(int func, int addr, uint8_t val, void *p) } case 0x13: { - // if (!(chips->pci_conf_status & PCI_COMMAND_MEM)) { - // chips->linear_mapping.base = val << 24; - // break; - // } + if (!chips->linear_mapping.enable) { + chips->linear_mapping.base = val << 24; + break; + } mem_mapping_set_addr(&chips->linear_mapping, val << 24, (1 << 24)); break; }