snd-cs46xx bug

Bug #1177837 reported by Yeana
6
This bug affects 1 person
Affects Status Importance Assigned to Milestone
alsa-driver (Ubuntu)
Expired
Undecided
Unassigned

Bug Description

in "sound/pci/cs46xx/dsp_spos.c" , the function "int cs46xx_dsp_resume(struct snd_cs46xx * chip) " should add a mutex lock .

old:

int cs46xx_dsp_resume(struct snd_cs46xx * chip)
{
 struct dsp_spos_instance * ins = chip->dsp_spos_instance;

 int i, err;
 /* clear parameter, sample and code areas */
 snd_cs46xx_clear_BA1(chip, DSP_PARAMETER_BYTE_OFFSET,
        DSP_PARAMETER_BYTE_SIZE);
 snd_cs46xx_clear_BA1(chip, DSP_SAMPLE_BYTE_OFFSET,
        DSP_SAMPLE_BYTE_SIZE);
 snd_cs46xx_clear_BA1(chip, DSP_CODE_BYTE_OFFSET, DSP_CODE_BYTE_SIZE);

        ignore some code here.......

 if (chip->dsp_spos_instance->spdif_status_in) {
  cs46xx_poke_via_dsp(chip, SP_ASER_COUNTDOWN, 0x80000005);
  cs46xx_poke_via_dsp(chip, SP_SPDIN_CONTROL, 0x800003ff);
 }
 return 0;
}

now:

int cs46xx_dsp_resume(struct snd_cs46xx * chip)
{
 struct dsp_spos_instance * ins = chip->dsp_spos_instance;

 int i, err;
 mutex_lock(&chip->spos_mutex);

 /* clear parameter, sample and code areas */
 snd_cs46xx_clear_BA1(chip, DSP_PARAMETER_BYTE_OFFSET,
        DSP_PARAMETER_BYTE_SIZE);
 snd_cs46xx_clear_BA1(chip, DSP_SAMPLE_BYTE_OFFSET,
        DSP_SAMPLE_BYTE_SIZE);
 snd_cs46xx_clear_BA1(chip, DSP_CODE_BYTE_OFFSET, DSP_CODE_BYTE_SIZE);

        ignore some code here.......

 if (chip->dsp_spos_instance->spdif_status_in) {
  cs46xx_poke_via_dsp(chip, SP_ASER_COUNTDOWN, 0x80000005);
  cs46xx_poke_via_dsp(chip, SP_SPDIN_CONTROL, 0x800003ff);
 }
  mutex_unlock(&chip->spos_mutex);
 return 0;
}

related post: https://bugs.launchpad.net/ubuntu/+source/linux/+bug/1157525

Yeana (yeana)
Changed in alsa-driver (Ubuntu):
status: New → Confirmed
Revision history for this message
Marcus Tomlinson (marcustomlinson) wrote :

This release of Ubuntu is no longer receiving maintenance updates. If this is still an issue on a maintained version of Ubuntu please let us know.

Changed in alsa-driver (Ubuntu):
status: Confirmed → Incomplete
Revision history for this message
Launchpad Janitor (janitor) wrote :

[Expired for alsa-driver (Ubuntu) because there has been no activity for 60 days.]

Changed in alsa-driver (Ubuntu):
status: Incomplete → Expired
To post a comment you must log in.
This report contains Public information  
Everyone can see this information.

Other bug subscribers

Remote bug watches

Bug watches keep track of this bug in other bug trackers.