From ddeca82d2e9a9ec1f859e4e275e2cb11549be364 Mon Sep 17 00:00:00 2001 From: Ben Hutchings Date: Wed, 16 Nov 2011 01:49:41 -0300 Subject: [PATCH] --- yaml --- r: 285247 b: refs/heads/master c: 9105b8b200410383d0854bbe237ee385d7d33ba6 h: refs/heads/master i: 285245: 0e107e300841e9e7a8daba28294d380af42f3b1f 285243: 057e3fc7b8dc50f766e3acc1c510d53c02b8fa45 285239: b68a847cb5b82d273e76ff2f5ca783778c6ed31a 285231: 7c6fc013472e173aa334bc98303cdacbb43bfc60 285215: 72a9a44a5135aa5a1e0648fedefe33a56d7c0861 285183: 72c95682c71bc90a00800bb426018585271e697b v: v3 --- [refs] | 2 +- .../drivers/staging/media/lirc/lirc_serial.c | 56 +++++++------------ 2 files changed, 22 insertions(+), 36 deletions(-) diff --git a/[refs] b/[refs] index b028f9f42923..a9e6b6d8fa61 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: 37e22142891773fb883bbef435f2ebbb5670c0b0 +refs/heads/master: 9105b8b200410383d0854bbe237ee385d7d33ba6 diff --git a/trunk/drivers/staging/media/lirc/lirc_serial.c b/trunk/drivers/staging/media/lirc/lirc_serial.c index 8a060a8a7224..86376311506b 100644 --- a/trunk/drivers/staging/media/lirc/lirc_serial.c +++ b/trunk/drivers/staging/media/lirc/lirc_serial.c @@ -836,7 +836,7 @@ static int hardware_init_port(void) return 0; } -static int init_port(void) +static int __devinit lirc_serial_probe(struct platform_device *dev) { int i, nlow, nhigh, result; @@ -913,6 +913,18 @@ static int init_port(void) return 0; } +static int __devexit lirc_serial_remove(struct platform_device *dev) +{ + free_irq(irq, (void *)&hardware); + + if (iommap != 0) + release_mem_region(iommap, 8 << ioshift); + else + release_region(io, 8); + + return 0; +} + static int set_use_inc(void *data) { unsigned long flags; @@ -1076,16 +1088,6 @@ static struct lirc_driver driver = { static struct platform_device *lirc_serial_dev; -static int __devinit lirc_serial_probe(struct platform_device *dev) -{ - return 0; -} - -static int __devexit lirc_serial_remove(struct platform_device *dev) -{ - return 0; -} - static int lirc_serial_suspend(struct platform_device *dev, pm_message_t state) { @@ -1188,10 +1190,6 @@ static int __init lirc_serial_init_module(void) { int result; - result = lirc_serial_init(); - if (result) - return result; - switch (type) { case LIRC_HOMEBREW: case LIRC_IRDEO: @@ -1211,8 +1209,7 @@ static int __init lirc_serial_init_module(void) break; #endif default: - result = -EINVAL; - goto exit_serial_exit; + return -EINVAL; } if (!softcarrier) { switch (type) { @@ -1228,37 +1225,26 @@ static int __init lirc_serial_init_module(void) } } - result = init_port(); - if (result < 0) - goto exit_serial_exit; + result = lirc_serial_init(); + if (result) + return result; + driver.features = hardware[type].features; driver.dev = &lirc_serial_dev->dev; driver.minor = lirc_register_driver(&driver); if (driver.minor < 0) { printk(KERN_ERR LIRC_DRIVER_NAME ": register_chrdev failed!\n"); - result = -EIO; - goto exit_release; + lirc_serial_exit(); + return -EIO; } return 0; -exit_release: - release_region(io, 8); -exit_serial_exit: - lirc_serial_exit(); - return result; } static void __exit lirc_serial_exit_module(void) { - lirc_serial_exit(); - - free_irq(irq, (void *)&hardware); - - if (iommap != 0) - release_mem_region(iommap, 8 << ioshift); - else - release_region(io, 8); lirc_unregister_driver(driver.minor); + lirc_serial_exit(); dprintk("cleaned up module\n"); }