Skip to content

Commit 76b7cdd

Browse files
Dmitry Torokhovgregkh
authored andcommitted
[PATCH] Input: convert driver/input/misc to dynamic input_dev allocation
Input: convert driver/input/misc 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>
1 parent 8878967 commit 76b7cdd

File tree

3 files changed

+56
-57
lines changed

3 files changed

+56
-57
lines changed

drivers/input/misc/m68kspkr.c

Lines changed: 18 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -24,9 +24,7 @@ MODULE_AUTHOR("Richard Zidlicky <rz@linux-m68k.org>");
2424
MODULE_DESCRIPTION("m68k beeper driver");
2525
MODULE_LICENSE("GPL");
2626

27-
static char m68kspkr_name[] = "m68k beeper";
28-
static char m68kspkr_phys[] = "m68k/generic";
29-
static struct input_dev m68kspkr_dev;
27+
static struct input_dev *m68kspkr_dev;
3028

3129
static int m68kspkr_event(struct input_dev *dev, unsigned int type, unsigned int code, int value)
3230
{
@@ -51,32 +49,34 @@ static int m68kspkr_event(struct input_dev *dev, unsigned int type, unsigned int
5149

5250
static int __init m68kspkr_init(void)
5351
{
54-
if (!mach_beep){
55-
printk("%s: no lowlevel beep support\n", m68kspkr_name);
56-
return -1;
52+
if (!mach_beep) {
53+
printk(KERN_INFO "m68kspkr: no lowlevel beep support\n");
54+
return -ENODEV;
5755
}
5856

59-
m68kspkr_dev.evbit[0] = BIT(EV_SND);
60-
m68kspkr_dev.sndbit[0] = BIT(SND_BELL) | BIT(SND_TONE);
61-
m68kspkr_dev.event = m68kspkr_event;
57+
m68kspkr_dev = input_allocate_device();
58+
if (!m68kspkr_dev)
59+
return -ENOMEM;
6260

63-
m68kspkr_dev.name = m68kspkr_name;
64-
m68kspkr_dev.phys = m68kspkr_phys;
65-
m68kspkr_dev.id.bustype = BUS_HOST;
66-
m68kspkr_dev.id.vendor = 0x001f;
67-
m68kspkr_dev.id.product = 0x0001;
68-
m68kspkr_dev.id.version = 0x0100;
61+
m68kspkr_dev->name = "m68k beeper";
62+
m68kspkr_dev->phys = "m68k/generic";
63+
m68kspkr_dev->id.bustype = BUS_HOST;
64+
m68kspkr_dev->id.vendor = 0x001f;
65+
m68kspkr_dev->id.product = 0x0001;
66+
m68kspkr_dev->id.version = 0x0100;
6967

70-
input_register_device(&m68kspkr_dev);
68+
m68kspkr_dev->evbit[0] = BIT(EV_SND);
69+
m68kspkr_dev->sndbit[0] = BIT(SND_BELL) | BIT(SND_TONE);
70+
m68kspkr_dev->event = m68kspkr_event;
7171

72-
printk(KERN_INFO "input: %s\n", m68kspkr_name);
72+
input_register_device(m68kspkr_dev);
7373

7474
return 0;
7575
}
7676

7777
static void __exit m68kspkr_exit(void)
7878
{
79-
input_unregister_device(&m68kspkr_dev);
79+
input_unregister_device(m68kspkr_dev);
8080
}
8181

8282
module_init(m68kspkr_init);

drivers/input/misc/pcspkr.c

Lines changed: 15 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -23,9 +23,7 @@ MODULE_AUTHOR("Vojtech Pavlik <vojtech@ucw.cz>");
2323
MODULE_DESCRIPTION("PC Speaker beeper driver");
2424
MODULE_LICENSE("GPL");
2525

26-
static char pcspkr_name[] = "PC Speaker";
27-
static char pcspkr_phys[] = "isa0061/input0";
28-
static struct input_dev pcspkr_dev;
26+
static struct input_dev *pcspkr_dev;
2927

3028
static DEFINE_SPINLOCK(i8253_beep_lock);
3129

@@ -68,27 +66,29 @@ static int pcspkr_event(struct input_dev *dev, unsigned int type, unsigned int c
6866

6967
static int __init pcspkr_init(void)
7068
{
71-
pcspkr_dev.evbit[0] = BIT(EV_SND);
72-
pcspkr_dev.sndbit[0] = BIT(SND_BELL) | BIT(SND_TONE);
73-
pcspkr_dev.event = pcspkr_event;
69+
pcspkr_dev = input_allocate_device();
70+
if (!pcspkr_dev)
71+
return -ENOMEM;
7472

75-
pcspkr_dev.name = pcspkr_name;
76-
pcspkr_dev.phys = pcspkr_phys;
77-
pcspkr_dev.id.bustype = BUS_ISA;
78-
pcspkr_dev.id.vendor = 0x001f;
79-
pcspkr_dev.id.product = 0x0001;
80-
pcspkr_dev.id.version = 0x0100;
73+
pcspkr_dev->name = "PC Speaker";
74+
pcspkr_dev->name = "isa0061/input0";
75+
pcspkr_dev->id.bustype = BUS_ISA;
76+
pcspkr_dev->id.vendor = 0x001f;
77+
pcspkr_dev->id.product = 0x0001;
78+
pcspkr_dev->id.version = 0x0100;
8179

82-
input_register_device(&pcspkr_dev);
80+
pcspkr_dev->evbit[0] = BIT(EV_SND);
81+
pcspkr_dev->sndbit[0] = BIT(SND_BELL) | BIT(SND_TONE);
82+
pcspkr_dev->event = pcspkr_event;
8383

84-
printk(KERN_INFO "input: %s\n", pcspkr_name);
84+
input_register_device(pcspkr_dev);
8585

8686
return 0;
8787
}
8888

8989
static void __exit pcspkr_exit(void)
9090
{
91-
input_unregister_device(&pcspkr_dev);
91+
input_unregister_device(pcspkr_dev);
9292
/* turn off the speaker */
9393
pcspkr_event(NULL, EV_SND, SND_BELL, 0);
9494
}

drivers/input/misc/sparcspkr.c

Lines changed: 23 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -17,28 +17,24 @@
1717
#endif
1818

1919
MODULE_AUTHOR("David S. Miller <davem@redhat.com>");
20-
MODULE_DESCRIPTION("PC Speaker beeper driver");
20+
MODULE_DESCRIPTION("Sparc Speaker beeper driver");
2121
MODULE_LICENSE("GPL");
2222

2323
static unsigned long beep_iobase;
24-
25-
static char *sparcspkr_isa_name = "Sparc ISA Speaker";
26-
static char *sparcspkr_ebus_name = "Sparc EBUS Speaker";
27-
static char *sparcspkr_phys = "sparc/input0";
28-
static struct input_dev sparcspkr_dev;
24+
static struct input_dev *sparcspkr_dev;
2925

3026
DEFINE_SPINLOCK(beep_lock);
3127

3228
static void __init init_sparcspkr_struct(void)
3329
{
34-
sparcspkr_dev.evbit[0] = BIT(EV_SND);
35-
sparcspkr_dev.sndbit[0] = BIT(SND_BELL) | BIT(SND_TONE);
36-
37-
sparcspkr_dev.phys = sparcspkr_phys;
38-
sparcspkr_dev.id.bustype = BUS_ISA;
39-
sparcspkr_dev.id.vendor = 0x001f;
40-
sparcspkr_dev.id.product = 0x0001;
41-
sparcspkr_dev.id.version = 0x0100;
30+
sparcspkr_dev->evbit[0] = BIT(EV_SND);
31+
sparcspkr_dev->sndbit[0] = BIT(SND_BELL) | BIT(SND_TONE);
32+
33+
sparcspkr_dev->phys = "sparc/input0";
34+
sparcspkr_dev->id.bustype = BUS_ISA;
35+
sparcspkr_dev->id.vendor = 0x001f;
36+
sparcspkr_dev->id.product = 0x0001;
37+
sparcspkr_dev->id.version = 0x0100;
4238
}
4339

4440
static int ebus_spkr_event(struct input_dev *dev, unsigned int type, unsigned int code, int value)
@@ -84,14 +80,15 @@ static int __init init_ebus_beep(struct linux_ebus_device *edev)
8480
{
8581
beep_iobase = edev->resource[0].start;
8682

87-
init_sparcspkr_struct();
83+
sparcspkr_dev = input_allocate_device();
84+
if (!sparcspkr_dev)
85+
return -ENOMEM;
8886

89-
sparcspkr_dev.name = sparcspkr_ebus_name;
90-
sparcspkr_dev.event = ebus_spkr_event;
87+
sparcspkr_dev->name = "Sparc EBUS Speaker";
88+
sparcspkr_dev->event = ebus_spkr_event;
9189

92-
input_register_device(&sparcspkr_dev);
90+
input_register_device(sparcspkr_dev);
9391

94-
printk(KERN_INFO "input: %s\n", sparcspkr_ebus_name);
9592
return 0;
9693
}
9794

@@ -137,15 +134,17 @@ static int __init init_isa_beep(struct sparc_isa_device *isa_dev)
137134
{
138135
beep_iobase = isa_dev->resource.start;
139136

137+
sparcspkr_dev = input_allocate_device();
138+
if (!sparcspkr_dev)
139+
return -ENOMEM;
140+
140141
init_sparcspkr_struct();
141142

142-
sparcspkr_dev.name = sparcspkr_isa_name;
143-
sparcspkr_dev.event = isa_spkr_event;
144-
sparcspkr_dev.id.bustype = BUS_ISA;
143+
sparcspkr_dev->name = "Sparc ISA Speaker";
144+
sparcspkr_dev->event = isa_spkr_event;
145145

146146
input_register_device(&sparcspkr_dev);
147147

148-
printk(KERN_INFO "input: %s\n", sparcspkr_isa_name);
149148
return 0;
150149
}
151150
#endif
@@ -182,7 +181,7 @@ static int __init sparcspkr_init(void)
182181

183182
static void __exit sparcspkr_exit(void)
184183
{
185-
input_unregister_device(&sparcspkr_dev);
184+
input_unregister_device(sparcspkr_dev);
186185
}
187186

188187
module_init(sparcspkr_init);

0 commit comments

Comments
 (0)