Merge "Revert "ASoC: codecs: handle device disconnect during SSR""
This commit is contained in:

committed by
Gerrit - the friendly Code Review server

commit
0773e4d1f7
@@ -1621,8 +1621,6 @@ static int wcd_mbhc_set_keycode(struct wcd_mbhc *mbhc)
|
|||||||
static int wcd_mbhc_usbc_ana_event_handler(struct notifier_block *nb,
|
static int wcd_mbhc_usbc_ana_event_handler(struct notifier_block *nb,
|
||||||
unsigned long mode, void *ptr)
|
unsigned long mode, void *ptr)
|
||||||
{
|
{
|
||||||
unsigned int l_det_en = 0;
|
|
||||||
unsigned int detection_type = 0;
|
|
||||||
struct wcd_mbhc *mbhc = container_of(nb, struct wcd_mbhc, fsa_nb);
|
struct wcd_mbhc *mbhc = container_of(nb, struct wcd_mbhc, fsa_nb);
|
||||||
|
|
||||||
if (!mbhc)
|
if (!mbhc)
|
||||||
@@ -1635,23 +1633,6 @@ static int wcd_mbhc_usbc_ana_event_handler(struct notifier_block *nb,
|
|||||||
mbhc->mbhc_cb->clk_setup(mbhc->component, true);
|
mbhc->mbhc_cb->clk_setup(mbhc->component, true);
|
||||||
/* insertion detected, enable L_DET_EN */
|
/* insertion detected, enable L_DET_EN */
|
||||||
WCD_MBHC_REG_UPDATE_BITS(WCD_MBHC_L_DET_EN, 1);
|
WCD_MBHC_REG_UPDATE_BITS(WCD_MBHC_L_DET_EN, 1);
|
||||||
} else {
|
|
||||||
WCD_MBHC_REG_READ(WCD_MBHC_MECH_DETECTION_TYPE, detection_type);
|
|
||||||
WCD_MBHC_REG_READ(WCD_MBHC_L_DET_EN, l_det_en);
|
|
||||||
/* If both l_det_en and detection type are set, it means device was
|
|
||||||
* unplugged during SSR and detection interrupt was not handled.
|
|
||||||
* So trigger device disconnect */
|
|
||||||
if (detection_type && l_det_en) {
|
|
||||||
/* Set the detection type appropriately */
|
|
||||||
WCD_MBHC_REG_UPDATE_BITS(WCD_MBHC_MECH_DETECTION_TYPE,
|
|
||||||
!detection_type);
|
|
||||||
/* Set current plug type to the state before SSR */
|
|
||||||
mbhc->current_plug = mbhc->plug_before_ssr;
|
|
||||||
|
|
||||||
wcd_mbhc_swch_irq_handler(mbhc);
|
|
||||||
mbhc->mbhc_cb->lock_sleep(mbhc, false);
|
|
||||||
mbhc->plug_before_ssr = MBHC_PLUG_TYPE_NONE;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
@@ -2156,8 +2156,6 @@ static int wcd938x_event_notify(struct notifier_block *block,
|
|||||||
WCD938X_EVT_SSR_DOWN,
|
WCD938X_EVT_SSR_DOWN,
|
||||||
NULL);
|
NULL);
|
||||||
wcd938x->mbhc->wcd_mbhc.deinit_in_progress = true;
|
wcd938x->mbhc->wcd_mbhc.deinit_in_progress = true;
|
||||||
wcd938x->mbhc->wcd_mbhc.plug_before_ssr =
|
|
||||||
wcd938x->mbhc->wcd_mbhc.current_plug;
|
|
||||||
mbhc = &wcd938x->mbhc->wcd_mbhc;
|
mbhc = &wcd938x->mbhc->wcd_mbhc;
|
||||||
wcd938x->usbc_hs_status = get_usbc_hs_status(component,
|
wcd938x->usbc_hs_status = get_usbc_hs_status(component,
|
||||||
mbhc->mbhc_cfg);
|
mbhc->mbhc_cfg);
|
||||||
|
@@ -551,7 +551,6 @@ struct wcd_mbhc {
|
|||||||
wait_queue_head_t wait_btn_press;
|
wait_queue_head_t wait_btn_press;
|
||||||
bool is_btn_press;
|
bool is_btn_press;
|
||||||
u8 current_plug;
|
u8 current_plug;
|
||||||
u8 plug_before_ssr;
|
|
||||||
bool in_swch_irq_handler;
|
bool in_swch_irq_handler;
|
||||||
bool hphl_swh; /*track HPHL switch NC / NO */
|
bool hphl_swh; /*track HPHL switch NC / NO */
|
||||||
bool gnd_swh; /*track GND switch NC / NO */
|
bool gnd_swh; /*track GND switch NC / NO */
|
||||||
|
Reference in New Issue
Block a user