Commit 350f7596 authored by Alexey Dobriyan's avatar Alexey Dobriyan Committed by David S. Miller

r8169: move PHY regs tables to .rodata

As side effect, consume less stack.

	-rtl8169_get_mac_version [vmlinux]:	432
	-rtl8169_init_one [vmlinux]:		376
	+rtl8169_init_one [vmlinux]:		136
Signed-off-by: default avatarAlexey Dobriyan <adobriyan@gmail.com>
Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
parent bc74b0c8
...@@ -794,7 +794,7 @@ static int rtl8169_set_wol(struct net_device *dev, struct ethtool_wolinfo *wol) ...@@ -794,7 +794,7 @@ static int rtl8169_set_wol(struct net_device *dev, struct ethtool_wolinfo *wol)
struct rtl8169_private *tp = netdev_priv(dev); struct rtl8169_private *tp = netdev_priv(dev);
void __iomem *ioaddr = tp->mmio_addr; void __iomem *ioaddr = tp->mmio_addr;
unsigned int i; unsigned int i;
static struct { static const struct {
u32 opt; u32 opt;
u16 reg; u16 reg;
u8 mask; u8 mask;
...@@ -1277,7 +1277,7 @@ static void rtl8169_get_mac_version(struct rtl8169_private *tp, ...@@ -1277,7 +1277,7 @@ static void rtl8169_get_mac_version(struct rtl8169_private *tp,
* *
* (RTL_R32(TxConfig) & 0x700000) == 0x200000 ? 8101Eb : 8101Ec * (RTL_R32(TxConfig) & 0x700000) == 0x200000 ? 8101Eb : 8101Ec
*/ */
const struct { static const struct {
u32 mask; u32 mask;
u32 val; u32 val;
int mac_version; int mac_version;
...@@ -1351,7 +1351,7 @@ struct phy_reg { ...@@ -1351,7 +1351,7 @@ struct phy_reg {
u16 val; u16 val;
}; };
static void rtl_phy_write(void __iomem *ioaddr, struct phy_reg *regs, int len) static void rtl_phy_write(void __iomem *ioaddr, const struct phy_reg *regs, int len)
{ {
while (len-- > 0) { while (len-- > 0) {
mdio_write(ioaddr, regs->reg, regs->val); mdio_write(ioaddr, regs->reg, regs->val);
...@@ -1361,7 +1361,7 @@ static void rtl_phy_write(void __iomem *ioaddr, struct phy_reg *regs, int len) ...@@ -1361,7 +1361,7 @@ static void rtl_phy_write(void __iomem *ioaddr, struct phy_reg *regs, int len)
static void rtl8169s_hw_phy_config(void __iomem *ioaddr) static void rtl8169s_hw_phy_config(void __iomem *ioaddr)
{ {
struct phy_reg phy_reg_init[] = { static const struct phy_reg phy_reg_init[] = {
{ 0x1f, 0x0001 }, { 0x1f, 0x0001 },
{ 0x06, 0x006e }, { 0x06, 0x006e },
{ 0x08, 0x0708 }, { 0x08, 0x0708 },
...@@ -1428,7 +1428,7 @@ static void rtl8169s_hw_phy_config(void __iomem *ioaddr) ...@@ -1428,7 +1428,7 @@ static void rtl8169s_hw_phy_config(void __iomem *ioaddr)
static void rtl8169sb_hw_phy_config(void __iomem *ioaddr) static void rtl8169sb_hw_phy_config(void __iomem *ioaddr)
{ {
struct phy_reg phy_reg_init[] = { static const struct phy_reg phy_reg_init[] = {
{ 0x1f, 0x0002 }, { 0x1f, 0x0002 },
{ 0x01, 0x90d0 }, { 0x01, 0x90d0 },
{ 0x1f, 0x0000 } { 0x1f, 0x0000 }
...@@ -1457,7 +1457,7 @@ static void rtl8169scd_hw_phy_config_quirk(struct rtl8169_private *tp, ...@@ -1457,7 +1457,7 @@ static void rtl8169scd_hw_phy_config_quirk(struct rtl8169_private *tp,
static void rtl8169scd_hw_phy_config(struct rtl8169_private *tp, static void rtl8169scd_hw_phy_config(struct rtl8169_private *tp,
void __iomem *ioaddr) void __iomem *ioaddr)
{ {
struct phy_reg phy_reg_init[] = { static const struct phy_reg phy_reg_init[] = {
{ 0x1f, 0x0001 }, { 0x1f, 0x0001 },
{ 0x04, 0x0000 }, { 0x04, 0x0000 },
{ 0x03, 0x00a1 }, { 0x03, 0x00a1 },
...@@ -1504,7 +1504,7 @@ static void rtl8169scd_hw_phy_config(struct rtl8169_private *tp, ...@@ -1504,7 +1504,7 @@ static void rtl8169scd_hw_phy_config(struct rtl8169_private *tp,
static void rtl8169sce_hw_phy_config(void __iomem *ioaddr) static void rtl8169sce_hw_phy_config(void __iomem *ioaddr)
{ {
struct phy_reg phy_reg_init[] = { static const struct phy_reg phy_reg_init[] = {
{ 0x1f, 0x0001 }, { 0x1f, 0x0001 },
{ 0x04, 0x0000 }, { 0x04, 0x0000 },
{ 0x03, 0x00a1 }, { 0x03, 0x00a1 },
...@@ -1557,7 +1557,7 @@ static void rtl8169sce_hw_phy_config(void __iomem *ioaddr) ...@@ -1557,7 +1557,7 @@ static void rtl8169sce_hw_phy_config(void __iomem *ioaddr)
static void rtl8168bb_hw_phy_config(void __iomem *ioaddr) static void rtl8168bb_hw_phy_config(void __iomem *ioaddr)
{ {
struct phy_reg phy_reg_init[] = { static const struct phy_reg phy_reg_init[] = {
{ 0x10, 0xf41b }, { 0x10, 0xf41b },
{ 0x1f, 0x0000 } { 0x1f, 0x0000 }
}; };
...@@ -1570,7 +1570,7 @@ static void rtl8168bb_hw_phy_config(void __iomem *ioaddr) ...@@ -1570,7 +1570,7 @@ static void rtl8168bb_hw_phy_config(void __iomem *ioaddr)
static void rtl8168bef_hw_phy_config(void __iomem *ioaddr) static void rtl8168bef_hw_phy_config(void __iomem *ioaddr)
{ {
struct phy_reg phy_reg_init[] = { static const struct phy_reg phy_reg_init[] = {
{ 0x1f, 0x0001 }, { 0x1f, 0x0001 },
{ 0x10, 0xf41b }, { 0x10, 0xf41b },
{ 0x1f, 0x0000 } { 0x1f, 0x0000 }
...@@ -1581,7 +1581,7 @@ static void rtl8168bef_hw_phy_config(void __iomem *ioaddr) ...@@ -1581,7 +1581,7 @@ static void rtl8168bef_hw_phy_config(void __iomem *ioaddr)
static void rtl8168cp_1_hw_phy_config(void __iomem *ioaddr) static void rtl8168cp_1_hw_phy_config(void __iomem *ioaddr)
{ {
struct phy_reg phy_reg_init[] = { static const struct phy_reg phy_reg_init[] = {
{ 0x1f, 0x0000 }, { 0x1f, 0x0000 },
{ 0x1d, 0x0f00 }, { 0x1d, 0x0f00 },
{ 0x1f, 0x0002 }, { 0x1f, 0x0002 },
...@@ -1594,7 +1594,7 @@ static void rtl8168cp_1_hw_phy_config(void __iomem *ioaddr) ...@@ -1594,7 +1594,7 @@ static void rtl8168cp_1_hw_phy_config(void __iomem *ioaddr)
static void rtl8168cp_2_hw_phy_config(void __iomem *ioaddr) static void rtl8168cp_2_hw_phy_config(void __iomem *ioaddr)
{ {
struct phy_reg phy_reg_init[] = { static const struct phy_reg phy_reg_init[] = {
{ 0x1f, 0x0001 }, { 0x1f, 0x0001 },
{ 0x1d, 0x3d98 }, { 0x1d, 0x3d98 },
{ 0x1f, 0x0000 } { 0x1f, 0x0000 }
...@@ -1609,7 +1609,7 @@ static void rtl8168cp_2_hw_phy_config(void __iomem *ioaddr) ...@@ -1609,7 +1609,7 @@ static void rtl8168cp_2_hw_phy_config(void __iomem *ioaddr)
static void rtl8168c_1_hw_phy_config(void __iomem *ioaddr) static void rtl8168c_1_hw_phy_config(void __iomem *ioaddr)
{ {
struct phy_reg phy_reg_init[] = { static const struct phy_reg phy_reg_init[] = {
{ 0x1f, 0x0001 }, { 0x1f, 0x0001 },
{ 0x12, 0x2300 }, { 0x12, 0x2300 },
{ 0x1f, 0x0002 }, { 0x1f, 0x0002 },
...@@ -1638,7 +1638,7 @@ static void rtl8168c_1_hw_phy_config(void __iomem *ioaddr) ...@@ -1638,7 +1638,7 @@ static void rtl8168c_1_hw_phy_config(void __iomem *ioaddr)
static void rtl8168c_2_hw_phy_config(void __iomem *ioaddr) static void rtl8168c_2_hw_phy_config(void __iomem *ioaddr)
{ {
struct phy_reg phy_reg_init[] = { static const struct phy_reg phy_reg_init[] = {
{ 0x1f, 0x0001 }, { 0x1f, 0x0001 },
{ 0x12, 0x2300 }, { 0x12, 0x2300 },
{ 0x03, 0x802f }, { 0x03, 0x802f },
...@@ -1666,7 +1666,7 @@ static void rtl8168c_2_hw_phy_config(void __iomem *ioaddr) ...@@ -1666,7 +1666,7 @@ static void rtl8168c_2_hw_phy_config(void __iomem *ioaddr)
static void rtl8168c_3_hw_phy_config(void __iomem *ioaddr) static void rtl8168c_3_hw_phy_config(void __iomem *ioaddr)
{ {
struct phy_reg phy_reg_init[] = { static const struct phy_reg phy_reg_init[] = {
{ 0x1f, 0x0001 }, { 0x1f, 0x0001 },
{ 0x12, 0x2300 }, { 0x12, 0x2300 },
{ 0x1d, 0x3d98 }, { 0x1d, 0x3d98 },
...@@ -1693,7 +1693,7 @@ static void rtl8168c_4_hw_phy_config(void __iomem *ioaddr) ...@@ -1693,7 +1693,7 @@ static void rtl8168c_4_hw_phy_config(void __iomem *ioaddr)
static void rtl8168d_1_hw_phy_config(void __iomem *ioaddr) static void rtl8168d_1_hw_phy_config(void __iomem *ioaddr)
{ {
static struct phy_reg phy_reg_init_0[] = { static const struct phy_reg phy_reg_init_0[] = {
{ 0x1f, 0x0001 }, { 0x1f, 0x0001 },
{ 0x06, 0x4064 }, { 0x06, 0x4064 },
{ 0x07, 0x2863 }, { 0x07, 0x2863 },
...@@ -1712,14 +1712,14 @@ static void rtl8168d_1_hw_phy_config(void __iomem *ioaddr) ...@@ -1712,14 +1712,14 @@ static void rtl8168d_1_hw_phy_config(void __iomem *ioaddr)
{ 0x1a, 0x05ad }, { 0x1a, 0x05ad },
{ 0x14, 0x94c0 } { 0x14, 0x94c0 }
}; };
static struct phy_reg phy_reg_init_1[] = { static const struct phy_reg phy_reg_init_1[] = {
{ 0x1f, 0x0002 }, { 0x1f, 0x0002 },
{ 0x06, 0x5561 }, { 0x06, 0x5561 },
{ 0x1f, 0x0005 }, { 0x1f, 0x0005 },
{ 0x05, 0x8332 }, { 0x05, 0x8332 },
{ 0x06, 0x5561 } { 0x06, 0x5561 }
}; };
static struct phy_reg phy_reg_init_2[] = { static const struct phy_reg phy_reg_init_2[] = {
{ 0x1f, 0x0005 }, { 0x1f, 0x0005 },
{ 0x05, 0xffc2 }, { 0x05, 0xffc2 },
{ 0x1f, 0x0005 }, { 0x1f, 0x0005 },
...@@ -2084,7 +2084,7 @@ static void rtl8168d_1_hw_phy_config(void __iomem *ioaddr) ...@@ -2084,7 +2084,7 @@ static void rtl8168d_1_hw_phy_config(void __iomem *ioaddr)
rtl_phy_write(ioaddr, phy_reg_init_1, ARRAY_SIZE(phy_reg_init_1)); rtl_phy_write(ioaddr, phy_reg_init_1, ARRAY_SIZE(phy_reg_init_1));
if (rtl8168d_efuse_read(ioaddr, 0x01) == 0xb1) { if (rtl8168d_efuse_read(ioaddr, 0x01) == 0xb1) {
struct phy_reg phy_reg_init[] = { static const struct phy_reg phy_reg_init[] = {
{ 0x1f, 0x0002 }, { 0x1f, 0x0002 },
{ 0x05, 0x669a }, { 0x05, 0x669a },
{ 0x1f, 0x0005 }, { 0x1f, 0x0005 },
...@@ -2099,7 +2099,7 @@ static void rtl8168d_1_hw_phy_config(void __iomem *ioaddr) ...@@ -2099,7 +2099,7 @@ static void rtl8168d_1_hw_phy_config(void __iomem *ioaddr)
val = mdio_read(ioaddr, 0x0d); val = mdio_read(ioaddr, 0x0d);
if ((val & 0x00ff) != 0x006c) { if ((val & 0x00ff) != 0x006c) {
u32 set[] = { static const u32 set[] = {
0x0065, 0x0066, 0x0067, 0x0068, 0x0065, 0x0066, 0x0067, 0x0068,
0x0069, 0x006a, 0x006b, 0x006c 0x0069, 0x006a, 0x006b, 0x006c
}; };
...@@ -2112,7 +2112,7 @@ static void rtl8168d_1_hw_phy_config(void __iomem *ioaddr) ...@@ -2112,7 +2112,7 @@ static void rtl8168d_1_hw_phy_config(void __iomem *ioaddr)
mdio_write(ioaddr, 0x0d, val | set[i]); mdio_write(ioaddr, 0x0d, val | set[i]);
} }
} else { } else {
struct phy_reg phy_reg_init[] = { static const struct phy_reg phy_reg_init[] = {
{ 0x1f, 0x0002 }, { 0x1f, 0x0002 },
{ 0x05, 0x6662 }, { 0x05, 0x6662 },
{ 0x1f, 0x0005 }, { 0x1f, 0x0005 },
...@@ -2136,7 +2136,7 @@ static void rtl8168d_1_hw_phy_config(void __iomem *ioaddr) ...@@ -2136,7 +2136,7 @@ static void rtl8168d_1_hw_phy_config(void __iomem *ioaddr)
static void rtl8168d_2_hw_phy_config(void __iomem *ioaddr) static void rtl8168d_2_hw_phy_config(void __iomem *ioaddr)
{ {
static struct phy_reg phy_reg_init_0[] = { static const struct phy_reg phy_reg_init_0[] = {
{ 0x1f, 0x0001 }, { 0x1f, 0x0001 },
{ 0x06, 0x4064 }, { 0x06, 0x4064 },
{ 0x07, 0x2863 }, { 0x07, 0x2863 },
...@@ -2161,7 +2161,7 @@ static void rtl8168d_2_hw_phy_config(void __iomem *ioaddr) ...@@ -2161,7 +2161,7 @@ static void rtl8168d_2_hw_phy_config(void __iomem *ioaddr)
{ 0x05, 0x8332 }, { 0x05, 0x8332 },
{ 0x06, 0x5561 } { 0x06, 0x5561 }
}; };
static struct phy_reg phy_reg_init_1[] = { static const struct phy_reg phy_reg_init_1[] = {
{ 0x1f, 0x0005 }, { 0x1f, 0x0005 },
{ 0x05, 0xffc2 }, { 0x05, 0xffc2 },
{ 0x1f, 0x0005 }, { 0x1f, 0x0005 },
...@@ -2477,7 +2477,7 @@ static void rtl8168d_2_hw_phy_config(void __iomem *ioaddr) ...@@ -2477,7 +2477,7 @@ static void rtl8168d_2_hw_phy_config(void __iomem *ioaddr)
rtl_phy_write(ioaddr, phy_reg_init_0, ARRAY_SIZE(phy_reg_init_0)); rtl_phy_write(ioaddr, phy_reg_init_0, ARRAY_SIZE(phy_reg_init_0));
if (rtl8168d_efuse_read(ioaddr, 0x01) == 0xb1) { if (rtl8168d_efuse_read(ioaddr, 0x01) == 0xb1) {
struct phy_reg phy_reg_init[] = { static const struct phy_reg phy_reg_init[] = {
{ 0x1f, 0x0002 }, { 0x1f, 0x0002 },
{ 0x05, 0x669a }, { 0x05, 0x669a },
{ 0x1f, 0x0005 }, { 0x1f, 0x0005 },
...@@ -2505,7 +2505,7 @@ static void rtl8168d_2_hw_phy_config(void __iomem *ioaddr) ...@@ -2505,7 +2505,7 @@ static void rtl8168d_2_hw_phy_config(void __iomem *ioaddr)
mdio_write(ioaddr, 0x0d, val | set[i]); mdio_write(ioaddr, 0x0d, val | set[i]);
} }
} else { } else {
struct phy_reg phy_reg_init[] = { static const struct phy_reg phy_reg_init[] = {
{ 0x1f, 0x0002 }, { 0x1f, 0x0002 },
{ 0x05, 0x2642 }, { 0x05, 0x2642 },
{ 0x1f, 0x0005 }, { 0x1f, 0x0005 },
...@@ -2531,7 +2531,7 @@ static void rtl8168d_2_hw_phy_config(void __iomem *ioaddr) ...@@ -2531,7 +2531,7 @@ static void rtl8168d_2_hw_phy_config(void __iomem *ioaddr)
static void rtl8168d_3_hw_phy_config(void __iomem *ioaddr) static void rtl8168d_3_hw_phy_config(void __iomem *ioaddr)
{ {
struct phy_reg phy_reg_init[] = { static const struct phy_reg phy_reg_init[] = {
{ 0x1f, 0x0002 }, { 0x1f, 0x0002 },
{ 0x10, 0x0008 }, { 0x10, 0x0008 },
{ 0x0d, 0x006c }, { 0x0d, 0x006c },
...@@ -2592,7 +2592,7 @@ static void rtl8168d_3_hw_phy_config(void __iomem *ioaddr) ...@@ -2592,7 +2592,7 @@ static void rtl8168d_3_hw_phy_config(void __iomem *ioaddr)
static void rtl8102e_hw_phy_config(void __iomem *ioaddr) static void rtl8102e_hw_phy_config(void __iomem *ioaddr)
{ {
struct phy_reg phy_reg_init[] = { static const struct phy_reg phy_reg_init[] = {
{ 0x1f, 0x0003 }, { 0x1f, 0x0003 },
{ 0x08, 0x441d }, { 0x08, 0x441d },
{ 0x01, 0x9100 }, { 0x01, 0x9100 },
...@@ -3384,7 +3384,7 @@ static void rtl_set_rx_max_size(void __iomem *ioaddr, unsigned int rx_buf_sz) ...@@ -3384,7 +3384,7 @@ static void rtl_set_rx_max_size(void __iomem *ioaddr, unsigned int rx_buf_sz)
static void rtl8169_set_magic_reg(void __iomem *ioaddr, unsigned mac_version) static void rtl8169_set_magic_reg(void __iomem *ioaddr, unsigned mac_version)
{ {
struct { static const struct {
u32 mac_version; u32 mac_version;
u32 clk; u32 clk;
u32 val; u32 val;
...@@ -3508,7 +3508,7 @@ struct ephy_info { ...@@ -3508,7 +3508,7 @@ struct ephy_info {
u16 bits; u16 bits;
}; };
static void rtl_ephy_init(void __iomem *ioaddr, struct ephy_info *e, int len) static void rtl_ephy_init(void __iomem *ioaddr, const struct ephy_info *e, int len)
{ {
u16 w; u16 w;
...@@ -3579,7 +3579,7 @@ static void __rtl_hw_start_8168cp(void __iomem *ioaddr, struct pci_dev *pdev) ...@@ -3579,7 +3579,7 @@ static void __rtl_hw_start_8168cp(void __iomem *ioaddr, struct pci_dev *pdev)
static void rtl_hw_start_8168cp_1(void __iomem *ioaddr, struct pci_dev *pdev) static void rtl_hw_start_8168cp_1(void __iomem *ioaddr, struct pci_dev *pdev)
{ {
static struct ephy_info e_info_8168cp[] = { static const struct ephy_info e_info_8168cp[] = {
{ 0x01, 0, 0x0001 }, { 0x01, 0, 0x0001 },
{ 0x02, 0x0800, 0x1000 }, { 0x02, 0x0800, 0x1000 },
{ 0x03, 0, 0x0042 }, { 0x03, 0, 0x0042 },
...@@ -3623,7 +3623,7 @@ static void rtl_hw_start_8168cp_3(void __iomem *ioaddr, struct pci_dev *pdev) ...@@ -3623,7 +3623,7 @@ static void rtl_hw_start_8168cp_3(void __iomem *ioaddr, struct pci_dev *pdev)
static void rtl_hw_start_8168c_1(void __iomem *ioaddr, struct pci_dev *pdev) static void rtl_hw_start_8168c_1(void __iomem *ioaddr, struct pci_dev *pdev)
{ {
static struct ephy_info e_info_8168c_1[] = { static const struct ephy_info e_info_8168c_1[] = {
{ 0x02, 0x0800, 0x1000 }, { 0x02, 0x0800, 0x1000 },
{ 0x03, 0, 0x0002 }, { 0x03, 0, 0x0002 },
{ 0x06, 0x0080, 0x0000 } { 0x06, 0x0080, 0x0000 }
...@@ -3640,7 +3640,7 @@ static void rtl_hw_start_8168c_1(void __iomem *ioaddr, struct pci_dev *pdev) ...@@ -3640,7 +3640,7 @@ static void rtl_hw_start_8168c_1(void __iomem *ioaddr, struct pci_dev *pdev)
static void rtl_hw_start_8168c_2(void __iomem *ioaddr, struct pci_dev *pdev) static void rtl_hw_start_8168c_2(void __iomem *ioaddr, struct pci_dev *pdev)
{ {
static struct ephy_info e_info_8168c_2[] = { static const struct ephy_info e_info_8168c_2[] = {
{ 0x01, 0, 0x0001 }, { 0x01, 0, 0x0001 },
{ 0x03, 0x0400, 0x0220 } { 0x03, 0x0400, 0x0220 }
}; };
...@@ -3783,7 +3783,7 @@ static void rtl_hw_start_8168(struct net_device *dev) ...@@ -3783,7 +3783,7 @@ static void rtl_hw_start_8168(struct net_device *dev)
static void rtl_hw_start_8102e_1(void __iomem *ioaddr, struct pci_dev *pdev) static void rtl_hw_start_8102e_1(void __iomem *ioaddr, struct pci_dev *pdev)
{ {
static struct ephy_info e_info_8102e_1[] = { static const struct ephy_info e_info_8102e_1[] = {
{ 0x01, 0, 0x6e65 }, { 0x01, 0, 0x6e65 },
{ 0x02, 0, 0x091f }, { 0x02, 0, 0x091f },
{ 0x03, 0, 0xc2f9 }, { 0x03, 0, 0xc2f9 },
......
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