From 924408cf58d5aceaed742f0b613fff2bae84e863 Mon Sep 17 00:00:00 2001 From: Jasmine Iwanek Date: Fri, 22 Jul 2022 21:15:15 -0400 Subject: [PATCH 1/2] Fix crash in TGUI 9440CXI --- src/video/vid_tgui9440.c | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/src/video/vid_tgui9440.c b/src/video/vid_tgui9440.c index a4fd83a0e..a95da1056 100644 --- a/src/video/vid_tgui9440.c +++ b/src/video/vid_tgui9440.c @@ -3150,14 +3150,16 @@ static int tgui96xx_available(void) void tgui_close(void *p) { - tgui_t *tgui = (tgui_t *)p; + tgui_t *tgui = (tgui_t *)p; - svga_close(&tgui->svga); + svga_close(&tgui->svga); + if (tgui->type >= TGUI_9440) { ddc_close(tgui->ddc); i2c_gpio_close(tgui->i2c); + }; - free(tgui); + free(tgui); } void tgui_speed_changed(void *p) From d94ae73ef73bcbb5b146b8c7ecbc59ec3ce35826 Mon Sep 17 00:00:00 2001 From: Jasmine Iwanek Date: Fri, 22 Jul 2022 21:58:03 -0400 Subject: [PATCH 2/2] Fix more I2C related bugs in the 9400CXI --- src/video/vid_tgui9440.c | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/src/video/vid_tgui9440.c b/src/video/vid_tgui9440.c index a95da1056..bac0242e1 100644 --- a/src/video/vid_tgui9440.c +++ b/src/video/vid_tgui9440.c @@ -483,7 +483,8 @@ tgui_out(uint16_t addr, uint8_t val, void *p) break; case 0x37: - i2c_gpio_set(tgui->i2c, (val & 0x02) || !(val & 0x04), (val & 0x01) || !(val & 0x08)); + if (tgui->type >= TGUI_9440) + i2c_gpio_set(tgui->i2c, (val & 0x02) || !(val & 0x04), (val & 0x01) || !(val & 0x08)); break; case 0x40: case 0x41: case 0x42: case 0x43: @@ -609,7 +610,7 @@ tgui_in(uint16_t addr, void *p) return svga->crtcreg; case 0x3D5: temp = svga->crtc[svga->crtcreg]; - if (svga->crtcreg == 0x37) { + if ((svga->crtcreg == 0x37) && (tgui->type >= TGUI_9440)) { if (!(temp & 0x04)) { temp &= ~0x02; if (i2c_gpio_get_scl(tgui->i2c))