|
@@ -828,7 +828,8 @@ static int snd_generic_suspend(struct device *dev, pm_message_t state, u32 level
|
|
|
card = get_snd_generic_card(dev);
|
|
|
if (card->power_state == SNDRV_CTL_POWER_D3hot)
|
|
|
return 0;
|
|
|
- card->pm_suspend(card, PMSG_SUSPEND);
|
|
|
+ if (card->pm_suspend)
|
|
|
+ card->pm_suspend(card, PMSG_SUSPEND);
|
|
|
snd_power_change_state(card, SNDRV_CTL_POWER_D3hot);
|
|
|
return 0;
|
|
|
}
|
|
@@ -843,7 +844,8 @@ static int snd_generic_resume(struct device *dev, u32 level)
|
|
|
card = get_snd_generic_card(dev);
|
|
|
if (card->power_state == SNDRV_CTL_POWER_D0)
|
|
|
return 0;
|
|
|
- card->pm_resume(card);
|
|
|
+ if (card->pm_suspend)
|
|
|
+ card->pm_resume(card);
|
|
|
snd_power_change_state(card, SNDRV_CTL_POWER_D0);
|
|
|
return 0;
|
|
|
}
|