|
@@ -94,13 +94,11 @@ static snd_pcm_uframes_t snd_usb_pcm_pointer(struct snd_pcm_substream *substream
|
|
|
*/
|
|
|
static struct audioformat *find_format(struct snd_usb_substream *subs)
|
|
|
{
|
|
|
- struct list_head *p;
|
|
|
+ struct audioformat *fp;
|
|
|
struct audioformat *found = NULL;
|
|
|
int cur_attr = 0, attr;
|
|
|
|
|
|
- list_for_each(p, &subs->fmt_list) {
|
|
|
- struct audioformat *fp;
|
|
|
- fp = list_entry(p, struct audioformat, list);
|
|
|
+ list_for_each_entry(fp, &subs->fmt_list, list) {
|
|
|
if (!(fp->formats & (1uLL << subs->pcm_format)))
|
|
|
continue;
|
|
|
if (fp->channels != subs->channels)
|
|
@@ -809,7 +807,7 @@ static int hw_rule_rate(struct snd_pcm_hw_params *params,
|
|
|
struct snd_pcm_hw_rule *rule)
|
|
|
{
|
|
|
struct snd_usb_substream *subs = rule->private;
|
|
|
- struct list_head *p;
|
|
|
+ struct audioformat *fp;
|
|
|
struct snd_interval *it = hw_param_interval(params, SNDRV_PCM_HW_PARAM_RATE);
|
|
|
unsigned int rmin, rmax;
|
|
|
int changed;
|
|
@@ -817,9 +815,7 @@ static int hw_rule_rate(struct snd_pcm_hw_params *params,
|
|
|
hwc_debug("hw_rule_rate: (%d,%d)\n", it->min, it->max);
|
|
|
changed = 0;
|
|
|
rmin = rmax = 0;
|
|
|
- list_for_each(p, &subs->fmt_list) {
|
|
|
- struct audioformat *fp;
|
|
|
- fp = list_entry(p, struct audioformat, list);
|
|
|
+ list_for_each_entry(fp, &subs->fmt_list, list) {
|
|
|
if (!hw_check_valid_format(subs, params, fp))
|
|
|
continue;
|
|
|
if (changed++) {
|
|
@@ -863,7 +859,7 @@ static int hw_rule_channels(struct snd_pcm_hw_params *params,
|
|
|
struct snd_pcm_hw_rule *rule)
|
|
|
{
|
|
|
struct snd_usb_substream *subs = rule->private;
|
|
|
- struct list_head *p;
|
|
|
+ struct audioformat *fp;
|
|
|
struct snd_interval *it = hw_param_interval(params, SNDRV_PCM_HW_PARAM_CHANNELS);
|
|
|
unsigned int rmin, rmax;
|
|
|
int changed;
|
|
@@ -871,9 +867,7 @@ static int hw_rule_channels(struct snd_pcm_hw_params *params,
|
|
|
hwc_debug("hw_rule_channels: (%d,%d)\n", it->min, it->max);
|
|
|
changed = 0;
|
|
|
rmin = rmax = 0;
|
|
|
- list_for_each(p, &subs->fmt_list) {
|
|
|
- struct audioformat *fp;
|
|
|
- fp = list_entry(p, struct audioformat, list);
|
|
|
+ list_for_each_entry(fp, &subs->fmt_list, list) {
|
|
|
if (!hw_check_valid_format(subs, params, fp))
|
|
|
continue;
|
|
|
if (changed++) {
|
|
@@ -916,7 +910,7 @@ static int hw_rule_format(struct snd_pcm_hw_params *params,
|
|
|
struct snd_pcm_hw_rule *rule)
|
|
|
{
|
|
|
struct snd_usb_substream *subs = rule->private;
|
|
|
- struct list_head *p;
|
|
|
+ struct audioformat *fp;
|
|
|
struct snd_mask *fmt = hw_param_mask(params, SNDRV_PCM_HW_PARAM_FORMAT);
|
|
|
u64 fbits;
|
|
|
u32 oldbits[2];
|
|
@@ -924,9 +918,7 @@ static int hw_rule_format(struct snd_pcm_hw_params *params,
|
|
|
|
|
|
hwc_debug("hw_rule_format: %x:%x\n", fmt->bits[0], fmt->bits[1]);
|
|
|
fbits = 0;
|
|
|
- list_for_each(p, &subs->fmt_list) {
|
|
|
- struct audioformat *fp;
|
|
|
- fp = list_entry(p, struct audioformat, list);
|
|
|
+ list_for_each_entry(fp, &subs->fmt_list, list) {
|
|
|
if (!hw_check_valid_format(subs, params, fp))
|
|
|
continue;
|
|
|
fbits |= fp->formats;
|
|
@@ -1034,7 +1026,7 @@ static int snd_usb_pcm_check_knot(struct snd_pcm_runtime *runtime,
|
|
|
|
|
|
static int setup_hw_info(struct snd_pcm_runtime *runtime, struct snd_usb_substream *subs)
|
|
|
{
|
|
|
- struct list_head *p;
|
|
|
+ struct audioformat *fp;
|
|
|
unsigned int pt, ptmin;
|
|
|
int param_period_time_if_needed;
|
|
|
int err;
|
|
@@ -1048,9 +1040,7 @@ static int setup_hw_info(struct snd_pcm_runtime *runtime, struct snd_usb_substre
|
|
|
runtime->hw.rates = 0;
|
|
|
ptmin = UINT_MAX;
|
|
|
/* check min/max rates and channels */
|
|
|
- list_for_each(p, &subs->fmt_list) {
|
|
|
- struct audioformat *fp;
|
|
|
- fp = list_entry(p, struct audioformat, list);
|
|
|
+ list_for_each_entry(fp, &subs->fmt_list, list) {
|
|
|
runtime->hw.rates |= fp->rates;
|
|
|
if (runtime->hw.rate_min > fp->rate_min)
|
|
|
runtime->hw.rate_min = fp->rate_min;
|