|
|
|
@ -226,7 +226,6 @@ static void uni_player_set_channel_status(struct uniperif *player, |
|
|
|
|
* sampling frequency. If no sample rate is already specified, then |
|
|
|
|
* set one. |
|
|
|
|
*/ |
|
|
|
|
mutex_lock(&player->ctrl_lock); |
|
|
|
|
if (runtime) { |
|
|
|
|
switch (runtime->rate) { |
|
|
|
|
case 22050: |
|
|
|
@ -303,7 +302,6 @@ static void uni_player_set_channel_status(struct uniperif *player, |
|
|
|
|
player->stream_settings.iec958.status[3 + (n * 4)] << 24; |
|
|
|
|
SET_UNIPERIF_CHANNEL_STA_REGN(player, n, status); |
|
|
|
|
} |
|
|
|
|
mutex_unlock(&player->ctrl_lock); |
|
|
|
|
|
|
|
|
|
/* Update the channel status */ |
|
|
|
|
if (player->ver < SND_ST_UNIPERIF_VERSION_UNI_PLR_TOP_1_0) |
|
|
|
@ -365,8 +363,10 @@ static int uni_player_prepare_iec958(struct uniperif *player, |
|
|
|
|
|
|
|
|
|
SET_UNIPERIF_CTRL_ZERO_STUFF_HW(player); |
|
|
|
|
|
|
|
|
|
mutex_lock(&player->ctrl_lock); |
|
|
|
|
/* Update the channel status */ |
|
|
|
|
uni_player_set_channel_status(player, runtime); |
|
|
|
|
mutex_unlock(&player->ctrl_lock); |
|
|
|
|
|
|
|
|
|
/* Clear the user validity user bits */ |
|
|
|
|
SET_UNIPERIF_USER_VALIDITY_VALIDITY_LR(player, 0); |
|
|
|
@ -598,7 +598,6 @@ static int uni_player_ctl_iec958_put(struct snd_kcontrol *kcontrol, |
|
|
|
|
iec958->status[1] = ucontrol->value.iec958.status[1]; |
|
|
|
|
iec958->status[2] = ucontrol->value.iec958.status[2]; |
|
|
|
|
iec958->status[3] = ucontrol->value.iec958.status[3]; |
|
|
|
|
mutex_unlock(&player->ctrl_lock); |
|
|
|
|
|
|
|
|
|
spin_lock_irqsave(&player->irq_lock, flags); |
|
|
|
|
if (player->substream && player->substream->runtime) |
|
|
|
@ -608,6 +607,8 @@ static int uni_player_ctl_iec958_put(struct snd_kcontrol *kcontrol, |
|
|
|
|
uni_player_set_channel_status(player, NULL); |
|
|
|
|
|
|
|
|
|
spin_unlock_irqrestore(&player->irq_lock, flags); |
|
|
|
|
mutex_unlock(&player->ctrl_lock); |
|
|
|
|
|
|
|
|
|
return 0; |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|