diff mbox series

rtw88: 8822[bc]: Make tables const, reduce data object size

Message ID 4ba111ba18f14f0630cc550b58dbe5dbc82a48ac.camel@perches.com (mailing list archive)
State Accepted
Commit d49f2c5063fdd00f896e408a1c1fa63e6d94a767
Delegated to: Kalle Valo
Headers show
Series rtw88: 8822[bc]: Make tables const, reduce data object size | expand

Commit Message

Joe Perches Feb. 6, 2020, 10:54 a.m. UTC
Reduce the data size 2kb or 3kb by making tables const.
Add const to pointer declarations to make compilation work too.

(x86-64 defconfig)
$ size drivers/net/wireless/realtek/rtw88/rtw8822?.o*
   text	   data	    bss	    dec	    hex	filename
  25054	    672	      8	  25734	   6486	drivers/net/wireless/realtek/rtw88/rtw8822b.o.new
  23870	   1872	      8	  25750	   6496	drivers/net/wireless/realtek/rtw88/rtw8822b.o.old
  53646	    828	      0	  54474	   d4ca	drivers/net/wireless/realtek/rtw88/rtw8822c.o.new
  52846	   1652	      0	  54498	   d4e2	drivers/net/wireless/realtek/rtw88/rtw8822c.o.old

(x86-64 allyesconfig)
$ size drivers/net/wireless/realtek/rtw88/rtw8822?.o*
   text	   data	    bss	    dec	    hex	filename
  45811	   6280	    128	  52219	   cbfb	drivers/net/wireless/realtek/rtw88/rtw8822b.o.new
  44211	   7880	    128	  52219	   cbfb	drivers/net/wireless/realtek/rtw88/rtw8822b.o.old
 100195	   8128	      0	 108323	  1a723	drivers/net/wireless/realtek/rtw88/rtw8822c.o.new
  98947	   9376	      0	 108323	  1a723	drivers/net/wireless/realtek/rtw88/rtw8822c.o.old

Signed-off-by: Joe Perches <joe@perches.com>
---
 drivers/net/wireless/realtek/rtw88/mac.c      | 19 +++++++++---------
 drivers/net/wireless/realtek/rtw88/main.h     | 22 ++++++++++-----------
 drivers/net/wireless/realtek/rtw88/pci.c      |  2 +-
 drivers/net/wireless/realtek/rtw88/rtw8822b.c | 28 +++++++++++++--------------
 drivers/net/wireless/realtek/rtw88/rtw8822c.c | 28 +++++++++++++--------------
 5 files changed, 50 insertions(+), 49 deletions(-)

Comments

