Lines Matching refs:a_gain
651 static int sc031gs_set_ctrl_gain(struct sc031gs *sc031gs, u32 a_gain) in sc031gs_set_ctrl_gain() argument
656 if (a_gain < 0x20) { /*1x ~ 2x*/ in sc031gs_set_ctrl_gain()
657 fine_again = a_gain - 16; in sc031gs_set_ctrl_gain()
663 } else if (a_gain < 0x40) { /*2x ~ 4x*/ in sc031gs_set_ctrl_gain()
664 fine_again = (a_gain >> 1) - 16; in sc031gs_set_ctrl_gain()
670 } else if (a_gain < 0x80) { /*4x ~ 8x*/ in sc031gs_set_ctrl_gain()
671 fine_again = (a_gain >> 2) - 16; in sc031gs_set_ctrl_gain()
677 } else if (a_gain < 0x100) { /*8x ~ 16x*/ in sc031gs_set_ctrl_gain()
678 fine_again = (a_gain >> 3) - 16; in sc031gs_set_ctrl_gain()
684 } else if (a_gain < 0x200) { /*16x ~ 32x*/ in sc031gs_set_ctrl_gain()
687 digital_gain_reg = (a_gain * 0x80 / 0x100) & 0xf8; in sc031gs_set_ctrl_gain()
688 } else if (a_gain < 0x400) { /*32x ~ 64x*/ in sc031gs_set_ctrl_gain()
691 digital_gain_reg = (a_gain * 0x80 / 0x200) & 0x1f8; in sc031gs_set_ctrl_gain()
695 digital_gain_reg = (a_gain * 0x80 / 0x400) & 0x3f8; in sc031gs_set_ctrl_gain()
698 if (a_gain < 0x20) { in sc031gs_set_ctrl_gain()