Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

clk: zx: fix pointer case warnings

The zx296718 clock driver has a creative way of assigning the register
values for each clock, by initializing an __iomem pointer to an
offset and then later adding the base (from ioremap) on top
with a cast to u64. This fail on all 32-bit architectures during
compile testing:

drivers/clk/zte/clk-zx296718.c: In function 'top_clocks_init':
drivers/clk/zte/clk-zx296718.c:554:35: error: cast from pointer to integer of different size [-Werror=pointer-to-int-cast]
zx296718_pll_clk[i].reg_base += (u64)reg_base;
drivers/clk/zte/clk-zx296718.c:579:29: error: cast from pointer to integer of different size [-Werror=pointer-to-int-cast]
drivers/clk/zte/clk-zx296718.c:592:31: error: cast from pointer to integer of different size [-Werror=pointer-to-int-cast]

It would be nice to avoid all the casts, but I decided to simply
shut up the warnings by changing the type from u64 to uintptr_t,
which does the right thing in practice.

Signed-off-by: Arnd Bergmann <arnd@arndb.de>
Fixes: ca0233285a93 ("clk: zx: register ZX296718 clocks")
Signed-off-by: Stephen Boyd <sboyd@codeaurora.org>

authored by

Arnd Bergmann and committed by
Stephen Boyd
f00d2db7 0637a4c7

+10 -10
+10 -10
drivers/clk/zte/clk-zx296718.c
··· 551 551 } 552 552 553 553 for (i = 0; i < ARRAY_SIZE(zx296718_pll_clk); i++) { 554 - zx296718_pll_clk[i].reg_base += (u64)reg_base; 554 + zx296718_pll_clk[i].reg_base += (uintptr_t)reg_base; 555 555 ret = clk_hw_register(NULL, &zx296718_pll_clk[i].hw); 556 556 if (ret) { 557 557 pr_warn("top clk %s init error!\n", ··· 576 576 top_hw_onecell_data.hws[top_mux_clk[i].id] = 577 577 &top_mux_clk[i].mux.hw; 578 578 579 - top_mux_clk[i].mux.reg += (u64)reg_base; 579 + top_mux_clk[i].mux.reg += (uintptr_t)reg_base; 580 580 ret = clk_hw_register(NULL, &top_mux_clk[i].mux.hw); 581 581 if (ret) { 582 582 pr_warn("top clk %s init error!\n", ··· 589 589 top_hw_onecell_data.hws[top_gate_clk[i].id] = 590 590 &top_gate_clk[i].gate.hw; 591 591 592 - top_gate_clk[i].gate.reg += (u64)reg_base; 592 + top_gate_clk[i].gate.reg += (uintptr_t)reg_base; 593 593 ret = clk_hw_register(NULL, &top_gate_clk[i].gate.hw); 594 594 if (ret) { 595 595 pr_warn("top clk %s init error!\n", ··· 602 602 top_hw_onecell_data.hws[top_div_clk[i].id] = 603 603 &top_div_clk[i].div.hw; 604 604 605 - top_div_clk[i].div.reg += (u64)reg_base; 605 + top_div_clk[i].div.reg += (uintptr_t)reg_base; 606 606 ret = clk_hw_register(NULL, &top_div_clk[i].div.hw); 607 607 if (ret) { 608 608 pr_warn("top clk %s init error!\n", ··· 742 742 lsp0_hw_onecell_data.hws[lsp0_mux_clk[i].id] = 743 743 &lsp0_mux_clk[i].mux.hw; 744 744 745 - lsp0_mux_clk[i].mux.reg += (u64)reg_base; 745 + lsp0_mux_clk[i].mux.reg += (uintptr_t)reg_base; 746 746 ret = clk_hw_register(NULL, &lsp0_mux_clk[i].mux.hw); 747 747 if (ret) { 748 748 pr_warn("lsp0 clk %s init error!\n", ··· 755 755 lsp0_hw_onecell_data.hws[lsp0_gate_clk[i].id] = 756 756 &lsp0_gate_clk[i].gate.hw; 757 757 758 - lsp0_gate_clk[i].gate.reg += (u64)reg_base; 758 + lsp0_gate_clk[i].gate.reg += (uintptr_t)reg_base; 759 759 ret = clk_hw_register(NULL, &lsp0_gate_clk[i].gate.hw); 760 760 if (ret) { 761 761 pr_warn("lsp0 clk %s init error!\n", ··· 768 768 lsp0_hw_onecell_data.hws[lsp0_div_clk[i].id] = 769 769 &lsp0_div_clk[i].div.hw; 770 770 771 - lsp0_div_clk[i].div.reg += (u64)reg_base; 771 + lsp0_div_clk[i].div.reg += (uintptr_t)reg_base; 772 772 ret = clk_hw_register(NULL, &lsp0_div_clk[i].div.hw); 773 773 if (ret) { 774 774 pr_warn("lsp0 clk %s init error!\n", ··· 847 847 lsp1_hw_onecell_data.hws[lsp1_mux_clk[i].id] = 848 848 &lsp0_mux_clk[i].mux.hw; 849 849 850 - lsp1_mux_clk[i].mux.reg += (u64)reg_base; 850 + lsp1_mux_clk[i].mux.reg += (uintptr_t)reg_base; 851 851 ret = clk_hw_register(NULL, &lsp1_mux_clk[i].mux.hw); 852 852 if (ret) { 853 853 pr_warn("lsp1 clk %s init error!\n", ··· 860 860 lsp1_hw_onecell_data.hws[lsp1_gate_clk[i].id] = 861 861 &lsp1_gate_clk[i].gate.hw; 862 862 863 - lsp1_gate_clk[i].gate.reg += (u64)reg_base; 863 + lsp1_gate_clk[i].gate.reg += (uintptr_t)reg_base; 864 864 ret = clk_hw_register(NULL, &lsp1_gate_clk[i].gate.hw); 865 865 if (ret) { 866 866 pr_warn("lsp1 clk %s init error!\n", ··· 873 873 lsp1_hw_onecell_data.hws[lsp1_div_clk[i].id] = 874 874 &lsp1_div_clk[i].div.hw; 875 875 876 - lsp1_div_clk[i].div.reg += (u64)reg_base; 876 + lsp1_div_clk[i].div.reg += (uintptr_t)reg_base; 877 877 ret = clk_hw_register(NULL, &lsp1_div_clk[i].div.hw); 878 878 if (ret) { 879 879 pr_warn("lsp1 clk %s init error!\n",