From b793792fe80140232d24801475a528da6773ba2b Mon Sep 17 00:00:00 2001 From: OBattler Date: Sat, 9 Aug 2025 14:41:18 +0200 Subject: [PATCH] ISA PnP: Keep the local device card set when going out of forced configuration, fixes UM8669F configuration. --- src/device/isapnp.c | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/src/device/isapnp.c b/src/device/isapnp.c index 1ee8be040..ce8f7817f 100644 --- a/src/device/isapnp.c +++ b/src/device/isapnp.c @@ -1117,13 +1117,17 @@ isapnp_enable_card(void *priv, uint8_t enable) /* Enable or disable the card. */ if (!!enable ^ !!card->enable) card->state = (enable == ISAPNP_CARD_FORCE_CONFIG) ? PNP_STATE_CONFIG : PNP_STATE_WAIT_FOR_KEY; + int old_enable = card->enable; card->enable = enable; /* Invalidate other references if we're disabling this card. */ - if (!card->enable) { + if ((card->enable) && (dev->current_ld_card != NULL) && (dev->current_ld_card != card)) { + dev->current_ld = NULL; + dev->current_ld_card = NULL; + } if (!card->enable) { if (dev->isolated_card == card) dev->isolated_card = NULL; - if (dev->current_ld_card == card) { + if ((dev->current_ld_card == card) && (old_enable != ISAPNP_CARD_FORCE_CONFIG)) { dev->current_ld = NULL; dev->current_ld_card = NULL; }