* @n_6ghz_params: number of 6 GHz params
  * @scan_6ghz_params: 6 GHz params
  * @bssid: BSSID to scan for (most commonly, the wildcard BSSID)
+ * @tsf_report_link_id: for MLO, indicates the link ID of the BSS that should be
+ *      used for TSF reporting. Can be set to -1 to indicate no preference.
  */
 struct cfg80211_scan_request {
        struct cfg80211_ssid *ssids;
        bool scan_6ghz;
        u32 n_6ghz_params;
        struct cfg80211_scan_6ghz_params *scan_6ghz_params;
+       s8 tsf_report_link_id;
 
        /* keep last */
        struct ieee80211_channel *channels[] __counted_by(n_channels);
 
  *     the BSS that the interface that requested the scan is connected to
  *     (if available).
  * @NL80211_EXT_FEATURE_BSS_PARENT_TSF: Per BSS, this driver reports the
- *     time the last beacon/probe was received. The time is the TSF of the
- *     BSS that the interface that requested the scan is connected to
- *     (if available).
+ *     time the last beacon/probe was received. For a non MLO connection, the
+ *     time is the TSF of the BSS that the interface that requested the scan is
+ *     connected to (if available). For an MLO connection, the time is the TSF
+ *     of the BSS corresponding with link ID specified in the scan request (if
+ *     specified).
  * @NL80211_EXT_FEATURE_SET_SCAN_DWELL: This driver supports configuration of
  *     channel dwell time.
  * @NL80211_EXT_FEATURE_BEACON_RATE_LEGACY: Driver supports beacon rate
 
        else
                eth_broadcast_addr(request->bssid);
 
+       request->tsf_report_link_id = nl80211_link_id_or_invalid(info->attrs);
        request->wdev = wdev;
        request->wiphy = &rdev->wiphy;
        request->scan_start = jiffies;