Date: Tue, 13 Dec 2005 13:18:30 +0900 From: Pyun YongHyeon <pyunyh@gmail.com> To: "Steven S." <steven@403forbidden.net> Cc: freebsd-multimedia@freebsd.org Subject: Re: kern/63204: [sound] /dev/mixer broken with ESS Maestro-2E (still on 5.4) Message-ID: <20051213041830.GB5920@rndsoft.co.kr> In-Reply-To: <20051212201440.G701@atlantis.403forbidden.net> References: <200512030310.jB33A77R038278@freefall.freebsd.org> <20051203092819.GB13672@rndsoft.co.kr> <20051204181714.C728@atlantis.403forbidden.net> <20051205060208.GC1086@rndsoft.co.kr> <20051205202824.C45817@atlantis.403forbidden.net> <20051212030939.GA1093@rndsoft.co.kr> <20051212201440.G701@atlantis.403forbidden.net>
next in thread | previous in thread | raw e-mail | index | archive | help
[-- Attachment #1 --]
On Mon, Dec 12, 2005 at 08:24:03PM -0500, Steven S. wrote:
>
>
> same problem. no mixer devices, no sound.
>
I guess the codec may need some special handling.
Please apply attached patch too.
Did it make any difference?
--
Regards,
Pyun YongHyeon
[-- Attachment #2 --]
--- sys/dev/sound/pcm/ac97.c.orig Tue Dec 13 09:29:05 2005
+++ sys/dev/sound/pcm/ac97.c Tue Dec 13 13:12:08 2005
@@ -317,10 +317,30 @@
return AC97_READ(codec->methods, codec->devinfo, reg);
}
+static int
+ac97_valid_reg(struct ac97_info *codec, int reg)
+{
+
+ switch (codec->id) {
+ case 0x414b4d00: /* AK4540 */
+ case 0x414b4d01: /* AK4542 */
+ if (reg <= 0x1c || reg == 0x20 || reg == 0x26 || reg >= 0x7c)
+ return 1;
+ return 0;
+ /* NOTREACHED */
+ break;
+ default:
+ break;
+ }
+
+ return 1;
+}
+
void
ac97_wrcd(struct ac97_info *codec, int reg, u_int16_t val)
{
- AC97_WRITE(codec->methods, codec->devinfo, reg, val);
+ if (ac97_valid_reg(codec, reg))
+ AC97_WRITE(codec->methods, codec->devinfo, reg, val);
}
static void
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20051213041830.GB5920>
