Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
L
linux-davinci
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Issues
0
Issues
0
List
Boards
Labels
Milestones
Redmine
Redmine
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Operations
Operations
Metrics
Environments
Analytics
Analytics
CI / CD
Repository
Value Stream
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
linux
linux-davinci
Commits
fe506d6b
Commit
fe506d6b
authored
Mar 24, 2009
by
Takashi Iwai
Browse files
Options
Browse Files
Download
Plain Diff
Merge branch 'topic/emu10k1' into for-linus
parents
c9294e4b
730d45f9
Changes
7
Hide whitespace changes
Inline
Side-by-side
Showing
7 changed files
with
132 additions
and
50 deletions
+132
-50
sound/pci/emu10k1/emu10k1_callback.c
sound/pci/emu10k1/emu10k1_callback.c
+5
-2
sound/pci/emu10k1/emu10k1_main.c
sound/pci/emu10k1/emu10k1_main.c
+5
-6
sound/pci/emu10k1/emufx.c
sound/pci/emu10k1/emufx.c
+7
-4
sound/pci/emu10k1/emupcm.c
sound/pci/emu10k1/emupcm.c
+30
-7
sound/pci/emu10k1/io.c
sound/pci/emu10k1/io.c
+3
-1
sound/pci/emu10k1/p16v.c
sound/pci/emu10k1/p16v.c
+73
-27
sound/pci/emu10k1/voice.c
sound/pci/emu10k1/voice.c
+9
-3
No files found.
sound/pci/emu10k1/emu10k1_callback.c
View file @
fe506d6b
...
...
@@ -103,7 +103,10 @@ snd_emu10k1_synth_get_voice(struct snd_emu10k1 *hw)
int
ch
;
vp
=
&
emu
->
voices
[
best
[
i
].
voice
];
if
((
ch
=
vp
->
ch
)
<
0
)
{
//printk("synth_get_voice: ch < 0 (%d) ??", i);
/*
printk(KERN_WARNING
"synth_get_voice: ch < 0 (%d) ??", i);
*/
continue
;
}
vp
->
emu
->
num_voices
--
;
...
...
@@ -335,7 +338,7 @@ start_voice(struct snd_emux_voice *vp)
return
-
EINVAL
;
emem
->
map_locked
++
;
if
(
snd_emu10k1_memblk_map
(
hw
,
emem
)
<
0
)
{
/
/ printk("emu: cannot map!\n");
/
* printk(KERN_ERR "emu: cannot map!\n"); */
return
-
ENOMEM
;
}
mapped_offset
=
snd_emu10k1_memblk_offset
(
emem
)
>>
1
;
...
...
sound/pci/emu10k1/emu10k1_main.c
View file @
fe506d6b
...
...
@@ -711,8 +711,7 @@ static int snd_emu1010_load_firmware(struct snd_emu10k1 *emu, const char *filena
static
int
emu1010_firmware_thread
(
void
*
data
)
{
struct
snd_emu10k1
*
emu
=
data
;
int
tmp
,
tmp2
;
int
reg
;
u32
tmp
,
tmp2
,
reg
;
int
err
;
for
(;;)
{
...
...
@@ -758,7 +757,8 @@ static int emu1010_firmware_thread(void *data)
snd_printk
(
KERN_INFO
"emu1010: Audio Dock Firmware loaded
\n
"
);
snd_emu1010_fpga_read
(
emu
,
EMU_DOCK_MAJOR_REV
,
&
tmp
);
snd_emu1010_fpga_read
(
emu
,
EMU_DOCK_MINOR_REV
,
&
tmp2
);
snd_printk
(
"Audio Dock ver:%d.%d
\n
"
,
tmp
,
tmp2
);
snd_printk
(
KERN_INFO
"Audio Dock ver: %u.%u
\n
"
,
tmp
,
tmp2
);
/* Sync clocking between 1010 and Dock */
/* Allow DLL to settle */
msleep
(
10
);
...
...
@@ -804,8 +804,7 @@ static int emu1010_firmware_thread(void *data)
static
int
snd_emu10k1_emu1010_init
(
struct
snd_emu10k1
*
emu
)
{
unsigned
int
i
;
int
tmp
,
tmp2
;
int
reg
;
u32
tmp
,
tmp2
,
reg
;
int
err
;
const
char
*
filename
=
NULL
;
...
...
@@ -887,7 +886,7 @@ static int snd_emu10k1_emu1010_init(struct snd_emu10k1 *emu)
snd_printk
(
KERN_INFO
"emu1010: Hana Firmware loaded
\n
"
);
snd_emu1010_fpga_read
(
emu
,
EMU_HANA_MAJOR_REV
,
&
tmp
);
snd_emu1010_fpga_read
(
emu
,
EMU_HANA_MINOR_REV
,
&
tmp2
);
snd_printk
(
"emu1010: Hana version: %d.%d
\n
"
,
tmp
,
tmp2
);
snd_printk
(
KERN_INFO
"emu1010: Hana version: %u.%u
\n
"
,
tmp
,
tmp2
);
/* Enable 48Volt power to Audio Dock */
snd_emu1010_fpga_write
(
emu
,
EMU_HANA_DOCK_PWR
,
EMU_HANA_DOCK_PWR_ON
);
...
...
sound/pci/emu10k1/emufx.c
View file @
fe506d6b
...
...
@@ -1519,7 +1519,7 @@ A_OP(icode, &ptr, iMAC0, A_GPR(var), A_GPR(var), A_GPR(vol), A_EXTIN(input))
/* A_PUT_STEREO_OUTPUT(A_EXTOUT_FRONT_L, A_EXTOUT_FRONT_R, playback + SND_EMU10K1_PLAYBACK_CHANNELS); */
if
(
emu
->
card_capabilities
->
emu_model
)
{
/* EMU1010 Outputs from PCM Front, Rear, Center, LFE, Side */
snd_printk
(
"EMU outputs on
\n
"
);
snd_printk
(
KERN_INFO
"EMU outputs on
\n
"
);
for
(
z
=
0
;
z
<
8
;
z
++
)
{
if
(
emu
->
card_capabilities
->
ca0108_chip
)
{
A_OP
(
icode
,
&
ptr
,
iACC3
,
A3_EMU32OUT
(
z
),
A_GPR
(
playback
+
SND_EMU10K1_PLAYBACK_CHANNELS
+
z
),
A_C_00000000
,
A_C_00000000
);
...
...
@@ -1567,7 +1567,7 @@ A_OP(icode, &ptr, iMAC0, A_GPR(var), A_GPR(var), A_GPR(vol), A_EXTIN(input))
if
(
emu
->
card_capabilities
->
emu_model
)
{
if
(
emu
->
card_capabilities
->
ca0108_chip
)
{
snd_printk
(
"EMU2 inputs on
\n
"
);
snd_printk
(
KERN_INFO
"EMU2 inputs on
\n
"
);
for
(
z
=
0
;
z
<
0x10
;
z
++
)
{
snd_emu10k1_audigy_dsp_convert_32_to_2x16
(
icode
,
&
ptr
,
tmp
,
bit_shifter16
,
...
...
@@ -1575,10 +1575,13 @@ A_OP(icode, &ptr, iMAC0, A_GPR(var), A_GPR(var), A_GPR(vol), A_EXTIN(input))
A_FXBUS2
(
z
*
2
)
);
}
}
else
{
snd_printk
(
"EMU inputs on
\n
"
);
snd_printk
(
KERN_INFO
"EMU inputs on
\n
"
);
/* Capture 16 (originally 8) channels of S32_LE sound */
/* printk("emufx.c: gpr=0x%x, tmp=0x%x\n",gpr, tmp); */
/*
printk(KERN_DEBUG "emufx.c: gpr=0x%x, tmp=0x%x\n",
gpr, tmp);
*/
/* For the EMU1010: How to get 32bit values from the DSP. High 16bits into L, low 16bits into R. */
/* A_P16VIN(0) is delayed by one sample,
* so all other A_P16VIN channels will need to also be delayed
...
...
sound/pci/emu10k1/emupcm.c
View file @
fe506d6b
...
...
@@ -44,7 +44,7 @@ static void snd_emu10k1_pcm_interrupt(struct snd_emu10k1 *emu,
if
(
epcm
->
substream
==
NULL
)
return
;
#if 0
printk("IRQ: position = 0x%x, period = 0x%x, size = 0x%x\n",
printk(
KERN_DEBUG
"IRQ: position = 0x%x, period = 0x%x, size = 0x%x\n",
epcm->substream->runtime->hw->pointer(emu, epcm->substream),
snd_pcm_lib_period_bytes(epcm->substream),
snd_pcm_lib_buffer_bytes(epcm->substream));
...
...
@@ -146,7 +146,11 @@ static int snd_emu10k1_pcm_channel_alloc(struct snd_emu10k1_pcm * epcm, int voic
1
,
&
epcm
->
extra
);
if
(
err
<
0
)
{
/* printk("pcm_channel_alloc: failed extra: voices=%d, frame=%d\n", voices, frame); */
/*
printk(KERN_DEBUG "pcm_channel_alloc: "
"failed extra: voices=%d, frame=%d\n",
voices, frame);
*/
for
(
i
=
0
;
i
<
voices
;
i
++
)
{
snd_emu10k1_voice_free
(
epcm
->
emu
,
epcm
->
voices
[
i
]);
epcm
->
voices
[
i
]
=
NULL
;
...
...
@@ -737,7 +741,10 @@ static int snd_emu10k1_playback_trigger(struct snd_pcm_substream *substream,
struct
snd_emu10k1_pcm_mixer
*
mix
;
int
result
=
0
;
/* printk("trigger - emu10k1 = 0x%x, cmd = %i, pointer = %i\n", (int)emu, cmd, substream->ops->pointer(substream)); */
/*
printk(KERN_DEBUG "trigger - emu10k1 = 0x%x, cmd = %i, pointer = %i\n",
(int)emu, cmd, substream->ops->pointer(substream))
*/
spin_lock
(
&
emu
->
reg_lock
);
switch
(
cmd
)
{
case
SNDRV_PCM_TRIGGER_START
:
...
...
@@ -786,7 +793,10 @@ static int snd_emu10k1_capture_trigger(struct snd_pcm_substream *substream,
/* hmm this should cause full and half full interrupt to be raised? */
outl
(
epcm
->
capture_ipr
,
emu
->
port
+
IPR
);
snd_emu10k1_intr_enable
(
emu
,
epcm
->
capture_inte
);
/* printk("adccr = 0x%x, adcbs = 0x%x\n", epcm->adccr, epcm->adcbs); */
/*
printk(KERN_DEBUG "adccr = 0x%x, adcbs = 0x%x\n",
epcm->adccr, epcm->adcbs);
*/
switch
(
epcm
->
type
)
{
case
CAPTURE_AC97ADC
:
snd_emu10k1_ptr_write
(
emu
,
ADCCR
,
0
,
epcm
->
capture_cr_val
);
...
...
@@ -857,7 +867,11 @@ static snd_pcm_uframes_t snd_emu10k1_playback_pointer(struct snd_pcm_substream *
ptr
-=
runtime
->
buffer_size
;
}
#endif
/* printk("ptr = 0x%x, buffer_size = 0x%x, period_size = 0x%x\n", ptr, runtime->buffer_size, runtime->period_size); */
/*
printk(KERN_DEBUG
"ptr = 0x%x, buffer_size = 0x%x, period_size = 0x%x\n",
ptr, runtime->buffer_size, runtime->period_size);
*/
return
ptr
;
}
...
...
@@ -1546,7 +1560,11 @@ static void snd_emu10k1_fx8010_playback_tram_poke1(unsigned short *dst_left,
unsigned
int
count
,
unsigned
int
tram_shift
)
{
/* printk("tram_poke1: dst_left = 0x%p, dst_right = 0x%p, src = 0x%p, count = 0x%x\n", dst_left, dst_right, src, count); */
/*
printk(KERN_DEBUG "tram_poke1: dst_left = 0x%p, dst_right = 0x%p, "
"src = 0x%p, count = 0x%x\n",
dst_left, dst_right, src, count);
*/
if
((
tram_shift
&
1
)
==
0
)
{
while
(
count
--
)
{
*
dst_left
--
=
*
src
++
;
...
...
@@ -1623,7 +1641,12 @@ static int snd_emu10k1_fx8010_playback_prepare(struct snd_pcm_substream *substre
struct
snd_emu10k1_fx8010_pcm
*
pcm
=
&
emu
->
fx8010
.
pcm
[
substream
->
number
];
unsigned
int
i
;
/* printk("prepare: etram_pages = 0x%p, dma_area = 0x%x, buffer_size = 0x%x (0x%x)\n", emu->fx8010.etram_pages, runtime->dma_area, runtime->buffer_size, runtime->buffer_size << 2); */
/*
printk(KERN_DEBUG "prepare: etram_pages = 0x%p, dma_area = 0x%x, "
"buffer_size = 0x%x (0x%x)\n",
emu->fx8010.etram_pages, runtime->dma_area,
runtime->buffer_size, runtime->buffer_size << 2);
*/
memset
(
&
pcm
->
pcm_rec
,
0
,
sizeof
(
pcm
->
pcm_rec
));
pcm
->
pcm_rec
.
hw_buffer_size
=
pcm
->
buffer_size
*
2
;
/* byte size */
pcm
->
pcm_rec
.
sw_buffer_size
=
snd_pcm_lib_buffer_bytes
(
substream
);
...
...
sound/pci/emu10k1/io.c
View file @
fe506d6b
...
...
@@ -226,7 +226,9 @@ int snd_emu10k1_i2c_write(struct snd_emu10k1 *emu,
break
;
if
(
timeout
>
1000
)
{
snd_printk
(
"emu10k1:I2C:timeout status=0x%x
\n
"
,
status
);
snd_printk
(
KERN_WARNING
"emu10k1:I2C:timeout status=0x%x
\n
"
,
status
);
break
;
}
}
...
...
sound/pci/emu10k1/p16v.c
View file @
fe506d6b
...
...
@@ -168,7 +168,7 @@ static void snd_p16v_pcm_free_substream(struct snd_pcm_runtime *runtime)
struct
snd_emu10k1_pcm
*
epcm
=
runtime
->
private_data
;
if
(
epcm
)
{
/
/snd_printk("epcm free: %p\n", epcm);
/
* snd_printk(KERN_DEBUG "epcm free: %p\n", epcm); */
kfree
(
epcm
);
}
}
...
...
@@ -183,14 +183,16 @@ static int snd_p16v_pcm_open_playback_channel(struct snd_pcm_substream *substrea
int
err
;
epcm
=
kzalloc
(
sizeof
(
*
epcm
),
GFP_KERNEL
);
/
/snd_printk("epcm kcalloc: %p\n", epcm);
/
* snd_printk(KERN_DEBUG "epcm kcalloc: %p\n", epcm); */
if
(
epcm
==
NULL
)
return
-
ENOMEM
;
epcm
->
emu
=
emu
;
epcm
->
substream
=
substream
;
//snd_printk("epcm device=%d, channel_id=%d\n", substream->pcm->device, channel_id);
/*
snd_printk(KERN_DEBUG "epcm device=%d, channel_id=%d\n",
substream->pcm->device, channel_id);
*/
runtime
->
private_data
=
epcm
;
runtime
->
private_free
=
snd_p16v_pcm_free_substream
;
...
...
@@ -200,10 +202,15 @@ static int snd_p16v_pcm_open_playback_channel(struct snd_pcm_substream *substrea
channel
->
number
=
channel_id
;
channel
->
use
=
1
;
//snd_printk("p16v: open channel_id=%d, channel=%p, use=0x%x\n", channel_id, channel, channel->use);
//printk("open:channel_id=%d, chip=%p, channel=%p\n",channel_id, chip, channel);
//channel->interrupt = snd_p16v_pcm_channel_interrupt;
channel
->
epcm
=
epcm
;
#if 0 /* debug */
snd_printk(KERN_DEBUG
"p16v: open channel_id=%d, channel=%p, use=0x%x\n",
channel_id, channel, channel->use);
printk(KERN_DEBUG "open:channel_id=%d, chip=%p, channel=%p\n",
channel_id, chip, channel);
#endif /* debug */
/* channel->interrupt = snd_p16v_pcm_channel_interrupt; */
channel
->
epcm
=
epcm
;
if
((
err
=
snd_pcm_hw_constraint_integer
(
runtime
,
SNDRV_PCM_HW_PARAM_PERIODS
))
<
0
)
return
err
;
...
...
@@ -224,14 +231,16 @@ static int snd_p16v_pcm_open_capture_channel(struct snd_pcm_substream *substream
int
err
;
epcm
=
kzalloc
(
sizeof
(
*
epcm
),
GFP_KERNEL
);
/
/snd_printk("epcm kcalloc: %p\n", epcm);
/
* snd_printk(KERN_DEBUG "epcm kcalloc: %p\n", epcm); */
if
(
epcm
==
NULL
)
return
-
ENOMEM
;
epcm
->
emu
=
emu
;
epcm
->
substream
=
substream
;
//snd_printk("epcm device=%d, channel_id=%d\n", substream->pcm->device, channel_id);
/*
snd_printk(KERN_DEBUG "epcm device=%d, channel_id=%d\n",
substream->pcm->device, channel_id);
*/
runtime
->
private_data
=
epcm
;
runtime
->
private_free
=
snd_p16v_pcm_free_substream
;
...
...
@@ -241,10 +250,15 @@ static int snd_p16v_pcm_open_capture_channel(struct snd_pcm_substream *substream
channel
->
number
=
channel_id
;
channel
->
use
=
1
;
//snd_printk("p16v: open channel_id=%d, channel=%p, use=0x%x\n", channel_id, channel, channel->use);
//printk("open:channel_id=%d, chip=%p, channel=%p\n",channel_id, chip, channel);
//channel->interrupt = snd_p16v_pcm_channel_interrupt;
channel
->
epcm
=
epcm
;
#if 0 /* debug */
snd_printk(KERN_DEBUG
"p16v: open channel_id=%d, channel=%p, use=0x%x\n",
channel_id, channel, channel->use);
printk(KERN_DEBUG "open:channel_id=%d, chip=%p, channel=%p\n",
channel_id, chip, channel);
#endif /* debug */
/* channel->interrupt = snd_p16v_pcm_channel_interrupt; */
channel
->
epcm
=
epcm
;
if
((
err
=
snd_pcm_hw_constraint_integer
(
runtime
,
SNDRV_PCM_HW_PARAM_PERIODS
))
<
0
)
return
err
;
...
...
@@ -334,9 +348,19 @@ static int snd_p16v_pcm_prepare_playback(struct snd_pcm_substream *substream)
int
i
;
u32
tmp
;
//snd_printk("prepare:channel_number=%d, rate=%d, format=0x%x, channels=%d, buffer_size=%ld, period_size=%ld, periods=%u, frames_to_bytes=%d\n",channel, runtime->rate, runtime->format, runtime->channels, runtime->buffer_size, runtime->period_size, runtime->periods, frames_to_bytes(runtime, 1));
//snd_printk("dma_addr=%x, dma_area=%p, table_base=%p\n",runtime->dma_addr, runtime->dma_area, table_base);
//snd_printk("dma_addr=%x, dma_area=%p, dma_bytes(size)=%x\n",emu->p16v_buffer.addr, emu->p16v_buffer.area, emu->p16v_buffer.bytes);
#if 0 /* debug */
snd_printk(KERN_DEBUG "prepare:channel_number=%d, rate=%d, "
"format=0x%x, channels=%d, buffer_size=%ld, "
"period_size=%ld, periods=%u, frames_to_bytes=%d\n",
channel, runtime->rate, runtime->format, runtime->channels,
runtime->buffer_size, runtime->period_size,
runtime->periods, frames_to_bytes(runtime, 1));
snd_printk(KERN_DEBUG "dma_addr=%x, dma_area=%p, table_base=%p\n",
runtime->dma_addr, runtime->dma_area, table_base);
snd_printk(KERN_DEBUG "dma_addr=%x, dma_area=%p, dma_bytes(size)=%x\n",
emu->p16v_buffer.addr, emu->p16v_buffer.area,
emu->p16v_buffer.bytes);
#endif /* debug */
tmp
=
snd_emu10k1_ptr_read
(
emu
,
A_SPDIF_SAMPLERATE
,
channel
);
switch
(
runtime
->
rate
)
{
case
44100
:
...
...
@@ -379,7 +403,15 @@ static int snd_p16v_pcm_prepare_capture(struct snd_pcm_substream *substream)
struct
snd_pcm_runtime
*
runtime
=
substream
->
runtime
;
int
channel
=
substream
->
pcm
->
device
-
emu
->
p16v_device_offset
;
u32
tmp
;
//printk("prepare capture:channel_number=%d, rate=%d, format=0x%x, channels=%d, buffer_size=%ld, period_size=%ld, frames_to_bytes=%d\n",channel, runtime->rate, runtime->format, runtime->channels, runtime->buffer_size, runtime->period_size, frames_to_bytes(runtime, 1));
/*
printk(KERN_DEBUG "prepare capture:channel_number=%d, rate=%d, "
"format=0x%x, channels=%d, buffer_size=%ld, period_size=%ld, "
"frames_to_bytes=%d\n",
channel, runtime->rate, runtime->format, runtime->channels,
runtime->buffer_size, runtime->period_size,
frames_to_bytes(runtime, 1));
*/
tmp
=
snd_emu10k1_ptr_read
(
emu
,
A_SPDIF_SAMPLERATE
,
channel
);
switch
(
runtime
->
rate
)
{
case
44100
:
...
...
@@ -459,13 +491,13 @@ static int snd_p16v_pcm_trigger_playback(struct snd_pcm_substream *substream,
runtime
=
s
->
runtime
;
epcm
=
runtime
->
private_data
;
channel
=
substream
->
pcm
->
device
-
emu
->
p16v_device_offset
;
/
/snd_printk("p16v channel=%d\n",channel);
/
* snd_printk(KERN_DEBUG "p16v channel=%d\n", channel); */
epcm
->
running
=
running
;
basic
|=
(
0x1
<<
channel
);
inte
|=
(
INTE2_PLAYBACK_CH_0_LOOP
<<
channel
);
snd_pcm_trigger_done
(
s
,
substream
);
}
/
/snd_printk("basic=0x%x, inte=0x%x\n",basic, inte);
/
* snd_printk(KERN_DEBUG "basic=0x%x, inte=0x%x\n", basic, inte); */
switch
(
cmd
)
{
case
SNDRV_PCM_TRIGGER_START
:
...
...
@@ -558,8 +590,13 @@ snd_p16v_pcm_pointer_capture(struct snd_pcm_substream *substream)
ptr
-=
runtime
->
buffer_size
;
printk
(
KERN_WARNING
"buffer capture limited!
\n
"
);
}
//printk("ptr1 = 0x%lx, ptr2=0x%lx, ptr=0x%lx, buffer_size = 0x%x, period_size = 0x%x, bits=%d, rate=%d\n", ptr1, ptr2, ptr, (int)runtime->buffer_size, (int)runtime->period_size, (int)runtime->frame_bits, (int)runtime->rate);
/*
printk(KERN_DEBUG "ptr1 = 0x%lx, ptr2=0x%lx, ptr=0x%lx, "
"buffer_size = 0x%x, period_size = 0x%x, bits=%d, rate=%d\n",
ptr1, ptr2, ptr, (int)runtime->buffer_size,
(int)runtime->period_size, (int)runtime->frame_bits,
(int)runtime->rate);
*/
return
ptr
;
}
...
...
@@ -592,7 +629,10 @@ int snd_p16v_free(struct snd_emu10k1 *chip)
// release the data
if
(
chip
->
p16v_buffer
.
area
)
{
snd_dma_free_pages
(
&
chip
->
p16v_buffer
);
//snd_printk("period lables free: %p\n", &chip->p16v_buffer);
/*
snd_printk(KERN_DEBUG "period lables free: %p\n",
&chip->p16v_buffer);
*/
}
return
0
;
}
...
...
@@ -604,7 +644,7 @@ int __devinit snd_p16v_pcm(struct snd_emu10k1 *emu, int device, struct snd_pcm *
int
err
;
int
capture
=
1
;
/
/snd_printk("snd_p16v_pcm called. device=%d\n", device);
/
* snd_printk("KERN_DEBUG snd_p16v_pcm called. device=%d\n", device); */
emu
->
p16v_device_offset
=
device
;
if
(
rpcm
)
*
rpcm
=
NULL
;
...
...
@@ -631,7 +671,10 @@ int __devinit snd_p16v_pcm(struct snd_emu10k1 *emu, int device, struct snd_pcm *
snd_dma_pci_data
(
emu
->
pci
),
((
65536
-
64
)
*
8
),
((
65536
-
64
)
*
8
)))
<
0
)
return
err
;
//snd_printk("preallocate playback substream: err=%d\n", err);
/*
snd_printk(KERN_DEBUG
"preallocate playback substream: err=%d\n", err);
*/
}
for
(
substream
=
pcm
->
streams
[
SNDRV_PCM_STREAM_CAPTURE
].
substream
;
...
...
@@ -642,7 +685,10 @@ int __devinit snd_p16v_pcm(struct snd_emu10k1 *emu, int device, struct snd_pcm *
snd_dma_pci_data
(
emu
->
pci
),
65536
-
64
,
65536
-
64
))
<
0
)
return
err
;
//snd_printk("preallocate capture substream: err=%d\n", err);
/*
snd_printk(KERN_DEBUG
"preallocate capture substream: err=%d\n", err);
*/
}
if
(
rpcm
)
...
...
sound/pci/emu10k1/voice.c
View file @
fe506d6b
...
...
@@ -53,7 +53,10 @@ static int voice_alloc(struct snd_emu10k1 *emu, int type, int number,
*
rvoice
=
NULL
;
first_voice
=
last_voice
=
0
;
for
(
i
=
emu
->
next_free_voice
,
j
=
0
;
j
<
NUM_G
;
i
+=
number
,
j
+=
number
)
{
// printk("i %d j %d next free %d!\n", i, j, emu->next_free_voice);
/*
printk(KERN_DEBUG "i %d j %d next free %d!\n",
i, j, emu->next_free_voice);
*/
i
%=
NUM_G
;
/* stereo voices must be even/odd */
...
...
@@ -71,7 +74,7 @@ static int voice_alloc(struct snd_emu10k1 *emu, int type, int number,
}
}
if
(
!
skip
)
{
/
/ printk("allocated voice %d\n", i);
/
* printk(KERN_DEBUG "allocated voice %d\n", i); */
first_voice
=
i
;
last_voice
=
(
i
+
number
)
%
NUM_G
;
emu
->
next_free_voice
=
last_voice
;
...
...
@@ -84,7 +87,10 @@ static int voice_alloc(struct snd_emu10k1 *emu, int type, int number,
for
(
i
=
0
;
i
<
number
;
i
++
)
{
voice
=
&
emu
->
voices
[(
first_voice
+
i
)
%
NUM_G
];
// printk("voice alloc - %i, %i of %i\n", voice->number, idx-first_voice+1, number);
/*
printk(kERN_DEBUG "voice alloc - %i, %i of %i\n",
voice->number, idx-first_voice+1, number);
*/
voice
->
use
=
1
;
switch
(
type
)
{
case
EMU10K1_PCM
:
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment