mirror of
https://github.com/hardkernel/linux.git
synced 2026-03-24 19:40:21 +09:00
Revert "ALSA: usb-audio: Avoid superfluous endpoint setup"
This reverts commit7ce0a888d6which is commit1045f5f1ffupstream. It breaks the Android kernel abi and can be brought back in the future in an abi-safe way if it is really needed. Bug: 161946584 Change-Id: I76bafe33cfdf2c51488aa4850b71bd26305ed35f Signed-off-by: Greg Kroah-Hartman <gregkh@google.com>
This commit is contained in:
@@ -131,8 +131,7 @@ struct snd_usb_endpoint {
|
||||
in a stream */
|
||||
bool implicit_fb_sync; /* syncs with implicit feedback */
|
||||
bool lowlatency_playback; /* low-latency playback mode */
|
||||
bool need_setup; /* (re-)need for hw_params? */
|
||||
bool need_prepare; /* (re-)need for prepare? */
|
||||
bool need_setup; /* (re-)need for configure? */
|
||||
|
||||
/* for hw constraints */
|
||||
const struct audioformat *cur_audiofmt;
|
||||
|
||||
@@ -831,7 +831,6 @@ snd_usb_endpoint_open(struct snd_usb_audio *chip,
|
||||
|
||||
ep->implicit_fb_sync = fp->implicit_fb;
|
||||
ep->need_setup = true;
|
||||
ep->need_prepare = true;
|
||||
|
||||
usb_audio_dbg(chip, " channels=%d, rate=%d, format=%s, period_bytes=%d, periods=%d, implicit_fb=%d\n",
|
||||
ep->cur_channels, ep->cur_rate,
|
||||
@@ -959,7 +958,7 @@ EXPORT_SYMBOL_GPL(snd_usb_endpoint_close);
|
||||
/* Prepare for suspening EP, called from the main suspend handler */
|
||||
void snd_usb_endpoint_suspend(struct snd_usb_endpoint *ep)
|
||||
{
|
||||
ep->need_prepare = true;
|
||||
ep->need_setup = true;
|
||||
if (ep->iface_ref)
|
||||
ep->iface_ref->need_setup = true;
|
||||
if (ep->clock_ref)
|
||||
@@ -1342,12 +1341,9 @@ int snd_usb_endpoint_set_params(struct snd_usb_audio *chip,
|
||||
struct snd_usb_endpoint *ep)
|
||||
{
|
||||
const struct audioformat *fmt = ep->cur_audiofmt;
|
||||
int err = 0;
|
||||
int err;
|
||||
|
||||
mutex_lock(&chip->mutex);
|
||||
if (!ep->need_setup)
|
||||
goto unlock;
|
||||
|
||||
/* release old buffers, if any */
|
||||
err = release_urbs(ep, false);
|
||||
if (err < 0)
|
||||
@@ -1396,11 +1392,8 @@ int snd_usb_endpoint_set_params(struct snd_usb_audio *chip,
|
||||
ep->curframesize = ep->curpacksize / ep->cur_frame_bytes;
|
||||
|
||||
err = update_clock_ref_rate(chip, ep);
|
||||
if (err >= 0) {
|
||||
ep->need_setup = false;
|
||||
if (err >= 0)
|
||||
err = 0;
|
||||
}
|
||||
|
||||
unlock:
|
||||
mutex_unlock(&chip->mutex);
|
||||
return err;
|
||||
@@ -1450,7 +1443,7 @@ int snd_usb_endpoint_prepare(struct snd_usb_audio *chip,
|
||||
mutex_lock(&chip->mutex);
|
||||
if (WARN_ON(!ep->iface_ref))
|
||||
goto unlock;
|
||||
if (!ep->need_prepare)
|
||||
if (!ep->need_setup)
|
||||
goto unlock;
|
||||
|
||||
/* If the interface has been already set up, just set EP parameters */
|
||||
@@ -1504,7 +1497,7 @@ int snd_usb_endpoint_prepare(struct snd_usb_audio *chip,
|
||||
ep->iface_ref->need_setup = false;
|
||||
|
||||
done:
|
||||
ep->need_prepare = false;
|
||||
ep->need_setup = false;
|
||||
err = 1;
|
||||
|
||||
unlock:
|
||||
|
||||
Reference in New Issue
Block a user