[ALSA] Optimize for config without PROC_FS (seq and oss parts)
Modules: ALSA<-OSS emulation,ALSA sequencer,ALSA<-OSS sequencer Optimize the code when compiled without CONFIG_PROC_FS (in seq and oss emulation parts). Signed-off-by: Takashi Iwai <tiwai@suse.de>
This commit is contained in:
parent
e28563cceb
commit
04f141a880
|
@ -1053,6 +1053,7 @@ static int snd_mixer_oss_build_input(struct snd_mixer_oss *mixer, struct snd_mix
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#ifdef CONFIG_PROC_FS
|
||||||
/*
|
/*
|
||||||
*/
|
*/
|
||||||
#define MIXER_VOL(name) [SOUND_MIXER_##name] = #name
|
#define MIXER_VOL(name) [SOUND_MIXER_##name] = #name
|
||||||
|
@ -1200,6 +1201,10 @@ static void snd_mixer_oss_proc_done(struct snd_mixer_oss *mixer)
|
||||||
mixer->proc_entry = NULL;
|
mixer->proc_entry = NULL;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
#else /* !CONFIG_PROC_FS */
|
||||||
|
#define snd_mixer_oss_proc_init(mix)
|
||||||
|
#define snd_mixer_oss_proc_done(mix)
|
||||||
|
#endif /* CONFIG_PROC_FS */
|
||||||
|
|
||||||
static void snd_mixer_oss_build(struct snd_mixer_oss *mixer)
|
static void snd_mixer_oss_build(struct snd_mixer_oss *mixer)
|
||||||
{
|
{
|
||||||
|
|
|
@ -2269,6 +2269,7 @@ static int snd_pcm_oss_mmap(struct file *file, struct vm_area_struct *area)
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#ifdef CONFIG_PROC_FS
|
||||||
/*
|
/*
|
||||||
* /proc interface
|
* /proc interface
|
||||||
*/
|
*/
|
||||||
|
@ -2420,6 +2421,10 @@ static void snd_pcm_oss_proc_done(struct snd_pcm *pcm)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
#else /* !CONFIG_PROC_FS */
|
||||||
|
#define snd_pcm_oss_proc_init(pcm)
|
||||||
|
#define snd_pcm_oss_proc_done(pcm)
|
||||||
|
#endif /* CONFIG_PROC_FS */
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* ENTRY functions
|
* ENTRY functions
|
||||||
|
|
|
@ -52,8 +52,13 @@ int seq_oss_debug = 0;
|
||||||
*/
|
*/
|
||||||
static int register_device(void);
|
static int register_device(void);
|
||||||
static void unregister_device(void);
|
static void unregister_device(void);
|
||||||
|
#ifdef CONFIG_PROC_FS
|
||||||
static int register_proc(void);
|
static int register_proc(void);
|
||||||
static void unregister_proc(void);
|
static void unregister_proc(void);
|
||||||
|
#else
|
||||||
|
static inline int register_proc(void) { return 0; }
|
||||||
|
static inline void unregister_proc(void) {}
|
||||||
|
#endif
|
||||||
|
|
||||||
static int odev_open(struct inode *inode, struct file *file);
|
static int odev_open(struct inode *inode, struct file *file);
|
||||||
static int odev_release(struct inode *inode, struct file *file);
|
static int odev_release(struct inode *inode, struct file *file);
|
||||||
|
@ -61,9 +66,6 @@ static ssize_t odev_read(struct file *file, char __user *buf, size_t count, loff
|
||||||
static ssize_t odev_write(struct file *file, const char __user *buf, size_t count, loff_t *offset);
|
static ssize_t odev_write(struct file *file, const char __user *buf, size_t count, loff_t *offset);
|
||||||
static long odev_ioctl(struct file *file, unsigned int cmd, unsigned long arg);
|
static long odev_ioctl(struct file *file, unsigned int cmd, unsigned long arg);
|
||||||
static unsigned int odev_poll(struct file *file, poll_table * wait);
|
static unsigned int odev_poll(struct file *file, poll_table * wait);
|
||||||
#ifdef CONFIG_PROC_FS
|
|
||||||
static void info_read(struct snd_info_entry *entry, struct snd_info_buffer *buf);
|
|
||||||
#endif
|
|
||||||
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
|
@ -276,12 +278,10 @@ info_read(struct snd_info_entry *entry, struct snd_info_buffer *buf)
|
||||||
up(®ister_mutex);
|
up(®ister_mutex);
|
||||||
}
|
}
|
||||||
|
|
||||||
#endif /* CONFIG_PROC_FS */
|
|
||||||
|
|
||||||
static int __init
|
static int __init
|
||||||
register_proc(void)
|
register_proc(void)
|
||||||
{
|
{
|
||||||
#ifdef CONFIG_PROC_FS
|
|
||||||
struct snd_info_entry *entry;
|
struct snd_info_entry *entry;
|
||||||
|
|
||||||
entry = snd_info_create_module_entry(THIS_MODULE, SNDRV_SEQ_OSS_PROCNAME, snd_seq_root);
|
entry = snd_info_create_module_entry(THIS_MODULE, SNDRV_SEQ_OSS_PROCNAME, snd_seq_root);
|
||||||
|
@ -297,16 +297,14 @@ register_proc(void)
|
||||||
return -ENOMEM;
|
return -ENOMEM;
|
||||||
}
|
}
|
||||||
info_entry = entry;
|
info_entry = entry;
|
||||||
#endif
|
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
static void
|
static void
|
||||||
unregister_proc(void)
|
unregister_proc(void)
|
||||||
{
|
{
|
||||||
#ifdef CONFIG_PROC_FS
|
|
||||||
if (info_entry)
|
if (info_entry)
|
||||||
snd_info_unregister(info_entry);
|
snd_info_unregister(info_entry);
|
||||||
info_entry = NULL;
|
info_entry = NULL;
|
||||||
#endif
|
|
||||||
}
|
}
|
||||||
|
#endif /* CONFIG_PROC_FS */
|
||||||
|
|
|
@ -502,6 +502,7 @@ snd_seq_oss_reset(struct seq_oss_devinfo *dp)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
#ifdef CONFIG_PROC_FS
|
||||||
/*
|
/*
|
||||||
* misc. functions for proc interface
|
* misc. functions for proc interface
|
||||||
*/
|
*/
|
||||||
|
@ -552,4 +553,4 @@ snd_seq_oss_system_info_read(struct snd_info_buffer *buf)
|
||||||
snd_seq_oss_readq_info_read(dp->readq, buf);
|
snd_seq_oss_readq_info_read(dp->readq, buf);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
#endif /* CONFIG_PROC_FS */
|
||||||
|
|
|
@ -668,6 +668,7 @@ snd_seq_oss_midi_make_info(struct seq_oss_devinfo *dp, int dev, struct midi_info
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
#ifdef CONFIG_PROC_FS
|
||||||
/*
|
/*
|
||||||
* proc interface
|
* proc interface
|
||||||
*/
|
*/
|
||||||
|
@ -707,4 +708,4 @@ snd_seq_oss_midi_info_read(struct snd_info_buffer *buf)
|
||||||
snd_use_lock_free(&mdev->use_lock);
|
snd_use_lock_free(&mdev->use_lock);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
#endif /* CONFIG_PROC_FS */
|
||||||
|
|
|
@ -222,6 +222,7 @@ snd_seq_oss_readq_put_timestamp(struct seq_oss_readq *q, unsigned long curt, int
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
#ifdef CONFIG_PROC_FS
|
||||||
/*
|
/*
|
||||||
* proc interface
|
* proc interface
|
||||||
*/
|
*/
|
||||||
|
@ -232,3 +233,4 @@ snd_seq_oss_readq_info_read(struct seq_oss_readq *q, struct snd_info_buffer *buf
|
||||||
(waitqueue_active(&q->midi_sleep) ? "sleeping":"running"),
|
(waitqueue_active(&q->midi_sleep) ? "sleeping":"running"),
|
||||||
q->qlen, q->input_time);
|
q->qlen, q->input_time);
|
||||||
}
|
}
|
||||||
|
#endif /* CONFIG_PROC_FS */
|
||||||
|
|
|
@ -621,6 +621,7 @@ snd_seq_oss_synth_make_info(struct seq_oss_devinfo *dp, int dev, struct synth_in
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
#ifdef CONFIG_PROC_FS
|
||||||
/*
|
/*
|
||||||
* proc interface
|
* proc interface
|
||||||
*/
|
*/
|
||||||
|
@ -648,4 +649,4 @@ snd_seq_oss_synth_info_read(struct snd_info_buffer *buf)
|
||||||
snd_use_lock_free(&rec->use_lock);
|
snd_use_lock_free(&rec->use_lock);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
#endif /* CONFIG_PROC_FS */
|
||||||
|
|
|
@ -2413,6 +2413,7 @@ int snd_seq_kernel_client_write_poll(int clientid, struct file *file, poll_table
|
||||||
|
|
||||||
/*---------------------------------------------------------------------------*/
|
/*---------------------------------------------------------------------------*/
|
||||||
|
|
||||||
|
#ifdef CONFIG_PROC_FS
|
||||||
/*
|
/*
|
||||||
* /proc interface
|
* /proc interface
|
||||||
*/
|
*/
|
||||||
|
@ -2518,7 +2519,7 @@ void snd_seq_info_clients_read(struct snd_info_entry *entry,
|
||||||
snd_seq_client_unlock(client);
|
snd_seq_client_unlock(client);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
#endif /* CONFIG_PROC_FS */
|
||||||
|
|
||||||
/*---------------------------------------------------------------------------*/
|
/*---------------------------------------------------------------------------*/
|
||||||
|
|
||||||
|
|
|
@ -78,7 +78,9 @@ struct ops_list {
|
||||||
static LIST_HEAD(opslist);
|
static LIST_HEAD(opslist);
|
||||||
static int num_ops;
|
static int num_ops;
|
||||||
static DECLARE_MUTEX(ops_mutex);
|
static DECLARE_MUTEX(ops_mutex);
|
||||||
|
#ifdef CONFIG_PROC_FS
|
||||||
static struct snd_info_entry *info_entry = NULL;
|
static struct snd_info_entry *info_entry = NULL;
|
||||||
|
#endif
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* prototypes
|
* prototypes
|
||||||
|
@ -100,6 +102,7 @@ static void remove_drivers(void);
|
||||||
* show all drivers and their status
|
* show all drivers and their status
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
#ifdef CONFIG_PROC_FS
|
||||||
static void snd_seq_device_info(struct snd_info_entry *entry,
|
static void snd_seq_device_info(struct snd_info_entry *entry,
|
||||||
struct snd_info_buffer *buffer)
|
struct snd_info_buffer *buffer)
|
||||||
{
|
{
|
||||||
|
@ -117,6 +120,7 @@ static void snd_seq_device_info(struct snd_info_entry *entry,
|
||||||
}
|
}
|
||||||
up(&ops_mutex);
|
up(&ops_mutex);
|
||||||
}
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* load all registered drivers (called from seq_clientmgr.c)
|
* load all registered drivers (called from seq_clientmgr.c)
|
||||||
|
@ -544,6 +548,7 @@ static void unlock_driver(struct ops_list *ops)
|
||||||
|
|
||||||
static int __init alsa_seq_device_init(void)
|
static int __init alsa_seq_device_init(void)
|
||||||
{
|
{
|
||||||
|
#ifdef CONFIG_PROC_FS
|
||||||
info_entry = snd_info_create_module_entry(THIS_MODULE, "drivers",
|
info_entry = snd_info_create_module_entry(THIS_MODULE, "drivers",
|
||||||
snd_seq_root);
|
snd_seq_root);
|
||||||
if (info_entry == NULL)
|
if (info_entry == NULL)
|
||||||
|
@ -555,13 +560,16 @@ static int __init alsa_seq_device_init(void)
|
||||||
snd_info_free_entry(info_entry);
|
snd_info_free_entry(info_entry);
|
||||||
return -ENOMEM;
|
return -ENOMEM;
|
||||||
}
|
}
|
||||||
|
#endif
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
static void __exit alsa_seq_device_exit(void)
|
static void __exit alsa_seq_device_exit(void)
|
||||||
{
|
{
|
||||||
remove_drivers();
|
remove_drivers();
|
||||||
|
#ifdef CONFIG_PROC_FS
|
||||||
snd_info_unregister(info_entry);
|
snd_info_unregister(info_entry);
|
||||||
|
#endif
|
||||||
if (num_ops)
|
if (num_ops)
|
||||||
snd_printk(KERN_ERR "drivers not released (%d)\n", num_ops);
|
snd_printk(KERN_ERR "drivers not released (%d)\n", num_ops);
|
||||||
}
|
}
|
||||||
|
|
|
@ -27,7 +27,7 @@
|
||||||
#include "seq_clientmgr.h"
|
#include "seq_clientmgr.h"
|
||||||
#include "seq_timer.h"
|
#include "seq_timer.h"
|
||||||
|
|
||||||
|
#ifdef CONFIG_PROC_FS
|
||||||
static struct snd_info_entry *queues_entry;
|
static struct snd_info_entry *queues_entry;
|
||||||
static struct snd_info_entry *clients_entry;
|
static struct snd_info_entry *clients_entry;
|
||||||
static struct snd_info_entry *timer_entry;
|
static struct snd_info_entry *timer_entry;
|
||||||
|
@ -52,7 +52,6 @@ create_info_entry(char *name, int size, void (*read)(struct snd_info_entry *,
|
||||||
return entry;
|
return entry;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
/* create all our /proc entries */
|
/* create all our /proc entries */
|
||||||
int __init snd_seq_info_init(void)
|
int __init snd_seq_info_init(void)
|
||||||
{
|
{
|
||||||
|
@ -66,11 +65,9 @@ int __init snd_seq_info_init(void)
|
||||||
|
|
||||||
int __exit snd_seq_info_done(void)
|
int __exit snd_seq_info_done(void)
|
||||||
{
|
{
|
||||||
if (queues_entry)
|
snd_info_unregister(queues_entry);
|
||||||
snd_info_unregister(queues_entry);
|
snd_info_unregister(clients_entry);
|
||||||
if (clients_entry)
|
snd_info_unregister(timer_entry);
|
||||||
snd_info_unregister(clients_entry);
|
|
||||||
if (timer_entry)
|
|
||||||
snd_info_unregister(timer_entry);
|
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
#endif
|
||||||
|
|
|
@ -29,8 +29,12 @@ void snd_seq_info_timer_read(struct snd_info_entry *entry, struct snd_info_buffe
|
||||||
void snd_seq_info_queues_read(struct snd_info_entry *entry, struct snd_info_buffer *buffer);
|
void snd_seq_info_queues_read(struct snd_info_entry *entry, struct snd_info_buffer *buffer);
|
||||||
|
|
||||||
|
|
||||||
|
#ifdef CONFIG_PROC_FS
|
||||||
int snd_seq_info_init( void );
|
int snd_seq_info_init( void );
|
||||||
int snd_seq_info_done( void );
|
int snd_seq_info_done( void );
|
||||||
|
#else
|
||||||
|
static inline int snd_seq_info_init(void) { return 0; }
|
||||||
|
static inline int snd_seq_info_done(void) { return 0; }
|
||||||
|
#endif
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
|
|
@ -756,6 +756,7 @@ int snd_seq_control_queue(struct snd_seq_event *ev, int atomic, int hop)
|
||||||
|
|
||||||
/*----------------------------------------------------------------*/
|
/*----------------------------------------------------------------*/
|
||||||
|
|
||||||
|
#ifdef CONFIG_PROC_FS
|
||||||
/* exported to seq_info.c */
|
/* exported to seq_info.c */
|
||||||
void snd_seq_info_queues_read(struct snd_info_entry *entry,
|
void snd_seq_info_queues_read(struct snd_info_entry *entry,
|
||||||
struct snd_info_buffer *buffer)
|
struct snd_info_buffer *buffer)
|
||||||
|
@ -789,3 +790,5 @@ void snd_seq_info_queues_read(struct snd_info_entry *entry,
|
||||||
queuefree(q);
|
queuefree(q);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
#endif /* CONFIG_PROC_FS */
|
||||||
|
|
||||||
|
|
|
@ -425,6 +425,7 @@ snd_seq_tick_time_t snd_seq_timer_get_cur_tick(struct snd_seq_timer *tmr)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
#ifdef CONFIG_PROC_FS
|
||||||
/* exported to seq_info.c */
|
/* exported to seq_info.c */
|
||||||
void snd_seq_info_timer_read(struct snd_info_entry *entry,
|
void snd_seq_info_timer_read(struct snd_info_entry *entry,
|
||||||
struct snd_info_buffer *buffer)
|
struct snd_info_buffer *buffer)
|
||||||
|
@ -451,3 +452,5 @@ void snd_seq_info_timer_read(struct snd_info_entry *entry,
|
||||||
queuefree(q);
|
queuefree(q);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
#endif /* CONFIG_PROC_FS */
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue