File tree Expand file tree Collapse file tree 1 file changed +5
-20
lines changed Expand file tree Collapse file tree 1 file changed +5
-20
lines changed Original file line number Diff line number Diff line change @@ -1111,29 +1111,14 @@ EXPORT_SYMBOL(snd_card_file_remove);
1111
1111
*/
1112
1112
int snd_power_ref_and_wait (struct snd_card * card )
1113
1113
{
1114
- wait_queue_entry_t wait ;
1115
- int result = 0 ;
1116
-
1117
1114
snd_power_ref (card );
1118
- /* fastpath */
1119
1115
if (snd_power_get_state (card ) == SNDRV_CTL_POWER_D0 )
1120
1116
return 0 ;
1121
- init_waitqueue_entry (& wait , current );
1122
- add_wait_queue (& card -> power_sleep , & wait );
1123
- while (1 ) {
1124
- if (card -> shutdown ) {
1125
- result = - ENODEV ;
1126
- break ;
1127
- }
1128
- if (snd_power_get_state (card ) == SNDRV_CTL_POWER_D0 )
1129
- break ;
1130
- snd_power_unref (card );
1131
- set_current_state (TASK_UNINTERRUPTIBLE );
1132
- schedule_timeout (30 * HZ );
1133
- snd_power_ref (card );
1134
- }
1135
- remove_wait_queue (& card -> power_sleep , & wait );
1136
- return result ;
1117
+ wait_event_cmd (card -> power_sleep ,
1118
+ card -> shutdown ||
1119
+ snd_power_get_state (card ) == SNDRV_CTL_POWER_D0 ,
1120
+ snd_power_unref (card ), snd_power_ref (card ));
1121
+ return card -> shutdown ? - ENODEV : 0 ;
1137
1122
}
1138
1123
EXPORT_SYMBOL_GPL (snd_power_ref_and_wait );
1139
1124
You can’t perform that action at this time.
0 commit comments