timer/i8254: Fix one shot PIT mode
Currently, the one-shot (mode 1) PIT expires far too quickly, due to the output being set under the wrong logic. This change fixes the one-shot PIT mode to behave similarly to mode 0. TESTED: using the one-shot PIT mode to calibrate a local apic timer. Signed-off-by: Damien Zammit <damien@zamaudio.com> Message-Id: <20230226015755.52624-1-damien@zamaudio.com> Reviewed-by: Michael S. Tsirkin <mst@redhat.com> Signed-off-by: Michael S. Tsirkin <mst@redhat.com>
This commit is contained in:
parent
bd7a6d88ec
commit
74d7ea5062
@ -52,10 +52,8 @@ int pit_get_out(PITChannelState *s, int64_t current_time)
|
|||||||
switch (s->mode) {
|
switch (s->mode) {
|
||||||
default:
|
default:
|
||||||
case 0:
|
case 0:
|
||||||
out = (d >= s->count);
|
|
||||||
break;
|
|
||||||
case 1:
|
case 1:
|
||||||
out = (d < s->count);
|
out = (d >= s->count);
|
||||||
break;
|
break;
|
||||||
case 2:
|
case 2:
|
||||||
if ((d % s->count) == 0 && d != 0) {
|
if ((d % s->count) == 0 && d != 0) {
|
||||||
|
Loading…
x
Reference in New Issue
Block a user