From: Dominik Brodowski Date: Mon, 27 Jun 2005 23:28:05 +0000 (-0700) Subject: [PATCH] pcmcia: hotplug event for PCMCIA socket devices X-Git-Tag: v2.6.13-rc1~46^2~80 X-Git-Url: https://err.no/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=3ee13937525f6044d769b1a84d5db5669ac1959e;p=linux-2.6 [PATCH] pcmcia: hotplug event for PCMCIA socket devices Generate hotplug event for PCMCIA sockets being registered. Signed-off-by: Dominik Brodowski Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds --- diff --git a/drivers/pcmcia/cs.c b/drivers/pcmcia/cs.c index 48e4f04530..fec9e03047 100644 --- a/drivers/pcmcia/cs.c +++ b/drivers/pcmcia/cs.c @@ -1866,6 +1866,21 @@ int pcmcia_insert_card(struct pcmcia_socket *skt) return ret; } /* insert_card */ +static int pcmcia_socket_hotplug(struct class_device *dev, char **envp, + int num_envp, char *buffer, int buffer_size) +{ + struct pcmcia_socket *s = container_of(dev, struct pcmcia_socket, dev); + int i = 0, length = 0; + + if (add_hotplug_env_var(envp, num_envp, &i, buffer, buffer_size, + &length, "SOCKET_NO=%u", s->sock)) + return -ENOMEM; + + envp[i] = NULL; + + return 0; +} + /*====================================================================== OS-specific module glue goes here @@ -1895,6 +1910,7 @@ EXPORT_SYMBOL(pcmcia_parse_events); struct class pcmcia_socket_class = { .name = "pcmcia_socket", + .hotplug = pcmcia_socket_hotplug, .release = pcmcia_release_socket, }; EXPORT_SYMBOL(pcmcia_socket_class);