diff --git a/src/acpi.c b/src/acpi.c index 2a20756c2..b11ea1242 100644 --- a/src/acpi.c +++ b/src/acpi.c @@ -1134,7 +1134,8 @@ acpi_reset(void *priv) int i; memset(&dev->regs, 0x00, sizeof(acpi_regs_t)); - dev->regs.gpireg[0] = dev->regs.gpireg[1] = dev->regs.gpireg[2] = 0xff; + dev->regs.gpireg[0] = 0xff; dev->regs.gpireg[1] = 0xff; + dev->regs.gpireg[2] = 0xf3; /* SMSC: Bit 2: 80-conductor cable on primary IDE (0 = yes, 1 = no), Bit 3: on secondary IDE. */ for (i = 0; i < 4; i++) dev->regs.gporeg[i] = dev->gporeg_default[i]; if (dev->vendor == VEN_VIA_596B) { diff --git a/src/chipset/intel_piix.c b/src/chipset/intel_piix.c index 2557c8a80..85448bdde 100644 --- a/src/chipset/intel_piix.c +++ b/src/chipset/intel_piix.c @@ -1053,8 +1053,8 @@ piix_reset_hard(piix_t *dev) } fregs[0x20] = 0x01; if (dev->type == 5) { - fregs[0x3c] = 0x0e; - fregs[0x3d] = 0x01; + fregs[0x3c] = 0x0e; fregs[0x3d] = 0x01; + fregs[0x45] = 0x55; fregs[0x46] = 0x01; } if ((dev->type == 1) && (dev->rev == 2)) dev->max_func = 0; /* It starts with IDE disabled, then enables it. */ diff --git a/src/video/vid_s3_virge.c b/src/video/vid_s3_virge.c index b01d2e710..ab9ebc8c5 100644 --- a/src/video/vid_s3_virge.c +++ b/src/video/vid_s3_virge.c @@ -2784,7 +2784,7 @@ static void tri(virge_t *virge, s3d_t *s3d_tri, s3d_state_t *state, int yc, int3 state->x1 += (dx1 * diff_y); state->x2 += (dx2 * diff_y); state->y -= diff_y; - dest_offset -= s3d_tri->dest_str; + dest_offset -= s3d_tri->dest_str * diff_y; z_offset -= s3d_tri->z_str; y_count -= diff_y; }