Commit 04f141a8 authored by Takashi Iwai's avatar Takashi Iwai Committed by Jaroslav Kysela

[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: default avatarTakashi Iwai <tiwai@suse.de>
parent e28563cc
...@@ -1053,6 +1053,7 @@ static int snd_mixer_oss_build_input(struct snd_mixer_oss *mixer, struct snd_mix ...@@ -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) ...@@ -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) ...@@ -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) ...@@ -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; ...@@ -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 ...@@ -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) ...@@ -276,12 +278,10 @@ info_read(struct snd_info_entry *entry, struct snd_info_buffer *buf)
up(&register_mutex); up(&register_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) ...@@ -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) ...@@ -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) ...@@ -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 ...@@ -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) ...@@ -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 ...@@ -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 ...@@ -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 ...@@ -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) ...@@ -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 ...@@ -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, ...@@ -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 { ...@@ -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); ...@@ -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, ...@@ -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) ...@@ -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) ...@@ -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 @@ ...@@ -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 *, ...@@ -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) ...@@ -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 ...@@ -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) ...@@ -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, ...@@ -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) ...@@ -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, ...@@ -451,3 +452,5 @@ void snd_seq_info_timer_read(struct snd_info_entry *entry,
queuefree(q); queuefree(q);
} }
} }
#endif /* CONFIG_PROC_FS */
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment