struct rtw89_txpwr_rule_2ghz rule_2ghz;
        struct rtw89_txpwr_rule_5ghz rule_5ghz;
        struct rtw89_txpwr_rule_6ghz rule_6ghz;
+       const u8 (*tx_shape)[RTW89_BAND_NUM][RTW89_RS_TX_SHAPE_NUM][RTW89_REGD_NUM];
 };
 
 struct rtw89_rfe_parms_conf {
 
                                  const struct rtw89_chan *chan,
                                  enum rtw89_phy_idx phy_idx)
 {
+       const struct rtw89_rfe_parms *rfe_parms = rtwdev->rfe_parms;
        u8 band = chan->band_type;
        u8 regd = rtw89_regd_get(rtwdev, band);
-       u8 tx_shape_cck = rtw89_8851b_tx_shape[band][RTW89_RS_CCK][regd];
-       u8 tx_shape_ofdm = rtw89_8851b_tx_shape[band][RTW89_RS_OFDM][regd];
+       u8 tx_shape_cck = (*rfe_parms->tx_shape)[band][RTW89_RS_CCK][regd];
+       u8 tx_shape_ofdm = (*rfe_parms->tx_shape)[band][RTW89_RS_OFDM][regd];
 
        if (band == RTW89_BAND_2G)
                rtw8851b_bb_set_tx_shape_dfir(rtwdev, chan, tx_shape_cck, phy_idx);
 
         0, 1, 1, 1, 1, 2, 2, 2, 3, 3, 3, 3, 4, 4
 };
 
+static
 const u8 rtw89_8851b_tx_shape[RTW89_BAND_NUM][RTW89_RS_TX_SHAPE_NUM]
                             [RTW89_REGD_NUM] = {
        [0][0][RTW89_ACMA] = 0,
                .lmt = &rtw89_8851b_txpwr_lmt_5g,
                .lmt_ru = &rtw89_8851b_txpwr_lmt_ru_5g,
        },
+       .tx_shape = &rtw89_8851b_tx_shape,
 };
 
 static const struct rtw89_rfe_parms rtw89_8851b_rfe_parms_type2 = {
                .lmt = &rtw89_8851b_txpwr_lmt_5g_type2,
                .lmt_ru = &rtw89_8851b_txpwr_lmt_ru_5g_type2,
        },
+       .tx_shape = &rtw89_8851b_tx_shape,
 };
 
 const struct rtw89_rfe_parms_conf rtw89_8851b_rfe_parms_conf[] = {
 
 extern const struct rtw89_phy_table rtw89_8851b_phy_nctl_table;
 extern const struct rtw89_txpwr_table rtw89_8851b_byr_table;
 extern const struct rtw89_txpwr_track_cfg rtw89_8851b_trk_cfg;
-extern const u8 rtw89_8851b_tx_shape[RTW89_BAND_NUM][RTW89_RS_TX_SHAPE_NUM]
-                                   [RTW89_REGD_NUM];
 extern const struct rtw89_rfe_parms rtw89_8851b_dflt_parms;
 extern const struct rtw89_rfe_parms_conf rtw89_8851b_rfe_parms_conf[];
 
 
                                  const struct rtw89_chan *chan,
                                  enum rtw89_phy_idx phy_idx)
 {
+       const struct rtw89_rfe_parms *rfe_parms = rtwdev->rfe_parms;
        u8 band = chan->band_type;
        u8 regd = rtw89_regd_get(rtwdev, band);
-       u8 tx_shape_cck = rtw89_8852b_tx_shape[band][RTW89_RS_CCK][regd];
-       u8 tx_shape_ofdm = rtw89_8852b_tx_shape[band][RTW89_RS_OFDM][regd];
+       u8 tx_shape_cck = (*rfe_parms->tx_shape)[band][RTW89_RS_CCK][regd];
+       u8 tx_shape_ofdm = (*rfe_parms->tx_shape)[band][RTW89_RS_OFDM][regd];
 
        if (band == RTW89_BAND_2G)
                rtw8852b_bb_set_tx_shape_dfir(rtwdev, chan, tx_shape_cck, phy_idx);
 
        0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
         1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1};
 
+static
 const u8 rtw89_8852b_tx_shape[RTW89_BAND_NUM][RTW89_RS_TX_SHAPE_NUM]
                             [RTW89_REGD_NUM] = {
        [0][0][RTW89_ACMA] = 0,
                .lmt = &rtw89_8852b_txpwr_lmt_5g,
                .lmt_ru = &rtw89_8852b_txpwr_lmt_ru_5g,
        },
+       .tx_shape = &rtw89_8852b_tx_shape,
 };
 
 extern const struct rtw89_phy_table rtw89_8852b_phy_nctl_table;
 extern const struct rtw89_txpwr_table rtw89_8852b_byr_table;
 extern const struct rtw89_txpwr_track_cfg rtw89_8852b_trk_cfg;
-extern const u8 rtw89_8852b_tx_shape[RTW89_BAND_NUM][RTW89_RS_TX_SHAPE_NUM]
-                                   [RTW89_REGD_NUM];
 extern const struct rtw89_rfe_parms rtw89_8852b_dflt_parms;
 
 #endif
 
                                  const struct rtw89_chan *chan,
                                  enum rtw89_phy_idx phy_idx)
 {
+       const struct rtw89_rfe_parms *rfe_parms = rtwdev->rfe_parms;
        u8 band = chan->band_type;
        u8 regd = rtw89_regd_get(rtwdev, band);
-       u8 tx_shape_cck = rtw89_8852c_tx_shape[band][RTW89_RS_CCK][regd];
-       u8 tx_shape_ofdm = rtw89_8852c_tx_shape[band][RTW89_RS_OFDM][regd];
+       u8 tx_shape_cck = (*rfe_parms->tx_shape)[band][RTW89_RS_CCK][regd];
+       u8 tx_shape_ofdm = (*rfe_parms->tx_shape)[band][RTW89_RS_OFDM][regd];
 
        if (band == RTW89_BAND_2G)
                rtw8852c_bb_set_tx_shape_dfir(rtwdev, chan, tx_shape_cck, phy_idx);
 
         3, 3, 3, 3, 3, 4, 4, 4, 4, 4, 4, 5, 5, 5
 };
 
+static
 const u8 rtw89_8852c_tx_shape[RTW89_BAND_NUM][RTW89_RS_TX_SHAPE_NUM]
                             [RTW89_REGD_NUM] = {
        [0][0][RTW89_ACMA] = 0,
                .lmt = &rtw89_8852c_txpwr_lmt_6g,
                .lmt_ru = &rtw89_8852c_txpwr_lmt_ru_6g,
        },
+       .tx_shape = &rtw89_8852c_tx_shape,
 };
 
 extern const struct rtw89_txpwr_table rtw89_8852c_byr_table;
 extern const struct rtw89_phy_tssi_dbw_table rtw89_8852c_tssi_dbw_table;
 extern const struct rtw89_txpwr_track_cfg rtw89_8852c_trk_cfg;
-extern const u8 rtw89_8852c_tx_shape[RTW89_BAND_NUM][RTW89_RS_TX_SHAPE_NUM]
-                                   [RTW89_REGD_NUM];
 extern const struct rtw89_rfe_parms rtw89_8852c_dflt_parms;
 
 #endif