aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/extcon/extcon-max77693.c
diff options
context:
space:
mode:
authorChanwoo Choi <cw00.choi@samsung.com>2013-02-13 04:35:08 -0500
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>2013-02-13 11:35:44 -0500
commit19d3243e797c2abc02a214d3cec9fefa5dc048ff (patch)
treed1e7ae85afda78d261268c40e6c5cc0c18b2b0ba /drivers/extcon/extcon-max77693.c
parenteff7d74f5b88ef31ac47c6d96b1494db199705f5 (diff)
extcon: max77693: Remove unnecessary goto statement to improve readability
Signed-off-by: Chanwoo Choi <cw00.choi@samsung.com> Signed-off-by: Myungjoo Ham <myungjoo.ham@samsung.com> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Diffstat (limited to 'drivers/extcon/extcon-max77693.c')
-rw-r--r--drivers/extcon/extcon-max77693.c77
1 files changed, 43 insertions, 34 deletions
diff --git a/drivers/extcon/extcon-max77693.c b/drivers/extcon/extcon-max77693.c
index 597f33c1f868..ad6e9a466855 100644
--- a/drivers/extcon/extcon-max77693.c
+++ b/drivers/extcon/extcon-max77693.c
@@ -224,16 +224,17 @@ static int max77693_muic_set_debounce_time(struct max77693_muic_info *info,
224 MAX77693_MUIC_REG_CTRL3, 224 MAX77693_MUIC_REG_CTRL3,
225 time << CONTROL3_ADCDBSET_SHIFT, 225 time << CONTROL3_ADCDBSET_SHIFT,
226 CONTROL3_ADCDBSET_MASK); 226 CONTROL3_ADCDBSET_MASK);
227 if (ret) 227 if (ret) {
228 dev_err(info->dev, "failed to set ADC debounce time\n"); 228 dev_err(info->dev, "failed to set ADC debounce time\n");
229 return -EAGAIN;
230 }
229 break; 231 break;
230 default: 232 default:
231 dev_err(info->dev, "invalid ADC debounce time\n"); 233 dev_err(info->dev, "invalid ADC debounce time\n");
232 ret = -EINVAL; 234 return -EINVAL;
233 break;
234 } 235 }
235 236
236 return ret; 237 return 0;
237}; 238};
238 239
239/* 240/*
@@ -261,7 +262,7 @@ static int max77693_muic_set_path(struct max77693_muic_info *info,
261 MAX77693_MUIC_REG_CTRL1, ctrl1, COMP_SW_MASK); 262 MAX77693_MUIC_REG_CTRL1, ctrl1, COMP_SW_MASK);
262 if (ret < 0) { 263 if (ret < 0) {
263 dev_err(info->dev, "failed to update MUIC register\n"); 264 dev_err(info->dev, "failed to update MUIC register\n");
264 goto out; 265 return -EAGAIN;
265 } 266 }
266 267
267 if (attached) 268 if (attached)
@@ -274,14 +275,14 @@ static int max77693_muic_set_path(struct max77693_muic_info *info,
274 CONTROL2_LOWPWR_MASK | CONTROL2_CPEN_MASK); 275 CONTROL2_LOWPWR_MASK | CONTROL2_CPEN_MASK);
275 if (ret < 0) { 276 if (ret < 0) {
276 dev_err(info->dev, "failed to update MUIC register\n"); 277 dev_err(info->dev, "failed to update MUIC register\n");
277 goto out; 278 return -EAGAIN;
278 } 279 }
279 280
280 dev_info(info->dev, 281 dev_info(info->dev,
281 "CONTROL1 : 0x%02x, CONTROL2 : 0x%02x, state : %s\n", 282 "CONTROL1 : 0x%02x, CONTROL2 : 0x%02x, state : %s\n",
282 ctrl1, ctrl2, attached ? "attached" : "detached"); 283 ctrl1, ctrl2, attached ? "attached" : "detached");
283out: 284
284 return ret; 285 return 0;
285} 286}
286 287
287/* 288/*
@@ -503,6 +504,10 @@ static int max77693_muic_dock_handler(struct max77693_muic_info *info,
503 if (!attached) 504 if (!attached)
504 extcon_set_cable_state(info->edev, "USB", false); 505 extcon_set_cable_state(info->edev, "USB", false);
505 break; 506 break;
507 default:
508 dev_err(info->dev, "failed to detect %s dock device\n",
509 attached ? "attached" : "detached");
510 return -EINVAL;
506 } 511 }
507 512
508 /* Dock-Car/Desk/Audio, PATH:AUDIO */ 513 /* Dock-Car/Desk/Audio, PATH:AUDIO */
@@ -520,7 +525,6 @@ static int max77693_muic_dock_button_handler(struct max77693_muic_info *info,
520{ 525{
521 struct input_dev *dock = info->dock; 526 struct input_dev *dock = info->dock;
522 unsigned int code; 527 unsigned int code;
523 int ret = 0;
524 528
525 switch (button_type) { 529 switch (button_type) {
526 case MAX77693_MUIC_ADC_REMOTE_S3_BUTTON-1 530 case MAX77693_MUIC_ADC_REMOTE_S3_BUTTON-1
@@ -550,14 +554,12 @@ static int max77693_muic_dock_button_handler(struct max77693_muic_info *info,
550 dev_err(info->dev, 554 dev_err(info->dev,
551 "failed to detect %s key (adc:0x%x)\n", 555 "failed to detect %s key (adc:0x%x)\n",
552 attached ? "pressed" : "released", button_type); 556 attached ? "pressed" : "released", button_type);
553 ret = -EINVAL; 557 return -EINVAL;
554 goto out;
555 } 558 }
556 559
557 input_event(dock, EV_KEY, code, attached); 560 input_event(dock, EV_KEY, code, attached);
558 input_sync(dock); 561 input_sync(dock);
559 562
560out:
561 return 0; 563 return 0;
562} 564}
563 565
@@ -576,14 +578,14 @@ static int max77693_muic_adc_ground_handler(struct max77693_muic_info *info)
576 /* USB_OTG, PATH: AP_USB */ 578 /* USB_OTG, PATH: AP_USB */
577 ret = max77693_muic_set_path(info, CONTROL1_SW_USB, attached); 579 ret = max77693_muic_set_path(info, CONTROL1_SW_USB, attached);
578 if (ret < 0) 580 if (ret < 0)
579 goto out; 581 return ret;
580 extcon_set_cable_state(info->edev, "USB-Host", attached); 582 extcon_set_cable_state(info->edev, "USB-Host", attached);
581 break; 583 break;
582 case MAX77693_MUIC_GND_AV_CABLE_LOAD: 584 case MAX77693_MUIC_GND_AV_CABLE_LOAD:
583 /* Audio Video Cable with load, PATH:AUDIO */ 585 /* Audio Video Cable with load, PATH:AUDIO */
584 ret = max77693_muic_set_path(info, CONTROL1_SW_AUDIO, attached); 586 ret = max77693_muic_set_path(info, CONTROL1_SW_AUDIO, attached);
585 if (ret < 0) 587 if (ret < 0)
586 goto out; 588 return ret;
587 extcon_set_cable_state(info->edev, 589 extcon_set_cable_state(info->edev,
588 "Audio-video-load", attached); 590 "Audio-video-load", attached);
589 break; 591 break;
@@ -593,14 +595,12 @@ static int max77693_muic_adc_ground_handler(struct max77693_muic_info *info)
593 extcon_set_cable_state(info->edev, "MHL", attached); 595 extcon_set_cable_state(info->edev, "MHL", attached);
594 break; 596 break;
595 default: 597 default:
596 dev_err(info->dev, "failed to detect %s accessory\n", 598 dev_err(info->dev, "failed to detect %s cable of gnd type\n",
597 attached ? "attached" : "detached"); 599 attached ? "attached" : "detached");
598 ret = -EINVAL; 600 return -EINVAL;
599 break;
600 } 601 }
601 602
602out: 603 return 0;
603 return ret;
604} 604}
605 605
606static int max77693_muic_jig_handler(struct max77693_muic_info *info, 606static int max77693_muic_jig_handler(struct max77693_muic_info *info,
@@ -630,15 +630,19 @@ static int max77693_muic_jig_handler(struct max77693_muic_info *info,
630 strcpy(cable_name, "JIG-UART-OFF"); 630 strcpy(cable_name, "JIG-UART-OFF");
631 path = CONTROL1_SW_UART; 631 path = CONTROL1_SW_UART;
632 break; 632 break;
633 default:
634 dev_err(info->dev, "failed to detect %s jig cable\n",
635 attached ? "attached" : "detached");
636 return -EINVAL;
633 } 637 }
634 638
635 ret = max77693_muic_set_path(info, path, attached); 639 ret = max77693_muic_set_path(info, path, attached);
636 if (ret < 0) 640 if (ret < 0)
637 goto out; 641 return ret;
638 642
639 extcon_set_cable_state(info->edev, cable_name, attached); 643 extcon_set_cable_state(info->edev, cable_name, attached);
640out: 644
641 return ret; 645 return 0;
642} 646}
643 647
644static int max77693_muic_adc_handler(struct max77693_muic_info *info) 648static int max77693_muic_adc_handler(struct max77693_muic_info *info)
@@ -668,7 +672,7 @@ static int max77693_muic_adc_handler(struct max77693_muic_info *info)
668 /* JIG */ 672 /* JIG */
669 ret = max77693_muic_jig_handler(info, cable_type, attached); 673 ret = max77693_muic_jig_handler(info, cable_type, attached);
670 if (ret < 0) 674 if (ret < 0)
671 goto out; 675 return ret;
672 break; 676 break;
673 case MAX77693_MUIC_ADC_RESERVED_ACC_3: /* Dock-Smart */ 677 case MAX77693_MUIC_ADC_RESERVED_ACC_3: /* Dock-Smart */
674 case MAX77693_MUIC_ADC_FACTORY_MODE_UART_ON: /* Dock-Car */ 678 case MAX77693_MUIC_ADC_FACTORY_MODE_UART_ON: /* Dock-Car */
@@ -685,7 +689,7 @@ static int max77693_muic_adc_handler(struct max77693_muic_info *info)
685 */ 689 */
686 ret = max77693_muic_dock_handler(info, cable_type, attached); 690 ret = max77693_muic_dock_handler(info, cable_type, attached);
687 if (ret < 0) 691 if (ret < 0)
688 goto out; 692 return ret;
689 break; 693 break;
690 case MAX77693_MUIC_ADC_REMOTE_S3_BUTTON: /* DOCK_KEY_PREV */ 694 case MAX77693_MUIC_ADC_REMOTE_S3_BUTTON: /* DOCK_KEY_PREV */
691 case MAX77693_MUIC_ADC_REMOTE_S7_BUTTON: /* DOCK_KEY_NEXT */ 695 case MAX77693_MUIC_ADC_REMOTE_S7_BUTTON: /* DOCK_KEY_NEXT */
@@ -710,7 +714,7 @@ static int max77693_muic_adc_handler(struct max77693_muic_info *info)
710 ret = max77693_muic_dock_button_handler(info, button_type, 714 ret = max77693_muic_dock_button_handler(info, button_type,
711 attached); 715 attached);
712 if (ret < 0) 716 if (ret < 0)
713 goto out; 717 return ret;
714 break; 718 break;
715 case MAX77693_MUIC_ADC_SEND_END_BUTTON: 719 case MAX77693_MUIC_ADC_SEND_END_BUTTON:
716 case MAX77693_MUIC_ADC_REMOTE_S1_BUTTON: 720 case MAX77693_MUIC_ADC_REMOTE_S1_BUTTON:
@@ -738,17 +742,15 @@ static int max77693_muic_adc_handler(struct max77693_muic_info *info)
738 dev_info(info->dev, 742 dev_info(info->dev,
739 "accessory is %s but it isn't used (adc:0x%x)\n", 743 "accessory is %s but it isn't used (adc:0x%x)\n",
740 attached ? "attached" : "detached", cable_type); 744 attached ? "attached" : "detached", cable_type);
741 goto out; 745 return -EAGAIN;
742 default: 746 default:
743 dev_err(info->dev, 747 dev_err(info->dev,
744 "failed to detect %s accessory (adc:0x%x)\n", 748 "failed to detect %s accessory (adc:0x%x)\n",
745 attached ? "attached" : "detached", cable_type); 749 attached ? "attached" : "detached", cable_type);
746 ret = -EINVAL; 750 return -EINVAL;
747 goto out;
748 } 751 }
749 752
750out: 753 return 0;
751 return ret;
752} 754}
753 755
754static int max77693_muic_chg_handler(struct max77693_muic_info *info) 756static int max77693_muic_chg_handler(struct max77693_muic_info *info)
@@ -959,7 +961,8 @@ static void max77693_muic_irq_work(struct work_struct *work)
959 default: 961 default:
960 dev_err(info->dev, "muic interrupt: irq %d occurred\n", 962 dev_err(info->dev, "muic interrupt: irq %d occurred\n",
961 irq_type); 963 irq_type);
962 break; 964 mutex_unlock(&info->mutex);
965 return;
963 } 966 }
964 967
965 if (ret < 0) 968 if (ret < 0)
@@ -1007,21 +1010,27 @@ static int max77693_muic_detect_accessory(struct max77693_muic_info *info)
1007 &attached); 1010 &attached);
1008 if (attached && adc != MAX77693_MUIC_ADC_OPEN) { 1011 if (attached && adc != MAX77693_MUIC_ADC_OPEN) {
1009 ret = max77693_muic_adc_handler(info); 1012 ret = max77693_muic_adc_handler(info);
1010 if (ret < 0) 1013 if (ret < 0) {
1011 dev_err(info->dev, "Cannot detect accessory\n"); 1014 dev_err(info->dev, "Cannot detect accessory\n");
1015 mutex_unlock(&info->mutex);
1016 return ret;
1017 }
1012 } 1018 }
1013 1019
1014 chg_type = max77693_muic_get_cable_type(info, MAX77693_CABLE_GROUP_CHG, 1020 chg_type = max77693_muic_get_cable_type(info, MAX77693_CABLE_GROUP_CHG,
1015 &attached); 1021 &attached);
1016 if (attached && chg_type != MAX77693_CHARGER_TYPE_NONE) { 1022 if (attached && chg_type != MAX77693_CHARGER_TYPE_NONE) {
1017 ret = max77693_muic_chg_handler(info); 1023 ret = max77693_muic_chg_handler(info);
1018 if (ret < 0) 1024 if (ret < 0) {
1019 dev_err(info->dev, "Cannot detect charger accessory\n"); 1025 dev_err(info->dev, "Cannot detect charger accessory\n");
1026 mutex_unlock(&info->mutex);
1027 return ret;
1028 }
1020 } 1029 }
1021 1030
1022 mutex_unlock(&info->mutex); 1031 mutex_unlock(&info->mutex);
1023 1032
1024 return ret; 1033 return 0;
1025} 1034}
1026 1035
1027static void max77693_muic_detect_cable_wq(struct work_struct *work) 1036static void max77693_muic_detect_cable_wq(struct work_struct *work)