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
nexedi
linux
Commits
daf6c450
Commit
daf6c450
authored
Jun 25, 2011
by
Steve French
Browse files
Options
Browse Files
Download
Plain Diff
Merge branch 'master' of /pub/scm/linux/kernel/git/torvalds/linux-2.6
parents
9b8e072a
8abf5588
Changes
18
Hide whitespace changes
Inline
Side-by-side
Showing
18 changed files
with
147 additions
and
151 deletions
+147
-151
drivers/gpu/drm/i915/i915_gem.c
drivers/gpu/drm/i915/i915_gem.c
+4
-6
drivers/gpu/drm/i915/i915_gem_execbuffer.c
drivers/gpu/drm/i915/i915_gem_execbuffer.c
+0
-4
drivers/gpu/drm/i915/i915_irq.c
drivers/gpu/drm/i915/i915_irq.c
+1
-0
drivers/gpu/drm/i915/i915_reg.h
drivers/gpu/drm/i915/i915_reg.h
+1
-0
drivers/gpu/drm/i915/i915_suspend.c
drivers/gpu/drm/i915/i915_suspend.c
+5
-0
drivers/gpu/drm/i915/intel_display.c
drivers/gpu/drm/i915/intel_display.c
+1
-2
drivers/rtc/rtc-vt8500.c
drivers/rtc/rtc-vt8500.c
+3
-42
include/sound/soc.h
include/sound/soc.h
+1
-2
kernel/time/alarmtimer.c
kernel/time/alarmtimer.c
+88
-70
sound/pci/asihpi/asihpi.c
sound/pci/asihpi/asihpi.c
+0
-1
sound/pci/hda/patch_realtek.c
sound/pci/hda/patch_realtek.c
+11
-2
sound/pci/hda/patch_via.c
sound/pci/hda/patch_via.c
+27
-8
sound/soc/codecs/wm8991.c
sound/soc/codecs/wm8991.c
+0
-1
sound/soc/imx/Kconfig
sound/soc/imx/Kconfig
+0
-7
sound/soc/imx/imx-pcm-dma-mx2.c
sound/soc/imx/imx-pcm-dma-mx2.c
+2
-0
sound/soc/imx/imx-ssi.c
sound/soc/imx/imx-ssi.c
+1
-1
sound/soc/pxa/pxa2xx-pcm.c
sound/soc/pxa/pxa2xx-pcm.c
+2
-2
sound/soc/soc-cache.c
sound/soc/soc-cache.c
+0
-3
No files found.
drivers/gpu/drm/i915/i915_gem.c
View file @
daf6c450
...
...
@@ -1219,11 +1219,11 @@ int i915_gem_fault(struct vm_area_struct *vma, struct vm_fault *vmf)
ret
=
i915_gem_object_bind_to_gtt
(
obj
,
0
,
true
);
if
(
ret
)
goto
unlock
;
}
ret
=
i915_gem_object_set_to_gtt_domain
(
obj
,
write
);
if
(
ret
)
goto
unlock
;
ret
=
i915_gem_object_set_to_gtt_domain
(
obj
,
write
);
if
(
ret
)
goto
unlock
;
}
if
(
obj
->
tiling_mode
==
I915_TILING_NONE
)
ret
=
i915_gem_object_put_fence
(
obj
);
...
...
@@ -2926,8 +2926,6 @@ i915_gem_object_flush_gtt_write_domain(struct drm_i915_gem_object *obj)
*/
wmb
();
i915_gem_release_mmap
(
obj
);
old_write_domain
=
obj
->
base
.
write_domain
;
obj
->
base
.
write_domain
=
0
;
...
...
drivers/gpu/drm/i915/i915_gem_execbuffer.c
View file @
daf6c450
...
...
@@ -187,10 +187,6 @@ i915_gem_object_set_to_gpu_domain(struct drm_i915_gem_object *obj,
if
((
flush_domains
|
invalidate_domains
)
&
I915_GEM_DOMAIN_CPU
)
i915_gem_clflush_object
(
obj
);
/* blow away mappings if mapped through GTT */
if
((
flush_domains
|
invalidate_domains
)
&
I915_GEM_DOMAIN_GTT
)
i915_gem_release_mmap
(
obj
);
if
(
obj
->
base
.
pending_write_domain
)
cd
->
flips
|=
atomic_read
(
&
obj
->
pending_flip
);
...
...
drivers/gpu/drm/i915/i915_irq.c
View file @
daf6c450
...
...
@@ -1749,6 +1749,7 @@ void ironlake_irq_preinstall(struct drm_device *dev)
* happens.
*/
I915_WRITE
(
GEN6_BLITTER_HWSTAM
,
~
GEN6_BLITTER_USER_INTERRUPT
);
I915_WRITE
(
GEN6_BSD_HWSTAM
,
~
GEN6_BSD_USER_INTERRUPT
);
}
/* XXX hotplug from PCH */
...
...
drivers/gpu/drm/i915/i915_reg.h
View file @
daf6c450
...
...
@@ -531,6 +531,7 @@
#define GEN6_BSD_SLEEP_PSMI_CONTROL_RC_ILDL_MESSAGE_ENABLE 0
#define GEN6_BSD_SLEEP_PSMI_CONTROL_IDLE_INDICATOR (1 << 3)
#define GEN6_BSD_HWSTAM 0x12098
#define GEN6_BSD_IMR 0x120a8
#define GEN6_BSD_USER_INTERRUPT (1 << 12)
...
...
drivers/gpu/drm/i915/i915_suspend.c
View file @
daf6c450
...
...
@@ -678,6 +678,7 @@ void i915_save_display(struct drm_device *dev)
}
/* VGA state */
mutex_lock
(
&
dev
->
struct_mutex
);
dev_priv
->
saveVGA0
=
I915_READ
(
VGA0
);
dev_priv
->
saveVGA1
=
I915_READ
(
VGA1
);
dev_priv
->
saveVGA_PD
=
I915_READ
(
VGA_PD
);
...
...
@@ -687,6 +688,7 @@ void i915_save_display(struct drm_device *dev)
dev_priv
->
saveVGACNTRL
=
I915_READ
(
VGACNTRL
);
i915_save_vga
(
dev
);
mutex_unlock
(
&
dev
->
struct_mutex
);
}
void
i915_restore_display
(
struct
drm_device
*
dev
)
...
...
@@ -780,6 +782,8 @@ void i915_restore_display(struct drm_device *dev)
I915_WRITE
(
CPU_VGACNTRL
,
dev_priv
->
saveVGACNTRL
);
else
I915_WRITE
(
VGACNTRL
,
dev_priv
->
saveVGACNTRL
);
mutex_lock
(
&
dev
->
struct_mutex
);
I915_WRITE
(
VGA0
,
dev_priv
->
saveVGA0
);
I915_WRITE
(
VGA1
,
dev_priv
->
saveVGA1
);
I915_WRITE
(
VGA_PD
,
dev_priv
->
saveVGA_PD
);
...
...
@@ -787,6 +791,7 @@ void i915_restore_display(struct drm_device *dev)
udelay
(
150
);
i915_restore_vga
(
dev
);
mutex_unlock
(
&
dev
->
struct_mutex
);
}
int
i915_save_state
(
struct
drm_device
*
dev
)
...
...
drivers/gpu/drm/i915/intel_display.c
View file @
daf6c450
...
...
@@ -4687,6 +4687,7 @@ static int i9xx_crtc_mode_set(struct drm_crtc *crtc,
I915_WRITE
(
DSPCNTR
(
plane
),
dspcntr
);
POSTING_READ
(
DSPCNTR
(
plane
));
intel_enable_plane
(
dev_priv
,
plane
,
pipe
);
ret
=
intel_pipe_set_base
(
crtc
,
x
,
y
,
old_fb
);
...
...
@@ -5217,8 +5218,6 @@ static int ironlake_crtc_mode_set(struct drm_crtc *crtc,
I915_WRITE
(
DSPCNTR
(
plane
),
dspcntr
);
POSTING_READ
(
DSPCNTR
(
plane
));
if
(
!
HAS_PCH_SPLIT
(
dev
))
intel_enable_plane
(
dev_priv
,
plane
,
pipe
);
ret
=
intel_pipe_set_base
(
crtc
,
x
,
y
,
old_fb
);
...
...
drivers/rtc/rtc-vt8500.c
View file @
daf6c450
...
...
@@ -78,7 +78,6 @@ struct vt8500_rtc {
void
__iomem
*
regbase
;
struct
resource
*
res
;
int
irq_alarm
;
int
irq_hz
;
struct
rtc_device
*
rtc
;
spinlock_t
lock
;
/* Protects this structure */
};
...
...
@@ -100,10 +99,6 @@ static irqreturn_t vt8500_rtc_irq(int irq, void *dev_id)
if
(
isr
&
1
)
events
|=
RTC_AF
|
RTC_IRQF
;
/* Only second/minute interrupts are supported */
if
(
isr
&
2
)
events
|=
RTC_UF
|
RTC_IRQF
;
rtc_update_irq
(
vt8500_rtc
->
rtc
,
1
,
events
);
return
IRQ_HANDLED
;
...
...
@@ -199,27 +194,12 @@ static int vt8500_alarm_irq_enable(struct device *dev, unsigned int enabled)
return
0
;
}
static
int
vt8500_update_irq_enable
(
struct
device
*
dev
,
unsigned
int
enabled
)
{
struct
vt8500_rtc
*
vt8500_rtc
=
dev_get_drvdata
(
dev
);
unsigned
long
tmp
=
readl
(
vt8500_rtc
->
regbase
+
VT8500_RTC_CR
);
if
(
enabled
)
tmp
|=
VT8500_RTC_CR_SM_SEC
|
VT8500_RTC_CR_SM_ENABLE
;
else
tmp
&=
~
VT8500_RTC_CR_SM_ENABLE
;
writel
(
tmp
,
vt8500_rtc
->
regbase
+
VT8500_RTC_CR
);
return
0
;
}
static
const
struct
rtc_class_ops
vt8500_rtc_ops
=
{
.
read_time
=
vt8500_rtc_read_time
,
.
set_time
=
vt8500_rtc_set_time
,
.
read_alarm
=
vt8500_rtc_read_alarm
,
.
set_alarm
=
vt8500_rtc_set_alarm
,
.
alarm_irq_enable
=
vt8500_alarm_irq_enable
,
.
update_irq_enable
=
vt8500_update_irq_enable
,
};
static
int
__devinit
vt8500_rtc_probe
(
struct
platform_device
*
pdev
)
...
...
@@ -248,13 +228,6 @@ static int __devinit vt8500_rtc_probe(struct platform_device *pdev)
goto
err_free
;
}
vt8500_rtc
->
irq_hz
=
platform_get_irq
(
pdev
,
1
);
if
(
vt8500_rtc
->
irq_hz
<
0
)
{
dev_err
(
&
pdev
->
dev
,
"No 1Hz IRQ resource defined
\n
"
);
ret
=
-
ENXIO
;
goto
err_free
;
}
vt8500_rtc
->
res
=
request_mem_region
(
vt8500_rtc
->
res
->
start
,
resource_size
(
vt8500_rtc
->
res
),
"vt8500-rtc"
);
...
...
@@ -272,9 +245,8 @@ static int __devinit vt8500_rtc_probe(struct platform_device *pdev)
goto
err_release
;
}
/* Enable the second/minute interrupt generation and enable RTC */
writel
(
VT8500_RTC_CR_ENABLE
|
VT8500_RTC_CR_24H
|
VT8500_RTC_CR_SM_ENABLE
|
VT8500_RTC_CR_SM_SEC
,
/* Enable RTC and set it to 24-hour mode */
writel
(
VT8500_RTC_CR_ENABLE
|
VT8500_RTC_CR_24H
,
vt8500_rtc
->
regbase
+
VT8500_RTC_CR
);
vt8500_rtc
->
rtc
=
rtc_device_register
(
"vt8500-rtc"
,
&
pdev
->
dev
,
...
...
@@ -286,26 +258,16 @@ static int __devinit vt8500_rtc_probe(struct platform_device *pdev)
goto
err_unmap
;
}
ret
=
request_irq
(
vt8500_rtc
->
irq_hz
,
vt8500_rtc_irq
,
0
,
"rtc 1Hz"
,
vt8500_rtc
);
if
(
ret
<
0
)
{
dev_err
(
&
pdev
->
dev
,
"can't get irq %i, err %d
\n
"
,
vt8500_rtc
->
irq_hz
,
ret
);
goto
err_unreg
;
}
ret
=
request_irq
(
vt8500_rtc
->
irq_alarm
,
vt8500_rtc_irq
,
0
,
"rtc alarm"
,
vt8500_rtc
);
if
(
ret
<
0
)
{
dev_err
(
&
pdev
->
dev
,
"can't get irq %i, err %d
\n
"
,
vt8500_rtc
->
irq_alarm
,
ret
);
goto
err_
free_hz
;
goto
err_
unreg
;
}
return
0
;
err_free_hz:
free_irq
(
vt8500_rtc
->
irq_hz
,
vt8500_rtc
);
err_unreg:
rtc_device_unregister
(
vt8500_rtc
->
rtc
);
err_unmap:
...
...
@@ -323,7 +285,6 @@ static int __devexit vt8500_rtc_remove(struct platform_device *pdev)
struct
vt8500_rtc
*
vt8500_rtc
=
platform_get_drvdata
(
pdev
);
free_irq
(
vt8500_rtc
->
irq_alarm
,
vt8500_rtc
);
free_irq
(
vt8500_rtc
->
irq_hz
,
vt8500_rtc
);
rtc_device_unregister
(
vt8500_rtc
->
rtc
);
...
...
include/sound/soc.h
View file @
daf6c450
...
...
@@ -248,8 +248,7 @@ typedef int (*hw_write_t)(void *,const char* ,int);
extern
struct
snd_ac97_bus_ops
soc_ac97_ops
;
enum
snd_soc_control_type
{
SND_SOC_CUSTOM
=
1
,
SND_SOC_I2C
,
SND_SOC_I2C
=
1
,
SND_SOC_SPI
,
};
...
...
kernel/time/alarmtimer.c
View file @
daf6c450
...
...
@@ -42,15 +42,75 @@ static struct alarm_base {
clockid_t
base_clockid
;
}
alarm_bases
[
ALARM_NUMTYPE
];
/* freezer delta & lock used to handle clock_nanosleep triggered wakeups */
static
ktime_t
freezer_delta
;
static
DEFINE_SPINLOCK
(
freezer_delta_lock
);
#ifdef CONFIG_RTC_CLASS
/* rtc timer and device for setting alarm wakeups at suspend */
static
struct
rtc_timer
rtctimer
;
static
struct
rtc_device
*
rtcdev
;
#endif
static
DEFINE_SPINLOCK
(
rtcdev_lock
);
/* freezer delta & lock used to handle clock_nanosleep triggered wakeups */
static
ktime_t
freezer_delta
;
static
DEFINE_SPINLOCK
(
freezer_delta_lock
);
/**
* has_wakealarm - check rtc device has wakealarm ability
* @dev: current device
* @name_ptr: name to be returned
*
* This helper function checks to see if the rtc device can wake
* from suspend.
*/
static
int
has_wakealarm
(
struct
device
*
dev
,
void
*
name_ptr
)
{
struct
rtc_device
*
candidate
=
to_rtc_device
(
dev
);
if
(
!
candidate
->
ops
->
set_alarm
)
return
0
;
if
(
!
device_may_wakeup
(
candidate
->
dev
.
parent
))
return
0
;
*
(
const
char
**
)
name_ptr
=
dev_name
(
dev
);
return
1
;
}
/**
* alarmtimer_get_rtcdev - Return selected rtcdevice
*
* This function returns the rtc device to use for wakealarms.
* If one has not already been chosen, it checks to see if a
* functional rtc device is available.
*/
static
struct
rtc_device
*
alarmtimer_get_rtcdev
(
void
)
{
struct
device
*
dev
;
char
*
str
;
unsigned
long
flags
;
struct
rtc_device
*
ret
;
spin_lock_irqsave
(
&
rtcdev_lock
,
flags
);
if
(
!
rtcdev
)
{
/* Find an rtc device and init the rtc_timer */
dev
=
class_find_device
(
rtc_class
,
NULL
,
&
str
,
has_wakealarm
);
/* If we have a device then str is valid. See has_wakealarm() */
if
(
dev
)
{
rtcdev
=
rtc_class_open
(
str
);
/*
* Drop the reference we got in class_find_device,
* rtc_open takes its own.
*/
put_device
(
dev
);
rtc_timer_init
(
&
rtctimer
,
NULL
,
NULL
);
}
}
ret
=
rtcdev
;
spin_unlock_irqrestore
(
&
rtcdev_lock
,
flags
);
return
ret
;
}
#else
#define alarmtimer_get_rtcdev() (0)
#define rtcdev (0)
#endif
/**
...
...
@@ -166,6 +226,7 @@ static int alarmtimer_suspend(struct device *dev)
struct
rtc_time
tm
;
ktime_t
min
,
now
;
unsigned
long
flags
;
struct
rtc_device
*
rtc
;
int
i
;
spin_lock_irqsave
(
&
freezer_delta_lock
,
flags
);
...
...
@@ -173,8 +234,9 @@ static int alarmtimer_suspend(struct device *dev)
freezer_delta
=
ktime_set
(
0
,
0
);
spin_unlock_irqrestore
(
&
freezer_delta_lock
,
flags
);
rtc
=
rtcdev
;
/* If we have no rtcdev, just return */
if
(
!
rtc
dev
)
if
(
!
rtc
)
return
0
;
/* Find the soonest timer to expire*/
...
...
@@ -199,12 +261,12 @@ static int alarmtimer_suspend(struct device *dev)
WARN_ON
(
min
.
tv64
<
NSEC_PER_SEC
);
/* Setup an rtc timer to fire that far in the future */
rtc_timer_cancel
(
rtc
dev
,
&
rtctimer
);
rtc_read_time
(
rtc
dev
,
&
tm
);
rtc_timer_cancel
(
rtc
,
&
rtctimer
);
rtc_read_time
(
rtc
,
&
tm
);
now
=
rtc_tm_to_ktime
(
tm
);
now
=
ktime_add
(
now
,
min
);
rtc_timer_start
(
rtc
dev
,
&
rtctimer
,
now
,
ktime_set
(
0
,
0
));
rtc_timer_start
(
rtc
,
&
rtctimer
,
now
,
ktime_set
(
0
,
0
));
return
0
;
}
...
...
@@ -322,6 +384,9 @@ static int alarm_clock_getres(const clockid_t which_clock, struct timespec *tp)
{
clockid_t
baseid
=
alarm_bases
[
clock2alarm
(
which_clock
)].
base_clockid
;
if
(
!
alarmtimer_get_rtcdev
())
return
-
ENOTSUPP
;
return
hrtimer_get_res
(
baseid
,
tp
);
}
...
...
@@ -336,6 +401,9 @@ static int alarm_clock_get(clockid_t which_clock, struct timespec *tp)
{
struct
alarm_base
*
base
=
&
alarm_bases
[
clock2alarm
(
which_clock
)];
if
(
!
alarmtimer_get_rtcdev
())
return
-
ENOTSUPP
;
*
tp
=
ktime_to_timespec
(
base
->
gettime
());
return
0
;
}
...
...
@@ -351,6 +419,9 @@ static int alarm_timer_create(struct k_itimer *new_timer)
enum
alarmtimer_type
type
;
struct
alarm_base
*
base
;
if
(
!
alarmtimer_get_rtcdev
())
return
-
ENOTSUPP
;
if
(
!
capable
(
CAP_WAKE_ALARM
))
return
-
EPERM
;
...
...
@@ -385,6 +456,9 @@ static void alarm_timer_get(struct k_itimer *timr,
*/
static
int
alarm_timer_del
(
struct
k_itimer
*
timr
)
{
if
(
!
rtcdev
)
return
-
ENOTSUPP
;
alarm_cancel
(
&
timr
->
it
.
alarmtimer
);
return
0
;
}
...
...
@@ -402,6 +476,9 @@ static int alarm_timer_set(struct k_itimer *timr, int flags,
struct
itimerspec
*
new_setting
,
struct
itimerspec
*
old_setting
)
{
if
(
!
rtcdev
)
return
-
ENOTSUPP
;
/* Save old values */
old_setting
->
it_interval
=
ktime_to_timespec
(
timr
->
it
.
alarmtimer
.
period
);
...
...
@@ -541,6 +618,9 @@ static int alarm_timer_nsleep(const clockid_t which_clock, int flags,
int
ret
=
0
;
struct
restart_block
*
restart
;
if
(
!
alarmtimer_get_rtcdev
())
return
-
ENOTSUPP
;
if
(
!
capable
(
CAP_WAKE_ALARM
))
return
-
EPERM
;
...
...
@@ -638,65 +718,3 @@ static int __init alarmtimer_init(void)
}
device_initcall
(
alarmtimer_init
);
#ifdef CONFIG_RTC_CLASS
/**
* has_wakealarm - check rtc device has wakealarm ability
* @dev: current device
* @name_ptr: name to be returned
*
* This helper function checks to see if the rtc device can wake
* from suspend.
*/
static
int
__init
has_wakealarm
(
struct
device
*
dev
,
void
*
name_ptr
)
{
struct
rtc_device
*
candidate
=
to_rtc_device
(
dev
);
if
(
!
candidate
->
ops
->
set_alarm
)
return
0
;
if
(
!
device_may_wakeup
(
candidate
->
dev
.
parent
))
return
0
;
*
(
const
char
**
)
name_ptr
=
dev_name
(
dev
);
return
1
;
}
/**
* alarmtimer_init_late - Late initializing of alarmtimer code
*
* This function locates a rtc device to use for wakealarms.
* Run as late_initcall to make sure rtc devices have been
* registered.
*/
static
int
__init
alarmtimer_init_late
(
void
)
{
struct
device
*
dev
;
char
*
str
;
/* Find an rtc device and init the rtc_timer */
dev
=
class_find_device
(
rtc_class
,
NULL
,
&
str
,
has_wakealarm
);
/* If we have a device then str is valid. See has_wakealarm() */
if
(
dev
)
{
rtcdev
=
rtc_class_open
(
str
);
/*
* Drop the reference we got in class_find_device,
* rtc_open takes its own.
*/
put_device
(
dev
);
}
if
(
!
rtcdev
)
{
printk
(
KERN_WARNING
"No RTC device found, ALARM timers will"
" not wake from suspend"
);
}
rtc_timer_init
(
&
rtctimer
,
NULL
,
NULL
);
return
0
;
}
#else
static
int
__init
alarmtimer_init_late
(
void
)
{
printk
(
KERN_WARNING
"Kernel not built with RTC support, ALARM timers"
" will not wake from suspend"
);
return
0
;
}
#endif
late_initcall
(
alarmtimer_init_late
);
sound/pci/asihpi/asihpi.c
View file @
daf6c450
...
...
@@ -27,7 +27,6 @@
#include "hpioctl.h"
#include <linux/pci.h>
#include <linux/version.h>
#include <linux/init.h>
#include <linux/jiffies.h>
#include <linux/slab.h>
...
...
sound/pci/hda/patch_realtek.c
View file @
daf6c450
...
...
@@ -4883,7 +4883,6 @@ static const struct snd_pci_quirk alc880_cfg_tbl[] = {
SND_PCI_QUIRK
(
0x1025
,
0xe309
,
"ULI"
,
ALC880_3ST_DIG
),
SND_PCI_QUIRK
(
0x1025
,
0xe310
,
"ULI"
,
ALC880_3ST
),
SND_PCI_QUIRK
(
0x1039
,
0x1234
,
NULL
,
ALC880_6ST_DIG
),
SND_PCI_QUIRK
(
0x103c
,
0x2a09
,
"HP"
,
ALC880_5ST
),
SND_PCI_QUIRK
(
0x1043
,
0x10b3
,
"ASUS W1V"
,
ALC880_ASUS_W1V
),
SND_PCI_QUIRK
(
0x1043
,
0x10c2
,
"ASUS W6A"
,
ALC880_ASUS_DIG
),
SND_PCI_QUIRK
(
0x1043
,
0x10c3
,
"ASUS Wxx"
,
ALC880_ASUS_DIG
),
...
...
@@ -12600,6 +12599,7 @@ static const struct hda_verb alc262_toshiba_rx1_unsol_verbs[] = {
*/
enum
{
PINFIX_FSC_H270
,
PINFIX_HP_Z200
,
};
static
const
struct
alc_fixup
alc262_fixups
[]
=
{
...
...
@@ -12612,9 +12612,17 @@ static const struct alc_fixup alc262_fixups[] = {
{
}
}
},
[
PINFIX_HP_Z200
]
=
{
.
type
=
ALC_FIXUP_PINS
,
.
v
.
pins
=
(
const
struct
alc_pincfg
[])
{
{
0x16
,
0x99130120
},
/* internal speaker */
{
}
}
},
};
static
const
struct
snd_pci_quirk
alc262_fixup_tbl
[]
=
{
SND_PCI_QUIRK
(
0x103c
,
0x170b
,
"HP Z200"
,
PINFIX_HP_Z200
),
SND_PCI_QUIRK
(
0x1734
,
0x1147
,
"FSC Celsius H270"
,
PINFIX_FSC_H270
),
{}
};
...
...
@@ -12731,6 +12739,8 @@ static const struct snd_pci_quirk alc262_cfg_tbl[] = {
ALC262_HP_BPC
),
SND_PCI_QUIRK_MASK
(
0x103c
,
0xff00
,
0x1500
,
"HP z series"
,
ALC262_HP_BPC
),
SND_PCI_QUIRK
(
0x103c
,
0x170b
,
"HP Z200"
,
ALC262_AUTO
),
SND_PCI_QUIRK_MASK
(
0x103c
,
0xff00
,
0x1700
,
"HP xw series"
,
ALC262_HP_BPC
),
SND_PCI_QUIRK
(
0x103c
,
0x2800
,
"HP D7000"
,
ALC262_HP_BPC_D7000_WL
),
...
...
@@ -13872,7 +13882,6 @@ static const struct snd_pci_quirk alc268_cfg_tbl[] = {
SND_PCI_QUIRK
(
0x1043
,
0x1205
,
"ASUS W7J"
,
ALC268_3ST
),
SND_PCI_QUIRK
(
0x1170
,
0x0040
,
"ZEPTO"
,
ALC268_ZEPTO
),
SND_PCI_QUIRK
(
0x14c0
,
0x0025
,
"COMPAL IFL90/JFL-92"
,
ALC268_TOSHIBA
),
SND_PCI_QUIRK
(
0x152d
,
0x0763
,
"Diverse (CPR2000)"
,
ALC268_ACER
),
SND_PCI_QUIRK
(
0x152d
,
0x0771
,
"Quanta IL1"
,
ALC267_QUANTA_IL1
),
{}
};
...
...
sound/pci/hda/patch_via.c
View file @
daf6c450
...
...
@@ -745,12 +745,23 @@ static int via_independent_hp_put(struct snd_kcontrol *kcontrol,
struct
via_spec
*
spec
=
codec
->
spec
;
hda_nid_t
nid
=
kcontrol
->
private_value
;
unsigned
int
pinsel
=
ucontrol
->
value
.
enumerated
.
item
[
0
];
unsigned
int
parm0
,
parm1
;
/* Get Independent Mode index of headphone pin widget */
spec
->
hp_independent_mode
=
spec
->
hp_independent_mode_index
==
pinsel
?
1
:
0
;
if
(
spec
->
codec_type
==
VT1718S
)
if
(
spec
->
codec_type
==
VT1718S
)
{
snd_hda_codec_write
(
codec
,
nid
,
0
,
AC_VERB_SET_CONNECT_SEL
,
pinsel
?
2
:
0
);
/* Set correct mute switch for MW3 */
parm0
=
spec
->
hp_independent_mode
?
AMP_IN_UNMUTE
(
0
)
:
AMP_IN_MUTE
(
0
);
parm1
=
spec
->
hp_independent_mode
?
AMP_IN_MUTE
(
1
)
:
AMP_IN_UNMUTE
(
1
);
snd_hda_codec_write
(
codec
,
0x1b
,
0
,
AC_VERB_SET_AMP_GAIN_MUTE
,
parm0
);
snd_hda_codec_write
(
codec
,
0x1b
,
0
,
AC_VERB_SET_AMP_GAIN_MUTE
,
parm1
);
}
else
snd_hda_codec_write
(
codec
,
nid
,
0
,
AC_VERB_SET_CONNECT_SEL
,
pinsel
);
...
...
@@ -4283,9 +4294,6 @@ static const struct hda_verb vt1718S_volume_init_verbs[] = {
{
0x21
,
AC_VERB_SET_AMP_GAIN_MUTE
,
AMP_IN_MUTE
(
2
)},
{
0x21
,
AC_VERB_SET_AMP_GAIN_MUTE
,
AMP_IN_MUTE
(
3
)},
{
0x21
,
AC_VERB_SET_AMP_GAIN_MUTE
,
AMP_IN_UNMUTE
(
5
)},
/* Setup default input of Front HP to MW9 */
{
0x28
,
AC_VERB_SET_CONNECT_SEL
,
0x1
},
/* PW9 PW10 Output enable */
{
0x2d
,
AC_VERB_SET_PIN_WIDGET_CONTROL
,
AC_PINCTL_OUT_EN
},
{
0x2e
,
AC_VERB_SET_PIN_WIDGET_CONTROL
,
AC_PINCTL_OUT_EN
},
...
...
@@ -4294,10 +4302,10 @@ static const struct hda_verb vt1718S_volume_init_verbs[] = {
/* Enable Boost Volume backdoor */
{
0x1
,
0xf88
,
0x8
},
/* MW0/1/2/3/4: un-mute index 0 (AOWx), mute index 1 (MW9) */
{
0x18
,
AC_VERB_SET_AMP_GAIN_MUTE
,
AMP_IN_
UN
MUTE
(
0
)},
{
0x18
,
AC_VERB_SET_AMP_GAIN_MUTE
,
AMP_IN_MUTE
(
0
)},
{
0x19
,
AC_VERB_SET_AMP_GAIN_MUTE
,
AMP_IN_UNMUTE
(
0
)},
{
0x1a
,
AC_VERB_SET_AMP_GAIN_MUTE
,
AMP_IN_UNMUTE
(
0
)},
{
0x1b
,
AC_VERB_SET_AMP_GAIN_MUTE
,
AMP_IN_
UN
MUTE
(
0
)},
{
0x1b
,
AC_VERB_SET_AMP_GAIN_MUTE
,
AMP_IN_MUTE
(
0
)},
{
0x1c
,
AC_VERB_SET_AMP_GAIN_MUTE
,
AMP_IN_UNMUTE
(
0
)},
{
0x18
,
AC_VERB_SET_AMP_GAIN_MUTE
,
AMP_IN_UNMUTE
(
1
)},
{
0x19
,
AC_VERB_SET_AMP_GAIN_MUTE
,
AMP_IN_MUTE
(
1
)},
...
...
@@ -4307,8 +4315,6 @@ static const struct hda_verb vt1718S_volume_init_verbs[] = {
/* set MUX1 = 2 (AOW4), MUX2 = 1 (AOW3) */
{
0x34
,
AC_VERB_SET_CONNECT_SEL
,
0x2
},
{
0x35
,
AC_VERB_SET_CONNECT_SEL
,
0x1
},
/* Unmute MW4's index 0 */
{
0x1c
,
AC_VERB_SET_AMP_GAIN_MUTE
,
AMP_IN_UNMUTE
(
0
)},
{
}
};
...
...
@@ -4456,6 +4462,19 @@ static int vt1718S_auto_create_multi_out_ctls(struct via_spec *spec,
if
(
err
<
0
)
return
err
;
}
else
if
(
i
==
AUTO_SEQ_FRONT
)
{
/* add control to mixer index 0 */
err
=
via_add_control
(
spec
,
VIA_CTL_WIDGET_VOL
,
"Master Front Playback Volume"
,
HDA_COMPOSE_AMP_VAL
(
0x21
,
3
,
5
,
HDA_INPUT
));
if
(
err
<
0
)
return
err
;
err
=
via_add_control
(
spec
,
VIA_CTL_WIDGET_MUTE
,
"Master Front Playback Switch"
,
HDA_COMPOSE_AMP_VAL
(
0x21
,
3
,
5
,
HDA_INPUT
));
if
(
err
<
0
)
return
err
;
/* Front */
sprintf
(
name
,
"%s Playback Volume"
,
chname
[
i
]);
err
=
via_add_control
(
...
...
sound/soc/codecs/wm8991.c
View file @
daf6c450
...
...
@@ -13,7 +13,6 @@
#include <linux/module.h>
#include <linux/moduleparam.h>
#include <linux/version.h>
#include <linux/kernel.h>
#include <linux/init.h>
#include <linux/delay.h>
...
...
sound/soc/imx/Kconfig
View file @
daf6c450
...
...
@@ -11,9 +11,6 @@ menuconfig SND_IMX_SOC
if SND_IMX_SOC
config SND_MXC_SOC_SSI
tristate
config SND_MXC_SOC_FIQ
tristate
...
...
@@ -24,7 +21,6 @@ config SND_MXC_SOC_WM1133_EV1
tristate "Audio on the the i.MX31ADS with WM1133-EV1 fitted"
depends on MACH_MX31ADS_WM1133_EV1 && EXPERIMENTAL
select SND_SOC_WM8350
select SND_MXC_SOC_SSI
select SND_MXC_SOC_FIQ
help
Enable support for audio on the i.MX31ADS with the WM1133-EV1
...
...
@@ -34,7 +30,6 @@ config SND_SOC_MX27VIS_AIC32X4
tristate "SoC audio support for Visstrim M10 boards"
depends on MACH_IMX27_VISSTRIM_M10
select SND_SOC_TVL320AIC32X4
select SND_MXC_SOC_SSI
select SND_MXC_SOC_MX2
help
Say Y if you want to add support for SoC audio on Visstrim SM10
...
...
@@ -44,7 +39,6 @@ config SND_SOC_PHYCORE_AC97
tristate "SoC Audio support for Phytec phyCORE (and phyCARD) boards"
depends on MACH_PCM043 || MACH_PCA100
select SND_SOC_WM9712
select SND_MXC_SOC_SSI
select SND_MXC_SOC_FIQ
help
Say Y if you want to add support for SoC audio on Phytec phyCORE
...
...
@@ -57,7 +51,6 @@ config SND_SOC_EUKREA_TLV320
|| MACH_EUKREA_MBIMXSD35_BASEBOARD \
|| MACH_EUKREA_MBIMXSD51_BASEBOARD
select SND_SOC_TLV320AIC23
select SND_MXC_SOC_SSI
select SND_MXC_SOC_FIQ
help
Enable I2S based access to the TLV320AIC23B codec attached
...
...
sound/soc/imx/imx-pcm-dma-mx2.c
View file @
daf6c450
...
...
@@ -337,3 +337,5 @@ static void __exit snd_imx_pcm_exit(void)
platform_driver_unregister
(
&
imx_pcm_driver
);
}
module_exit
(
snd_imx_pcm_exit
);
MODULE_LICENSE
(
"GPL"
);
MODULE_ALIAS
(
"platform:imx-pcm-audio"
);
sound/soc/imx/imx-ssi.c
View file @
daf6c450
...
...
@@ -774,4 +774,4 @@ module_exit(imx_ssi_exit);
MODULE_AUTHOR
(
"Sascha Hauer, <s.hauer@pengutronix.de>"
);
MODULE_DESCRIPTION
(
"i.MX I2S/ac97 SoC Interface"
);
MODULE_LICENSE
(
"GPL"
);
MODULE_ALIAS
(
"platform:imx-ssi"
);
sound/soc/pxa/pxa2xx-pcm.c
View file @
daf6c450
...
...
@@ -95,14 +95,14 @@ static int pxa2xx_soc_pcm_new(struct snd_card *card, struct snd_soc_dai *dai,
if
(
!
card
->
dev
->
coherent_dma_mask
)
card
->
dev
->
coherent_dma_mask
=
DMA_BIT_MASK
(
32
);
if
(
dai
->
driver
->
playback
.
channels_min
)
{
if
(
pcm
->
streams
[
SNDRV_PCM_STREAM_PLAYBACK
].
substream
)
{
ret
=
pxa2xx_pcm_preallocate_dma_buffer
(
pcm
,
SNDRV_PCM_STREAM_PLAYBACK
);
if
(
ret
)
goto
out
;
}
if
(
dai
->
driver
->
capture
.
channels_min
)
{
if
(
pcm
->
streams
[
SNDRV_PCM_STREAM_CAPTURE
].
substream
)
{
ret
=
pxa2xx_pcm_preallocate_dma_buffer
(
pcm
,
SNDRV_PCM_STREAM_CAPTURE
);
if
(
ret
)
...
...
sound/soc/soc-cache.c
View file @
daf6c450
...
...
@@ -409,9 +409,6 @@ int snd_soc_codec_set_cache_io(struct snd_soc_codec *codec,
codec
->
bulk_write_raw
=
snd_soc_hw_bulk_write_raw
;
switch
(
control
)
{
case
SND_SOC_CUSTOM
:
break
;
case
SND_SOC_I2C
:
#if defined(CONFIG_I2C) || (defined(CONFIG_I2C_MODULE) && defined(MODULE))
codec
->
hw_write
=
(
hw_write_t
)
i2c_master_send
;
...
...
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