aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--drivers/media/rc/ati_remote.c27
-rw-r--r--drivers/media/rc/ene_ir.c20
-rw-r--r--drivers/media/rc/fintek-cir.c20
-rw-r--r--drivers/media/rc/ite-cir.c18
-rw-r--r--drivers/media/rc/nuvoton-cir.c30
5 files changed, 60 insertions, 55 deletions
diff --git a/drivers/media/rc/ati_remote.c b/drivers/media/rc/ati_remote.c
index 2d6fb26a0170..4d6a63fe6c5e 100644
--- a/drivers/media/rc/ati_remote.c
+++ b/drivers/media/rc/ati_remote.c
@@ -872,11 +872,11 @@ static int ati_remote_probe(struct usb_interface *interface,
872 ati_remote = kzalloc(sizeof (struct ati_remote), GFP_KERNEL); 872 ati_remote = kzalloc(sizeof (struct ati_remote), GFP_KERNEL);
873 rc_dev = rc_allocate_device(); 873 rc_dev = rc_allocate_device();
874 if (!ati_remote || !rc_dev) 874 if (!ati_remote || !rc_dev)
875 goto fail1; 875 goto exit_free_dev_rdev;
876 876
877 /* Allocate URB buffers, URBs */ 877 /* Allocate URB buffers, URBs */
878 if (ati_remote_alloc_buffers(udev, ati_remote)) 878 if (ati_remote_alloc_buffers(udev, ati_remote))
879 goto fail2; 879 goto exit_free_buffers;
880 880
881 ati_remote->endpoint_in = endpoint_in; 881 ati_remote->endpoint_in = endpoint_in;
882 ati_remote->endpoint_out = endpoint_out; 882 ati_remote->endpoint_out = endpoint_out;
@@ -924,12 +924,12 @@ static int ati_remote_probe(struct usb_interface *interface,
924 /* Device Hardware Initialization - fills in ati_remote->idev from udev. */ 924 /* Device Hardware Initialization - fills in ati_remote->idev from udev. */
925 err = ati_remote_initialize(ati_remote); 925 err = ati_remote_initialize(ati_remote);
926 if (err) 926 if (err)
927 goto fail3; 927 goto exit_kill_urbs;
928 928
929 /* Set up and register rc device */ 929 /* Set up and register rc device */
930 err = rc_register_device(ati_remote->rdev); 930 err = rc_register_device(ati_remote->rdev);
931 if (err) 931 if (err)
932 goto fail3; 932 goto exit_kill_urbs;
933 933
934 /* use our delay for rc_dev */ 934 /* use our delay for rc_dev */
935 ati_remote->rdev->input_dev->rep[REP_DELAY] = repeat_delay; 935 ati_remote->rdev->input_dev->rep[REP_DELAY] = repeat_delay;
@@ -939,7 +939,7 @@ static int ati_remote_probe(struct usb_interface *interface,
939 input_dev = input_allocate_device(); 939 input_dev = input_allocate_device();
940 if (!input_dev) { 940 if (!input_dev) {
941 err = -ENOMEM; 941 err = -ENOMEM;
942 goto fail4; 942 goto exit_unregister_device;
943 } 943 }
944 944
945 ati_remote->idev = input_dev; 945 ati_remote->idev = input_dev;
@@ -947,19 +947,24 @@ static int ati_remote_probe(struct usb_interface *interface,
947 err = input_register_device(input_dev); 947 err = input_register_device(input_dev);
948 948
949 if (err) 949 if (err)
950 goto fail5; 950 goto exit_free_input_device;
951 } 951 }
952 952
953 usb_set_intfdata(interface, ati_remote); 953 usb_set_intfdata(interface, ati_remote);
954 return 0; 954 return 0;
955 955
956 fail5: input_free_device(input_dev); 956 exit_free_input_device:
957 fail4: rc_unregister_device(rc_dev); 957 input_free_device(input_dev);
958 exit_unregister_device:
959 rc_unregister_device(rc_dev);
958 rc_dev = NULL; 960 rc_dev = NULL;
959 fail3: usb_kill_urb(ati_remote->irq_urb); 961 exit_kill_urbs:
962 usb_kill_urb(ati_remote->irq_urb);
960 usb_kill_urb(ati_remote->out_urb); 963 usb_kill_urb(ati_remote->out_urb);
961 fail2: ati_remote_free_buffers(ati_remote); 964 exit_free_buffers:
962 fail1: rc_free_device(rc_dev); 965 ati_remote_free_buffers(ati_remote);
966 exit_free_dev_rdev:
967 rc_free_device(rc_dev);
963 kfree(ati_remote); 968 kfree(ati_remote);
964 return err; 969 return err;
965} 970}
diff --git a/drivers/media/rc/ene_ir.c b/drivers/media/rc/ene_ir.c
index 22231dd4f62b..f7fdfea49ab1 100644
--- a/drivers/media/rc/ene_ir.c
+++ b/drivers/media/rc/ene_ir.c
@@ -1003,7 +1003,7 @@ static int ene_probe(struct pnp_dev *pnp_dev, const struct pnp_device_id *id)
1003 dev = kzalloc(sizeof(struct ene_device), GFP_KERNEL); 1003 dev = kzalloc(sizeof(struct ene_device), GFP_KERNEL);
1004 rdev = rc_allocate_device(); 1004 rdev = rc_allocate_device();
1005 if (!dev || !rdev) 1005 if (!dev || !rdev)
1006 goto failure; 1006 goto exit_free_dev_rdev;
1007 1007
1008 /* validate resources */ 1008 /* validate resources */
1009 error = -ENODEV; 1009 error = -ENODEV;
@@ -1014,10 +1014,10 @@ static int ene_probe(struct pnp_dev *pnp_dev, const struct pnp_device_id *id)
1014 1014
1015 if (!pnp_port_valid(pnp_dev, 0) || 1015 if (!pnp_port_valid(pnp_dev, 0) ||
1016 pnp_port_len(pnp_dev, 0) < ENE_IO_SIZE) 1016 pnp_port_len(pnp_dev, 0) < ENE_IO_SIZE)
1017 goto failure; 1017 goto exit_free_dev_rdev;
1018 1018
1019 if (!pnp_irq_valid(pnp_dev, 0)) 1019 if (!pnp_irq_valid(pnp_dev, 0))
1020 goto failure; 1020 goto exit_free_dev_rdev;
1021 1021
1022 spin_lock_init(&dev->hw_lock); 1022 spin_lock_init(&dev->hw_lock);
1023 1023
@@ -1033,7 +1033,7 @@ static int ene_probe(struct pnp_dev *pnp_dev, const struct pnp_device_id *id)
1033 /* detect hardware version and features */ 1033 /* detect hardware version and features */
1034 error = ene_hw_detect(dev); 1034 error = ene_hw_detect(dev);
1035 if (error) 1035 if (error)
1036 goto failure; 1036 goto exit_free_dev_rdev;
1037 1037
1038 if (!dev->hw_learning_and_tx_capable && txsim) { 1038 if (!dev->hw_learning_and_tx_capable && txsim) {
1039 dev->hw_learning_and_tx_capable = true; 1039 dev->hw_learning_and_tx_capable = true;
@@ -1078,27 +1078,27 @@ static int ene_probe(struct pnp_dev *pnp_dev, const struct pnp_device_id *id)
1078 /* claim the resources */ 1078 /* claim the resources */
1079 error = -EBUSY; 1079 error = -EBUSY;
1080 if (!request_region(dev->hw_io, ENE_IO_SIZE, ENE_DRIVER_NAME)) { 1080 if (!request_region(dev->hw_io, ENE_IO_SIZE, ENE_DRIVER_NAME)) {
1081 goto failure; 1081 goto exit_free_dev_rdev;
1082 } 1082 }
1083 1083
1084 dev->irq = pnp_irq(pnp_dev, 0); 1084 dev->irq = pnp_irq(pnp_dev, 0);
1085 if (request_irq(dev->irq, ene_isr, 1085 if (request_irq(dev->irq, ene_isr,
1086 IRQF_SHARED, ENE_DRIVER_NAME, (void *)dev)) { 1086 IRQF_SHARED, ENE_DRIVER_NAME, (void *)dev)) {
1087 goto failure2; 1087 goto exit_release_hw_io;
1088 } 1088 }
1089 1089
1090 error = rc_register_device(rdev); 1090 error = rc_register_device(rdev);
1091 if (error < 0) 1091 if (error < 0)
1092 goto failure3; 1092 goto exit_free_irq;
1093 1093
1094 pr_notice("driver has been successfully loaded\n"); 1094 pr_notice("driver has been successfully loaded\n");
1095 return 0; 1095 return 0;
1096 1096
1097failure3: 1097exit_free_irq:
1098 free_irq(dev->irq, dev); 1098 free_irq(dev->irq, dev);
1099failure2: 1099exit_release_hw_io:
1100 release_region(dev->hw_io, ENE_IO_SIZE); 1100 release_region(dev->hw_io, ENE_IO_SIZE);
1101failure: 1101exit_free_dev_rdev:
1102 rc_free_device(rdev); 1102 rc_free_device(rdev);
1103 kfree(dev); 1103 kfree(dev);
1104 return error; 1104 return error;
diff --git a/drivers/media/rc/fintek-cir.c b/drivers/media/rc/fintek-cir.c
index 936c3f79b62c..3d5e57cacf31 100644
--- a/drivers/media/rc/fintek-cir.c
+++ b/drivers/media/rc/fintek-cir.c
@@ -500,18 +500,18 @@ static int fintek_probe(struct pnp_dev *pdev, const struct pnp_device_id *dev_id
500 /* input device for IR remote (and tx) */ 500 /* input device for IR remote (and tx) */
501 rdev = rc_allocate_device(); 501 rdev = rc_allocate_device();
502 if (!rdev) 502 if (!rdev)
503 goto failure; 503 goto exit_free_dev_rdev;
504 504
505 ret = -ENODEV; 505 ret = -ENODEV;
506 /* validate pnp resources */ 506 /* validate pnp resources */
507 if (!pnp_port_valid(pdev, 0)) { 507 if (!pnp_port_valid(pdev, 0)) {
508 dev_err(&pdev->dev, "IR PNP Port not valid!\n"); 508 dev_err(&pdev->dev, "IR PNP Port not valid!\n");
509 goto failure; 509 goto exit_free_dev_rdev;
510 } 510 }
511 511
512 if (!pnp_irq_valid(pdev, 0)) { 512 if (!pnp_irq_valid(pdev, 0)) {
513 dev_err(&pdev->dev, "IR PNP IRQ not valid!\n"); 513 dev_err(&pdev->dev, "IR PNP IRQ not valid!\n");
514 goto failure; 514 goto exit_free_dev_rdev;
515 } 515 }
516 516
517 fintek->cir_addr = pnp_port_start(pdev, 0); 517 fintek->cir_addr = pnp_port_start(pdev, 0);
@@ -528,7 +528,7 @@ static int fintek_probe(struct pnp_dev *pdev, const struct pnp_device_id *dev_id
528 528
529 ret = fintek_hw_detect(fintek); 529 ret = fintek_hw_detect(fintek);
530 if (ret) 530 if (ret)
531 goto failure; 531 goto exit_free_dev_rdev;
532 532
533 /* Initialize CIR & CIR Wake Logical Devices */ 533 /* Initialize CIR & CIR Wake Logical Devices */
534 fintek_config_mode_enable(fintek); 534 fintek_config_mode_enable(fintek);
@@ -561,15 +561,15 @@ static int fintek_probe(struct pnp_dev *pdev, const struct pnp_device_id *dev_id
561 /* now claim resources */ 561 /* now claim resources */
562 if (!request_region(fintek->cir_addr, 562 if (!request_region(fintek->cir_addr,
563 fintek->cir_port_len, FINTEK_DRIVER_NAME)) 563 fintek->cir_port_len, FINTEK_DRIVER_NAME))
564 goto failure; 564 goto exit_free_dev_rdev;
565 565
566 if (request_irq(fintek->cir_irq, fintek_cir_isr, IRQF_SHARED, 566 if (request_irq(fintek->cir_irq, fintek_cir_isr, IRQF_SHARED,
567 FINTEK_DRIVER_NAME, (void *)fintek)) 567 FINTEK_DRIVER_NAME, (void *)fintek))
568 goto failure2; 568 goto exit_free_cir_addr;
569 569
570 ret = rc_register_device(rdev); 570 ret = rc_register_device(rdev);
571 if (ret) 571 if (ret)
572 goto failure3; 572 goto exit_free_irq;
573 573
574 device_init_wakeup(&pdev->dev, true); 574 device_init_wakeup(&pdev->dev, true);
575 fintek->rdev = rdev; 575 fintek->rdev = rdev;
@@ -579,11 +579,11 @@ static int fintek_probe(struct pnp_dev *pdev, const struct pnp_device_id *dev_id
579 579
580 return 0; 580 return 0;
581 581
582failure3: 582exit_free_irq:
583 free_irq(fintek->cir_irq, fintek); 583 free_irq(fintek->cir_irq, fintek);
584failure2: 584exit_free_cir_addr:
585 release_region(fintek->cir_addr, fintek->cir_port_len); 585 release_region(fintek->cir_addr, fintek->cir_port_len);
586failure: 586exit_free_dev_rdev:
587 rc_free_device(rdev); 587 rc_free_device(rdev);
588 kfree(fintek); 588 kfree(fintek);
589 589
diff --git a/drivers/media/rc/ite-cir.c b/drivers/media/rc/ite-cir.c
index 5e5a7f2b8184..8e0e661b5ef9 100644
--- a/drivers/media/rc/ite-cir.c
+++ b/drivers/media/rc/ite-cir.c
@@ -1472,7 +1472,7 @@ static int ite_probe(struct pnp_dev *pdev, const struct pnp_device_id
1472 /* input device for IR remote (and tx) */ 1472 /* input device for IR remote (and tx) */
1473 rdev = rc_allocate_device(); 1473 rdev = rc_allocate_device();
1474 if (!rdev) 1474 if (!rdev)
1475 goto failure; 1475 goto exit_free_dev_rdev;
1476 itdev->rdev = rdev; 1476 itdev->rdev = rdev;
1477 1477
1478 ret = -ENODEV; 1478 ret = -ENODEV;
@@ -1498,12 +1498,12 @@ static int ite_probe(struct pnp_dev *pdev, const struct pnp_device_id
1498 if (!pnp_port_valid(pdev, io_rsrc_no) || 1498 if (!pnp_port_valid(pdev, io_rsrc_no) ||
1499 pnp_port_len(pdev, io_rsrc_no) != dev_desc->io_region_size) { 1499 pnp_port_len(pdev, io_rsrc_no) != dev_desc->io_region_size) {
1500 dev_err(&pdev->dev, "IR PNP Port not valid!\n"); 1500 dev_err(&pdev->dev, "IR PNP Port not valid!\n");
1501 goto failure; 1501 goto exit_free_dev_rdev;
1502 } 1502 }
1503 1503
1504 if (!pnp_irq_valid(pdev, 0)) { 1504 if (!pnp_irq_valid(pdev, 0)) {
1505 dev_err(&pdev->dev, "PNP IRQ not valid!\n"); 1505 dev_err(&pdev->dev, "PNP IRQ not valid!\n");
1506 goto failure; 1506 goto exit_free_dev_rdev;
1507 } 1507 }
1508 1508
1509 /* store resource values */ 1509 /* store resource values */
@@ -1595,25 +1595,25 @@ static int ite_probe(struct pnp_dev *pdev, const struct pnp_device_id
1595 /* now claim resources */ 1595 /* now claim resources */
1596 if (!request_region(itdev->cir_addr, 1596 if (!request_region(itdev->cir_addr,
1597 dev_desc->io_region_size, ITE_DRIVER_NAME)) 1597 dev_desc->io_region_size, ITE_DRIVER_NAME))
1598 goto failure; 1598 goto exit_free_dev_rdev;
1599 1599
1600 if (request_irq(itdev->cir_irq, ite_cir_isr, IRQF_SHARED, 1600 if (request_irq(itdev->cir_irq, ite_cir_isr, IRQF_SHARED,
1601 ITE_DRIVER_NAME, (void *)itdev)) 1601 ITE_DRIVER_NAME, (void *)itdev))
1602 goto failure2; 1602 goto exit_release_cir_addr;
1603 1603
1604 ret = rc_register_device(rdev); 1604 ret = rc_register_device(rdev);
1605 if (ret) 1605 if (ret)
1606 goto failure3; 1606 goto exit_free_irq;
1607 1607
1608 ite_pr(KERN_NOTICE, "driver has been successfully loaded\n"); 1608 ite_pr(KERN_NOTICE, "driver has been successfully loaded\n");
1609 1609
1610 return 0; 1610 return 0;
1611 1611
1612failure3: 1612exit_free_irq:
1613 free_irq(itdev->cir_irq, itdev); 1613 free_irq(itdev->cir_irq, itdev);
1614failure2: 1614exit_release_cir_addr:
1615 release_region(itdev->cir_addr, itdev->params.io_region_size); 1615 release_region(itdev->cir_addr, itdev->params.io_region_size);
1616failure: 1616exit_free_dev_rdev:
1617 rc_free_device(rdev); 1617 rc_free_device(rdev);
1618 kfree(itdev); 1618 kfree(itdev);
1619 1619
diff --git a/drivers/media/rc/nuvoton-cir.c b/drivers/media/rc/nuvoton-cir.c
index e4ea89a11eed..3477e231c182 100644
--- a/drivers/media/rc/nuvoton-cir.c
+++ b/drivers/media/rc/nuvoton-cir.c
@@ -986,25 +986,25 @@ static int nvt_probe(struct pnp_dev *pdev, const struct pnp_device_id *dev_id)
986 /* input device for IR remote (and tx) */ 986 /* input device for IR remote (and tx) */
987 rdev = rc_allocate_device(); 987 rdev = rc_allocate_device();
988 if (!rdev) 988 if (!rdev)
989 goto failure; 989 goto exit_free_dev_rdev;
990 990
991 ret = -ENODEV; 991 ret = -ENODEV;
992 /* validate pnp resources */ 992 /* validate pnp resources */
993 if (!pnp_port_valid(pdev, 0) || 993 if (!pnp_port_valid(pdev, 0) ||
994 pnp_port_len(pdev, 0) < CIR_IOREG_LENGTH) { 994 pnp_port_len(pdev, 0) < CIR_IOREG_LENGTH) {
995 dev_err(&pdev->dev, "IR PNP Port not valid!\n"); 995 dev_err(&pdev->dev, "IR PNP Port not valid!\n");
996 goto failure; 996 goto exit_free_dev_rdev;
997 } 997 }
998 998
999 if (!pnp_irq_valid(pdev, 0)) { 999 if (!pnp_irq_valid(pdev, 0)) {
1000 dev_err(&pdev->dev, "PNP IRQ not valid!\n"); 1000 dev_err(&pdev->dev, "PNP IRQ not valid!\n");
1001 goto failure; 1001 goto exit_free_dev_rdev;
1002 } 1002 }
1003 1003
1004 if (!pnp_port_valid(pdev, 1) || 1004 if (!pnp_port_valid(pdev, 1) ||
1005 pnp_port_len(pdev, 1) < CIR_IOREG_LENGTH) { 1005 pnp_port_len(pdev, 1) < CIR_IOREG_LENGTH) {
1006 dev_err(&pdev->dev, "Wake PNP Port not valid!\n"); 1006 dev_err(&pdev->dev, "Wake PNP Port not valid!\n");
1007 goto failure; 1007 goto exit_free_dev_rdev;
1008 } 1008 }
1009 1009
1010 nvt->cir_addr = pnp_port_start(pdev, 0); 1010 nvt->cir_addr = pnp_port_start(pdev, 0);
@@ -1027,7 +1027,7 @@ static int nvt_probe(struct pnp_dev *pdev, const struct pnp_device_id *dev_id)
1027 1027
1028 ret = nvt_hw_detect(nvt); 1028 ret = nvt_hw_detect(nvt);
1029 if (ret) 1029 if (ret)
1030 goto failure; 1030 goto exit_free_dev_rdev;
1031 1031
1032 /* Initialize CIR & CIR Wake Logical Devices */ 1032 /* Initialize CIR & CIR Wake Logical Devices */
1033 nvt_efm_enable(nvt); 1033 nvt_efm_enable(nvt);
@@ -1070,23 +1070,23 @@ static int nvt_probe(struct pnp_dev *pdev, const struct pnp_device_id *dev_id)
1070 /* now claim resources */ 1070 /* now claim resources */
1071 if (!request_region(nvt->cir_addr, 1071 if (!request_region(nvt->cir_addr,
1072 CIR_IOREG_LENGTH, NVT_DRIVER_NAME)) 1072 CIR_IOREG_LENGTH, NVT_DRIVER_NAME))
1073 goto failure; 1073 goto exit_free_dev_rdev;
1074 1074
1075 if (request_irq(nvt->cir_irq, nvt_cir_isr, IRQF_SHARED, 1075 if (request_irq(nvt->cir_irq, nvt_cir_isr, IRQF_SHARED,
1076 NVT_DRIVER_NAME, (void *)nvt)) 1076 NVT_DRIVER_NAME, (void *)nvt))
1077 goto failure2; 1077 goto exit_release_cir_addr;
1078 1078
1079 if (!request_region(nvt->cir_wake_addr, 1079 if (!request_region(nvt->cir_wake_addr,
1080 CIR_IOREG_LENGTH, NVT_DRIVER_NAME)) 1080 CIR_IOREG_LENGTH, NVT_DRIVER_NAME))
1081 goto failure3; 1081 goto exit_free_irq;
1082 1082
1083 if (request_irq(nvt->cir_wake_irq, nvt_cir_wake_isr, IRQF_SHARED, 1083 if (request_irq(nvt->cir_wake_irq, nvt_cir_wake_isr, IRQF_SHARED,
1084 NVT_DRIVER_NAME, (void *)nvt)) 1084 NVT_DRIVER_NAME, (void *)nvt))
1085 goto failure4; 1085 goto exit_release_cir_wake_addr;
1086 1086
1087 ret = rc_register_device(rdev); 1087 ret = rc_register_device(rdev);
1088 if (ret) 1088 if (ret)
1089 goto failure5; 1089 goto exit_free_wake_irq;
1090 1090
1091 device_init_wakeup(&pdev->dev, true); 1091 device_init_wakeup(&pdev->dev, true);
1092 nvt->rdev = rdev; 1092 nvt->rdev = rdev;
@@ -1098,15 +1098,15 @@ static int nvt_probe(struct pnp_dev *pdev, const struct pnp_device_id *dev_id)
1098 1098
1099 return 0; 1099 return 0;
1100 1100
1101failure5: 1101exit_free_wake_irq:
1102 free_irq(nvt->cir_wake_irq, nvt); 1102 free_irq(nvt->cir_wake_irq, nvt);
1103failure4: 1103exit_release_cir_wake_addr:
1104 release_region(nvt->cir_wake_addr, CIR_IOREG_LENGTH); 1104 release_region(nvt->cir_wake_addr, CIR_IOREG_LENGTH);
1105failure3: 1105exit_free_irq:
1106 free_irq(nvt->cir_irq, nvt); 1106 free_irq(nvt->cir_irq, nvt);
1107failure2: 1107exit_release_cir_addr:
1108 release_region(nvt->cir_addr, CIR_IOREG_LENGTH); 1108 release_region(nvt->cir_addr, CIR_IOREG_LENGTH);
1109failure: 1109exit_free_dev_rdev:
1110 rc_free_device(rdev); 1110 rc_free_device(rdev);
1111 kfree(nvt); 1111 kfree(nvt);
1112 1112