mirror of
https://github.com/hardkernel/linux.git
synced 2026-06-08 03:40:35 +09:00
media: i2c: jx_h62: fix set gain bug
Signed-off-by: Zhichao Yu <zhichao.yu@rock-chips.com> Change-Id: I2375125c5eafea26c983ef6f08a0ba88c4ccec7d
This commit is contained in:
@@ -866,15 +866,15 @@ static int jx_h62_set_ctrl_gain(struct jx_h62 *jx_h62, u32 a_gain)
|
||||
|
||||
/* Total gain = 2^PGA[5:4]*(1+PGA[3:0]/16) */
|
||||
if ( a_gain != jx_h62->old_gain) {
|
||||
if (a_gain < 0x10) { /*1x ~ 2x*/
|
||||
fine_again = a_gain;
|
||||
coarse_again = 0x00 << 4;
|
||||
} else if (a_gain < 0x40) { /*2x ~ 4x*/
|
||||
if (a_gain <= 0x20) { /*1x ~ 2x*/
|
||||
fine_again = a_gain - 16;
|
||||
coarse_again = (0x00 << 4);
|
||||
} else if (a_gain <= 0x40) { /*2x ~ 4x*/
|
||||
fine_again = (a_gain >> 1) - 16;
|
||||
coarse_again = 0x01 << 4;
|
||||
} else if (a_gain < 0x80) { /*4x ~ 8x*/
|
||||
} else if (a_gain <= 0x80) { /*4x ~ 8x*/
|
||||
fine_again = (a_gain >> 2) - 16;
|
||||
coarse_again = 0x2;
|
||||
coarse_again = 0x2 << 4;
|
||||
} else { /*8x ~ 15.5x*/
|
||||
fine_again = (a_gain >> 3) - 16;
|
||||
coarse_again = 0x03 << 4;
|
||||
|
||||
Reference in New Issue
Block a user