@@ -502,7 +502,7 @@ int musb_set_host(struct musb *musb)
502
502
503
503
init_data :
504
504
musb -> is_active = 1 ;
505
- musb -> xceiv -> otg -> state = OTG_STATE_A_IDLE ;
505
+ musb_set_state ( musb , OTG_STATE_A_IDLE ) ;
506
506
MUSB_HST_MODE (musb );
507
507
508
508
return error ;
@@ -549,7 +549,7 @@ int musb_set_peripheral(struct musb *musb)
549
549
550
550
init_data :
551
551
musb -> is_active = 0 ;
552
- musb -> xceiv -> otg -> state = OTG_STATE_B_IDLE ;
552
+ musb_set_state ( musb , OTG_STATE_B_IDLE ) ;
553
553
MUSB_DEV_MODE (musb );
554
554
555
555
return error ;
@@ -599,20 +599,20 @@ static void musb_otg_timer_func(struct timer_list *t)
599
599
unsigned long flags ;
600
600
601
601
spin_lock_irqsave (& musb -> lock , flags );
602
- switch (musb -> xceiv -> otg -> state ) {
602
+ switch (musb_get_state ( musb ) ) {
603
603
case OTG_STATE_B_WAIT_ACON :
604
604
musb_dbg (musb ,
605
605
"HNP: b_wait_acon timeout; back to b_peripheral" );
606
606
musb_g_disconnect (musb );
607
- musb -> xceiv -> otg -> state = OTG_STATE_B_PERIPHERAL ;
607
+ musb_set_state ( musb , OTG_STATE_B_PERIPHERAL ) ;
608
608
musb -> is_active = 0 ;
609
609
break ;
610
610
case OTG_STATE_A_SUSPEND :
611
611
case OTG_STATE_A_WAIT_BCON :
612
612
musb_dbg (musb , "HNP: %s timeout" ,
613
613
usb_otg_state_string (musb -> xceiv -> otg -> state ));
614
614
musb_platform_set_vbus (musb , 0 );
615
- musb -> xceiv -> otg -> state = OTG_STATE_A_WAIT_VFALL ;
615
+ musb_set_state ( musb , OTG_STATE_A_WAIT_VFALL ) ;
616
616
break ;
617
617
default :
618
618
musb_dbg (musb , "HNP: Unhandled mode %s" ,
@@ -633,7 +633,7 @@ void musb_hnp_stop(struct musb *musb)
633
633
musb_dbg (musb , "HNP: stop from %s" ,
634
634
usb_otg_state_string (musb -> xceiv -> otg -> state ));
635
635
636
- switch (musb -> xceiv -> otg -> state ) {
636
+ switch (musb_get_state ( musb ) ) {
637
637
case OTG_STATE_A_PERIPHERAL :
638
638
musb_g_disconnect (musb );
639
639
musb_dbg (musb , "HNP: back to %s" ,
@@ -643,7 +643,7 @@ void musb_hnp_stop(struct musb *musb)
643
643
musb_dbg (musb , "HNP: Disabling HR" );
644
644
if (hcd )
645
645
hcd -> self .is_b_host = 0 ;
646
- musb -> xceiv -> otg -> state = OTG_STATE_B_PERIPHERAL ;
646
+ musb_set_state ( musb , OTG_STATE_B_PERIPHERAL ) ;
647
647
MUSB_DEV_MODE (musb );
648
648
reg = musb_readb (mbase , MUSB_POWER );
649
649
reg |= MUSB_POWER_SUSPENDM ;
@@ -671,22 +671,22 @@ static void musb_handle_intr_resume(struct musb *musb, u8 devctl)
671
671
usb_otg_state_string (musb -> xceiv -> otg -> state ));
672
672
673
673
if (devctl & MUSB_DEVCTL_HM ) {
674
- switch (musb -> xceiv -> otg -> state ) {
674
+ switch (musb_get_state ( musb ) ) {
675
675
case OTG_STATE_A_SUSPEND :
676
676
/* remote wakeup? */
677
677
musb -> port1_status |=
678
678
(USB_PORT_STAT_C_SUSPEND << 16 )
679
679
| MUSB_PORT_STAT_RESUME ;
680
680
musb -> rh_timer = jiffies
681
681
+ msecs_to_jiffies (USB_RESUME_TIMEOUT );
682
- musb -> xceiv -> otg -> state = OTG_STATE_A_HOST ;
682
+ musb_set_state ( musb , OTG_STATE_A_HOST ) ;
683
683
musb -> is_active = 1 ;
684
684
musb_host_resume_root_hub (musb );
685
685
schedule_delayed_work (& musb -> finish_resume_work ,
686
686
msecs_to_jiffies (USB_RESUME_TIMEOUT ));
687
687
break ;
688
688
case OTG_STATE_B_WAIT_ACON :
689
- musb -> xceiv -> otg -> state = OTG_STATE_B_PERIPHERAL ;
689
+ musb_set_state ( musb , OTG_STATE_B_PERIPHERAL ) ;
690
690
musb -> is_active = 1 ;
691
691
MUSB_DEV_MODE (musb );
692
692
break ;
@@ -696,10 +696,10 @@ static void musb_handle_intr_resume(struct musb *musb, u8 devctl)
696
696
usb_otg_state_string (musb -> xceiv -> otg -> state ));
697
697
}
698
698
} else {
699
- switch (musb -> xceiv -> otg -> state ) {
699
+ switch (musb_get_state ( musb ) ) {
700
700
case OTG_STATE_A_SUSPEND :
701
701
/* possibly DISCONNECT is upcoming */
702
- musb -> xceiv -> otg -> state = OTG_STATE_A_HOST ;
702
+ musb_set_state ( musb , OTG_STATE_A_HOST ) ;
703
703
musb_host_resume_root_hub (musb );
704
704
break ;
705
705
case OTG_STATE_B_WAIT_ACON :
@@ -750,7 +750,7 @@ static irqreturn_t musb_handle_intr_sessreq(struct musb *musb, u8 devctl)
750
750
*/
751
751
musb_writeb (mbase , MUSB_DEVCTL , MUSB_DEVCTL_SESSION );
752
752
musb -> ep0_stage = MUSB_EP0_START ;
753
- musb -> xceiv -> otg -> state = OTG_STATE_A_IDLE ;
753
+ musb_set_state ( musb , OTG_STATE_A_IDLE ) ;
754
754
MUSB_HST_MODE (musb );
755
755
musb_platform_set_vbus (musb , 1 );
756
756
@@ -777,7 +777,7 @@ static void musb_handle_intr_vbuserr(struct musb *musb, u8 devctl)
777
777
* REVISIT: do delays from lots of DEBUG_KERNEL checks
778
778
* make trouble here, keeping VBUS < 4.4V ?
779
779
*/
780
- switch (musb -> xceiv -> otg -> state ) {
780
+ switch (musb_get_state ( musb ) ) {
781
781
case OTG_STATE_A_HOST :
782
782
/* recovery is dicey once we've gotten past the
783
783
* initial stages of enumeration, but if VBUS
@@ -833,7 +833,7 @@ static void musb_handle_intr_suspend(struct musb *musb, u8 devctl)
833
833
musb_dbg (musb , "SUSPEND (%s) devctl %02x" ,
834
834
usb_otg_state_string (musb -> xceiv -> otg -> state ), devctl );
835
835
836
- switch (musb -> xceiv -> otg -> state ) {
836
+ switch (musb_get_state ( musb ) ) {
837
837
case OTG_STATE_A_PERIPHERAL :
838
838
/* We also come here if the cable is removed, since
839
839
* this silicon doesn't report ID-no-longer-grounded.
@@ -858,7 +858,7 @@ static void musb_handle_intr_suspend(struct musb *musb, u8 devctl)
858
858
musb_g_suspend (musb );
859
859
musb -> is_active = musb -> g .b_hnp_enable ;
860
860
if (musb -> is_active ) {
861
- musb -> xceiv -> otg -> state = OTG_STATE_B_WAIT_ACON ;
861
+ musb_set_state ( musb , OTG_STATE_B_WAIT_ACON ) ;
862
862
musb_dbg (musb , "HNP: Setting timer for b_ase0_brst" );
863
863
mod_timer (& musb -> otg_timer , jiffies
864
864
+ msecs_to_jiffies (
@@ -871,7 +871,7 @@ static void musb_handle_intr_suspend(struct musb *musb, u8 devctl)
871
871
+ msecs_to_jiffies (musb -> a_wait_bcon ));
872
872
break ;
873
873
case OTG_STATE_A_HOST :
874
- musb -> xceiv -> otg -> state = OTG_STATE_A_SUSPEND ;
874
+ musb_set_state ( musb , OTG_STATE_A_SUSPEND ) ;
875
875
musb -> is_active = musb -> hcd -> self .b_hnp_enable ;
876
876
break ;
877
877
case OTG_STATE_B_HOST :
@@ -909,7 +909,7 @@ static void musb_handle_intr_connect(struct musb *musb, u8 devctl, u8 int_usb)
909
909
musb -> port1_status |= USB_PORT_STAT_LOW_SPEED ;
910
910
911
911
/* indicate new connection to OTG machine */
912
- switch (musb -> xceiv -> otg -> state ) {
912
+ switch (musb_get_state ( musb ) ) {
913
913
case OTG_STATE_B_PERIPHERAL :
914
914
if (int_usb & MUSB_INTR_SUSPEND ) {
915
915
musb_dbg (musb , "HNP: SUSPEND+CONNECT, now b_host" );
@@ -921,15 +921,15 @@ static void musb_handle_intr_connect(struct musb *musb, u8 devctl, u8 int_usb)
921
921
case OTG_STATE_B_WAIT_ACON :
922
922
musb_dbg (musb , "HNP: CONNECT, now b_host" );
923
923
b_host :
924
- musb -> xceiv -> otg -> state = OTG_STATE_B_HOST ;
924
+ musb_set_state ( musb , OTG_STATE_B_HOST ) ;
925
925
if (musb -> hcd )
926
926
musb -> hcd -> self .is_b_host = 1 ;
927
927
del_timer (& musb -> otg_timer );
928
928
break ;
929
929
default :
930
930
if ((devctl & MUSB_DEVCTL_VBUS )
931
931
== (3 << MUSB_DEVCTL_VBUS_SHIFT )) {
932
- musb -> xceiv -> otg -> state = OTG_STATE_A_HOST ;
932
+ musb_set_state ( musb , OTG_STATE_A_HOST ) ;
933
933
if (hcd )
934
934
hcd -> self .is_b_host = 0 ;
935
935
}
@@ -948,7 +948,7 @@ static void musb_handle_intr_disconnect(struct musb *musb, u8 devctl)
948
948
usb_otg_state_string (musb -> xceiv -> otg -> state ),
949
949
MUSB_MODE (musb ), devctl );
950
950
951
- switch (musb -> xceiv -> otg -> state ) {
951
+ switch (musb_get_state ( musb ) ) {
952
952
case OTG_STATE_A_HOST :
953
953
case OTG_STATE_A_SUSPEND :
954
954
musb_host_resume_root_hub (musb );
@@ -966,7 +966,7 @@ static void musb_handle_intr_disconnect(struct musb *musb, u8 devctl)
966
966
musb_root_disconnect (musb );
967
967
if (musb -> hcd )
968
968
musb -> hcd -> self .is_b_host = 0 ;
969
- musb -> xceiv -> otg -> state = OTG_STATE_B_PERIPHERAL ;
969
+ musb_set_state ( musb , OTG_STATE_B_PERIPHERAL ) ;
970
970
MUSB_DEV_MODE (musb );
971
971
musb_g_disconnect (musb );
972
972
break ;
@@ -1006,7 +1006,7 @@ static void musb_handle_intr_reset(struct musb *musb)
1006
1006
} else {
1007
1007
musb_dbg (musb , "BUS RESET as %s" ,
1008
1008
usb_otg_state_string (musb -> xceiv -> otg -> state ));
1009
- switch (musb -> xceiv -> otg -> state ) {
1009
+ switch (musb_get_state ( musb ) ) {
1010
1010
case OTG_STATE_A_SUSPEND :
1011
1011
musb_g_reset (musb );
1012
1012
fallthrough ;
@@ -1025,11 +1025,11 @@ static void musb_handle_intr_reset(struct musb *musb)
1025
1025
case OTG_STATE_B_WAIT_ACON :
1026
1026
musb_dbg (musb , "HNP: RESET (%s), to b_peripheral" ,
1027
1027
usb_otg_state_string (musb -> xceiv -> otg -> state ));
1028
- musb -> xceiv -> otg -> state = OTG_STATE_B_PERIPHERAL ;
1028
+ musb_set_state ( musb , OTG_STATE_B_PERIPHERAL ) ;
1029
1029
musb_g_reset (musb );
1030
1030
break ;
1031
1031
case OTG_STATE_B_IDLE :
1032
- musb -> xceiv -> otg -> state = OTG_STATE_B_PERIPHERAL ;
1032
+ musb_set_state ( musb , OTG_STATE_B_PERIPHERAL ) ;
1033
1033
fallthrough ;
1034
1034
case OTG_STATE_B_PERIPHERAL :
1035
1035
musb_g_reset (musb );
@@ -1216,8 +1216,8 @@ void musb_start(struct musb *musb)
1216
1216
* (c) peripheral initiates, using SRP
1217
1217
*/
1218
1218
if (musb -> port_mode != MUSB_HOST &&
1219
- musb -> xceiv -> otg -> state != OTG_STATE_A_WAIT_BCON &&
1220
- (devctl & MUSB_DEVCTL_VBUS ) == MUSB_DEVCTL_VBUS ) {
1219
+ musb_get_state ( musb ) != OTG_STATE_A_WAIT_BCON &&
1220
+ (devctl & MUSB_DEVCTL_VBUS ) == MUSB_DEVCTL_VBUS ) {
1221
1221
musb -> is_active = 1 ;
1222
1222
} else {
1223
1223
devctl |= MUSB_DEVCTL_SESSION ;
@@ -1908,7 +1908,7 @@ vbus_store(struct device *dev, struct device_attribute *attr,
1908
1908
spin_lock_irqsave (& musb -> lock , flags );
1909
1909
/* force T(a_wait_bcon) to be zero/unlimited *OR* valid */
1910
1910
musb -> a_wait_bcon = val ? max_t (int , val , OTG_TIME_A_WAIT_BCON ) : 0 ;
1911
- if (musb -> xceiv -> otg -> state == OTG_STATE_A_WAIT_BCON )
1911
+ if (musb_get_state ( musb ) == OTG_STATE_A_WAIT_BCON )
1912
1912
musb -> is_active = 0 ;
1913
1913
musb_platform_try_idle (musb , jiffies + msecs_to_jiffies (val ));
1914
1914
spin_unlock_irqrestore (& musb -> lock , flags );
@@ -2089,8 +2089,8 @@ static void musb_irq_work(struct work_struct *data)
2089
2089
2090
2090
musb_pm_runtime_check_session (musb );
2091
2091
2092
- if (musb -> xceiv -> otg -> state != musb -> xceiv_old_state ) {
2093
- musb -> xceiv_old_state = musb -> xceiv -> otg -> state ;
2092
+ if (musb_get_state ( musb ) != musb -> xceiv_old_state ) {
2093
+ musb -> xceiv_old_state = musb_get_state ( musb ) ;
2094
2094
sysfs_notify (& musb -> controller -> kobj , NULL , "mode" );
2095
2095
}
2096
2096
@@ -2532,7 +2532,7 @@ musb_init_controller(struct device *dev, int nIrq, void __iomem *ctrl)
2532
2532
}
2533
2533
2534
2534
MUSB_DEV_MODE (musb );
2535
- musb -> xceiv -> otg -> state = OTG_STATE_B_IDLE ;
2535
+ musb_set_state ( musb , OTG_STATE_B_IDLE ) ;
2536
2536
2537
2537
switch (musb -> port_mode ) {
2538
2538
case MUSB_HOST :
0 commit comments