ALSA: hda - Remove unnecessary struct hda_stream_format from CA0132
Signed-off-by: Ian Minett <ian_minett@creativelabs.com> Signed-off-by: Takashi Iwai <tiwai@suse.de>
This commit is contained in:
parent
4861af8075
commit
e97249dd6d
|
@ -356,13 +356,6 @@ enum dsp_download_state {
|
||||||
DSP_DOWNLOADED = 2
|
DSP_DOWNLOADED = 2
|
||||||
};
|
};
|
||||||
|
|
||||||
struct hda_stream_format {
|
|
||||||
unsigned int sample_rate;
|
|
||||||
unsigned short valid_bits_per_sample;
|
|
||||||
unsigned short container_size;
|
|
||||||
unsigned short number_channels;
|
|
||||||
};
|
|
||||||
|
|
||||||
/* retrieve parameters from hda format */
|
/* retrieve parameters from hda format */
|
||||||
#define get_hdafmt_chs(fmt) (fmt & 0xf)
|
#define get_hdafmt_chs(fmt) (fmt & 0xf)
|
||||||
#define get_hdafmt_bits(fmt) ((fmt >> 4) & 0x7)
|
#define get_hdafmt_bits(fmt) ((fmt >> 4) & 0x7)
|
||||||
|
@ -1585,16 +1578,17 @@ enum dma_state {
|
||||||
};
|
};
|
||||||
|
|
||||||
static int dma_convert_to_hda_format(
|
static int dma_convert_to_hda_format(
|
||||||
struct hda_stream_format *stream_format,
|
unsigned int sample_rate,
|
||||||
|
unsigned short channels,
|
||||||
unsigned short *hda_format)
|
unsigned short *hda_format)
|
||||||
{
|
{
|
||||||
unsigned int format_val;
|
unsigned int format_val;
|
||||||
|
|
||||||
format_val = snd_hda_calc_stream_format(
|
format_val = snd_hda_calc_stream_format(
|
||||||
stream_format->sample_rate,
|
sample_rate,
|
||||||
stream_format->number_channels,
|
channels,
|
||||||
SNDRV_PCM_FORMAT_S32_LE,
|
SNDRV_PCM_FORMAT_S32_LE,
|
||||||
stream_format->container_size, 0);
|
32, 0);
|
||||||
|
|
||||||
if (hda_format)
|
if (hda_format)
|
||||||
*hda_format = (unsigned short)format_val;
|
*hda_format = (unsigned short)format_val;
|
||||||
|
@ -1940,14 +1934,17 @@ static int dspxfr_one_seg(struct hda_codec *codec,
|
||||||
* @fls_data: pointer to a fast load image
|
* @fls_data: pointer to a fast load image
|
||||||
* @reloc: Relocation address for loading single-segment overlays, or 0 for
|
* @reloc: Relocation address for loading single-segment overlays, or 0 for
|
||||||
* no relocation
|
* no relocation
|
||||||
* @format: format of the stream used for DSP download
|
* @sample_rate: sampling rate of the stream used for DSP download
|
||||||
|
* @number_channels: channels of the stream used for DSP download
|
||||||
* @ovly: TRUE if overlay format is required
|
* @ovly: TRUE if overlay format is required
|
||||||
*
|
*
|
||||||
* Returns zero or a negative error code.
|
* Returns zero or a negative error code.
|
||||||
*/
|
*/
|
||||||
static int dspxfr_image(struct hda_codec *codec,
|
static int dspxfr_image(struct hda_codec *codec,
|
||||||
const struct dsp_image_seg *fls_data,
|
const struct dsp_image_seg *fls_data,
|
||||||
unsigned int reloc, struct hda_stream_format *format,
|
unsigned int reloc,
|
||||||
|
unsigned int sample_rate,
|
||||||
|
unsigned short channels,
|
||||||
bool ovly)
|
bool ovly)
|
||||||
{
|
{
|
||||||
struct ca0132_spec *spec = codec->spec;
|
struct ca0132_spec *spec = codec->spec;
|
||||||
|
@ -1976,7 +1973,7 @@ static int dspxfr_image(struct hda_codec *codec,
|
||||||
}
|
}
|
||||||
|
|
||||||
dma_engine->codec = codec;
|
dma_engine->codec = codec;
|
||||||
dma_convert_to_hda_format(format, &hda_format);
|
dma_convert_to_hda_format(sample_rate, channels, &hda_format);
|
||||||
dma_engine->m_converter_format = hda_format;
|
dma_engine->m_converter_format = hda_format;
|
||||||
dma_engine->buf_size = (ovly ? DSP_DMA_WRITE_BUFLEN_OVLY :
|
dma_engine->buf_size = (ovly ? DSP_DMA_WRITE_BUFLEN_OVLY :
|
||||||
DSP_DMA_WRITE_BUFLEN_INIT) * 2;
|
DSP_DMA_WRITE_BUFLEN_INIT) * 2;
|
||||||
|
@ -2104,7 +2101,8 @@ static int dspload_image(struct hda_codec *codec,
|
||||||
int router_chans)
|
int router_chans)
|
||||||
{
|
{
|
||||||
int status = 0;
|
int status = 0;
|
||||||
struct hda_stream_format stream_format;
|
unsigned int sample_rate;
|
||||||
|
unsigned short channels;
|
||||||
|
|
||||||
snd_printdd(KERN_INFO "---- dspload_image begin ------");
|
snd_printdd(KERN_INFO "---- dspload_image begin ------");
|
||||||
if (router_chans == 0) {
|
if (router_chans == 0) {
|
||||||
|
@ -2114,17 +2112,14 @@ static int dspload_image(struct hda_codec *codec,
|
||||||
router_chans = DMA_OVERLAY_FRAME_SIZE_NWORDS;
|
router_chans = DMA_OVERLAY_FRAME_SIZE_NWORDS;
|
||||||
}
|
}
|
||||||
|
|
||||||
stream_format.sample_rate = 48000;
|
sample_rate = 48000;
|
||||||
stream_format.number_channels = (unsigned short)router_chans;
|
channels = (unsigned short)router_chans;
|
||||||
|
|
||||||
while (stream_format.number_channels > 16) {
|
while (channels > 16) {
|
||||||
stream_format.sample_rate *= 2;
|
sample_rate *= 2;
|
||||||
stream_format.number_channels /= 2;
|
channels /= 2;
|
||||||
}
|
}
|
||||||
|
|
||||||
stream_format.container_size = 32;
|
|
||||||
stream_format.valid_bits_per_sample = 32;
|
|
||||||
|
|
||||||
do {
|
do {
|
||||||
snd_printdd(KERN_INFO "Ready to program DMA");
|
snd_printdd(KERN_INFO "Ready to program DMA");
|
||||||
if (!ovly)
|
if (!ovly)
|
||||||
|
@ -2134,7 +2129,8 @@ static int dspload_image(struct hda_codec *codec,
|
||||||
break;
|
break;
|
||||||
|
|
||||||
snd_printdd(KERN_INFO "dsp_reset() complete");
|
snd_printdd(KERN_INFO "dsp_reset() complete");
|
||||||
status = dspxfr_image(codec, fls, reloc, &stream_format, ovly);
|
status = dspxfr_image(codec, fls, reloc, sample_rate, channels,
|
||||||
|
ovly);
|
||||||
|
|
||||||
if (status < 0)
|
if (status < 0)
|
||||||
break;
|
break;
|
||||||
|
|
Loading…
Reference in New Issue