diff options
-rw-r--r-- | drivers/staging/panel/panel.c | 13 |
1 files changed, 10 insertions, 3 deletions
diff --git a/drivers/staging/panel/panel.c b/drivers/staging/panel/panel.c index dd7d3fde9699..4ce399b6d237 100644 --- a/drivers/staging/panel/panel.c +++ b/drivers/staging/panel/panel.c | |||
@@ -2071,11 +2071,15 @@ static void panel_detach(struct parport *port) | |||
2071 | return; | 2071 | return; |
2072 | } | 2072 | } |
2073 | 2073 | ||
2074 | if (keypad_enabled && keypad_initialized) | 2074 | if (keypad_enabled && keypad_initialized) { |
2075 | misc_deregister(&keypad_dev); | 2075 | misc_deregister(&keypad_dev); |
2076 | keypad_initialized = 0; | ||
2077 | } | ||
2076 | 2078 | ||
2077 | if (lcd_enabled && lcd_initialized) | 2079 | if (lcd_enabled && lcd_initialized) { |
2078 | misc_deregister(&lcd_dev); | 2080 | misc_deregister(&lcd_dev); |
2081 | lcd_initialized = 0; | ||
2082 | } | ||
2079 | 2083 | ||
2080 | parport_release(pprt); | 2084 | parport_release(pprt); |
2081 | parport_unregister_device(pprt); | 2085 | parport_unregister_device(pprt); |
@@ -2211,13 +2215,16 @@ static void __exit panel_cleanup_module(void) | |||
2211 | del_timer(&scan_timer); | 2215 | del_timer(&scan_timer); |
2212 | 2216 | ||
2213 | if (pprt != NULL) { | 2217 | if (pprt != NULL) { |
2214 | if (keypad_enabled) | 2218 | if (keypad_enabled) { |
2215 | misc_deregister(&keypad_dev); | 2219 | misc_deregister(&keypad_dev); |
2220 | keypad_initialized = 0; | ||
2221 | } | ||
2216 | 2222 | ||
2217 | if (lcd_enabled) { | 2223 | if (lcd_enabled) { |
2218 | panel_lcd_print("\x0cLCD driver " PANEL_VERSION | 2224 | panel_lcd_print("\x0cLCD driver " PANEL_VERSION |
2219 | "\nunloaded.\x1b[Lc\x1b[Lb\x1b[L-"); | 2225 | "\nunloaded.\x1b[Lc\x1b[Lb\x1b[L-"); |
2220 | misc_deregister(&lcd_dev); | 2226 | misc_deregister(&lcd_dev); |
2227 | lcd_initialized = 0; | ||
2221 | } | 2228 | } |
2222 | 2229 | ||
2223 | /* TODO: free all input signals */ | 2230 | /* TODO: free all input signals */ |