Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
openanolis
cloud-kernel
提交
5c5daf91
cloud-kernel
项目概览
openanolis
/
cloud-kernel
1 年多 前同步成功
通知
161
Star
36
Fork
7
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
10
列表
看板
标记
里程碑
合并请求
2
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
cloud-kernel
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
10
Issue
10
列表
看板
标记
里程碑
合并请求
2
合并请求
2
Pages
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
提交
Issue看板
提交
5c5daf91
编写于
3月 28, 2016
作者:
T
Takashi Iwai
浏览文件
操作
浏览文件
下载
差异文件
Merge branch 'for-linus' into for-next
上级
f55532a0
6b94fb14
变更
4
隐藏空白更改
内联
并排
Showing
4 changed file
with
55 addition
and
19 deletion
+55
-19
sound/core/timer.c
sound/core/timer.c
+13
-7
sound/core/timer_compat.c
sound/core/timer_compat.c
+29
-1
sound/firewire/dice/dice-stream.c
sound/firewire/dice/dice-stream.c
+4
-10
sound/pci/hda/patch_realtek.c
sound/pci/hda/patch_realtek.c
+9
-1
未找到文件。
sound/core/timer.c
浏览文件 @
5c5daf91
...
...
@@ -1502,17 +1502,13 @@ static int snd_timer_user_ginfo(struct file *file,
return
err
;
}
static
int
snd_timer_user_gparams
(
struct
file
*
file
,
struct
snd_timer_gparams
__user
*
_gparams
)
static
int
timer_set_gparams
(
struct
snd_timer_gparams
*
gparams
)
{
struct
snd_timer_gparams
gparams
;
struct
snd_timer
*
t
;
int
err
;
if
(
copy_from_user
(
&
gparams
,
_gparams
,
sizeof
(
gparams
)))
return
-
EFAULT
;
mutex_lock
(
&
register_mutex
);
t
=
snd_timer_find
(
&
gparams
.
tid
);
t
=
snd_timer_find
(
&
gparams
->
tid
);
if
(
!
t
)
{
err
=
-
ENODEV
;
goto
_error
;
...
...
@@ -1525,12 +1521,22 @@ static int snd_timer_user_gparams(struct file *file,
err
=
-
ENOSYS
;
goto
_error
;
}
err
=
t
->
hw
.
set_period
(
t
,
gparams
.
period_num
,
gparams
.
period_den
);
err
=
t
->
hw
.
set_period
(
t
,
gparams
->
period_num
,
gparams
->
period_den
);
_error:
mutex_unlock
(
&
register_mutex
);
return
err
;
}
static
int
snd_timer_user_gparams
(
struct
file
*
file
,
struct
snd_timer_gparams
__user
*
_gparams
)
{
struct
snd_timer_gparams
gparams
;
if
(
copy_from_user
(
&
gparams
,
_gparams
,
sizeof
(
gparams
)))
return
-
EFAULT
;
return
timer_set_gparams
(
&
gparams
);
}
static
int
snd_timer_user_gstatus
(
struct
file
*
file
,
struct
snd_timer_gstatus
__user
*
_gstatus
)
{
...
...
sound/core/timer_compat.c
浏览文件 @
5c5daf91
...
...
@@ -22,6 +22,19 @@
#include <linux/compat.h>
/*
* ILP32/LP64 has different size for 'long' type. Additionally, the size
* of storage alignment differs depending on architectures. Here, '__packed'
* qualifier is used so that the size of this structure is multiple of 4 and
* it fits to any architectures with 32 bit storage alignment.
*/
struct
snd_timer_gparams32
{
struct
snd_timer_id
tid
;
u32
period_num
;
u32
period_den
;
unsigned
char
reserved
[
32
];
}
__packed
;
struct
snd_timer_info32
{
u32
flags
;
s32
card
;
...
...
@@ -32,6 +45,19 @@ struct snd_timer_info32 {
unsigned
char
reserved
[
64
];
};
static
int
snd_timer_user_gparams_compat
(
struct
file
*
file
,
struct
snd_timer_gparams32
__user
*
user
)
{
struct
snd_timer_gparams
gparams
;
if
(
copy_from_user
(
&
gparams
.
tid
,
&
user
->
tid
,
sizeof
(
gparams
.
tid
))
||
get_user
(
gparams
.
period_num
,
&
user
->
period_num
)
||
get_user
(
gparams
.
period_den
,
&
user
->
period_den
))
return
-
EFAULT
;
return
timer_set_gparams
(
&
gparams
);
}
static
int
snd_timer_user_info_compat
(
struct
file
*
file
,
struct
snd_timer_info32
__user
*
_info
)
{
...
...
@@ -99,6 +125,7 @@ static int snd_timer_user_status_compat(struct file *file,
*/
enum
{
SNDRV_TIMER_IOCTL_GPARAMS32
=
_IOW
(
'T'
,
0x04
,
struct
snd_timer_gparams32
),
SNDRV_TIMER_IOCTL_INFO32
=
_IOR
(
'T'
,
0x11
,
struct
snd_timer_info32
),
SNDRV_TIMER_IOCTL_STATUS32
=
_IOW
(
'T'
,
0x14
,
struct
snd_timer_status32
),
#ifdef CONFIG_X86_X32
...
...
@@ -114,7 +141,6 @@ static long snd_timer_user_ioctl_compat(struct file *file, unsigned int cmd, uns
case
SNDRV_TIMER_IOCTL_PVERSION
:
case
SNDRV_TIMER_IOCTL_TREAD
:
case
SNDRV_TIMER_IOCTL_GINFO
:
case
SNDRV_TIMER_IOCTL_GPARAMS
:
case
SNDRV_TIMER_IOCTL_GSTATUS
:
case
SNDRV_TIMER_IOCTL_SELECT
:
case
SNDRV_TIMER_IOCTL_PARAMS
:
...
...
@@ -128,6 +154,8 @@ static long snd_timer_user_ioctl_compat(struct file *file, unsigned int cmd, uns
case
SNDRV_TIMER_IOCTL_PAUSE_OLD
:
case
SNDRV_TIMER_IOCTL_NEXT_DEVICE
:
return
snd_timer_user_ioctl
(
file
,
cmd
,
(
unsigned
long
)
argp
);
case
SNDRV_TIMER_IOCTL_GPARAMS32
:
return
snd_timer_user_gparams_compat
(
file
,
argp
);
case
SNDRV_TIMER_IOCTL_INFO32
:
return
snd_timer_user_info_compat
(
file
,
argp
);
case
SNDRV_TIMER_IOCTL_STATUS32
:
...
...
sound/firewire/dice/dice-stream.c
浏览文件 @
5c5daf91
...
...
@@ -446,18 +446,12 @@ int snd_dice_stream_init_duplex(struct snd_dice *dice)
void
snd_dice_stream_destroy_duplex
(
struct
snd_dice
*
dice
)
{
struct
reg_params
tx_params
,
rx_params
;
snd_dice_transaction_clear_enable
(
dice
);
unsigned
int
i
;
if
(
get_register_params
(
dice
,
&
tx_params
,
&
rx_params
)
==
0
)
{
stop_streams
(
dice
,
AMDTP_IN_STREAM
,
&
tx_params
);
stop_streams
(
dice
,
AMDTP_OUT_STREAM
,
&
rx_params
);
for
(
i
=
0
;
i
<
MAX_STREAMS
;
i
++
)
{
destroy_stream
(
dice
,
AMDTP_IN_STREAM
,
i
);
destroy_stream
(
dice
,
AMDTP_OUT_STREAM
,
i
);
}
release_resources
(
dice
);
dice
->
substreams_counter
=
0
;
}
void
snd_dice_stream_update_duplex
(
struct
snd_dice
*
dice
)
...
...
sound/pci/hda/patch_realtek.c
浏览文件 @
5c5daf91
...
...
@@ -6406,6 +6406,7 @@ enum {
ALC668_FIXUP_AUTO_MUTE
,
ALC668_FIXUP_DELL_DISABLE_AAMIX
,
ALC668_FIXUP_DELL_XPS13
,
ALC662_FIXUP_ASUS_Nx50
,
};
static
const
struct
hda_fixup
alc662_fixups
[]
=
{
...
...
@@ -6646,6 +6647,12 @@ static const struct hda_fixup alc662_fixups[] = {
.
type
=
HDA_FIXUP_FUNC
,
.
v
.
func
=
alc_fixup_bass_chmap
,
},
[
ALC662_FIXUP_ASUS_Nx50
]
=
{
.
type
=
HDA_FIXUP_FUNC
,
.
v
.
func
=
alc_fixup_auto_mute_via_amp
,
.
chained
=
true
,
.
chain_id
=
ALC662_FIXUP_BASS_1A
},
};
static
const
struct
snd_pci_quirk
alc662_fixup_tbl
[]
=
{
...
...
@@ -6668,8 +6675,9 @@ static const struct snd_pci_quirk alc662_fixup_tbl[] = {
SND_PCI_QUIRK
(
0x1028
,
0x0698
,
"Dell"
,
ALC668_FIXUP_DELL_MIC_NO_PRESENCE
),
SND_PCI_QUIRK
(
0x1028
,
0x069f
,
"Dell"
,
ALC668_FIXUP_DELL_MIC_NO_PRESENCE
),
SND_PCI_QUIRK
(
0x103c
,
0x1632
,
"HP RP5800"
,
ALC662_FIXUP_HP_RP5800
),
SND_PCI_QUIRK
(
0x1043
,
0x11cd
,
"Asus N550"
,
ALC662_FIXUP_
BASS_1A
),
SND_PCI_QUIRK
(
0x1043
,
0x11cd
,
"Asus N550"
,
ALC662_FIXUP_
ASUS_Nx50
),
SND_PCI_QUIRK
(
0x1043
,
0x13df
,
"Asus N550JX"
,
ALC662_FIXUP_BASS_1A
),
SND_PCI_QUIRK
(
0x1043
,
0x129d
,
"Asus N750"
,
ALC662_FIXUP_ASUS_Nx50
),
SND_PCI_QUIRK
(
0x1043
,
0x1477
,
"ASUS N56VZ"
,
ALC662_FIXUP_BASS_MODE4_CHMAP
),
SND_PCI_QUIRK
(
0x1043
,
0x15a7
,
"ASUS UX51VZH"
,
ALC662_FIXUP_BASS_16
),
SND_PCI_QUIRK
(
0x1043
,
0x1b73
,
"ASUS N55SF"
,
ALC662_FIXUP_BASS_16
),
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录