media: atomisp: fix mask and shift operation on ISPSSPM0
Currently the check on bits 25:24 on ISPSSPM0 is always 0 because
the mask and shift operations are incorrect. Fix this by shifting
by MRFLD_ISPSSPM0_ISPSSS_OFFSET (24 bits right) and then masking
with RFLD_ISPSSPM0_ISPSSC_MASK (0x03) to get the appropriate 2 bits
to check.
Addresses-Coverity: ("Operands don't affect result")
Fixes: 0f441fd70b
("media: atomisp: simplify the power down/up code")
Signed-off-by: Colin Ian King <colin.king@canonical.com>
Signed-off-by: Mauro Carvalho Chehab <mchehab+huawei@kernel.org>
This commit is contained in:
parent
85ebb8eb12
commit
23988c9704
|
@ -743,7 +743,7 @@ static int atomisp_mrfld_power(struct atomisp_device *isp, bool enable)
|
||||||
|
|
||||||
/* Wait until ISPSSPM0 bit[25:24] shows the right value */
|
/* Wait until ISPSSPM0 bit[25:24] shows the right value */
|
||||||
iosf_mbi_read(BT_MBI_UNIT_PMC, MBI_REG_READ, MRFLD_ISPSSPM0, &tmp);
|
iosf_mbi_read(BT_MBI_UNIT_PMC, MBI_REG_READ, MRFLD_ISPSSPM0, &tmp);
|
||||||
tmp = (tmp & MRFLD_ISPSSPM0_ISPSSC_MASK) >> MRFLD_ISPSSPM0_ISPSSS_OFFSET;
|
tmp = (tmp >> MRFLD_ISPSSPM0_ISPSSS_OFFSET) & MRFLD_ISPSSPM0_ISPSSC_MASK;
|
||||||
if (tmp == val) {
|
if (tmp == val) {
|
||||||
trace_ipu_cstate(enable);
|
trace_ipu_cstate(enable);
|
||||||
return 0;
|
return 0;
|
||||||
|
|
Loading…
Reference in New Issue