Commit 7d3370e5 authored by Dmitry Torokhov's avatar Dmitry Torokhov

Revert "Input: serio - make write method mandatory"

This reverts commit 81c7c0a3. The idea
to make write method mandatory was flawed as several client drivers
(such as atkbd) check for presence of write() method to adjust behavior
of the driver.
Reported-by: default avatarNathan Chancellor <nathan@kernel.org>
Reported-by: default avatarMichael Kelley <mikelley@microsoft.com>
Signed-off-by: default avatarDmitry Torokhov <dmitry.torokhov@gmail.com>
parent 133b6558
......@@ -89,11 +89,6 @@ static irqreturn_t ams_delta_serio_interrupt(int irq, void *dev_id)
return IRQ_HANDLED;
}
static int ams_delta_serio_write(struct serio *serio, u8 data)
{
return -EINVAL;
}
static int ams_delta_serio_open(struct serio *serio)
{
struct ams_delta_serio *priv = serio->port_data;
......@@ -162,7 +157,6 @@ static int ams_delta_serio_init(struct platform_device *pdev)
priv->serio = serio;
serio->id.type = SERIO_8042;
serio->write = ams_delta_serio_write;
serio->open = ams_delta_serio_open;
serio->close = ams_delta_serio_close;
strlcpy(serio->name, "AMS DELTA keyboard adapter", sizeof(serio->name));
......
......@@ -694,11 +694,6 @@ EXPORT_SYMBOL(serio_reconnect);
*/
void __serio_register_port(struct serio *serio, struct module *owner)
{
if (!serio->write) {
pr_err("%s: refusing to register %s without write method\n",
__func__, serio->name);
return;
}
serio_init_port(serio);
serio_queue_event(serio, owner, SERIO_REGISTER_PORT);
}
......
......@@ -121,7 +121,10 @@ void serio_unregister_driver(struct serio_driver *drv);
static inline int serio_write(struct serio *serio, unsigned char data)
{
return serio->write(serio, data);
if (serio->write)
return serio->write(serio, data);
else
return -1;
}
static inline void serio_drv_write_wakeup(struct serio *serio)
......
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