Tony Chuang Feb. 12, 2020, 8:23 a.m. UTC | #1
> Subject: [PATCH] rtw88: 8822[bc]: Make tables const, reduce data object size
> 
> Reduce the data size 2kb or 3kb by making tables const.
> Add const to pointer declarations to make compilation work too.
> 
> (x86-64 defconfig)
> $ size drivers/net/wireless/realtek/rtw88/rtw8822?.o*
>    text	   data	    bss	    dec	    hex	filename
>   25054	    672	      8	  25734	   6486
> 	drivers/net/wireless/realtek/rtw88/rtw8822b.o.new
>   23870	   1872	      8	  25750	   6496
> 	drivers/net/wireless/realtek/rtw88/rtw8822b.o.old
>   53646	    828	      0	  54474	   d4ca
> 	drivers/net/wireless/realtek/rtw88/rtw8822c.o.new
>   52846	   1652	      0	  54498	   d4e2
> 	drivers/net/wireless/realtek/rtw88/rtw8822c.o.old
> 
> (x86-64 allyesconfig)
> $ size drivers/net/wireless/realtek/rtw88/rtw8822?.o*
>    text	   data	    bss	    dec	    hex	filename
>   45811	   6280	    128	  52219	   cbfb
> 	drivers/net/wireless/realtek/rtw88/rtw8822b.o.new
>   44211	   7880	    128	  52219	   cbfb
> 	drivers/net/wireless/realtek/rtw88/rtw8822b.o.old
>  100195	   8128	      0	 108323	  1a723
> 	drivers/net/wireless/realtek/rtw88/rtw8822c.o.new
>   98947	   9376	      0	 108323	  1a723
> 	drivers/net/wireless/realtek/rtw88/rtw8822c.o.old
> 
> Signed-off-by: Joe Perches <joe@perches.com>
> ---
>  drivers/net/wireless/realtek/rtw88/mac.c      | 19 +++++++++---------
>  drivers/net/wireless/realtek/rtw88/main.h     | 22 ++++++++++-----------
>  drivers/net/wireless/realtek/rtw88/pci.c      |  2 +-
>  drivers/net/wireless/realtek/rtw88/rtw8822b.c | 28
> +++++++++++++--------------
>  drivers/net/wireless/realtek/rtw88/rtw8822c.c | 28
> +++++++++++++--------------
>  5 files changed, 50 insertions(+), 49 deletions(-)
> 
> diff --git a/drivers/net/wireless/realtek/rtw88/mac.c
> b/drivers/net/wireless/realtek/rtw88/mac.c
> index cadf0a..0b98d3 100644
> --- a/drivers/net/wireless/realtek/rtw88/mac.c
> +++ b/drivers/net/wireless/realtek/rtw88/mac.c
> @@ -101,7 +101,7 @@ static int rtw_mac_pre_system_cfg(struct rtw_dev
> *rtwdev)
>  }
> 
>  static int rtw_pwr_cmd_polling(struct rtw_dev *rtwdev,
> -			       struct rtw_pwr_seq_cmd *cmd)
> +			       const struct rtw_pwr_seq_cmd *cmd)
>  {
>  	u8 value;
>  	u8 flag = 0;
> @@ -139,9 +139,10 @@ static int rtw_pwr_cmd_polling(struct rtw_dev
> *rtwdev,
>  }
> 
>  static int rtw_sub_pwr_seq_parser(struct rtw_dev *rtwdev, u8 intf_mask,
> -				  u8 cut_mask, struct rtw_pwr_seq_cmd *cmd)
> +				  u8 cut_mask,
> +				  const struct rtw_pwr_seq_cmd *cmd)
>  {
> -	struct rtw_pwr_seq_cmd *cur_cmd;
> +	const struct rtw_pwr_seq_cmd *cur_cmd;
>  	u32 offset;
>  	u8 value;
> 
> @@ -183,13 +184,13 @@ static int rtw_sub_pwr_seq_parser(struct rtw_dev
> *rtwdev, u8 intf_mask,
>  }
> 
>  static int rtw_pwr_seq_parser(struct rtw_dev *rtwdev,
> -			      struct rtw_pwr_seq_cmd **cmd_seq)
> +			      const struct rtw_pwr_seq_cmd **cmd_seq)
>  {
>  	u8 cut_mask;
>  	u8 intf_mask;
>  	u8 cut;
>  	u32 idx = 0;
> -	struct rtw_pwr_seq_cmd *cmd;
> +	const struct rtw_pwr_seq_cmd *cmd;
>  	int ret;
> 
>  	cut = rtwdev->hal.cut_version;
> @@ -223,7 +224,7 @@ static int rtw_pwr_seq_parser(struct rtw_dev
> *rtwdev,
>  static int rtw_mac_power_switch(struct rtw_dev *rtwdev, bool pwr_on)
>  {
>  	struct rtw_chip_info *chip = rtwdev->chip;
> -	struct rtw_pwr_seq_cmd **pwr_seq;
> +	const struct rtw_pwr_seq_cmd **pwr_seq;
>  	u8 rpwm;
>  	bool cur_pwr;
> 
> @@ -705,7 +706,7 @@ int rtw_download_firmware(struct rtw_dev *rtwdev,
> struct rtw_fw_state *fw)
> 
>  static u32 get_priority_queues(struct rtw_dev *rtwdev, u32 queues)
>  {
> -	struct rtw_rqpn *rqpn = rtwdev->fifo.rqpn;
> +	const struct rtw_rqpn *rqpn = rtwdev->fifo.rqpn;
>  	u32 prio_queues = 0;
> 
>  	if (queues & BIT(IEEE80211_AC_VO))
> @@ -793,7 +794,7 @@ void rtw_mac_flush_queues(struct rtw_dev *rtwdev,
> u32 queues, bool drop)
>  static int txdma_queue_mapping(struct rtw_dev *rtwdev)
>  {
>  	struct rtw_chip_info *chip = rtwdev->chip;
> -	struct rtw_rqpn *rqpn = NULL;
> +	const struct rtw_rqpn *rqpn = NULL;
>  	u16 txdma_pq_map = 0;
> 
>  	switch (rtw_hci_type(rtwdev)) {
> @@ -882,7 +883,7 @@ static int priority_queue_cfg(struct rtw_dev *rtwdev)
>  {
>  	struct rtw_fifo_conf *fifo = &rtwdev->fifo;
>  	struct rtw_chip_info *chip = rtwdev->chip;
> -	struct rtw_page_table *pg_tbl = NULL;
> +	const struct rtw_page_table *pg_tbl = NULL;
>  	u16 pubq_num;
>  	int ret;
> 
> diff --git a/drivers/net/wireless/realtek/rtw88/main.h
> b/drivers/net/wireless/realtek/rtw88/main.h
> index f334d2..a55635 100644
> --- a/drivers/net/wireless/realtek/rtw88/main.h
> +++ b/drivers/net/wireless/realtek/rtw88/main.h
> @@ -948,10 +948,10 @@ struct rtw_wow_param {
>  };
> 
>  struct rtw_intf_phy_para_table {
> -	struct rtw_intf_phy_para *usb2_para;
> -	struct rtw_intf_phy_para *usb3_para;
> -	struct rtw_intf_phy_para *gen1_para;
> -	struct rtw_intf_phy_para *gen2_para;
> +	const struct rtw_intf_phy_para *usb2_para;
> +	const struct rtw_intf_phy_para *usb3_para;
> +	const struct rtw_intf_phy_para *gen1_para;
> +	const struct rtw_intf_phy_para *gen2_para;
>  	u8 n_usb2_para;
>  	u8 n_usb3_para;
>  	u8 n_gen1_para;
> @@ -1048,13 +1048,13 @@ struct rtw_chip_info {
> 
>  	/* init values */
>  	u8 sys_func_en;
> -	struct rtw_pwr_seq_cmd **pwr_on_seq;
> -	struct rtw_pwr_seq_cmd **pwr_off_seq;
> -	struct rtw_rqpn *rqpn_table;
> -	struct rtw_page_table *page_table;
> -	struct rtw_intf_phy_para_table *intf_table;
> +	const struct rtw_pwr_seq_cmd **pwr_on_seq;
> +	const struct rtw_pwr_seq_cmd **pwr_off_seq;
> +	const struct rtw_rqpn *rqpn_table;
> +	const struct rtw_page_table *page_table;
> +	const struct rtw_intf_phy_para_table *intf_table;
> 
> -	struct rtw_hw_reg *dig;
> +	const struct rtw_hw_reg *dig;
>  	u32 rf_base_addr[2];
>  	u32 rf_sipi_addr[2];
> 
> @@ -1500,7 +1500,7 @@ struct rtw_fifo_conf {
>  	u16 rsvd_cpu_instr_addr;
>  	u16 rsvd_fw_txbuf_addr;
>  	u16 rsvd_csibuf_addr;
> -	struct rtw_rqpn *rqpn;
> +	const struct rtw_rqpn *rqpn;
>  };
> 
>  struct rtw_fw_state {
> diff --git a/drivers/net/wireless/realtek/rtw88/pci.c
> b/drivers/net/wireless/realtek/rtw88/pci.c
> index 1fbc14..82b1f86 100644
> --- a/drivers/net/wireless/realtek/rtw88/pci.c
> +++ b/drivers/net/wireless/realtek/rtw88/pci.c
> @@ -1248,7 +1248,7 @@ static void rtw_pci_interface_cfg(struct rtw_dev
> *rtwdev)
>  static void rtw_pci_phy_cfg(struct rtw_dev *rtwdev)
>  {
>  	struct rtw_chip_info *chip = rtwdev->chip;
> -	struct rtw_intf_phy_para *para;
> +	const struct rtw_intf_phy_para *para;
>  	u16 cut;
>  	u16 value;
>  	u16 offset;
> diff --git a/drivers/net/wireless/realtek/rtw88/rtw8822b.c
> b/drivers/net/wireless/realtek/rtw88/rtw8822b.c
> index 4bc14b..ded1e9f 100644
> --- a/drivers/net/wireless/realtek/rtw88/rtw8822b.c
> +++ b/drivers/net/wireless/realtek/rtw88/rtw8822b.c
> @@ -1543,7 +1543,7 @@ static void rtw8822b_bf_config_bfee(struct
> rtw_dev *rtwdev, struct rtw_vif *vif,
>  		rtw_warn(rtwdev, "wrong bfee role\n");
>  }
> 
> -static struct rtw_pwr_seq_cmd trans_carddis_to_cardemu_8822b[] = {
> +static const struct rtw_pwr_seq_cmd trans_carddis_to_cardemu_8822b[] =
> {
>  	{0x0086,
>  	 RTW_PWR_CUT_ALL_MSK,
>  	 RTW_PWR_INTF_SDIO_MSK,
> @@ -1581,7 +1581,7 @@ static struct rtw_pwr_seq_cmd
> trans_carddis_to_cardemu_8822b[] = {
>  	 RTW_PWR_CMD_END, 0, 0},
>  };
> 
> -static struct rtw_pwr_seq_cmd trans_cardemu_to_act_8822b[] = {
> +static const struct rtw_pwr_seq_cmd trans_cardemu_to_act_8822b[] = {
>  	{0x0012,
>  	 RTW_PWR_CUT_ALL_MSK,
>  	 RTW_PWR_INTF_ALL_MSK,
> @@ -1714,7 +1714,7 @@ static struct rtw_pwr_seq_cmd
> trans_cardemu_to_act_8822b[] = {
>  	 RTW_PWR_CMD_END, 0, 0},
>  };
> 
> -static struct rtw_pwr_seq_cmd trans_act_to_cardemu_8822b[] = {
> +static const struct rtw_pwr_seq_cmd trans_act_to_cardemu_8822b[] = {
>  	{0x0003,
>  	 RTW_PWR_CUT_ALL_MSK,
>  	 RTW_PWR_INTF_SDIO_MSK,
> @@ -1787,7 +1787,7 @@ static struct rtw_pwr_seq_cmd
> trans_act_to_cardemu_8822b[] = {
>  	 RTW_PWR_CMD_END, 0, 0},
>  };
> 
> -static struct rtw_pwr_seq_cmd trans_cardemu_to_carddis_8822b[] = {
> +static const struct rtw_pwr_seq_cmd trans_cardemu_to_carddis_8822b[] =
> {
>  	{0x0005,
>  	 RTW_PWR_CUT_ALL_MSK,
>  	 RTW_PWR_INTF_SDIO_MSK,
> @@ -1905,26 +1905,26 @@ static struct rtw_pwr_seq_cmd
> trans_cardemu_to_carddis_8822b[] = {
>  	 RTW_PWR_CMD_END, 0, 0},
>  };
> 
> -static struct rtw_pwr_seq_cmd *card_enable_flow_8822b[] = {
> +static const struct rtw_pwr_seq_cmd *card_enable_flow_8822b[] = {
>  	trans_carddis_to_cardemu_8822b,
>  	trans_cardemu_to_act_8822b,
>  	NULL
>  };
> 
> -static struct rtw_pwr_seq_cmd *card_disable_flow_8822b[] = {
> +static const struct rtw_pwr_seq_cmd *card_disable_flow_8822b[] = {
>  	trans_act_to_cardemu_8822b,
>  	trans_cardemu_to_carddis_8822b,
>  	NULL
>  };
> 
> -static struct rtw_intf_phy_para usb2_param_8822b[] = {
> +static const struct rtw_intf_phy_para usb2_param_8822b[] = {
>  	{0xFFFF, 0x00,
>  	 RTW_IP_SEL_PHY,
>  	 RTW_INTF_PHY_CUT_ALL,
>  	 RTW_INTF_PHY_PLATFORM_ALL},
>  };
> 
> -static struct rtw_intf_phy_para usb3_param_8822b[] = {
> +static const struct rtw_intf_phy_para usb3_param_8822b[] = {
>  	{0x0001, 0xA841,
>  	 RTW_IP_SEL_PHY,
>  	 RTW_INTF_PHY_CUT_D,
> @@ -1935,7 +1935,7 @@ static struct rtw_intf_phy_para
> usb3_param_8822b[] = {
>  	 RTW_INTF_PHY_PLATFORM_ALL},
>  };
> 
> -static struct rtw_intf_phy_para pcie_gen1_param_8822b[] = {
> +static const struct rtw_intf_phy_para pcie_gen1_param_8822b[] = {
>  	{0x0001, 0xA841,
>  	 RTW_IP_SEL_PHY,
>  	 RTW_INTF_PHY_CUT_C,
> @@ -1982,7 +1982,7 @@ static struct rtw_intf_phy_para
> pcie_gen1_param_8822b[] = {
>  	 RTW_INTF_PHY_PLATFORM_ALL},
>  };
> 
> -static struct rtw_intf_phy_para pcie_gen2_param_8822b[] = {
> +static const struct rtw_intf_phy_para pcie_gen2_param_8822b[] = {
>  	{0x0001, 0xA841,
>  	 RTW_IP_SEL_PHY,
>  	 RTW_INTF_PHY_CUT_C,
> @@ -2029,7 +2029,7 @@ static struct rtw_intf_phy_para
> pcie_gen2_param_8822b[] = {
>  	 RTW_INTF_PHY_PLATFORM_ALL},
>  };
> 
> -static struct rtw_intf_phy_para_table phy_para_table_8822b = {
> +static const struct rtw_intf_phy_para_table phy_para_table_8822b = {
>  	.usb2_para	= usb2_param_8822b,
>  	.usb3_para	= usb3_param_8822b,
>  	.gen1_para	= pcie_gen1_param_8822b,
> @@ -2046,12 +2046,12 @@ static const struct rtw_rfe_def
> rtw8822b_rfe_defs[] = {
>  	[5] = RTW_DEF_RFE(8822b, 5, 5),
>  };
> 
> -static struct rtw_hw_reg rtw8822b_dig[] = {
> +static const struct rtw_hw_reg rtw8822b_dig[] = {
>  	[0] = { .addr = 0xc50, .mask = 0x7f },
>  	[1] = { .addr = 0xe50, .mask = 0x7f },
>  };
> 
> -static struct rtw_page_table page_table_8822b[] = {
> +static const struct rtw_page_table page_table_8822b[] = {
>  	{64, 64, 64, 64, 1},
>  	{64, 64, 64, 64, 1},
>  	{64, 64, 0, 0, 1},
> @@ -2059,7 +2059,7 @@ static struct rtw_page_table page_table_8822b[] =
> {
>  	{64, 64, 64, 64, 1},
>  };
> 
> -static struct rtw_rqpn rqpn_table_8822b[] = {
> +static const struct rtw_rqpn rqpn_table_8822b[] = {
>  	{RTW_DMA_MAPPING_NORMAL, RTW_DMA_MAPPING_NORMAL,
>  	 RTW_DMA_MAPPING_LOW, RTW_DMA_MAPPING_LOW,
>  	 RTW_DMA_MAPPING_EXTRA, RTW_DMA_MAPPING_HIGH},
> diff --git a/drivers/net/wireless/realtek/rtw88/rtw8822c.c
> b/drivers/net/wireless/realtek/rtw88/rtw8822c.c
> index 386509..5b2f594 100644
> --- a/drivers/net/wireless/realtek/rtw88/rtw8822c.c
> +++ b/drivers/net/wireless/realtek/rtw88/rtw8822c.c
> @@ -3399,7 +3399,7 @@ static void rtw8822c_pwr_track(struct rtw_dev
> *rtwdev)
>  	dm_info->pwr_trk_triggered = false;
>  }
> 
> -static struct rtw_pwr_seq_cmd trans_carddis_to_cardemu_8822c[] = {
> +static const struct rtw_pwr_seq_cmd trans_carddis_to_cardemu_8822c[] =
> {
>  	{0x0086,
>  	 RTW_PWR_CUT_ALL_MSK,
>  	 RTW_PWR_INTF_SDIO_MSK,
> @@ -3442,7 +3442,7 @@ static struct rtw_pwr_seq_cmd
> trans_carddis_to_cardemu_8822c[] = {
>  	 RTW_PWR_CMD_END, 0, 0},
>  };
> 
> -static struct rtw_pwr_seq_cmd trans_cardemu_to_act_8822c[] = {
> +static const struct rtw_pwr_seq_cmd trans_cardemu_to_act_8822c[] = {
>  	{0x0000,
>  	 RTW_PWR_CUT_ALL_MSK,
>  	 RTW_PWR_INTF_USB_MSK | RTW_PWR_INTF_SDIO_MSK,
> @@ -3551,7 +3551,7 @@ static struct rtw_pwr_seq_cmd
> trans_cardemu_to_act_8822c[] = {
>  	 RTW_PWR_CMD_END, 0, 0},
>  };
> 
> -static struct rtw_pwr_seq_cmd trans_act_to_cardemu_8822c[] = {
> +static const struct rtw_pwr_seq_cmd trans_act_to_cardemu_8822c[] = {
>  	{0x0093,
>  	 RTW_PWR_CUT_ALL_MSK,
>  	 RTW_PWR_INTF_ALL_MSK,
> @@ -3614,7 +3614,7 @@ static struct rtw_pwr_seq_cmd
> trans_act_to_cardemu_8822c[] = {
>  	 RTW_PWR_CMD_END, 0, 0},
>  };
> 
> -static struct rtw_pwr_seq_cmd trans_cardemu_to_carddis_8822c[] = {
> +static const struct rtw_pwr_seq_cmd trans_cardemu_to_carddis_8822c[] =
> {
>  	{0x0005,
>  	 RTW_PWR_CUT_ALL_MSK,
>  	 RTW_PWR_INTF_SDIO_MSK,
> @@ -3677,47 +3677,47 @@ static struct rtw_pwr_seq_cmd
> trans_cardemu_to_carddis_8822c[] = {
>  	 RTW_PWR_CMD_END, 0, 0},
>  };
> 
> -static struct rtw_pwr_seq_cmd *card_enable_flow_8822c[] = {
> +static const struct rtw_pwr_seq_cmd *card_enable_flow_8822c[] = {
>  	trans_carddis_to_cardemu_8822c,
>  	trans_cardemu_to_act_8822c,
>  	NULL
>  };
> 
> -static struct rtw_pwr_seq_cmd *card_disable_flow_8822c[] = {
> +static const struct rtw_pwr_seq_cmd *card_disable_flow_8822c[] = {
>  	trans_act_to_cardemu_8822c,
>  	trans_cardemu_to_carddis_8822c,
>  	NULL
>  };
> 
> -static struct rtw_intf_phy_para usb2_param_8822c[] = {
> +static const struct rtw_intf_phy_para usb2_param_8822c[] = {
>  	{0xFFFF, 0x00,
>  	 RTW_IP_SEL_PHY,
>  	 RTW_INTF_PHY_CUT_ALL,
>  	 RTW_INTF_PHY_PLATFORM_ALL},
>  };
> 
> -static struct rtw_intf_phy_para usb3_param_8822c[] = {
> +static const struct rtw_intf_phy_para usb3_param_8822c[] = {
>  	{0xFFFF, 0x0000,
>  	 RTW_IP_SEL_PHY,
>  	 RTW_INTF_PHY_CUT_ALL,
>  	 RTW_INTF_PHY_PLATFORM_ALL},
>  };
> 
> -static struct rtw_intf_phy_para pcie_gen1_param_8822c[] = {
> +static const struct rtw_intf_phy_para pcie_gen1_param_8822c[] = {
>  	{0xFFFF, 0x0000,
>  	 RTW_IP_SEL_PHY,
>  	 RTW_INTF_PHY_CUT_ALL,
>  	 RTW_INTF_PHY_PLATFORM_ALL},
>  };
> 
> -static struct rtw_intf_phy_para pcie_gen2_param_8822c[] = {
> +static const struct rtw_intf_phy_para pcie_gen2_param_8822c[] = {
>  	{0xFFFF, 0x0000,
>  	 RTW_IP_SEL_PHY,
>  	 RTW_INTF_PHY_CUT_ALL,
>  	 RTW_INTF_PHY_PLATFORM_ALL},
>  };
> 
> -static struct rtw_intf_phy_para_table phy_para_table_8822c = {
> +static const struct rtw_intf_phy_para_table phy_para_table_8822c = {
>  	.usb2_para	= usb2_param_8822c,
>  	.usb3_para	= usb3_param_8822c,
>  	.gen1_para	= pcie_gen1_param_8822c,
> @@ -3734,12 +3734,12 @@ static const struct rtw_rfe_def
> rtw8822c_rfe_defs[] = {
>  	[2] = RTW_DEF_RFE(8822c, 0, 0),
>  };
> 
> -static struct rtw_hw_reg rtw8822c_dig[] = {
> +static const struct rtw_hw_reg rtw8822c_dig[] = {
>  	[0] = { .addr = 0x1d70, .mask = 0x7f },
>  	[1] = { .addr = 0x1d70, .mask = 0x7f00 },
>  };
> 
> -static struct rtw_page_table page_table_8822c[] = {
> +static const struct rtw_page_table page_table_8822c[] = {
>  	{64, 64, 64, 64, 1},
>  	{64, 64, 64, 64, 1},
>  	{64, 64, 0, 0, 1},
> @@ -3747,7 +3747,7 @@ static struct rtw_page_table page_table_8822c[] =
> {
>  	{64, 64, 64, 64, 1},
>  };
> 
> -static struct rtw_rqpn rqpn_table_8822c[] = {
> +static const struct rtw_rqpn rqpn_table_8822c[] = {
>  	{RTW_DMA_MAPPING_NORMAL, RTW_DMA_MAPPING_NORMAL,
>  	 RTW_DMA_MAPPING_LOW, RTW_DMA_MAPPING_LOW,
>  	 RTW_DMA_MAPPING_EXTRA, RTW_DMA_MAPPING_HIGH},
> 
> 

It looks good to me.

Acked-by: Yan-Hsuan Chuang <yhchuang@realtek.com>

Yan-Hsuan
Kalle Valo Feb. 12, 2020, 4:23 p.m. UTC | #2
Joe Perches <joe@perches.com> wrote:

> Reduce the data size 2kb or 3kb by making tables const.
> Add const to pointer declarations to make compilation work too.
> 
> (x86-64 defconfig)
> $ size drivers/net/wireless/realtek/rtw88/rtw8822?.o*
>    text	   data	    bss	    dec	    hex	filename
>   25054	    672	      8	  25734	   6486	drivers/net/wireless/realtek/rtw88/rtw8822b.o.new
>   23870	   1872	      8	  25750	   6496	drivers/net/wireless/realtek/rtw88/rtw8822b.o.old
>   53646	    828	      0	  54474	   d4ca	drivers/net/wireless/realtek/rtw88/rtw8822c.o.new
>   52846	   1652	      0	  54498	   d4e2	drivers/net/wireless/realtek/rtw88/rtw8822c.o.old
> 
> (x86-64 allyesconfig)
> $ size drivers/net/wireless/realtek/rtw88/rtw8822?.o*
>    text	   data	    bss	    dec	    hex	filename
>   45811	   6280	    128	  52219	   cbfb	drivers/net/wireless/realtek/rtw88/rtw8822b.o.new
>   44211	   7880	    128	  52219	   cbfb	drivers/net/wireless/realtek/rtw88/rtw8822b.o.old
>  100195	   8128	      0	 108323	  1a723	drivers/net/wireless/realtek/rtw88/rtw8822c.o.new
>   98947	   9376	      0	 108323	  1a723	drivers/net/wireless/realtek/rtw88/rtw8822c.o.old
> 
> Signed-off-by: Joe Perches <joe@perches.com>
> Acked-by: Yan-Hsuan Chuang <yhchuang@realtek.com>

Patch applied to wireless-drivers-next.git, thanks.

d49f2c5063fd rtw88: 8822[bc]: Make tables const, reduce data object size
diff mbox series

Patch

diff --git a/drivers/net/wireless/realtek/rtw88/mac.c b/drivers/net/wireless/realtek/rtw88/mac.c
index cadf0a..0b98d3 100644
--- a/drivers/net/wireless/realtek/rtw88/mac.c
+++ b/drivers/net/wireless/realtek/rtw88/mac.c
@@ -101,7 +101,7 @@  static int rtw_mac_pre_system_cfg(struct rtw_dev *rtwdev)
 }
 
 static int rtw_pwr_cmd_polling(struct rtw_dev *rtwdev,
-			       struct rtw_pwr_seq_cmd *cmd)
+			       const struct rtw_pwr_seq_cmd *cmd)
 {
 	u8 value;
 	u8 flag = 0;
@@ -139,9 +139,10 @@  static int rtw_pwr_cmd_polling(struct rtw_dev *rtwdev,
 }
 
 static int rtw_sub_pwr_seq_parser(struct rtw_dev *rtwdev, u8 intf_mask,
-				  u8 cut_mask, struct rtw_pwr_seq_cmd *cmd)
+				  u8 cut_mask,
+				  const struct rtw_pwr_seq_cmd *cmd)
 {
-	struct rtw_pwr_seq_cmd *cur_cmd;
+	const struct rtw_pwr_seq_cmd *cur_cmd;
 	u32 offset;
 	u8 value;
 
@@ -183,13 +184,13 @@  static int rtw_sub_pwr_seq_parser(struct rtw_dev *rtwdev, u8 intf_mask,
 }
 
 static int rtw_pwr_seq_parser(struct rtw_dev *rtwdev,
-			      struct rtw_pwr_seq_cmd **cmd_seq)
+			      const struct rtw_pwr_seq_cmd **cmd_seq)
 {
 	u8 cut_mask;
 	u8 intf_mask;
 	u8 cut;
 	u32 idx = 0;
-	struct rtw_pwr_seq_cmd *cmd;
+	const struct rtw_pwr_seq_cmd *cmd;
 	int ret;
 
 	cut = rtwdev->hal.cut_version;
@@ -223,7 +224,7 @@  static int rtw_pwr_seq_parser(struct rtw_dev *rtwdev,
 static int rtw_mac_power_switch(struct rtw_dev *rtwdev, bool pwr_on)
 {
 	struct rtw_chip_info *chip = rtwdev->chip;
-	struct rtw_pwr_seq_cmd **pwr_seq;
+	const struct rtw_pwr_seq_cmd **pwr_seq;
 	u8 rpwm;
 	bool cur_pwr;
 
@@ -705,7 +706,7 @@  int rtw_download_firmware(struct rtw_dev *rtwdev, struct rtw_fw_state *fw)
 
 static u32 get_priority_queues(struct rtw_dev *rtwdev, u32 queues)
 {
-	struct rtw_rqpn *rqpn = rtwdev->fifo.rqpn;
+	const struct rtw_rqpn *rqpn = rtwdev->fifo.rqpn;
 	u32 prio_queues = 0;
 
 	if (queues & BIT(IEEE80211_AC_VO))
@@ -793,7 +794,7 @@  void rtw_mac_flush_queues(struct rtw_dev *rtwdev, u32 queues, bool drop)
 static int txdma_queue_mapping(struct rtw_dev *rtwdev)
 {
 	struct rtw_chip_info *chip = rtwdev->chip;
-	struct rtw_rqpn *rqpn = NULL;
+	const struct rtw_rqpn *rqpn = NULL;
 	u16 txdma_pq_map = 0;
 
 	switch (rtw_hci_type(rtwdev)) {
@@ -882,7 +883,7 @@  static int priority_queue_cfg(struct rtw_dev *rtwdev)
 {
 	struct rtw_fifo_conf *fifo = &rtwdev->fifo;
 	struct rtw_chip_info *chip = rtwdev->chip;
-	struct rtw_page_table *pg_tbl = NULL;
+	const struct rtw_page_table *pg_tbl = NULL;
 	u16 pubq_num;
 	int ret;
 
diff --git a/drivers/net/wireless/realtek/rtw88/main.h b/drivers/net/wireless/realtek/rtw88/main.h
index f334d2..a55635 100644
--- a/drivers/net/wireless/realtek/rtw88/main.h
+++ b/drivers/net/wireless/realtek/rtw88/main.h
@@ -948,10 +948,10 @@  struct rtw_wow_param {
 };
 
 struct rtw_intf_phy_para_table {
-	struct rtw_intf_phy_para *usb2_para;
-	struct rtw_intf_phy_para *usb3_para;
-	struct rtw_intf_phy_para *gen1_para;
-	struct rtw_intf_phy_para *gen2_para;
+	const struct rtw_intf_phy_para *usb2_para;
+	const struct rtw_intf_phy_para *usb3_para;
+	const struct rtw_intf_phy_para *gen1_para;
+	const struct rtw_intf_phy_para *gen2_para;
 	u8 n_usb2_para;
 	u8 n_usb3_para;
 	u8 n_gen1_para;
@@ -1048,13 +1048,13 @@  struct rtw_chip_info {
 
 	/* init values */
 	u8 sys_func_en;
-	struct rtw_pwr_seq_cmd **pwr_on_seq;
-	struct rtw_pwr_seq_cmd **pwr_off_seq;
-	struct rtw_rqpn *rqpn_table;
-	struct rtw_page_table *page_table;
-	struct rtw_intf_phy_para_table *intf_table;
+	const struct rtw_pwr_seq_cmd **pwr_on_seq;
+	const struct rtw_pwr_seq_cmd **pwr_off_seq;
+	const struct rtw_rqpn *rqpn_table;
+	const struct rtw_page_table *page_table;
+	const struct rtw_intf_phy_para_table *intf_table;
 
-	struct rtw_hw_reg *dig;
+	const struct rtw_hw_reg *dig;
 	u32 rf_base_addr[2];
 	u32 rf_sipi_addr[2];
 
@@ -1500,7 +1500,7 @@  struct rtw_fifo_conf {
 	u16 rsvd_cpu_instr_addr;
 	u16 rsvd_fw_txbuf_addr;
 	u16 rsvd_csibuf_addr;
-	struct rtw_rqpn *rqpn;
+	const struct rtw_rqpn *rqpn;
 };
 
 struct rtw_fw_state {
diff --git a/drivers/net/wireless/realtek/rtw88/pci.c b/drivers/net/wireless/realtek/rtw88/pci.c
index 1fbc14..82b1f86 100644
--- a/drivers/net/wireless/realtek/rtw88/pci.c
+++ b/drivers/net/wireless/realtek/rtw88/pci.c
@@ -1248,7 +1248,7 @@  static void rtw_pci_interface_cfg(struct rtw_dev *rtwdev)
 static void rtw_pci_phy_cfg(struct rtw_dev *rtwdev)
 {
 	struct rtw_chip_info *chip = rtwdev->chip;
-	struct rtw_intf_phy_para *para;
+	const struct rtw_intf_phy_para *para;
 	u16 cut;
 	u16 value;
 	u16 offset;
diff --git a/drivers/net/wireless/realtek/rtw88/rtw8822b.c b/drivers/net/wireless/realtek/rtw88/rtw8822b.c
index 4bc14b..ded1e9f 100644
--- a/drivers/net/wireless/realtek/rtw88/rtw8822b.c
+++ b/drivers/net/wireless/realtek/rtw88/rtw8822b.c
@@ -1543,7 +1543,7 @@  static void rtw8822b_bf_config_bfee(struct rtw_dev *rtwdev, struct rtw_vif *vif,
 		rtw_warn(rtwdev, "wrong bfee role\n");
 }
 
-static struct rtw_pwr_seq_cmd trans_carddis_to_cardemu_8822b[] = {
+static const struct rtw_pwr_seq_cmd trans_carddis_to_cardemu_8822b[] = {
 	{0x0086,
 	 RTW_PWR_CUT_ALL_MSK,
 	 RTW_PWR_INTF_SDIO_MSK,
@@ -1581,7 +1581,7 @@  static struct rtw_pwr_seq_cmd trans_carddis_to_cardemu_8822b[] = {
 	 RTW_PWR_CMD_END, 0, 0},
 };
 
-static struct rtw_pwr_seq_cmd trans_cardemu_to_act_8822b[] = {
+static const struct rtw_pwr_seq_cmd trans_cardemu_to_act_8822b[] = {
 	{0x0012,
 	 RTW_PWR_CUT_ALL_MSK,
 	 RTW_PWR_INTF_ALL_MSK,
@@ -1714,7 +1714,7 @@  static struct rtw_pwr_seq_cmd trans_cardemu_to_act_8822b[] = {
 	 RTW_PWR_CMD_END, 0, 0},
 };
 
-static struct rtw_pwr_seq_cmd trans_act_to_cardemu_8822b[] = {
+static const struct rtw_pwr_seq_cmd trans_act_to_cardemu_8822b[] = {
 	{0x0003,
 	 RTW_PWR_CUT_ALL_MSK,
 	 RTW_PWR_INTF_SDIO_MSK,
@@ -1787,7 +1787,7 @@  static struct rtw_pwr_seq_cmd trans_act_to_cardemu_8822b[] = {
 	 RTW_PWR_CMD_END, 0, 0},
 };
 
-static struct rtw_pwr_seq_cmd trans_cardemu_to_carddis_8822b[] = {
+static const struct rtw_pwr_seq_cmd trans_cardemu_to_carddis_8822b[] = {
 	{0x0005,
 	 RTW_PWR_CUT_ALL_MSK,
 	 RTW_PWR_INTF_SDIO_MSK,
@@ -1905,26 +1905,26 @@  static struct rtw_pwr_seq_cmd trans_cardemu_to_carddis_8822b[] = {
 	 RTW_PWR_CMD_END, 0, 0},
 };
 
-static struct rtw_pwr_seq_cmd *card_enable_flow_8822b[] = {
+static const struct rtw_pwr_seq_cmd *card_enable_flow_8822b[] = {
 	trans_carddis_to_cardemu_8822b,
 	trans_cardemu_to_act_8822b,
 	NULL
 };
 
-static struct rtw_pwr_seq_cmd *card_disable_flow_8822b[] = {
+static const struct rtw_pwr_seq_cmd *card_disable_flow_8822b[] = {
 	trans_act_to_cardemu_8822b,
 	trans_cardemu_to_carddis_8822b,
 	NULL
 };
 
-static struct rtw_intf_phy_para usb2_param_8822b[] = {
+static const struct rtw_intf_phy_para usb2_param_8822b[] = {
 	{0xFFFF, 0x00,
 	 RTW_IP_SEL_PHY,
 	 RTW_INTF_PHY_CUT_ALL,
 	 RTW_INTF_PHY_PLATFORM_ALL},
 };
 
-static struct rtw_intf_phy_para usb3_param_8822b[] = {
+static const struct rtw_intf_phy_para usb3_param_8822b[] = {
 	{0x0001, 0xA841,
 	 RTW_IP_SEL_PHY,
 	 RTW_INTF_PHY_CUT_D,
@@ -1935,7 +1935,7 @@  static struct rtw_intf_phy_para usb3_param_8822b[] = {
 	 RTW_INTF_PHY_PLATFORM_ALL},
 };
 
-static struct rtw_intf_phy_para pcie_gen1_param_8822b[] = {
+static const struct rtw_intf_phy_para pcie_gen1_param_8822b[] = {
 	{0x0001, 0xA841,
 	 RTW_IP_SEL_PHY,
 	 RTW_INTF_PHY_CUT_C,
@@ -1982,7 +1982,7 @@  static struct rtw_intf_phy_para pcie_gen1_param_8822b[] = {
 	 RTW_INTF_PHY_PLATFORM_ALL},
 };
 
-static struct rtw_intf_phy_para pcie_gen2_param_8822b[] = {
+static const struct rtw_intf_phy_para pcie_gen2_param_8822b[] = {
 	{0x0001, 0xA841,
 	 RTW_IP_SEL_PHY,
 	 RTW_INTF_PHY_CUT_C,
@@ -2029,7 +2029,7 @@  static struct rtw_intf_phy_para pcie_gen2_param_8822b[] = {
 	 RTW_INTF_PHY_PLATFORM_ALL},
 };
 
-static struct rtw_intf_phy_para_table phy_para_table_8822b = {
+static const struct rtw_intf_phy_para_table phy_para_table_8822b = {
 	.usb2_para	= usb2_param_8822b,
 	.usb3_para	= usb3_param_8822b,
 	.gen1_para	= pcie_gen1_param_8822b,
@@ -2046,12 +2046,12 @@  static const struct rtw_rfe_def rtw8822b_rfe_defs[] = {
 	[5] = RTW_DEF_RFE(8822b, 5, 5),
 };
 
-static struct rtw_hw_reg rtw8822b_dig[] = {
+static const struct rtw_hw_reg rtw8822b_dig[] = {
 	[0] = { .addr = 0xc50, .mask = 0x7f },
 	[1] = { .addr = 0xe50, .mask = 0x7f },
 };
 
-static struct rtw_page_table page_table_8822b[] = {
+static const struct rtw_page_table page_table_8822b[] = {
 	{64, 64, 64, 64, 1},
 	{64, 64, 64, 64, 1},
 	{64, 64, 0, 0, 1},
@@ -2059,7 +2059,7 @@  static struct rtw_page_table page_table_8822b[] = {
 	{64, 64, 64, 64, 1},
 };
 
-static struct rtw_rqpn rqpn_table_8822b[] = {
+static const struct rtw_rqpn rqpn_table_8822b[] = {
 	{RTW_DMA_MAPPING_NORMAL, RTW_DMA_MAPPING_NORMAL,
 	 RTW_DMA_MAPPING_LOW, RTW_DMA_MAPPING_LOW,
 	 RTW_DMA_MAPPING_EXTRA, RTW_DMA_MAPPING_HIGH},
diff --git a/drivers/net/wireless/realtek/rtw88/rtw8822c.c b/drivers/net/wireless/realtek/rtw88/rtw8822c.c
index 386509..5b2f594 100644
--- a/drivers/net/wireless/realtek/rtw88/rtw8822c.c
+++ b/drivers/net/wireless/realtek/rtw88/rtw8822c.c
@@ -3399,7 +3399,7 @@  static void rtw8822c_pwr_track(struct rtw_dev *rtwdev)
 	dm_info->pwr_trk_triggered = false;
 }
 
-static struct rtw_pwr_seq_cmd trans_carddis_to_cardemu_8822c[] = {
+static const struct rtw_pwr_seq_cmd trans_carddis_to_cardemu_8822c[] = {
 	{0x0086,
 	 RTW_PWR_CUT_ALL_MSK,
 	 RTW_PWR_INTF_SDIO_MSK,
@@ -3442,7 +3442,7 @@  static struct rtw_pwr_seq_cmd trans_carddis_to_cardemu_8822c[] = {
 	 RTW_PWR_CMD_END, 0, 0},
 };
 
-static struct rtw_pwr_seq_cmd trans_cardemu_to_act_8822c[] = {
+static const struct rtw_pwr_seq_cmd trans_cardemu_to_act_8822c[] = {
 	{0x0000,
 	 RTW_PWR_CUT_ALL_MSK,
 	 RTW_PWR_INTF_USB_MSK | RTW_PWR_INTF_SDIO_MSK,
@@ -3551,7 +3551,7 @@  static struct rtw_pwr_seq_cmd trans_cardemu_to_act_8822c[] = {
 	 RTW_PWR_CMD_END, 0, 0},
 };
 
-static struct rtw_pwr_seq_cmd trans_act_to_cardemu_8822c[] = {
+static const struct rtw_pwr_seq_cmd trans_act_to_cardemu_8822c[] = {
 	{0x0093,
 	 RTW_PWR_CUT_ALL_MSK,
 	 RTW_PWR_INTF_ALL_MSK,
@@ -3614,7 +3614,7 @@  static struct rtw_pwr_seq_cmd trans_act_to_cardemu_8822c[] = {
 	 RTW_PWR_CMD_END, 0, 0},
 };
 
-static struct rtw_pwr_seq_cmd trans_cardemu_to_carddis_8822c[] = {
+static const struct rtw_pwr_seq_cmd trans_cardemu_to_carddis_8822c[] = {
 	{0x0005,
 	 RTW_PWR_CUT_ALL_MSK,
 	 RTW_PWR_INTF_SDIO_MSK,
@@ -3677,47 +3677,47 @@  static struct rtw_pwr_seq_cmd trans_cardemu_to_carddis_8822c[] = {
 	 RTW_PWR_CMD_END, 0, 0},
 };
 
-static struct rtw_pwr_seq_cmd *card_enable_flow_8822c[] = {
+static const struct rtw_pwr_seq_cmd *card_enable_flow_8822c[] = {
 	trans_carddis_to_cardemu_8822c,
 	trans_cardemu_to_act_8822c,
 	NULL
 };
 
-static struct rtw_pwr_seq_cmd *card_disable_flow_8822c[] = {
+static const struct rtw_pwr_seq_cmd *card_disable_flow_8822c[] = {
 	trans_act_to_cardemu_8822c,
 	trans_cardemu_to_carddis_8822c,
 	NULL
 };
 
-static struct rtw_intf_phy_para usb2_param_8822c[] = {
+static const struct rtw_intf_phy_para usb2_param_8822c[] = {
 	{0xFFFF, 0x00,
 	 RTW_IP_SEL_PHY,
 	 RTW_INTF_PHY_CUT_ALL,
 	 RTW_INTF_PHY_PLATFORM_ALL},
 };
 
-static struct rtw_intf_phy_para usb3_param_8822c[] = {
+static const struct rtw_intf_phy_para usb3_param_8822c[] = {
 	{0xFFFF, 0x0000,
 	 RTW_IP_SEL_PHY,
 	 RTW_INTF_PHY_CUT_ALL,
 	 RTW_INTF_PHY_PLATFORM_ALL},
 };
 
-static struct rtw_intf_phy_para pcie_gen1_param_8822c[] = {
+static const struct rtw_intf_phy_para pcie_gen1_param_8822c[] = {
 	{0xFFFF, 0x0000,
 	 RTW_IP_SEL_PHY,
 	 RTW_INTF_PHY_CUT_ALL,
 	 RTW_INTF_PHY_PLATFORM_ALL},
 };
 
-static struct rtw_intf_phy_para pcie_gen2_param_8822c[] = {
+static const struct rtw_intf_phy_para pcie_gen2_param_8822c[] = {
 	{0xFFFF, 0x0000,
 	 RTW_IP_SEL_PHY,
 	 RTW_INTF_PHY_CUT_ALL,
 	 RTW_INTF_PHY_PLATFORM_ALL},
 };
 
-static struct rtw_intf_phy_para_table phy_para_table_8822c = {
+static const struct rtw_intf_phy_para_table phy_para_table_8822c = {
 	.usb2_para	= usb2_param_8822c,
 	.usb3_para	= usb3_param_8822c,
 	.gen1_para	= pcie_gen1_param_8822c,
@@ -3734,12 +3734,12 @@  static const struct rtw_rfe_def rtw8822c_rfe_defs[] = {
 	[2] = RTW_DEF_RFE(8822c, 0, 0),
 };
 
-static struct rtw_hw_reg rtw8822c_dig[] = {
+static const struct rtw_hw_reg rtw8822c_dig[] = {
 	[0] = { .addr = 0x1d70, .mask = 0x7f },
 	[1] = { .addr = 0x1d70, .mask = 0x7f00 },
 };
 
-static struct rtw_page_table page_table_8822c[] = {
+static const struct rtw_page_table page_table_8822c[] = {
 	{64, 64, 64, 64, 1},
 	{64, 64, 64, 64, 1},
 	{64, 64, 0, 0, 1},
@@ -3747,7 +3747,7 @@  static struct rtw_page_table page_table_8822c[] = {
 	{64, 64, 64, 64, 1},
 };
 
-static struct rtw_rqpn rqpn_table_8822c[] = {
+static const struct rtw_rqpn rqpn_table_8822c[] = {
 	{RTW_DMA_MAPPING_NORMAL, RTW_DMA_MAPPING_NORMAL,
 	 RTW_DMA_MAPPING_LOW, RTW_DMA_MAPPING_LOW,
 	 RTW_DMA_MAPPING_EXTRA, RTW_DMA_MAPPING_HIGH},