static void snd_intel8x0_codec_write(struct snd_ac97 *ac97,
                                     unsigned short reg,
                                     unsigned short val)
{
        struct intel8x0 *chip = ac97->private_data;
+   dev_info(chip->card->dev, "ac97 write %d - %.2x : %.4x\n", ac97->num, reg, 
val);
        if (snd_intel8x0_codec_semaphore(chip, ac97->num) < 0) {
                if (! chip->in_ac97_init)
                        dev_err(chip->card->dev,
                                "codec_write %d: semaphore is not ready for 
register 0x%x\n",
                                ac97->num, reg);
        }
        iaputword(chip, reg + ac97->num * 0x80, val);
}

static unsigned short snd_intel8x0_codec_read(struct snd_ac97 *ac97,
                                              unsigned short reg)
{
        struct intel8x0 *chip = ac97->private_data;
        unsigned short res;
        unsigned int tmp;

        if (snd_intel8x0_codec_semaphore(chip, ac97->num) < 0) {
                if (! chip->in_ac97_init)
                        dev_err(chip->card->dev,
                                "codec_read %d: semaphore is not ready for 
register 0x%x\n",
                                ac97->num, reg);
                res = 0xffff;
        } else {
                res = iagetword(chip, reg + ac97->num * 0x80);
                if ((tmp = igetdword(chip, ICHREG(GLOB_STA))) & ICH_RCS) {
                        /* reset RCS and preserve other R/WC bits */
                        iputdword(chip, ICHREG(GLOB_STA), tmp &
                                  ~(chip->codec_ready_bits | ICH_GSCI));
                        if (! chip->in_ac97_init)
                                dev_err(chip->card->dev,
                                        "codec_read %d: read timeout for 
register 0x%x\n",
                                        ac97->num, reg);
                        res = 0xffff;
                }
        }
+   dev_info(chip->card->dev, "ac97 read %d - %.2x : %.4x\n", ac97->num, reg, 
res);
        return res;
}


if you cannot enable LogFlowFunc of virtualbox

you need to add code to dump the value of ac97 read/write in intel8x0.c
and post the system log (dmesg)

https://git.kernel.org/cgit/linux/kernel/git/tiwai/sound.git/tree/sound/pci/intel8x0.c

-- 
You received this bug notification because you are a member of Ubuntu
Bugs, which is subscribed to Ubuntu.
https://bugs.launchpad.net/bugs/1487168

Title:
  [Emulated AD1980 AC97 inside Virualbox 5.0, playback] volume slider
  problem

To manage notifications about this bug go to:
https://bugs.launchpad.net/virtualbox/+bug/1487168/+subscriptions

-- 
ubuntu-bugs mailing list
ubuntu-bugs@lists.ubuntu.com
https://lists.ubuntu.com/mailman/listinfo/ubuntu-bugs

Reply via email to