[ALSA] alsa-kernel: schedule_timeout() fixes
Fix schedule_timeout() use in alsa-kernel. Mostly just schedule_timeout(1) --> schedule_timeout_uninterruptible(1) The wavefront_synth one fixes the surrounding loop as well. In ymfpci_main, delete a superfluous set_current_state() and in soc/soc-dapm.c replace an _interruptible with _uninterruptible in some debug code; it's not waiting for signals. Signed-off-by: Rene Herman <rene.herman> Signed-off-by: Takashi Iwai <tiwai@suse.de> Signed-off-by: Jaroslav Kysela <perex@suse.cz>
这个提交包含在:
@@ -555,7 +555,7 @@ static unsigned int azx_rirb_get_response(struct hda_codec *codec)
|
||||
}
|
||||
if (!chip->rirb.cmds)
|
||||
return chip->rirb.res; /* the last value */
|
||||
schedule_timeout(1);
|
||||
schedule_timeout_uninterruptible(1);
|
||||
} while (time_after_eq(timeout, jiffies));
|
||||
|
||||
if (chip->msi) {
|
||||
|
@@ -2090,7 +2090,7 @@ static int snd_via82xx_chip_init(struct via82xx *chip)
|
||||
pci_read_config_byte(chip->pci, VIA_ACLINK_STAT, &pval);
|
||||
if (pval & VIA_ACLINK_C00_READY) /* primary codec ready */
|
||||
break;
|
||||
schedule_timeout(1);
|
||||
schedule_timeout_uninterruptible(1);
|
||||
} while (time_before(jiffies, end_time));
|
||||
|
||||
if ((val = snd_via82xx_codec_xread(chip)) & VIA_REG_AC97_BUSY)
|
||||
@@ -2109,7 +2109,7 @@ static int snd_via82xx_chip_init(struct via82xx *chip)
|
||||
chip->ac97_secondary = 1;
|
||||
goto __ac97_ok2;
|
||||
}
|
||||
schedule_timeout(1);
|
||||
schedule_timeout_uninterruptible(1);
|
||||
} while (time_before(jiffies, end_time));
|
||||
/* This is ok, the most of motherboards have only one codec */
|
||||
|
||||
|
@@ -983,7 +983,7 @@ static int snd_via82xx_chip_init(struct via82xx_modem *chip)
|
||||
pci_read_config_byte(chip->pci, VIA_ACLINK_STAT, &pval);
|
||||
if (pval & VIA_ACLINK_C00_READY) /* primary codec ready */
|
||||
break;
|
||||
schedule_timeout(1);
|
||||
schedule_timeout_uninterruptible(1);
|
||||
} while (time_before(jiffies, end_time));
|
||||
|
||||
if ((val = snd_via82xx_codec_xread(chip)) & VIA_REG_AC97_BUSY)
|
||||
@@ -1001,7 +1001,7 @@ static int snd_via82xx_chip_init(struct via82xx_modem *chip)
|
||||
chip->ac97_secondary = 1;
|
||||
goto __ac97_ok2;
|
||||
}
|
||||
schedule_timeout(1);
|
||||
schedule_timeout_uninterruptible(1);
|
||||
} while (time_before(jiffies, end_time));
|
||||
/* This is ok, the most of motherboards have only one codec */
|
||||
|
||||
|
@@ -84,7 +84,6 @@ static int snd_ymfpci_codec_ready(struct snd_ymfpci *chip, int secondary)
|
||||
do {
|
||||
if ((snd_ymfpci_readw(chip, reg) & 0x8000) == 0)
|
||||
return 0;
|
||||
set_current_state(TASK_UNINTERRUPTIBLE);
|
||||
schedule_timeout_uninterruptible(1);
|
||||
} while (time_before(jiffies, end_time));
|
||||
snd_printk(KERN_ERR "codec_ready: codec %i is not ready [0x%x]\n", secondary, snd_ymfpci_readw(chip, reg));
|
||||
|
在新工单中引用
屏蔽一个用户