21 |
#include <sound/driver.h> |
#include <sound/driver.h> |
22 |
#include <linux/version.h> |
#include <linux/version.h> |
23 |
#include <linux/init.h> |
#include <linux/init.h> |
|
#if LINUX_VERSION_CODE >= KERNEL_VERSION(2, 5, 0) |
|
24 |
#include <linux/jiffies.h> |
#include <linux/jiffies.h> |
|
#else |
|
|
#include <linux/sched.h> |
|
|
#endif |
|
25 |
#include <linux/slab.h> |
#include <linux/slab.h> |
26 |
#include <linux/time.h> |
#include <linux/time.h> |
27 |
#include <linux/wait.h> |
#include <linux/wait.h> |
54 |
#if 0 /* ICE1712 emulation */ |
#if 0 /* ICE1712 emulation */ |
55 |
#define MAX_BUFFER_SIZE (256 * 1024) |
#define MAX_BUFFER_SIZE (256 * 1024) |
56 |
#define USE_FORMATS SNDRV_PCM_FMTBIT_S32_LE |
#define USE_FORMATS SNDRV_PCM_FMTBIT_S32_LE |
57 |
#define USE_CHANNELS_MIN 12 |
#define USE_CHANNELS_MIN 10 |
58 |
#define USE_CHANNELS_MAX 12 |
#define USE_CHANNELS_MAX 10 |
59 |
#define USE_PERIODS_MIN 1 |
#define USE_PERIODS_MIN 1 |
60 |
#define USE_PERIODS_MAX 1024 |
#define USE_PERIODS_MAX 1024 |
61 |
#endif |
#endif |
426 |
{ |
{ |
427 |
uinfo->type = SNDRV_CTL_ELEM_TYPE_INTEGER; |
uinfo->type = SNDRV_CTL_ELEM_TYPE_INTEGER; |
428 |
uinfo->count = 2; |
uinfo->count = 2; |
429 |
uinfo->value.integer.min = 0; |
uinfo->value.integer.min = -50; |
430 |
uinfo->value.integer.max = 100; |
uinfo->value.integer.max = 100; |
431 |
return 0; |
return 0; |
432 |
} |
} |
451 |
int change, addr = kcontrol->private_value; |
int change, addr = kcontrol->private_value; |
452 |
int left, right; |
int left, right; |
453 |
|
|
454 |
left = ucontrol->value.integer.value[0] % 101; |
left = ucontrol->value.integer.value[0]; |
455 |
right = ucontrol->value.integer.value[1] % 101; |
if (left < -50) |
456 |
|
left = -50; |
457 |
|
if (left > 100) |
458 |
|
left = 100; |
459 |
|
right = ucontrol->value.integer.value[1]; |
460 |
|
if (right < -50) |
461 |
|
right = -50; |
462 |
|
if (right > 100) |
463 |
|
right = 100; |
464 |
spin_lock_irqsave(&dummy->mixer_lock, flags); |
spin_lock_irqsave(&dummy->mixer_lock, flags); |
465 |
change = dummy->mixer_volume[addr][0] != left || |
change = dummy->mixer_volume[addr][0] != left || |
466 |
dummy->mixer_volume[addr][1] != right; |
dummy->mixer_volume[addr][1] != right; |