aboutsummaryrefslogtreecommitdiffstats
path: root/sound/core/seq/seq_device.c
diff options
context:
space:
mode:
authorTakashi Iwai <tiwai@suse.de>2015-02-12 13:40:50 +0100
committerTakashi Iwai <tiwai@suse.de>2015-02-12 14:13:47 +0100
commitaf03c243a1f014145dae34368fe975b2f08ed964 (patch)
tree1f414301b2d7ea0a4e074e191c22dc88278cb2ab /sound/core/seq/seq_device.c
parentALSA: seq: Rewrite sequencer device binding with standard bus (diff)
downloadlinux-dev-af03c243a1f014145dae34368fe975b2f08ed964.tar.xz
linux-dev-af03c243a1f014145dae34368fe975b2f08ed964.zip
ALSA: seq: Clean up device and driver structs
Use const string pointer instead of copying the id string to each object. Also drop the status and list fields of snd_seq_device struct that are no longer used. Signed-off-by: Takashi Iwai <tiwai@suse.de>
Diffstat (limited to 'sound/core/seq/seq_device.c')
-rw-r--r--sound/core/seq/seq_device.c31
1 files changed, 10 insertions, 21 deletions
diff --git a/sound/core/seq/seq_device.c b/sound/core/seq/seq_device.c
index d3320ffe43c2..49daf6e3a387 100644
--- a/sound/core/seq/seq_device.c
+++ b/sound/core/seq/seq_device.c
@@ -54,7 +54,7 @@ MODULE_LICENSE("GPL");
struct snd_seq_driver {
struct device_driver driver;
- char id[ID_LEN];
+ const char *id;
int argsize;
struct snd_seq_dev_ops ops;
};
@@ -215,8 +215,8 @@ static void snd_seq_dev_release(struct device *dev)
* id = id of driver
* result = return pointer (NULL allowed if unnecessary)
*/
-int snd_seq_device_new(struct snd_card *card, int device, char *id, int argsize,
- struct snd_seq_device **result)
+int snd_seq_device_new(struct snd_card *card, int device, const char *id,
+ int argsize, struct snd_seq_device **result)
{
struct snd_seq_device *dev;
int err;
@@ -239,9 +239,8 @@ int snd_seq_device_new(struct snd_card *card, int device, char *id, int argsize,
/* set up device info */
dev->card = card;
dev->device = device;
- strlcpy(dev->id, id, sizeof(dev->id));
+ dev->id = id;
dev->argsize = argsize;
- dev->status = SNDRV_SEQ_DEVICE_FREE;
device_initialize(&dev->dev);
dev->dev.parent = &card->card_dev;
@@ -270,26 +269,16 @@ static int snd_seq_drv_probe(struct device *dev)
{
struct snd_seq_driver *sdrv = to_seq_drv(dev->driver);
struct snd_seq_device *sdev = to_seq_dev(dev);
- int err;
- err = sdrv->ops.init_device(sdev);
- if (err < 0)
- return err;
- sdev->status = SNDRV_SEQ_DEVICE_REGISTERED;
- return 0;
+ return sdrv->ops.init_device(sdev);
}
static int snd_seq_drv_remove(struct device *dev)
{
struct snd_seq_driver *sdrv = to_seq_drv(dev->driver);
struct snd_seq_device *sdev = to_seq_dev(dev);
- int err;
- err = sdrv->ops.free_device(sdev);
- if (err < 0)
- return err;
- sdev->status = SNDRV_SEQ_DEVICE_FREE;
- return 0;
+ return sdrv->ops.free_device(sdev);
}
/*
@@ -297,8 +286,8 @@ static int snd_seq_drv_remove(struct device *dev)
* id = driver id
* entry = driver operators - duplicated to each instance
*/
-int snd_seq_device_register_driver(char *id, struct snd_seq_dev_ops *entry,
- int argsize)
+int snd_seq_device_register_driver(const char *id,
+ struct snd_seq_dev_ops *entry, int argsize)
{
struct snd_seq_driver *sdrv;
int err;
@@ -315,7 +304,7 @@ int snd_seq_device_register_driver(char *id, struct snd_seq_dev_ops *entry,
sdrv->driver.bus = &snd_seq_bus_type;
sdrv->driver.probe = snd_seq_drv_probe;
sdrv->driver.remove = snd_seq_drv_remove;
- strlcpy(sdrv->id, id, sizeof(sdrv->id));
+ sdrv->id = id;
sdrv->argsize = argsize;
sdrv->ops = *entry;
@@ -343,7 +332,7 @@ static int find_drv(struct device_driver *drv, void *data)
/*
* unregister the specified driver
*/
-int snd_seq_device_unregister_driver(char *id)
+int snd_seq_device_unregister_driver(const char *id)
{
struct snd_seq_driver *sdrv = (struct snd_seq_driver *)id;