[Sorry for breaking the thread, but I don't have the initial message to reply to.]
I tried your patchset and faced some issues regarding removal detection: the driver detects headphone and microphone removal as soon as I press a button on the headset.
evtest logs:
[Headset insertion] Event: time 10207.841157, type 1 (EV_KEY), code 226 (KEY_MEDIA), value 1 Event: time 10207.841157, -------------- SYN_REPORT ------------ Event: time 10208.039105, type 1 (EV_KEY), code 226 (KEY_MEDIA), value 0 Event: time 10208.039105, -------------- SYN_REPORT ------------ Event: time 10208.075519, type 5 (EV_SW), code 2 (SW_HEADPHONE_INSERT), value 1 Event: time 10208.075519, type 5 (EV_SW), code 4 (SW_MICROPHONE_INSERT), value 1 Event: time 10208.075519, -------------- SYN_REPORT ------------ [Pressing Volume up Button] Event: time 10210.590403, type 1 (EV_KEY), code 115 (KEY_VOLUMEUP), value 1 Event: time 10210.590403, type 5 (EV_SW), code 2 (SW_HEADPHONE_INSERT), value 0 Event: time 10210.590403, type 5 (EV_SW), code 4 (SW_MICROPHONE_INSERT), value 0 Event: time 10210.590403, -------------- SYN_REPORT ------------ Event: time 10210.719560, type 1 (EV_KEY), code 115 (KEY_VOLUMEUP), value 0 Event: time 10210.719560, -------------- SYN_REPORT ------------ [Unplugging] Event: time 10221.926156, type 1 (EV_KEY), code 226 (KEY_MEDIA), value 1 Event: time 10221.926156, -------------- SYN_REPORT ------------ Event: time 10222.026466, type 1 (EV_KEY), code 226 (KEY_MEDIA), value 0 Event: time 10222.026466, -------------- SYN_REPORT ------------
Also, the KEY_MEDIA is wrongly reported but I don't see that every time, I think it depends on how fast I plug in the headset. Anyway, I think that can easily be filtered out by testing the presence of the microphone.
Regards,