From 70001ecea226e721f6c15c4015bdbb347c4b7ee9 Mon Sep 17 00:00:00 2001 From: Alexander Leidinger Date: Sun, 11 Sep 2005 13:59:02 +0000 Subject: [PATCH] Add some ad_wait_init() calls to fix some problems in some configs (e.g. PC98, CS4231A, "pcm0: play interrupt timeout"). PR: 45682 Submitted by: Watanabe Kazuhiro --- sys/dev/sound/isa/mss.c | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/sys/dev/sound/isa/mss.c b/sys/dev/sound/isa/mss.c index 47c13352000d..d69a32f7aa97 100644 --- a/sys/dev/sound/isa/mss.c +++ b/sys/dev/sound/isa/mss.c @@ -974,6 +974,7 @@ mss_speed(struct mss_chinfo *ch, int speed) abs(speed-speeds[i]) < abs(speed-speeds[sel])) sel = i; speed = speeds[sel]; ad_write(mss, 8, (ad_read(mss, 8) & 0xf0) | sel); + ad_wait_init(mss, 10000); } ad_leave_MCE(mss); @@ -1013,8 +1014,11 @@ mss_format(struct mss_chinfo *ch, u_int32_t format) arg <<= 4; ad_enter_MCE(mss); ad_write(mss, 8, (ad_read(mss, 8) & 0x0f) | arg); - if (ad_read(mss, 12) & 0x40) /* mode2? */ + ad_wait_init(mss, 10000); + if (ad_read(mss, 12) & 0x40) { /* mode2? */ ad_write(mss, 28, arg); /* capture mode */ + ad_wait_init(mss, 10000); + } ad_leave_MCE(mss); return format; }