Commit 4d616831 authored by Rui Feng's avatar Rui Feng Committed by Greg Kroah-Hartman

misc: rtsx: Fix impossible condition

A u8 can only go up to 255, condition n > 396 is
impossible, so change u8 to u16.
Signed-off-by: default avatarRui Feng <rui_feng@realsil.com.cn>
Link: https://lore.kernel.org/r/1574214006-13540-1-git-send-email-rui_feng@realsil.com.cnSigned-off-by: default avatarGreg Kroah-Hartman <gregkh@linuxfoundation.org>
parent efb5bea6
...@@ -628,7 +628,8 @@ int rts5261_pci_switch_clock(struct rtsx_pcr *pcr, unsigned int card_clock, ...@@ -628,7 +628,8 @@ int rts5261_pci_switch_clock(struct rtsx_pcr *pcr, unsigned int card_clock,
u8 ssc_depth, bool initial_mode, bool double_clk, bool vpclk) u8 ssc_depth, bool initial_mode, bool double_clk, bool vpclk)
{ {
int err, clk; int err, clk;
u8 n, clk_divider, mcu_cnt, div; u16 n;
u8 clk_divider, mcu_cnt, div;
static const u8 depth[] = { static const u8 depth[] = {
[RTSX_SSC_DEPTH_4M] = RTS5261_SSC_DEPTH_4M, [RTSX_SSC_DEPTH_4M] = RTS5261_SSC_DEPTH_4M,
[RTSX_SSC_DEPTH_2M] = RTS5261_SSC_DEPTH_2M, [RTSX_SSC_DEPTH_2M] = RTS5261_SSC_DEPTH_2M,
...@@ -661,13 +662,13 @@ int rts5261_pci_switch_clock(struct rtsx_pcr *pcr, unsigned int card_clock, ...@@ -661,13 +662,13 @@ int rts5261_pci_switch_clock(struct rtsx_pcr *pcr, unsigned int card_clock,
return 0; return 0;
if (pcr->ops->conv_clk_and_div_n) if (pcr->ops->conv_clk_and_div_n)
n = (u8)pcr->ops->conv_clk_and_div_n(clk, CLK_TO_DIV_N); n = pcr->ops->conv_clk_and_div_n(clk, CLK_TO_DIV_N);
else else
n = (u8)(clk - 4); n = clk - 4;
if ((clk <= 4) || (n > 396)) if ((clk <= 4) || (n > 396))
return -EINVAL; return -EINVAL;
mcu_cnt = (u8)(125/clk + 3); mcu_cnt = 125/clk + 3;
if (mcu_cnt > 15) if (mcu_cnt > 15)
mcu_cnt = 15; mcu_cnt = 15;
...@@ -676,7 +677,7 @@ int rts5261_pci_switch_clock(struct rtsx_pcr *pcr, unsigned int card_clock, ...@@ -676,7 +677,7 @@ int rts5261_pci_switch_clock(struct rtsx_pcr *pcr, unsigned int card_clock,
if (pcr->ops->conv_clk_and_div_n) { if (pcr->ops->conv_clk_and_div_n) {
int dbl_clk = pcr->ops->conv_clk_and_div_n(n, int dbl_clk = pcr->ops->conv_clk_and_div_n(n,
DIV_N_TO_CLK) * 2; DIV_N_TO_CLK) * 2;
n = (u8)pcr->ops->conv_clk_and_div_n(dbl_clk, n = pcr->ops->conv_clk_and_div_n(dbl_clk,
CLK_TO_DIV_N); CLK_TO_DIV_N);
} else { } else {
n = (n + 4) * 2 - 4; n = (n + 4) * 2 - 4;
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment