Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
L
linux-davinci-2.6.23
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-2.6.23
Commits
9df40802
Commit
9df40802
authored
Aug 24, 2006
by
Kevin Hilman
Browse files
Options
Browse Files
Download
Plain Diff
Merge ../../omap/pristine
parents
779219ca
15fd6635
Changes
14
Expand all
Hide whitespace changes
Inline
Side-by-side
Showing
14 changed files
with
106 additions
and
693 deletions
+106
-693
Makefile
Makefile
+1
-1
arch/arm/mach-omap1/board-ams-delta.c
arch/arm/mach-omap1/board-ams-delta.c
+11
-0
arch/arm/mach-omap2/board-h4.c
arch/arm/mach-omap2/board-h4.c
+5
-0
arch/arm/mach-omap2/clock.c
arch/arm/mach-omap2/clock.c
+1
-1
arch/arm/plat-omap/dma.c
arch/arm/plat-omap/dma.c
+2
-0
arch/arm/plat-omap/dmtimer.c
arch/arm/plat-omap/dmtimer.c
+62
-13
arch/arm/plat-omap/dsp/dsp_common.c
arch/arm/plat-omap/dsp/dsp_common.c
+4
-1
arch/arm/plat-omap/gpio.c
arch/arm/plat-omap/gpio.c
+2
-2
arch/arm/plat-omap/pm.c
arch/arm/plat-omap/pm.c
+0
-670
drivers/leds/leds-omap-pwm.c
drivers/leds/leds-omap-pwm.c
+1
-1
include/asm-arm/arch-omap/board-ams-delta.h
include/asm-arm/arch-omap/board-ams-delta.h
+11
-0
include/asm-arm/arch-omap/dma.h
include/asm-arm/arch-omap/dma.h
+2
-2
sound/oss/omap-audio-aic23.c
sound/oss/omap-audio-aic23.c
+2
-1
sound/oss/omap-audio-tsc2101.c
sound/oss/omap-audio-tsc2101.c
+2
-1
No files found.
Makefile
View file @
9df40802
...
...
@@ -11,7 +11,7 @@ NAME=Crazed Snow-Weasel
# expect to learn how to build the kernel reading this file.
# Add custom flags here to avoid conflict with updates
EXTRAVERSION
:=
$(EXTRAVERSION)
-omap
2
EXTRAVERSION
:=
$(EXTRAVERSION)
-omap
1
# Do not print "Entering directory ..."
MAKEFLAGS
+=
--no-print-directory
...
...
arch/arm/mach-omap1/board-ams-delta.c
View file @
9df40802
...
...
@@ -91,6 +91,15 @@ static struct omap_board_config_kernel ams_delta_config[] = {
{
OMAP_TAG_USB
,
&
ams_delta_usb_config
},
};
static
struct
platform_device
ams_delta_led_device
=
{
.
name
=
"ams-delta-led"
,
.
id
=
-
1
};
static
struct
platform_device
*
ams_delta_devices
[]
__initdata
=
{
&
ams_delta_led_device
,
};
static
void
__init
ams_delta_init
(
void
)
{
iotable_init
(
ams_delta_io_desc
,
ARRAY_SIZE
(
ams_delta_io_desc
));
...
...
@@ -101,6 +110,8 @@ static void __init ams_delta_init(void)
/* Clear latch2 (NAND, LCD, modem enable) */
ams_delta_latch2_write
(
~
0
,
0
);
platform_add_devices
(
ams_delta_devices
,
ARRAY_SIZE
(
ams_delta_devices
));
}
static
void
__init
ams_delta_map_io
(
void
)
...
...
arch/arm/mach-omap2/board-h4.c
View file @
9df40802
...
...
@@ -156,6 +156,7 @@ static struct platform_device h4_smc91x_device = {
/* Select between the IrDA and aGPS module
*/
#if defined(CONFIG_OMAP_IR) || defined(CONFIG_OMAP_IR_MODULE)
static
int
h4_select_irda
(
struct
device
*
dev
,
int
state
)
{
unsigned
char
expa
;
...
...
@@ -212,6 +213,10 @@ static int h4_transceiver_mode(struct device *dev, int mode)
return
0
;
}
#else
static
int
h4_select_irda
(
struct
device
*
dev
,
int
state
)
{
return
0
;
}
static
int
h4_transceiver_mode
(
struct
device
*
dev
,
int
mode
)
{
return
0
;
}
#endif
static
struct
omap_irda_config
h4_irda_data
=
{
.
transceiver_cap
=
IR_SIRMODE
|
IR_MIRMODE
|
IR_FIRMODE
,
...
...
arch/arm/mach-omap2/clock.c
View file @
9df40802
...
...
@@ -103,7 +103,7 @@ static void omap2_clk_fixed_enable(struct clk *clk)
else
if
(
clk
==
&
apll54_ck
)
cval
=
(
1
<<
6
);
while
(
!
CM_IDLEST_CKGEN
&
cval
)
{
/* Wait for lock */
while
(
!
(
CM_IDLEST_CKGEN
&
cval
)
)
{
/* Wait for lock */
++
i
;
udelay
(
1
);
if
(
i
==
100000
)
...
...
arch/arm/plat-omap/dma.c
View file @
9df40802
...
...
@@ -1461,11 +1461,13 @@ EXPORT_SYMBOL(omap_request_dma);
EXPORT_SYMBOL
(
omap_free_dma
);
EXPORT_SYMBOL
(
omap_start_dma
);
EXPORT_SYMBOL
(
omap_stop_dma
);
EXPORT_SYMBOL
(
omap_set_dma_callback
);
EXPORT_SYMBOL
(
omap_enable_dma_irq
);
EXPORT_SYMBOL
(
omap_disable_dma_irq
);
EXPORT_SYMBOL
(
omap_set_dma_transfer_params
);
EXPORT_SYMBOL
(
omap_set_dma_color_mode
);
EXPORT_SYMBOL
(
omap_set_dma_write_mode
);
EXPORT_SYMBOL
(
omap_set_dma_src_params
);
EXPORT_SYMBOL
(
omap_set_dma_src_index
);
...
...
arch/arm/plat-omap/dmtimer.c
View file @
9df40802
...
...
@@ -79,6 +79,9 @@ struct omap_dm_timer {
#ifdef CONFIG_ARCH_OMAP1
#define omap_dm_clk_enable(x)
#define omap_dm_clk_disable(x)
static
struct
omap_dm_timer
dm_timers
[]
=
{
{
.
phys_base
=
0xfffb1400
,
.
irq
=
INT_1610_GPTIMER1
},
{
.
phys_base
=
0xfffb1c00
,
.
irq
=
INT_1610_GPTIMER2
},
...
...
@@ -92,6 +95,9 @@ static struct omap_dm_timer dm_timers[] = {
#elif defined(CONFIG_ARCH_OMAP2)
#define omap_dm_clk_enable(x) clk_enable(x)
#define omap_dm_clk_disable(x) clk_disable(x)
static
struct
omap_dm_timer
dm_timers
[]
=
{
{
.
phys_base
=
0x48028000
,
.
irq
=
INT_24XX_GPTIMER1
},
{
.
phys_base
=
0x4802a000
,
.
irq
=
INT_24XX_GPTIMER2
},
...
...
@@ -168,11 +174,15 @@ static void omap_dm_timer_reset(struct omap_dm_timer *timer)
static
void
omap_dm_timer_prepare
(
struct
omap_dm_timer
*
timer
)
{
#ifdef CONFIG_ARCH_OMAP2
clk_enable
(
timer
->
iclk
);
clk_enable
(
timer
->
fclk
);
#endif
omap_dm_clk_enable
(
timer
->
fclk
);
omap_dm_clk_enable
(
timer
->
iclk
);
omap_dm_timer_reset
(
timer
);
/* Leave iclk enabled for GPT1 as it is needed for the
* system timer to work properly. */
if
(
timer
!=
&
dm_timers
[
0
])
omap_dm_clk_disable
(
timer
->
iclk
);
}
struct
omap_dm_timer
*
omap_dm_timer_request
(
void
)
...
...
@@ -223,11 +233,14 @@ struct omap_dm_timer *omap_dm_timer_request_specific(int id)
void
omap_dm_timer_free
(
struct
omap_dm_timer
*
timer
)
{
omap_dm_clk_enable
(
timer
->
iclk
);
omap_dm_timer_reset
(
timer
);
#ifdef CONFIG_ARCH_OMAP2
clk_disable
(
timer
->
iclk
);
clk_disable
(
timer
->
fclk
);
#endif
omap_dm_clk_disable
(
timer
->
iclk
);
if
(
timer
==
&
dm_timers
[
0
])
omap_dm_clk_disable
(
timer
->
iclk
);
omap_dm_clk_disable
(
timer
->
fclk
);
WARN_ON
(
!
timer
->
reserved
);
timer
->
reserved
=
0
;
}
...
...
@@ -276,7 +289,7 @@ __u32 omap_dm_timer_modify_idlect_mask(__u32 inputmask)
struct
clk
*
omap_dm_timer_get_fclk
(
struct
omap_dm_timer
*
timer
)
{
return
timer
->
fclk
;
return
timer
->
fclk
;
}
__u32
omap_dm_timer_modify_idlect_mask
(
__u32
inputmask
)
...
...
@@ -288,29 +301,35 @@ __u32 omap_dm_timer_modify_idlect_mask(__u32 inputmask)
void
omap_dm_timer_trigger
(
struct
omap_dm_timer
*
timer
)
{
omap_dm_clk_enable
(
timer
->
iclk
);
omap_dm_timer_write_reg
(
timer
,
OMAP_TIMER_TRIGGER_REG
,
0
);
omap_dm_clk_disable
(
timer
->
iclk
);
}
void
omap_dm_timer_start
(
struct
omap_dm_timer
*
timer
)
{
u32
l
;
omap_dm_clk_enable
(
timer
->
iclk
);
l
=
omap_dm_timer_read_reg
(
timer
,
OMAP_TIMER_CTRL_REG
);
if
(
!
(
l
&
OMAP_TIMER_CTRL_ST
))
{
l
|=
OMAP_TIMER_CTRL_ST
;
omap_dm_timer_write_reg
(
timer
,
OMAP_TIMER_CTRL_REG
,
l
);
}
omap_dm_clk_disable
(
timer
->
iclk
);
}
void
omap_dm_timer_stop
(
struct
omap_dm_timer
*
timer
)
{
u32
l
;
omap_dm_clk_enable
(
timer
->
iclk
);
l
=
omap_dm_timer_read_reg
(
timer
,
OMAP_TIMER_CTRL_REG
);
if
(
l
&
OMAP_TIMER_CTRL_ST
)
{
l
&=
~
0x1
;
omap_dm_timer_write_reg
(
timer
,
OMAP_TIMER_CTRL_REG
,
l
);
}
omap_dm_clk_disable
(
timer
->
iclk
);
}
#ifdef CONFIG_ARCH_OMAP1
...
...
@@ -348,6 +367,7 @@ void omap_dm_timer_set_load(struct omap_dm_timer *timer, int autoreload,
{
u32
l
;
omap_dm_clk_enable
(
timer
->
iclk
);
l
=
omap_dm_timer_read_reg
(
timer
,
OMAP_TIMER_CTRL_REG
);
if
(
autoreload
)
l
|=
OMAP_TIMER_CTRL_AR
;
...
...
@@ -356,6 +376,7 @@ void omap_dm_timer_set_load(struct omap_dm_timer *timer, int autoreload,
omap_dm_timer_write_reg
(
timer
,
OMAP_TIMER_CTRL_REG
,
l
);
omap_dm_timer_write_reg
(
timer
,
OMAP_TIMER_LOAD_REG
,
load
);
omap_dm_timer_write_reg
(
timer
,
OMAP_TIMER_TRIGGER_REG
,
0
);
omap_dm_clk_disable
(
timer
->
iclk
);
}
void
omap_dm_timer_set_match
(
struct
omap_dm_timer
*
timer
,
int
enable
,
...
...
@@ -363,6 +384,7 @@ void omap_dm_timer_set_match(struct omap_dm_timer *timer, int enable,
{
u32
l
;
omap_dm_clk_enable
(
timer
->
iclk
);
l
=
omap_dm_timer_read_reg
(
timer
,
OMAP_TIMER_CTRL_REG
);
if
(
enable
)
l
|=
OMAP_TIMER_CTRL_CE
;
...
...
@@ -370,6 +392,7 @@ void omap_dm_timer_set_match(struct omap_dm_timer *timer, int enable,
l
&=
~
OMAP_TIMER_CTRL_CE
;
omap_dm_timer_write_reg
(
timer
,
OMAP_TIMER_CTRL_REG
,
l
);
omap_dm_timer_write_reg
(
timer
,
OMAP_TIMER_MATCH_REG
,
match
);
omap_dm_clk_disable
(
timer
->
iclk
);
}
...
...
@@ -378,6 +401,7 @@ void omap_dm_timer_set_pwm(struct omap_dm_timer *timer, int def_on,
{
u32
l
;
omap_dm_clk_enable
(
timer
->
iclk
);
l
=
omap_dm_timer_read_reg
(
timer
,
OMAP_TIMER_CTRL_REG
);
l
&=
~
(
OMAP_TIMER_CTRL_GPOCFG
|
OMAP_TIMER_CTRL_SCPWM
|
OMAP_TIMER_CTRL_PT
|
(
0x03
<<
10
));
...
...
@@ -387,12 +411,14 @@ void omap_dm_timer_set_pwm(struct omap_dm_timer *timer, int def_on,
l
|=
OMAP_TIMER_CTRL_PT
;
l
|=
trigger
<<
10
;
omap_dm_timer_write_reg
(
timer
,
OMAP_TIMER_CTRL_REG
,
l
);
omap_dm_clk_disable
(
timer
->
iclk
);
}
void
omap_dm_timer_set_prescaler
(
struct
omap_dm_timer
*
timer
,
int
prescaler
)
{
u32
l
;
omap_dm_clk_enable
(
timer
->
iclk
);
l
=
omap_dm_timer_read_reg
(
timer
,
OMAP_TIMER_CTRL_REG
);
l
&=
~
(
OMAP_TIMER_CTRL_PRE
|
(
0x07
<<
2
));
if
(
prescaler
>=
0x00
&&
prescaler
<=
0x07
)
{
...
...
@@ -400,32 +426,51 @@ void omap_dm_timer_set_prescaler(struct omap_dm_timer *timer, int prescaler)
l
|=
prescaler
<<
2
;
}
omap_dm_timer_write_reg
(
timer
,
OMAP_TIMER_CTRL_REG
,
l
);
omap_dm_clk_disable
(
timer
->
iclk
);
}
void
omap_dm_timer_set_int_enable
(
struct
omap_dm_timer
*
timer
,
unsigned
int
value
)
{
omap_dm_clk_enable
(
timer
->
iclk
);
omap_dm_timer_write_reg
(
timer
,
OMAP_TIMER_INT_EN_REG
,
value
);
omap_dm_clk_disable
(
timer
->
iclk
);
}
unsigned
int
omap_dm_timer_read_status
(
struct
omap_dm_timer
*
timer
)
{
return
omap_dm_timer_read_reg
(
timer
,
OMAP_TIMER_STAT_REG
);
unsigned
int
l
;
omap_dm_clk_enable
(
timer
->
iclk
);
l
=
omap_dm_timer_read_reg
(
timer
,
OMAP_TIMER_STAT_REG
);
omap_dm_clk_disable
(
timer
->
iclk
);
return
l
;
}
void
omap_dm_timer_write_status
(
struct
omap_dm_timer
*
timer
,
unsigned
int
value
)
{
omap_dm_clk_enable
(
timer
->
iclk
);
omap_dm_timer_write_reg
(
timer
,
OMAP_TIMER_STAT_REG
,
value
);
omap_dm_clk_disable
(
timer
->
iclk
);
}
unsigned
int
omap_dm_timer_read_counter
(
struct
omap_dm_timer
*
timer
)
{
return
omap_dm_timer_read_reg
(
timer
,
OMAP_TIMER_COUNTER_REG
);
unsigned
int
l
;
omap_dm_clk_enable
(
timer
->
iclk
);
l
=
omap_dm_timer_read_reg
(
timer
,
OMAP_TIMER_COUNTER_REG
);
omap_dm_clk_disable
(
timer
->
iclk
);
return
l
;
}
void
omap_dm_timer_write_counter
(
struct
omap_dm_timer
*
timer
,
unsigned
int
value
)
{
return
omap_dm_timer_write_reg
(
timer
,
OMAP_TIMER_COUNTER_REG
,
value
);
omap_dm_clk_enable
(
timer
->
iclk
);
omap_dm_timer_write_reg
(
timer
,
OMAP_TIMER_COUNTER_REG
,
value
);
omap_dm_clk_disable
(
timer
->
iclk
);
}
int
omap_dm_timers_active
(
void
)
...
...
@@ -436,9 +481,13 @@ int omap_dm_timers_active(void)
struct
omap_dm_timer
*
timer
;
timer
=
&
dm_timers
[
i
];
omap_dm_clk_enable
(
timer
->
iclk
);
if
(
omap_dm_timer_read_reg
(
timer
,
OMAP_TIMER_CTRL_REG
)
&
OMAP_TIMER_CTRL_ST
)
OMAP_TIMER_CTRL_ST
)
{
omap_dm_clk_disable
(
timer
->
iclk
);
return
1
;
}
omap_dm_clk_disable
(
timer
->
iclk
);
}
return
0
;
}
...
...
arch/arm/plat-omap/dsp/dsp_common.c
View file @
9df40802
...
...
@@ -59,7 +59,6 @@ struct cpustat {
void
(
*
mem_rel_cb
)(
void
);
};
struct
cpustat
cpustat
=
{
.
lock
=
__MUTEX_INITIALIZER
(
cpustat
.
lock
),
.
stat
=
CPUSTAT_RESET
,
.
icrmask
=
0xffff
,
};
...
...
@@ -243,6 +242,8 @@ static int init_done;
static
int
__init
omap_dsp_init
(
void
)
{
mutex_init
(
&
cpustat
.
lock
);
dspmem_size
=
0
;
#ifdef CONFIG_ARCH_OMAP15XX
if
(
cpu_is_omap1510
())
{
...
...
@@ -544,4 +545,6 @@ EXPORT_SYMBOL(dsp_register_mem_cb);
EXPORT_SYMBOL
(
dsp_unregister_mem_cb
);
EXPORT_SYMBOL
(
__cpu_flush_kern_tlb_range
);
EXPORT_SYMBOL
(
cpu_architecture
);
EXPORT_SYMBOL
(
pmd_clear_bad
);
#endif
arch/arm/plat-omap/gpio.c
View file @
9df40802
...
...
@@ -216,7 +216,7 @@ static inline int gpio_valid(int gpio)
return
-
1
;
#ifndef CONFIG_ARCH_OMAP24XX
if
(
OMAP_GPIO_IS_MPUIO
(
gpio
))
{
if
(
gpio
>=
MAX_GPIO_LINES
+
16
)
if
(
gpio
>=
OMAP_
MAX_GPIO_LINES
+
16
)
return
-
1
;
return
0
;
}
...
...
@@ -985,7 +985,7 @@ static int __init _omap_gpio_init(void)
else
clk_enable
(
gpio_ick
);
gpio_fck
=
clk_get
(
NULL
,
"gpios_fck"
);
if
(
IS_ERR
(
gpio_
i
ck
))
if
(
IS_ERR
(
gpio_
f
ck
))
printk
(
"Could not get gpios_fck
\n
"
);
else
clk_enable
(
gpio_fck
);
...
...
arch/arm/plat-omap/pm.c
deleted
100644 → 0
View file @
779219ca
This diff is collapsed.
Click to expand it.
drivers/leds/leds-omap-pwm.c
View file @
9df40802
...
...
@@ -69,7 +69,7 @@ static void omap_pwm_led_power_on(struct omap_pwm_led *led)
led
->
powered
=
1
;
/* Select clock */
omap_dm_timer_set_source
(
led
->
intensity_timer
,
OMAP_TIMER_SRC_
SYS_CLK
);
omap_dm_timer_set_source
(
led
->
intensity_timer
,
OMAP_TIMER_SRC_
32_KHZ
);
/* Turn voltage on */
if
(
led
->
pdata
->
set_power
!=
NULL
)
...
...
include/asm-arm/arch-omap/board-ams-delta.h
View file @
9df40802
...
...
@@ -50,9 +50,20 @@
#define AMS_DELTA_LATCH2_NAND_NWE 0x0020
#define AMS_DELTA_LATCH2_NAND_ALE 0x0040
#define AMS_DELTA_LATCH2_NAND_CLE 0x0080
#define AMD_DELTA_LATCH2_KEYBRD_PWR 0x0100
#define AMD_DELTA_LATCH2_KEYBRD_DATA 0x0200
#define AMD_DELTA_LATCH2_SCARD_RSTIN 0x0400
#define AMD_DELTA_LATCH2_SCARD_CMDVCC 0x0800
#define AMS_DELTA_LATCH2_MODEM_NRESET 0x1000
#define AMS_DELTA_LATCH2_MODEM_CODEC 0x2000
#define AMS_DELTA_GPIO_PIN_KEYBRD_DATA 0
#define AMS_DELTA_GPIO_PIN_KEYBRD_CLK 1
#define AMS_DELTA_GPIO_PIN_MODEM_IRQ 2
#define AMS_DELTA_GPIO_PIN_HOOK_SWITCH 4
#define AMS_DELTA_GPIO_PIN_SCARD_NOFF 6
#define AMS_DELTA_GPIO_PIN_SCARD_IO 7
#define AMS_DELTA_GPIO_PIN_CONFIG 11
#define AMS_DELTA_GPIO_PIN_NAND_RB 12
#ifndef __ASSEMBLY__
...
...
include/asm-arm/arch-omap/dma.h
View file @
9df40802
...
...
@@ -344,13 +344,13 @@ struct omap_dma_channel_params {
int
src_port
;
/* Only on OMAP1 REVISIT: Is this needed? */
int
src_amode
;
/* constant , post increment, indexed , double indexed */
int
src_start
;
/* source address : physical */
unsigned
long
src_start
;
/* source address : physical */
int
src_ei
;
/* source element index */
int
src_fi
;
/* source frame index */
int
dst_port
;
/* Only on OMAP1 REVISIT: Is this needed? */
int
dst_amode
;
/* constant , post increment, indexed , double indexed */
int
dst_start
;
/* source address : physical */
unsigned
long
dst_start
;
/* source address : physical */
int
dst_ei
;
/* source element index */
int
dst_fi
;
/* source frame index */
...
...
sound/oss/omap-audio-aic23.c
View file @
9df40802
...
...
@@ -244,7 +244,6 @@ static audio_state_t aic23_state = {
.
hw_remove
=
__exit_p
(
omap_aic23_remove
),
.
hw_suspend
=
omap_aic23_suspend
,
.
hw_resume
=
omap_aic23_resume
,
.
mutex
=
__MUTEX_INITIALIZER
(
aic23_state
.
mutex
),
};
/* This will be defined in the audio.h */
...
...
@@ -673,6 +672,8 @@ static int __init audio_aic23_init(void)
if
(
machine_is_omap_h2
()
||
machine_is_omap_h3
())
return
-
ENODEV
;
mutex_init
(
&
aic23_state
.
mutex
);
if
(
machine_is_omap_osk
())
{
/* Set MCLK to be clock input for AIC23 */
aic23_mclk
=
clk_get
(
0
,
"mclk"
);
...
...
sound/oss/omap-audio-tsc2101.c
View file @
9df40802
...
...
@@ -326,7 +326,6 @@ static audio_state_t tsc2101_state = {
.
hw_remove
=
omap_tsc2101_remove
,
.
hw_suspend
=
omap_tsc2101_suspend
,
.
hw_resume
=
omap_tsc2101_resume
,
.
mutex
=
__MUTEX_INITIALIZER
(
tsc2101_state
.
mutex
),
};
/* This will be defined in the Audio.h */
...
...
@@ -1031,6 +1030,8 @@ static int __init audio_tsc2101_init(void)
if
(
machine_is_omap_osk
()
||
machine_is_omap_innovator
())
return
-
ENODEV
;
mutex_init
(
&
tsc2101_state
.
mutex
);
/* register the codec with the audio driver */
if
((
err
=
audio_register_codec
(
&
tsc2101_state
)))
{
printk
(
KERN_ERR
...
...
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