Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
openanolis
cloud-kernel
提交
3843e87e
cloud-kernel
项目概览
openanolis
/
cloud-kernel
1 年多 前同步成功
通知
160
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看板
提交
3843e87e
编写于
6月 17, 2013
作者:
M
Mark Brown
浏览文件
操作
浏览文件
下载
差异文件
Merge remote-tracking branch 'asoc/topic/pxa' into asoc-next
上级
b2d34a82
55dafe5d
变更
7
隐藏空白更改
内联
并排
Showing
7 changed file
with
4 addition
and
408 deletion
+4
-408
sound/soc/pxa/Kconfig
sound/soc/pxa/Kconfig
+0
-20
sound/soc/pxa/Makefile
sound/soc/pxa/Makefile
+0
-4
sound/soc/pxa/mmp-pcm.c
sound/soc/pxa/mmp-pcm.c
+3
-3
sound/soc/pxa/mmp-sspa.c
sound/soc/pxa/mmp-sspa.c
+1
-1
sound/soc/pxa/saarb.c
sound/soc/pxa/saarb.c
+0
-190
sound/soc/pxa/tavorevb3.c
sound/soc/pxa/tavorevb3.c
+0
-189
sound/soc/pxa/zylonite.c
sound/soc/pxa/zylonite.c
+0
-1
未找到文件。
sound/soc/pxa/Kconfig
浏览文件 @
3843e87e
...
...
@@ -130,26 +130,6 @@ config SND_PXA2XX_SOC_PALM27X
Say Y if you want to add support for SoC audio on
Palm T|X, T5, E2 or LifeDrive handheld computer.
config SND_SOC_SAARB
tristate "SoC Audio support for Marvell Saarb"
depends on SND_PXA2XX_SOC && MACH_SAARB
select MFD_88PM860X
select SND_PXA_SOC_SSP
select SND_SOC_88PM860X
help
Say Y if you want to add support for SoC audio on the
Marvell Saarb reference platform.
config SND_SOC_TAVOREVB3
tristate "SoC Audio support for Marvell Tavor EVB3"
depends on SND_PXA2XX_SOC && MACH_TAVOREVB3
select MFD_88PM860X
select SND_PXA_SOC_SSP
select SND_SOC_88PM860X
help
Say Y if you want to add support for SoC audio on the
Marvell Saarb reference platform.
config SND_PXA910_SOC
tristate "SoC Audio for Marvell PXA910 chip"
depends on ARCH_MMP && SND
...
...
sound/soc/pxa/Makefile
浏览文件 @
3843e87e
...
...
@@ -23,8 +23,6 @@ snd-soc-e800-objs := e800_wm9712.o
snd-soc-spitz-objs
:=
spitz.o
snd-soc-em-x270-objs
:=
em-x270.o
snd-soc-palm27x-objs
:=
palm27x.o
snd-soc-saarb-objs
:=
saarb.o
snd-soc-tavorevb3-objs
:=
tavorevb3.o
snd-soc-zylonite-objs
:=
zylonite.o
snd-soc-hx4700-objs
:=
hx4700.o
snd-soc-magician-objs
:=
magician.o
...
...
@@ -48,8 +46,6 @@ obj-$(CONFIG_SND_PXA2XX_SOC_HX4700) += snd-soc-hx4700.o
obj-$(CONFIG_SND_PXA2XX_SOC_MAGICIAN)
+=
snd-soc-magician.o
obj-$(CONFIG_SND_PXA2XX_SOC_MIOA701)
+=
snd-soc-mioa701.o
obj-$(CONFIG_SND_PXA2XX_SOC_Z2)
+=
snd-soc-z2.o
obj-$(CONFIG_SND_SOC_SAARB)
+=
snd-soc-saarb.o
obj-$(CONFIG_SND_SOC_TAVOREVB3)
+=
snd-soc-tavorevb3.o
obj-$(CONFIG_SND_SOC_ZYLONITE)
+=
snd-soc-zylonite.o
obj-$(CONFIG_SND_PXA2XX_SOC_IMOTE2)
+=
snd-soc-imote2.o
obj-$(CONFIG_SND_SOC_RAUMFELD)
+=
snd-soc-raumfeld.o
...
...
sound/soc/pxa/mmp-pcm.c
浏览文件 @
3843e87e
...
...
@@ -147,7 +147,7 @@ static int mmp_pcm_mmap(struct snd_pcm_substream *substream,
vma
->
vm_end
-
vma
->
vm_start
,
vma
->
vm_page_prot
);
}
struct
snd_pcm_ops
mmp_pcm_ops
=
{
st
atic
st
ruct
snd_pcm_ops
mmp_pcm_ops
=
{
.
open
=
mmp_pcm_open
,
.
close
=
snd_dmaengine_pcm_close_release_chan
,
.
ioctl
=
snd_pcm_lib_ioctl
,
...
...
@@ -208,7 +208,7 @@ static int mmp_pcm_preallocate_dma_buffer(struct snd_pcm_substream *substream,
return
0
;
}
int
mmp_pcm_new
(
struct
snd_soc_pcm_runtime
*
rtd
)
static
int
mmp_pcm_new
(
struct
snd_soc_pcm_runtime
*
rtd
)
{
struct
snd_pcm_substream
*
substream
;
struct
snd_pcm
*
pcm
=
rtd
->
pcm
;
...
...
@@ -229,7 +229,7 @@ int mmp_pcm_new(struct snd_soc_pcm_runtime *rtd)
return
ret
;
}
struct
snd_soc_platform_driver
mmp_soc_platform
=
{
st
atic
st
ruct
snd_soc_platform_driver
mmp_soc_platform
=
{
.
ops
=
&
mmp_pcm_ops
,
.
pcm_new
=
mmp_pcm_new
,
.
pcm_free
=
mmp_pcm_free_dma_buffers
,
...
...
sound/soc/pxa/mmp-sspa.c
浏览文件 @
3843e87e
...
...
@@ -388,7 +388,7 @@ static struct snd_soc_dai_ops mmp_sspa_dai_ops = {
.
set_fmt
=
mmp_sspa_set_dai_fmt
,
};
struct
snd_soc_dai_driver
mmp_sspa_dai
=
{
st
atic
st
ruct
snd_soc_dai_driver
mmp_sspa_dai
=
{
.
probe
=
mmp_sspa_probe
,
.
playback
=
{
.
channels_min
=
1
,
...
...
sound/soc/pxa/saarb.c
已删除
100644 → 0
浏览文件 @
b2d34a82
/*
* saarb.c -- SoC audio for saarb
*
* Copyright (C) 2010 Marvell International Ltd.
* Haojian Zhuang <haojian.zhuang@marvell.com>
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License version 2 as
* published by the Free Software Foundation.
*/
#include <linux/module.h>
#include <linux/moduleparam.h>
#include <linux/device.h>
#include <linux/clk.h>
#include <linux/i2c.h>
#include <sound/core.h>
#include <sound/pcm.h>
#include <sound/pcm_params.h>
#include <sound/soc.h>
#include <sound/jack.h>
#include <asm/mach-types.h>
#include "../codecs/88pm860x-codec.h"
#include "pxa-ssp.h"
static
int
saarb_pm860x_init
(
struct
snd_soc_pcm_runtime
*
rtd
);
static
struct
platform_device
*
saarb_snd_device
;
static
struct
snd_soc_jack
hs_jack
,
mic_jack
;
static
struct
snd_soc_jack_pin
hs_jack_pins
[]
=
{
{
.
pin
=
"Headset Stereophone"
,
.
mask
=
SND_JACK_HEADPHONE
,
},
};
static
struct
snd_soc_jack_pin
mic_jack_pins
[]
=
{
{
.
pin
=
"Headset Mic 2"
,
.
mask
=
SND_JACK_MICROPHONE
,
},
};
/* saarb machine dapm widgets */
static
const
struct
snd_soc_dapm_widget
saarb_dapm_widgets
[]
=
{
SND_SOC_DAPM_HP
(
"Headphone Stereophone"
,
NULL
),
SND_SOC_DAPM_LINE
(
"Lineout Out 1"
,
NULL
),
SND_SOC_DAPM_LINE
(
"Lineout Out 2"
,
NULL
),
SND_SOC_DAPM_SPK
(
"Ext Speaker"
,
NULL
),
SND_SOC_DAPM_MIC
(
"Ext Mic 1"
,
NULL
),
SND_SOC_DAPM_MIC
(
"Headset Mic"
,
NULL
),
SND_SOC_DAPM_MIC
(
"Ext Mic 3"
,
NULL
),
};
/* saarb machine audio map */
static
const
struct
snd_soc_dapm_route
saarb_audio_map
[]
=
{
{
"Headset Stereophone"
,
NULL
,
"HS1"
},
{
"Headset Stereophone"
,
NULL
,
"HS2"
},
{
"Ext Speaker"
,
NULL
,
"LSP"
},
{
"Ext Speaker"
,
NULL
,
"LSN"
},
{
"Lineout Out 1"
,
NULL
,
"LINEOUT1"
},
{
"Lineout Out 2"
,
NULL
,
"LINEOUT2"
},
{
"MIC1P"
,
NULL
,
"Mic1 Bias"
},
{
"MIC1N"
,
NULL
,
"Mic1 Bias"
},
{
"Mic1 Bias"
,
NULL
,
"Ext Mic 1"
},
{
"MIC2P"
,
NULL
,
"Mic1 Bias"
},
{
"MIC2N"
,
NULL
,
"Mic1 Bias"
},
{
"Mic1 Bias"
,
NULL
,
"Headset Mic 2"
},
{
"MIC3P"
,
NULL
,
"Mic3 Bias"
},
{
"MIC3N"
,
NULL
,
"Mic3 Bias"
},
{
"Mic3 Bias"
,
NULL
,
"Ext Mic 3"
},
};
static
int
saarb_i2s_hw_params
(
struct
snd_pcm_substream
*
substream
,
struct
snd_pcm_hw_params
*
params
)
{
struct
snd_soc_pcm_runtime
*
rtd
=
substream
->
private_data
;
struct
snd_soc_dai
*
codec_dai
=
rtd
->
codec_dai
;
struct
snd_soc_dai
*
cpu_dai
=
rtd
->
cpu_dai
;
int
width
=
snd_pcm_format_physical_width
(
params_format
(
params
));
int
ret
;
ret
=
snd_soc_dai_set_sysclk
(
cpu_dai
,
PXA_SSP_CLK_NET_PLL
,
0
,
PM860X_CLK_DIR_OUT
);
if
(
ret
<
0
)
return
ret
;
ret
=
snd_soc_dai_set_sysclk
(
codec_dai
,
0
,
0
,
PM860X_CLK_DIR_OUT
);
if
(
ret
<
0
)
return
ret
;
ret
=
snd_soc_dai_set_tdm_slot
(
cpu_dai
,
3
,
3
,
2
,
width
);
return
ret
;
}
static
struct
snd_soc_ops
saarb_i2s_ops
=
{
.
hw_params
=
saarb_i2s_hw_params
,
};
static
struct
snd_soc_dai_link
saarb_dai
[]
=
{
{
.
name
=
"88PM860x I2S"
,
.
stream_name
=
"I2S Audio"
,
.
cpu_dai_name
=
"pxa-ssp-dai.1"
,
.
codec_dai_name
=
"88pm860x-i2s"
,
.
platform_name
=
"pxa-pcm-audio"
,
.
codec_name
=
"88pm860x-codec"
,
.
init
=
saarb_pm860x_init
,
.
dai_fmt
=
SND_SOC_DAIFMT_I2S
|
SND_SOC_DAIFMT_NB_NF
|
SND_SOC_DAIFMT_CBM_CFM
,
.
ops
=
&
saarb_i2s_ops
,
},
};
static
struct
snd_soc_card
snd_soc_card_saarb
=
{
.
name
=
"Saarb"
,
.
owner
=
THIS_MODULE
,
.
dai_link
=
saarb_dai
,
.
num_links
=
ARRAY_SIZE
(
saarb_dai
),
.
dapm_widgets
=
saarb_dapm_widgets
,
.
num_dapm_widgets
=
ARRAY_SIZE
(
saarb_dapm_widgets
),
.
dapm_routes
=
saarb_audio_map
,
.
num_dapm_routes
=
ARRAY_SIZE
(
saarb_audio_map
),
};
static
int
saarb_pm860x_init
(
struct
snd_soc_pcm_runtime
*
rtd
)
{
struct
snd_soc_codec
*
codec
=
rtd
->
codec
;
struct
snd_soc_dapm_context
*
dapm
=
&
codec
->
dapm
;
/* connected pins */
snd_soc_dapm_enable_pin
(
dapm
,
"Ext Speaker"
);
snd_soc_dapm_enable_pin
(
dapm
,
"Ext Mic 1"
);
snd_soc_dapm_enable_pin
(
dapm
,
"Ext Mic 3"
);
snd_soc_dapm_disable_pin
(
dapm
,
"Headset Mic 2"
);
snd_soc_dapm_disable_pin
(
dapm
,
"Headset Stereophone"
);
/* Headset jack detection */
snd_soc_jack_new
(
codec
,
"Headphone Jack"
,
SND_JACK_HEADPHONE
|
SND_JACK_BTN_0
|
SND_JACK_BTN_1
|
SND_JACK_BTN_2
,
&
hs_jack
);
snd_soc_jack_add_pins
(
&
hs_jack
,
ARRAY_SIZE
(
hs_jack_pins
),
hs_jack_pins
);
snd_soc_jack_new
(
codec
,
"Microphone Jack"
,
SND_JACK_MICROPHONE
,
&
mic_jack
);
snd_soc_jack_add_pins
(
&
mic_jack
,
ARRAY_SIZE
(
mic_jack_pins
),
mic_jack_pins
);
/* headphone, microphone detection & headset short detection */
pm860x_hs_jack_detect
(
codec
,
&
hs_jack
,
SND_JACK_HEADPHONE
,
SND_JACK_BTN_0
,
SND_JACK_BTN_1
,
SND_JACK_BTN_2
);
pm860x_mic_jack_detect
(
codec
,
&
hs_jack
,
SND_JACK_MICROPHONE
);
return
0
;
}
static
int
__init
saarb_init
(
void
)
{
int
ret
;
if
(
!
machine_is_saarb
())
return
-
ENODEV
;
saarb_snd_device
=
platform_device_alloc
(
"soc-audio"
,
-
1
);
if
(
!
saarb_snd_device
)
return
-
ENOMEM
;
platform_set_drvdata
(
saarb_snd_device
,
&
snd_soc_card_saarb
);
ret
=
platform_device_add
(
saarb_snd_device
);
if
(
ret
)
platform_device_put
(
saarb_snd_device
);
return
ret
;
}
static
void
__exit
saarb_exit
(
void
)
{
platform_device_unregister
(
saarb_snd_device
);
}
module_init
(
saarb_init
);
module_exit
(
saarb_exit
);
MODULE_AUTHOR
(
"Haojian Zhuang <haojian.zhuang@marvell.com>"
);
MODULE_DESCRIPTION
(
"ALSA SoC 88PM860x Saarb"
);
MODULE_LICENSE
(
"GPL"
);
sound/soc/pxa/tavorevb3.c
已删除
100644 → 0
浏览文件 @
b2d34a82
/*
* tavorevb3.c -- SoC audio for Tavor EVB3
*
* Copyright (C) 2010 Marvell International Ltd.
* Haojian Zhuang <haojian.zhuang@marvell.com>
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License version 2 as
* published by the Free Software Foundation.
*/
#include <linux/module.h>
#include <linux/moduleparam.h>
#include <linux/device.h>
#include <linux/clk.h>
#include <linux/i2c.h>
#include <sound/core.h>
#include <sound/pcm.h>
#include <sound/pcm_params.h>
#include <sound/soc.h>
#include <sound/jack.h>
#include <asm/mach-types.h>
#include "../codecs/88pm860x-codec.h"
#include "pxa-ssp.h"
static
int
evb3_pm860x_init
(
struct
snd_soc_pcm_runtime
*
rtd
);
static
struct
platform_device
*
evb3_snd_device
;
static
struct
snd_soc_jack
hs_jack
,
mic_jack
;
static
struct
snd_soc_jack_pin
hs_jack_pins
[]
=
{
{
.
pin
=
"Headset Stereophone"
,
.
mask
=
SND_JACK_HEADPHONE
,
},
};
static
struct
snd_soc_jack_pin
mic_jack_pins
[]
=
{
{
.
pin
=
"Headset Mic 2"
,
.
mask
=
SND_JACK_MICROPHONE
,
},
};
/* tavorevb3 machine dapm widgets */
static
const
struct
snd_soc_dapm_widget
evb3_dapm_widgets
[]
=
{
SND_SOC_DAPM_HP
(
"Headset Stereophone"
,
NULL
),
SND_SOC_DAPM_LINE
(
"Lineout Out 1"
,
NULL
),
SND_SOC_DAPM_LINE
(
"Lineout Out 2"
,
NULL
),
SND_SOC_DAPM_SPK
(
"Ext Speaker"
,
NULL
),
SND_SOC_DAPM_MIC
(
"Ext Mic 1"
,
NULL
),
SND_SOC_DAPM_MIC
(
"Headset Mic 2"
,
NULL
),
SND_SOC_DAPM_MIC
(
"Ext Mic 3"
,
NULL
),
};
/* tavorevb3 machine audio map */
static
const
struct
snd_soc_dapm_route
evb3_audio_map
[]
=
{
{
"Headset Stereophone"
,
NULL
,
"HS1"
},
{
"Headset Stereophone"
,
NULL
,
"HS2"
},
{
"Ext Speaker"
,
NULL
,
"LSP"
},
{
"Ext Speaker"
,
NULL
,
"LSN"
},
{
"Lineout Out 1"
,
NULL
,
"LINEOUT1"
},
{
"Lineout Out 2"
,
NULL
,
"LINEOUT2"
},
{
"MIC1P"
,
NULL
,
"Mic1 Bias"
},
{
"MIC1N"
,
NULL
,
"Mic1 Bias"
},
{
"Mic1 Bias"
,
NULL
,
"Ext Mic 1"
},
{
"MIC2P"
,
NULL
,
"Mic1 Bias"
},
{
"MIC2N"
,
NULL
,
"Mic1 Bias"
},
{
"Mic1 Bias"
,
NULL
,
"Headset Mic 2"
},
{
"MIC3P"
,
NULL
,
"Mic3 Bias"
},
{
"MIC3N"
,
NULL
,
"Mic3 Bias"
},
{
"Mic3 Bias"
,
NULL
,
"Ext Mic 3"
},
};
static
int
evb3_i2s_hw_params
(
struct
snd_pcm_substream
*
substream
,
struct
snd_pcm_hw_params
*
params
)
{
struct
snd_soc_pcm_runtime
*
rtd
=
substream
->
private_data
;
struct
snd_soc_dai
*
codec_dai
=
rtd
->
codec_dai
;
struct
snd_soc_dai
*
cpu_dai
=
rtd
->
cpu_dai
;
int
width
=
snd_pcm_format_physical_width
(
params_format
(
params
));
int
ret
;
ret
=
snd_soc_dai_set_sysclk
(
cpu_dai
,
PXA_SSP_CLK_NET_PLL
,
0
,
PM860X_CLK_DIR_OUT
);
if
(
ret
<
0
)
return
ret
;
ret
=
snd_soc_dai_set_sysclk
(
codec_dai
,
0
,
0
,
PM860X_CLK_DIR_OUT
);
if
(
ret
<
0
)
return
ret
;
ret
=
snd_soc_dai_set_tdm_slot
(
cpu_dai
,
3
,
3
,
2
,
width
);
return
ret
;
}
static
struct
snd_soc_ops
evb3_i2s_ops
=
{
.
hw_params
=
evb3_i2s_hw_params
,
};
static
struct
snd_soc_dai_link
evb3_dai
[]
=
{
{
.
name
=
"88PM860x I2S"
,
.
stream_name
=
"I2S Audio"
,
.
cpu_dai_name
=
"pxa-ssp-dai.1"
,
.
codec_dai_name
=
"88pm860x-i2s"
,
.
platform_name
=
"pxa-pcm-audio"
,
.
codec_name
=
"88pm860x-codec"
,
.
init
=
evb3_pm860x_init
,
.
dai_fmt
=
SND_SOC_DAIFMT_I2S
|
SND_SOC_DAIFMT_NB_NF
|
SND_SOC_DAIFMT_CBM_CFM
,
.
ops
=
&
evb3_i2s_ops
,
},
};
static
struct
snd_soc_card
snd_soc_card_evb3
=
{
.
name
=
"Tavor EVB3"
,
.
owner
=
THIS_MODULE
,
.
dai_link
=
evb3_dai
,
.
num_links
=
ARRAY_SIZE
(
evb3_dai
),
.
dapm_widgets
=
evb3_dapm_widgets
,
.
num_dapm_widgets
=
ARRAY_SIZE
(
evb3_dapm_widgets
),
.
dapm_routes
=
evb3_audio_map
,
.
num_dapm_routes
=
ARRAY_SIZE
(
evb3_audio_map
),
};
static
int
evb3_pm860x_init
(
struct
snd_soc_pcm_runtime
*
rtd
)
{
struct
snd_soc_codec
*
codec
=
rtd
->
codec
;
struct
snd_soc_dapm_context
*
dapm
=
&
codec
->
dapm
;
/* connected pins */
snd_soc_dapm_enable_pin
(
dapm
,
"Ext Speaker"
);
snd_soc_dapm_enable_pin
(
dapm
,
"Ext Mic 1"
);
snd_soc_dapm_enable_pin
(
dapm
,
"Ext Mic 3"
);
snd_soc_dapm_disable_pin
(
dapm
,
"Headset Mic 2"
);
snd_soc_dapm_disable_pin
(
dapm
,
"Headset Stereophone"
);
/* Headset jack detection */
snd_soc_jack_new
(
codec
,
"Headphone Jack"
,
SND_JACK_HEADPHONE
|
SND_JACK_BTN_0
|
SND_JACK_BTN_1
|
SND_JACK_BTN_2
,
&
hs_jack
);
snd_soc_jack_add_pins
(
&
hs_jack
,
ARRAY_SIZE
(
hs_jack_pins
),
hs_jack_pins
);
snd_soc_jack_new
(
codec
,
"Microphone Jack"
,
SND_JACK_MICROPHONE
,
&
mic_jack
);
snd_soc_jack_add_pins
(
&
mic_jack
,
ARRAY_SIZE
(
mic_jack_pins
),
mic_jack_pins
);
/* headphone, microphone detection & headset short detection */
pm860x_hs_jack_detect
(
codec
,
&
hs_jack
,
SND_JACK_HEADPHONE
,
SND_JACK_BTN_0
,
SND_JACK_BTN_1
,
SND_JACK_BTN_2
);
pm860x_mic_jack_detect
(
codec
,
&
hs_jack
,
SND_JACK_MICROPHONE
);
return
0
;
}
static
int
__init
tavorevb3_init
(
void
)
{
int
ret
;
if
(
!
machine_is_tavorevb3
())
return
-
ENODEV
;
evb3_snd_device
=
platform_device_alloc
(
"soc-audio"
,
-
1
);
if
(
!
evb3_snd_device
)
return
-
ENOMEM
;
platform_set_drvdata
(
evb3_snd_device
,
&
snd_soc_card_evb3
);
ret
=
platform_device_add
(
evb3_snd_device
);
if
(
ret
)
platform_device_put
(
evb3_snd_device
);
return
ret
;
}
static
void
__exit
tavorevb3_exit
(
void
)
{
platform_device_unregister
(
evb3_snd_device
);
}
module_init
(
tavorevb3_init
);
module_exit
(
tavorevb3_exit
);
MODULE_AUTHOR
(
"Haojian Zhuang <haojian.zhuang@marvell.com>"
);
MODULE_DESCRIPTION
(
"ALSA SoC 88PM860x Tavor EVB3"
);
MODULE_LICENSE
(
"GPL"
);
sound/soc/pxa/zylonite.c
浏览文件 @
3843e87e
...
...
@@ -256,7 +256,6 @@ static struct snd_soc_card zylonite = {
.
resume_pre
=
&
zylonite_resume_pre
,
.
dai_link
=
zylonite_dai
,
.
num_links
=
ARRAY_SIZE
(
zylonite_dai
),
.
owner
=
THIS_MODULE
,
};
static
struct
platform_device
*
zylonite_snd_ac97_device
;
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录