mirror of
https://github.com/hardkernel/linux.git
synced 2026-06-08 03:40:35 +09:00
phy: rockchip: inno-hdmi: fix 3229 div zero error in recalc_rate
Pre PLL pclk_dividera value range is from 1 to 31, but the default value of register 0xe0 on 3229 is zero. To avoid div zero error, we take the divider value as one. [<c0110070>] (unwind_backtrace) from [<c010bcbc>] (show_stack+0x20/0x24) [<c010bcbc>] (show_stack) from [<c040f56c>] (dump_stack+0x80/0xa0) [<c040f56c>] (dump_stack) from [<c010bbf4>] (__div0+0x20/0x28) [<c010bbf4>] (__div0) from [<c040d62c>] (Ldiv0_64+0x8/0x18) [<c040d62c>] (Ldiv0_64) from [<c043f310>] (inno_hdmi_rk3228_phy_pll_recalc_rate+0x104/0x114) [<c043f310>] (inno_hdmi_rk3228_phy_pll_recalc_rate) from [<c043efac>] (inno_hdmi_phy_clk_recalc_rate+0x30/0x3c) [<c043efac>] (inno_hdmi_phy_clk_recalc_rate) from [<c0980c00>] (clk_register+0x438/0x64c) [<c0980c00>] (clk_register) from [<c0980e68>] (devm_clk_register+0x54/0x94) [<c0980e68>] (devm_clk_register) from [<c0440028>] (inno_hdmi_phy_probe+0x24c/0x378) [<c0440028>] (inno_hdmi_phy_probe) from [<c0566424>] (platform_drv_probe+0x60/0xac) [<c0566424>] (platform_drv_probe) from [<c05645bc>] (driver_probe_device+0x120/0x2a8) [<c05645bc>] (driver_probe_device) from [<c05647bc>] (__driver_attach+0x78/0x9c) [<c05647bc>] (__driver_attach) from [<c0562a28>] (bus_for_each_dev+0x84/0x98) [<c0562a28>] (bus_for_each_dev) from [<c05640d0>] (driver_attach+0x28/0x30) [<c05640d0>] (driver_attach) from [<c0563c5c>] (bus_add_driver+0xdc/0x1f8) [<c0563c5c>] (bus_add_driver) from [<c056533c>] (driver_register+0xac/0xf0) [<c056533c>] (driver_register) from [<c0566364>] (__platform_driver_register+0x40/0x54) [<c0566364>] (__platform_driver_register) from [<c122af4c>] (inno_hdmi_phy_driver_init+0x18/0x20) [<c122af4c>] (inno_hdmi_phy_driver_init) from [<c0101ad4>] (do_one_initcall+0x114/0x1c8) [<c0101ad4>] (do_one_initcall) from [<c1200ef0>] (kernel_init_freeable+0x1ac/0x280) [<c1200ef0>] (kernel_init_freeable) from [<c0c5e4c8>] (kernel_init+0x18/0x11c) [<c0c5e4c8>] (kernel_init) from [<c0107550>] (ret_from_fork+0x14/0x24) Change-Id: Ib61fbd87547d3316e9ed5b564e291b6c15d93cdd Signed-off-by: Zheng Yang <zhengyang@rock-chips.com>
This commit is contained in:
@@ -1045,6 +1045,8 @@ inno_hdmi_rk3228_phy_pll_recalc_rate(struct inno_hdmi_phy *inno,
|
||||
do_div(vco, nd * 5);
|
||||
} else {
|
||||
no_a = inno_read(inno, 0xe4) & 0x1f;
|
||||
if (!no_a)
|
||||
no_a = 1;
|
||||
no_b = ((inno_read(inno, 0xe4) >> 5) & 0x3) + 2;
|
||||
no_d = inno_read(inno, 0xe5) & 0x1f;
|
||||
|
||||
|
||||
Reference in New Issue
Block a user