SW_ID_3DP
case SW_ID_3DP:
input_report_key(dev, sw_btn[SW_ID_3DP][j], !GB(j+8,1));
if (sw->type == SW_ID_3DP && sw->length == 66 && i != 66) { /* Broken packet, try to fix */
if (sw->type == SW_ID_3DP && sw->length == 66 /* Many packets OK */
if (sw->type == SW_ID_3DP && sw->length == 22 && sw->fail > SW_BAD) { /* Consecutive bad packets */
if (!i && sw->type == SW_ID_3DP) { /* 3D Pro can be in analog mode */
sw->type = SW_ID_3DP;