From: Greg KH <gregkh@suse.de>
To: linux-kernel@vger.kernel.org
Cc: dtor_core@ameritech.net
Subject: [PATCH] Input: convert sound/ppc/beep to dynamic input_dev allocation
Date: Thu, 27 Oct 2005 23:30:25 -0700 [thread overview]
Message-ID: <11304810253703@kroah.com> (raw)
In-Reply-To: <11304810253624@kroah.com>
[PATCH] Input: convert sound/ppc/beep to dynamic input_dev allocation
Input: convert sound/ppc/beep to dynamic input_dev allocation
This is required for input_dev sysfs integration
Signed-off-by: Dmitry Torokhov <dtor@mail.ru>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
---
commit 5555c7bc942fff098f65b233d1a47b611a81e7bc
tree ff723bc8e6f4b9d54ac19d1b7bebd9274dc5d15c
parent 08303093569fb58889c06a5920947fafc22b66ff
author Dmitry Torokhov <dtor_core@ameritech.net> Thu, 15 Sep 2005 02:01:49 -0500
committer Greg Kroah-Hartman <gregkh@suse.de> Thu, 27 Oct 2005 22:48:05 -0700
sound/ppc/beep.c | 68 ++++++++++++++++++++++++++++++------------------------
1 files changed, 38 insertions(+), 30 deletions(-)
diff --git a/sound/ppc/beep.c b/sound/ppc/beep.c
index 31ea7a4..1681ee1 100644
--- a/sound/ppc/beep.c
+++ b/sound/ppc/beep.c
@@ -31,14 +31,14 @@
#include "pmac.h"
struct snd_pmac_beep {
- int running; /* boolean */
- int volume; /* mixer volume: 0-100 */
+ int running; /* boolean */
+ int volume; /* mixer volume: 0-100 */
int volume_play; /* currently playing volume */
int hz;
int nsamples;
short *buf; /* allocated wave buffer */
dma_addr_t addr; /* physical address of buffer */
- struct input_dev dev;
+ struct input_dev *dev;
};
/*
@@ -212,47 +212,55 @@ static snd_kcontrol_new_t snd_pmac_beep_
int __init snd_pmac_attach_beep(pmac_t *chip)
{
pmac_beep_t *beep;
- int err;
-
- beep = kmalloc(sizeof(*beep), GFP_KERNEL);
- if (! beep)
- return -ENOMEM;
-
- memset(beep, 0, sizeof(*beep));
- beep->buf = dma_alloc_coherent(&chip->pdev->dev, BEEP_BUFLEN * 4,
- &beep->addr, GFP_KERNEL);
-
- beep->dev.evbit[0] = BIT(EV_SND);
- beep->dev.sndbit[0] = BIT(SND_BELL) | BIT(SND_TONE);
- beep->dev.event = snd_pmac_beep_event;
- beep->dev.private = chip;
+ struct input_dev *input_dev;
+ void *dmabuf;
+ int err = -ENOMEM;
+
+ beep = kzalloc(sizeof(*beep), GFP_KERNEL);
+ dmabuf = dma_alloc_coherent(&chip->pdev->dev, BEEP_BUFLEN * 4,
+ &beep->addr, GFP_KERNEL);
+ input_dev = input_allocate_device();
+ if (!beep || !dmabuf || !input_dev)
+ goto fail;
/* FIXME: set more better values */
- beep->dev.name = "PowerMac Beep";
- beep->dev.phys = "powermac/beep";
- beep->dev.id.bustype = BUS_ADB;
- beep->dev.id.vendor = 0x001f;
- beep->dev.id.product = 0x0001;
- beep->dev.id.version = 0x0100;
+ input_dev->name = "PowerMac Beep";
+ input_dev->phys = "powermac/beep";
+ input_dev->id.bustype = BUS_ADB;
+ input_dev->id.vendor = 0x001f;
+ input_dev->id.product = 0x0001;
+ input_dev->id.version = 0x0100;
+
+ input_dev->evbit[0] = BIT(EV_SND);
+ input_dev->sndbit[0] = BIT(SND_BELL) | BIT(SND_TONE);
+ input_dev->event = snd_pmac_beep_event;
+ input_dev->private = chip;
+ input_dev->cdev.dev = &chip->pdev->dev;
+ beep->dev = input_dev;
+ beep->buf = dmabuf;
beep->volume = BEEP_VOLUME;
beep->running = 0;
- if ((err = snd_ctl_add(chip->card, snd_ctl_new1(&snd_pmac_beep_mixer, chip))) < 0) {
- kfree(beep->buf);
- kfree(beep);
- return err;
- }
+
+ err = snd_ctl_add(chip->card, snd_ctl_new1(&snd_pmac_beep_mixer, chip));
+ if (err < 0)
+ goto fail;
chip->beep = beep;
- input_register_device(&beep->dev);
+ input_register_device(beep->dev);
return 0;
+
+ fail: input_free_device(input_dev);
+ kfree(dmabuf);
+ kfree(beep);
+ return err;
}
void snd_pmac_detach_beep(pmac_t *chip)
{
if (chip->beep) {
- input_unregister_device(&chip->beep->dev);
+ input_unregister_device(chip->beep->dev);
dma_free_coherent(&chip->pdev->dev, BEEP_BUFLEN * 4,
chip->beep->buf, chip->beep->addr);
kfree(chip->beep);
next prev parent reply other threads:[~2005-10-28 6:36 UTC|newest]
Thread overview: 22+ messages / expand[flat|nested] mbox.gz Atom feed top
[not found] <11304810253548@kroah.com>
2005-10-28 6:30 ` [PATCH] Input: convert drivers/macintosh to dynamic input_dev allocation Greg KH
2005-10-28 6:30 ` Greg KH [this message]
2005-10-28 6:30 ` [PATCH] drivers/media: convert " Greg KH
2005-10-28 6:30 ` [PATCH] Input: show sysfs path in /proc/bus/input/devices Greg KH
2005-10-28 6:30 ` [PATCH] Input: export input_dev data via sysfs attributes Greg KH
2005-10-28 6:30 ` [PATCH] INPUT: remove the input_class structure, as it is unused Greg KH
2005-10-28 6:30 ` [PATCH] INPUT: export input_dev_class so that input drivers can use it Greg KH
2005-10-28 6:30 ` [PATCH] INPUT: Fix oops when accessing sysfs files of nested input devices Greg KH
2005-10-28 6:30 ` [PATCH] INPUT: register the input class device sooner Greg KH
2005-10-28 6:30 ` [PATCH] INPUT: move the input class devices under their new input_dev devices Greg KH
2005-10-28 6:30 ` [PATCH] INPUT: rename input_dev_class to input_class to be correct Greg KH
2005-10-28 6:30 ` [PATCH] input core: remove custom-made hotplug handler Greg KH
2005-10-28 6:30 ` [PATCH] update required version of udev Greg KH
2005-10-28 6:30 ` [PATCH] Driver Core: Big kfree NULL check cleanup - Documentation Greg KH
2005-10-28 6:30 ` [PATCH] INPUT: Create symlinks for backwards compatibility Greg KH
2005-10-28 6:30 ` [PATCH] drivers/base - fix sparse warnings Greg KH
2005-10-28 6:30 ` [PATCH] kernel-doc: drivers/base fixes Greg KH
2005-10-28 6:30 ` [PATCH] DRIVER MODEL: Get rid of the obsolete tri-level suspend/resume callbacks Greg KH
2005-10-28 9:14 ` Russell King
2005-10-28 10:04 ` Takashi Iwai
2005-10-28 11:13 ` Russell King
2005-10-28 14:45 ` Takashi Iwai
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=11304810253703@kroah.com \
--to=gregkh@suse.de \
--cc=dtor_core@ameritech.net \
--cc=greg@kroah.com \
--cc=linux-kernel@vger.kernel.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.