diff options
author | Li Jun <b47624@freescale.com> | 2015-03-20 16:28:04 +0800 |
---|---|---|
committer | Greg Kroah-Hartman <gregkh@linuxfoundation.org> | 2015-03-26 10:54:01 +0100 |
commit | 01ecd156905f6bbfe4f5bd278325071f9141726d (patch) | |
tree | 269fc82edb32cc68a826e3c346281089413bca7a /drivers | |
parent | 963719c872a3a71bc2abf4d4899392acab93b09d (diff) | |
download | linux-01ecd156905f6bbfe4f5bd278325071f9141726d.tar.bz2 |
usb: chipidea: otg: remove unnecessary B_SESS_VLD timer
Since BSV irq is enabled for B-device all the time, so B_SESS_VLD timer
is not required, and also no need to check BSV status when B_ASE0_BRST
timer timeout.
Signed-off-by: Li Jun <jun.li@freescale.com>
Signed-off-by: Peter Chen <peter.chen@freescale.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Diffstat (limited to 'drivers')
-rw-r--r-- | drivers/usb/chipidea/otg_fsm.c | 31 | ||||
-rw-r--r-- | drivers/usb/chipidea/otg_fsm.h | 3 |
2 files changed, 1 insertions, 33 deletions
diff --git a/drivers/usb/chipidea/otg_fsm.c b/drivers/usb/chipidea/otg_fsm.c index e3cf5be66d3d..3014e2c0ac37 100644 --- a/drivers/usb/chipidea/otg_fsm.c +++ b/drivers/usb/chipidea/otg_fsm.c @@ -320,17 +320,6 @@ static void a_wait_vfall_tmout_func(void *ptr, unsigned long indicator) ci_otg_queue_work(ci); } -static void b_ase0_brst_tmout_func(void *ptr, unsigned long indicator) -{ - struct ci_hdrc *ci = (struct ci_hdrc *)ptr; - - set_tmout(ci, indicator); - if (!hw_read_otgsc(ci, OTGSC_BSV)) - ci->fsm.b_sess_vld = 0; - - ci_otg_queue_work(ci); -} - static void b_ssend_srp_tmout_func(void *ptr, unsigned long indicator) { struct ci_hdrc *ci = (struct ci_hdrc *)ptr; @@ -342,18 +331,6 @@ static void b_ssend_srp_tmout_func(void *ptr, unsigned long indicator) ci_otg_queue_work(ci); } -static void b_sess_vld_tmout_func(void *ptr, unsigned long indicator) -{ - struct ci_hdrc *ci = (struct ci_hdrc *)ptr; - - /* Check if A detached */ - if (!(hw_read_otgsc(ci, OTGSC_BSV))) { - ci->fsm.b_sess_vld = 0; - ci_otg_add_timer(ci, B_SSEND_SRP); - ci_otg_queue_work(ci); - } -} - static void b_data_pulse_end(void *ptr, unsigned long indicator) { struct ci_hdrc *ci = (struct ci_hdrc *)ptr; @@ -405,7 +382,7 @@ static int ci_otg_init_timers(struct ci_hdrc *ci) return -ENOMEM; ci->fsm_timer->timer_list[B_ASE0_BRST] = - otg_timer_initializer(ci, &b_ase0_brst_tmout_func, TB_ASE0_BRST, + otg_timer_initializer(ci, &set_tmout_and_fsm, TB_ASE0_BRST, (unsigned long)&fsm->b_ase0_brst_tmout); if (ci->fsm_timer->timer_list[B_ASE0_BRST] == NULL) return -ENOMEM; @@ -433,11 +410,6 @@ static int ci_otg_init_timers(struct ci_hdrc *ci) if (ci->fsm_timer->timer_list[B_DATA_PLS] == NULL) return -ENOMEM; - ci->fsm_timer->timer_list[B_SESS_VLD] = otg_timer_initializer(ci, - &b_sess_vld_tmout_func, TB_SESS_VLD, 0); - if (ci->fsm_timer->timer_list[B_SESS_VLD] == NULL) - return -ENOMEM; - return 0; } @@ -671,7 +643,6 @@ static void ci_otg_fsm_event(struct ci_hdrc *ci) fsm->a_conn = 0; fsm->b_bus_req = 0; ci_otg_queue_work(ci); - ci_otg_add_timer(ci, B_SESS_VLD); } break; case OTG_STATE_A_PERIPHERAL: diff --git a/drivers/usb/chipidea/otg_fsm.h b/drivers/usb/chipidea/otg_fsm.h index 94c085f456a9..d0ad4f9ef950 100644 --- a/drivers/usb/chipidea/otg_fsm.h +++ b/drivers/usb/chipidea/otg_fsm.h @@ -62,8 +62,6 @@ /* SSEND time before SRP */ #define TB_SSEND_SRP (1500) /* minimum 1.5 sec, section:5.1.2 */ -#define TB_SESS_VLD (1000) - enum ci_otg_fsm_timer_index { /* * CI specific timers, start from the end @@ -71,7 +69,6 @@ enum ci_otg_fsm_timer_index { */ B_DATA_PLS = NUM_OTG_FSM_TIMERS, B_SSEND_SRP, - B_SESS_VLD, NUM_CI_OTG_FSM_TIMERS, }; |