diff options
Diffstat (limited to 'sys/dev/pci/envy.c')
| -rw-r--r-- | sys/dev/pci/envy.c | 9 |
1 files changed, 6 insertions, 3 deletions
diff --git a/sys/dev/pci/envy.c b/sys/dev/pci/envy.c index cc7ea390719..86428bfc29b 100644 --- a/sys/dev/pci/envy.c +++ b/sys/dev/pci/envy.c @@ -1,4 +1,4 @@ -/* $OpenBSD: envy.c,v 1.50 2011/04/27 07:01:33 ratchov Exp $ */ +/* $OpenBSD: envy.c,v 1.51 2012/03/30 08:18:19 ratchov Exp $ */ /* * Copyright (c) 2007 Alexandre Ratchov <alex@caoua.org> * @@ -2390,10 +2390,13 @@ int envy_midi_output(void *self, int data) { struct envy_softc *sc = (struct envy_softc *)self; + int st; - envy_midi_wait(sc); + st = envy_ccs_read(sc, ENVY_CCS_MIDISTAT0); + if (st & ENVY_MIDISTAT_OBUSY(sc)) + return 0; envy_ccs_write(sc, ENVY_CCS_MIDIDATA0, data); - return 0; + return 1; } void |
