Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
L
linux
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Issues
0
Issues
0
List
Boards
Labels
Milestones
Merge Requests
0
Merge Requests
0
Analytics
Analytics
Repository
Value Stream
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Commits
Issue Boards
Open sidebar
Kirill Smelkov
linux
Commits
c8bdfacb
Commit
c8bdfacb
authored
Sep 09, 2010
by
Takashi Iwai
Browse files
Options
Browse Files
Download
Plain Diff
Merge branch 'fix/misc' into topic/misc
parents
add7c0a6
a7a13d06
Changes
8
Show whitespace changes
Inline
Side-by-side
Showing
8 changed files
with
54 additions
and
12 deletions
+54
-12
sound/core/rawmidi.c
sound/core/rawmidi.c
+2
-0
sound/core/seq/oss/seq_oss_init.c
sound/core/seq/oss/seq_oss_init.c
+4
-5
sound/isa/msnd/msnd_pinnacle.c
sound/isa/msnd/msnd_pinnacle.c
+6
-2
sound/pci/oxygen/oxygen.h
sound/pci/oxygen/oxygen.h
+1
-0
sound/pci/oxygen/oxygen_lib.c
sound/pci/oxygen/oxygen_lib.c
+18
-3
sound/pci/oxygen/virtuoso.c
sound/pci/oxygen/virtuoso.c
+1
-0
sound/pci/oxygen/xonar_wm87x6.c
sound/pci/oxygen/xonar_wm87x6.c
+21
-1
sound/usb/card.c
sound/usb/card.c
+1
-1
No files found.
sound/core/rawmidi.c
View file @
c8bdfacb
...
@@ -829,6 +829,8 @@ static int snd_rawmidi_control_ioctl(struct snd_card *card,
...
@@ -829,6 +829,8 @@ static int snd_rawmidi_control_ioctl(struct snd_card *card,
if
(
get_user
(
device
,
(
int
__user
*
)
argp
))
if
(
get_user
(
device
,
(
int
__user
*
)
argp
))
return
-
EFAULT
;
return
-
EFAULT
;
if
(
device
>=
SNDRV_RAWMIDI_DEVICES
)
/* next device is -1 */
device
=
SNDRV_RAWMIDI_DEVICES
-
1
;
mutex_lock
(
&
register_mutex
);
mutex_lock
(
&
register_mutex
);
device
=
device
<
0
?
0
:
device
+
1
;
device
=
device
<
0
?
0
:
device
+
1
;
while
(
device
<
SNDRV_RAWMIDI_DEVICES
)
{
while
(
device
<
SNDRV_RAWMIDI_DEVICES
)
{
...
...
sound/core/seq/oss/seq_oss_init.c
View file @
c8bdfacb
...
@@ -281,13 +281,10 @@ snd_seq_oss_open(struct file *file, int level)
...
@@ -281,13 +281,10 @@ snd_seq_oss_open(struct file *file, int level)
return
0
;
return
0
;
_error:
_error:
snd_seq_oss_writeq_delete
(
dp
->
writeq
);
snd_seq_oss_readq_delete
(
dp
->
readq
);
snd_seq_oss_synth_cleanup
(
dp
);
snd_seq_oss_synth_cleanup
(
dp
);
snd_seq_oss_midi_cleanup
(
dp
);
snd_seq_oss_midi_cleanup
(
dp
);
delete_port
(
dp
);
delete_seq_queue
(
dp
->
queue
);
delete_seq_queue
(
dp
->
queue
);
kfree
(
dp
);
delete_port
(
dp
);
return
rc
;
return
rc
;
}
}
...
@@ -350,8 +347,10 @@ create_port(struct seq_oss_devinfo *dp)
...
@@ -350,8 +347,10 @@ create_port(struct seq_oss_devinfo *dp)
static
int
static
int
delete_port
(
struct
seq_oss_devinfo
*
dp
)
delete_port
(
struct
seq_oss_devinfo
*
dp
)
{
{
if
(
dp
->
port
<
0
)
if
(
dp
->
port
<
0
)
{
kfree
(
dp
);
return
0
;
return
0
;
}
debug_printk
((
"delete_port %i
\n
"
,
dp
->
port
));
debug_printk
((
"delete_port %i
\n
"
,
dp
->
port
));
return
snd_seq_event_port_detach
(
dp
->
cseq
,
dp
->
port
);
return
snd_seq_event_port_detach
(
dp
->
cseq
,
dp
->
port
);
...
...
sound/isa/msnd/msnd_pinnacle.c
View file @
c8bdfacb
...
@@ -764,9 +764,9 @@ static long io[SNDRV_CARDS] = SNDRV_DEFAULT_PORT;
...
@@ -764,9 +764,9 @@ static long io[SNDRV_CARDS] = SNDRV_DEFAULT_PORT;
static
int
irq
[
SNDRV_CARDS
]
=
SNDRV_DEFAULT_IRQ
;
static
int
irq
[
SNDRV_CARDS
]
=
SNDRV_DEFAULT_IRQ
;
static
long
mem
[
SNDRV_CARDS
]
=
SNDRV_DEFAULT_PORT
;
static
long
mem
[
SNDRV_CARDS
]
=
SNDRV_DEFAULT_PORT
;
#ifndef MSND_CLASSIC
static
long
cfg
[
SNDRV_CARDS
]
=
SNDRV_DEFAULT_PORT
;
static
long
cfg
[
SNDRV_CARDS
]
=
SNDRV_DEFAULT_PORT
;
#ifndef MSND_CLASSIC
/* Extra Peripheral Configuration (Default: Disable) */
/* Extra Peripheral Configuration (Default: Disable) */
static
long
ide_io0
[
SNDRV_CARDS
]
=
SNDRV_DEFAULT_PORT
;
static
long
ide_io0
[
SNDRV_CARDS
]
=
SNDRV_DEFAULT_PORT
;
static
long
ide_io1
[
SNDRV_CARDS
]
=
SNDRV_DEFAULT_PORT
;
static
long
ide_io1
[
SNDRV_CARDS
]
=
SNDRV_DEFAULT_PORT
;
...
@@ -894,7 +894,11 @@ static int __devinit snd_msnd_isa_probe(struct device *pdev, unsigned int idx)
...
@@ -894,7 +894,11 @@ static int __devinit snd_msnd_isa_probe(struct device *pdev, unsigned int idx)
struct
snd_card
*
card
;
struct
snd_card
*
card
;
struct
snd_msnd
*
chip
;
struct
snd_msnd
*
chip
;
if
(
has_isapnp
(
idx
)
||
cfg
[
idx
]
==
SNDRV_AUTO_PORT
)
{
if
(
has_isapnp
(
idx
)
#ifndef MSND_CLASSIC
||
cfg
[
idx
]
==
SNDRV_AUTO_PORT
#endif
)
{
printk
(
KERN_INFO
LOGNAME
": Assuming PnP mode
\n
"
);
printk
(
KERN_INFO
LOGNAME
": Assuming PnP mode
\n
"
);
return
-
ENODEV
;
return
-
ENODEV
;
}
}
...
...
sound/pci/oxygen/oxygen.h
View file @
c8bdfacb
...
@@ -155,6 +155,7 @@ void oxygen_pci_remove(struct pci_dev *pci);
...
@@ -155,6 +155,7 @@ void oxygen_pci_remove(struct pci_dev *pci);
int
oxygen_pci_suspend
(
struct
pci_dev
*
pci
,
pm_message_t
state
);
int
oxygen_pci_suspend
(
struct
pci_dev
*
pci
,
pm_message_t
state
);
int
oxygen_pci_resume
(
struct
pci_dev
*
pci
);
int
oxygen_pci_resume
(
struct
pci_dev
*
pci
);
#endif
#endif
void
oxygen_pci_shutdown
(
struct
pci_dev
*
pci
);
/* oxygen_mixer.c */
/* oxygen_mixer.c */
...
...
sound/pci/oxygen/oxygen_lib.c
View file @
c8bdfacb
...
@@ -519,16 +519,21 @@ static void oxygen_init(struct oxygen *chip)
...
@@ -519,16 +519,21 @@ static void oxygen_init(struct oxygen *chip)
}
}
}
}
static
void
oxygen_
card_free
(
struct
snd_card
*
card
)
static
void
oxygen_
shutdown
(
struct
oxygen
*
chip
)
{
{
struct
oxygen
*
chip
=
card
->
private_data
;
spin_lock_irq
(
&
chip
->
reg_lock
);
spin_lock_irq
(
&
chip
->
reg_lock
);
chip
->
interrupt_mask
=
0
;
chip
->
interrupt_mask
=
0
;
chip
->
pcm_running
=
0
;
chip
->
pcm_running
=
0
;
oxygen_write16
(
chip
,
OXYGEN_DMA_STATUS
,
0
);
oxygen_write16
(
chip
,
OXYGEN_DMA_STATUS
,
0
);
oxygen_write16
(
chip
,
OXYGEN_INTERRUPT_MASK
,
0
);
oxygen_write16
(
chip
,
OXYGEN_INTERRUPT_MASK
,
0
);
spin_unlock_irq
(
&
chip
->
reg_lock
);
spin_unlock_irq
(
&
chip
->
reg_lock
);
}
static
void
oxygen_card_free
(
struct
snd_card
*
card
)
{
struct
oxygen
*
chip
=
card
->
private_data
;
oxygen_shutdown
(
chip
);
if
(
chip
->
irq
>=
0
)
if
(
chip
->
irq
>=
0
)
free_irq
(
chip
->
irq
,
chip
);
free_irq
(
chip
->
irq
,
chip
);
flush_scheduled_work
();
flush_scheduled_work
();
...
@@ -778,3 +783,13 @@ int oxygen_pci_resume(struct pci_dev *pci)
...
@@ -778,3 +783,13 @@ int oxygen_pci_resume(struct pci_dev *pci)
}
}
EXPORT_SYMBOL
(
oxygen_pci_resume
);
EXPORT_SYMBOL
(
oxygen_pci_resume
);
#endif
/* CONFIG_PM */
#endif
/* CONFIG_PM */
void
oxygen_pci_shutdown
(
struct
pci_dev
*
pci
)
{
struct
snd_card
*
card
=
pci_get_drvdata
(
pci
);
struct
oxygen
*
chip
=
card
->
private_data
;
oxygen_shutdown
(
chip
);
chip
->
model
.
cleanup
(
chip
);
}
EXPORT_SYMBOL
(
oxygen_pci_shutdown
);
sound/pci/oxygen/virtuoso.c
View file @
c8bdfacb
...
@@ -95,6 +95,7 @@ static struct pci_driver xonar_driver = {
...
@@ -95,6 +95,7 @@ static struct pci_driver xonar_driver = {
.
suspend
=
oxygen_pci_suspend
,
.
suspend
=
oxygen_pci_suspend
,
.
resume
=
oxygen_pci_resume
,
.
resume
=
oxygen_pci_resume
,
#endif
#endif
.
shutdown
=
oxygen_pci_shutdown
,
};
};
static
int
__init
alsa_card_xonar_init
(
void
)
static
int
__init
alsa_card_xonar_init
(
void
)
...
...
sound/pci/oxygen/xonar_wm87x6.c
View file @
c8bdfacb
...
@@ -53,6 +53,8 @@ struct xonar_wm87x6 {
...
@@ -53,6 +53,8 @@ struct xonar_wm87x6 {
struct
xonar_generic
generic
;
struct
xonar_generic
generic
;
u16
wm8776_regs
[
0x17
];
u16
wm8776_regs
[
0x17
];
u16
wm8766_regs
[
0x10
];
u16
wm8766_regs
[
0x10
];
struct
snd_kcontrol
*
line_adcmux_control
;
struct
snd_kcontrol
*
mic_adcmux_control
;
struct
snd_kcontrol
*
lc_controls
[
13
];
struct
snd_kcontrol
*
lc_controls
[
13
];
};
};
...
@@ -193,6 +195,7 @@ static void xonar_ds_init(struct oxygen *chip)
...
@@ -193,6 +195,7 @@ static void xonar_ds_init(struct oxygen *chip)
static
void
xonar_ds_cleanup
(
struct
oxygen
*
chip
)
static
void
xonar_ds_cleanup
(
struct
oxygen
*
chip
)
{
{
xonar_disable_output
(
chip
);
xonar_disable_output
(
chip
);
wm8776_write
(
chip
,
WM8776_RESET
,
0
);
}
}
static
void
xonar_ds_suspend
(
struct
oxygen
*
chip
)
static
void
xonar_ds_suspend
(
struct
oxygen
*
chip
)
...
@@ -603,6 +606,7 @@ static int wm8776_input_mux_put(struct snd_kcontrol *ctl,
...
@@ -603,6 +606,7 @@ static int wm8776_input_mux_put(struct snd_kcontrol *ctl,
{
{
struct
oxygen
*
chip
=
ctl
->
private_data
;
struct
oxygen
*
chip
=
ctl
->
private_data
;
struct
xonar_wm87x6
*
data
=
chip
->
model_data
;
struct
xonar_wm87x6
*
data
=
chip
->
model_data
;
struct
snd_kcontrol
*
other_ctl
;
unsigned
int
mux_bit
=
ctl
->
private_value
;
unsigned
int
mux_bit
=
ctl
->
private_value
;
u16
reg
;
u16
reg
;
int
changed
;
int
changed
;
...
@@ -610,8 +614,18 @@ static int wm8776_input_mux_put(struct snd_kcontrol *ctl,
...
@@ -610,8 +614,18 @@ static int wm8776_input_mux_put(struct snd_kcontrol *ctl,
mutex_lock
(
&
chip
->
mutex
);
mutex_lock
(
&
chip
->
mutex
);
reg
=
data
->
wm8776_regs
[
WM8776_ADCMUX
];
reg
=
data
->
wm8776_regs
[
WM8776_ADCMUX
];
if
(
value
->
value
.
integer
.
value
[
0
])
{
if
(
value
->
value
.
integer
.
value
[
0
])
{
reg
&=
~
0x003
;
reg
|=
mux_bit
;
reg
|=
mux_bit
;
/* line-in and mic-in are exclusive */
mux_bit
^=
3
;
if
(
reg
&
mux_bit
)
{
reg
&=
~
mux_bit
;
if
(
mux_bit
==
1
)
other_ctl
=
data
->
line_adcmux_control
;
else
other_ctl
=
data
->
mic_adcmux_control
;
snd_ctl_notify
(
chip
->
card
,
SNDRV_CTL_EVENT_MASK_VALUE
,
&
other_ctl
->
id
);
}
}
else
}
else
reg
&=
~
mux_bit
;
reg
&=
~
mux_bit
;
changed
=
reg
!=
data
->
wm8776_regs
[
WM8776_ADCMUX
];
changed
=
reg
!=
data
->
wm8776_regs
[
WM8776_ADCMUX
];
...
@@ -963,7 +977,13 @@ static int xonar_ds_mixer_init(struct oxygen *chip)
...
@@ -963,7 +977,13 @@ static int xonar_ds_mixer_init(struct oxygen *chip)
err
=
snd_ctl_add
(
chip
->
card
,
ctl
);
err
=
snd_ctl_add
(
chip
->
card
,
ctl
);
if
(
err
<
0
)
if
(
err
<
0
)
return
err
;
return
err
;
if
(
!
strcmp
(
ctl
->
id
.
name
,
"Line Capture Switch"
))
data
->
line_adcmux_control
=
ctl
;
else
if
(
!
strcmp
(
ctl
->
id
.
name
,
"Mic Capture Switch"
))
data
->
mic_adcmux_control
=
ctl
;
}
}
if
(
!
data
->
line_adcmux_control
||
!
data
->
mic_adcmux_control
)
return
-
ENXIO
;
BUILD_BUG_ON
(
ARRAY_SIZE
(
lc_controls
)
!=
ARRAY_SIZE
(
data
->
lc_controls
));
BUILD_BUG_ON
(
ARRAY_SIZE
(
lc_controls
)
!=
ARRAY_SIZE
(
data
->
lc_controls
));
for
(
i
=
0
;
i
<
ARRAY_SIZE
(
lc_controls
);
++
i
)
{
for
(
i
=
0
;
i
<
ARRAY_SIZE
(
lc_controls
);
++
i
)
{
ctl
=
snd_ctl_new1
(
&
lc_controls
[
i
],
chip
);
ctl
=
snd_ctl_new1
(
&
lc_controls
[
i
],
chip
);
...
...
sound/usb/card.c
View file @
c8bdfacb
...
@@ -126,7 +126,7 @@ static void snd_usb_stream_disconnect(struct list_head *head)
...
@@ -126,7 +126,7 @@ static void snd_usb_stream_disconnect(struct list_head *head)
for
(
idx
=
0
;
idx
<
2
;
idx
++
)
{
for
(
idx
=
0
;
idx
<
2
;
idx
++
)
{
subs
=
&
as
->
substream
[
idx
];
subs
=
&
as
->
substream
[
idx
];
if
(
!
subs
->
num_formats
)
if
(
!
subs
->
num_formats
)
return
;
continue
;
snd_usb_release_substream_urbs
(
subs
,
1
);
snd_usb_release_substream_urbs
(
subs
,
1
);
subs
->
interface
=
-
1
;
subs
->
interface
=
-
1
;
}
}
...
...
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