Home
last modified time | relevance | path

Searched refs:padapter (Results 1 – 25 of 172) sorted by relevance

1234567

/linux-6.1.9/drivers/staging/rtl8723bs/hal/
Dhal_intf.c11 void rtw_hal_chip_configure(struct adapter *padapter) in rtw_hal_chip_configure() argument
13 if (padapter->HalFunc.intf_chip_configure) in rtw_hal_chip_configure()
14 padapter->HalFunc.intf_chip_configure(padapter); in rtw_hal_chip_configure()
17 void rtw_hal_read_chip_info(struct adapter *padapter) in rtw_hal_read_chip_info() argument
19 if (padapter->HalFunc.read_adapter_info) in rtw_hal_read_chip_info()
20 padapter->HalFunc.read_adapter_info(padapter); in rtw_hal_read_chip_info()
23 void rtw_hal_read_chip_version(struct adapter *padapter) in rtw_hal_read_chip_version() argument
25 if (padapter->HalFunc.read_chip_version) in rtw_hal_read_chip_version()
26 padapter->HalFunc.read_chip_version(padapter); in rtw_hal_read_chip_version()
29 void rtw_hal_def_value_init(struct adapter *padapter) in rtw_hal_def_value_init() argument
[all …]
Dsdio_halinit.c20 static u8 CardEnable(struct adapter *padapter) in CardEnable() argument
26 rtw_hal_get_hwreg(padapter, HW_VAR_APFM_ON_MAC, &bMacPwrCtrlOn); in CardEnable()
30 rtw_write8(padapter, REG_RSV_CTRL, 0x0); in CardEnable()
32 …ret = HalPwrSeqCmdParsing(padapter, PWR_CUT_ALL_MSK, PWR_FAB_ALL_MSK, PWR_INTF_SDIO_MSK, rtl8723B_… in CardEnable()
35 rtw_hal_set_hwreg(padapter, HW_VAR_APFM_ON_MAC, &bMacPwrCtrlOn); in CardEnable()
44 u8 _InitPowerOn_8723BS(struct adapter *padapter) in _InitPowerOn_8723BS() argument
56 ret = CardEnable(padapter); in _InitPowerOn_8723BS()
61 value8 = rtw_read8(padapter, REG_GPIO_INTM + 1); in _InitPowerOn_8723BS()
63 rtw_write8(padapter, REG_GPIO_INTM + 1, value8); in _InitPowerOn_8723BS()
64 value8 = rtw_read8(padapter, REG_GPIO_IO_SEL_2 + 1); in _InitPowerOn_8723BS()
[all …]
Drtl8723b_hal_init.c15 static void _FWDownloadEnable(struct adapter *padapter, bool enable) in _FWDownloadEnable() argument
21 tmp = rtw_read8(padapter, REG_SYS_FUNC_EN+1); in _FWDownloadEnable()
22 rtw_write8(padapter, REG_SYS_FUNC_EN+1, tmp|0x04); in _FWDownloadEnable()
24 tmp = rtw_read8(padapter, REG_MCUFWDL); in _FWDownloadEnable()
25 rtw_write8(padapter, REG_MCUFWDL, tmp|0x01); in _FWDownloadEnable()
28 tmp = rtw_read8(padapter, REG_MCUFWDL); in _FWDownloadEnable()
31 rtw_write8(padapter, REG_MCUFWDL, tmp|0x01); in _FWDownloadEnable()
36 tmp = rtw_read8(padapter, REG_MCUFWDL+2); in _FWDownloadEnable()
37 rtw_write8(padapter, REG_MCUFWDL+2, tmp&0xf7); in _FWDownloadEnable()
40 tmp = rtw_read8(padapter, REG_MCUFWDL); in _FWDownloadEnable()
[all …]
Drtl8723b_cmd.c19 static u8 _is_fw_read_cmd_down(struct adapter *padapter, u8 msgbox_num) in _is_fw_read_cmd_down() argument
27 valid = rtw_read8(padapter, REG_HMETFR) & BIT(msgbox_num); in _is_fw_read_cmd_down()
46 s32 FillH2CCmd8723B(struct adapter *padapter, u8 ElementID, u32 CmdLen, u8 *pCmdBuffer) in FillH2CCmd8723B() argument
56 padapter = GET_PRIMARY_ADAPTER(padapter); in FillH2CCmd8723B()
57 pHalData = GET_HAL_DATA(padapter); in FillH2CCmd8723B()
58 if (mutex_lock_interruptible(&(adapter_to_dvobj(padapter)->h2c_fwcmd_mutex))) in FillH2CCmd8723B()
69 if (padapter->bSurpriseRemoved) in FillH2CCmd8723B()
76 if (!_is_fw_read_cmd_down(padapter, h2c_box_num)) in FillH2CCmd8723B()
91 rtw_write32(padapter, msgbox_ex_addr, h2c_cmd_ex); in FillH2CCmd8723B()
94 rtw_write32(padapter, msgbox_addr, h2c_cmd); in FillH2CCmd8723B()
[all …]
Dhal_btcoex.c32 struct adapter *padapter; in halbtcoutsrc_LeaveLps() local
35 padapter = pBtCoexist->Adapter; in halbtcoutsrc_LeaveLps()
40 rtw_btcoex_LPS_Leave(padapter); in halbtcoutsrc_LeaveLps()
45 struct adapter *padapter; in halbtcoutsrc_EnterLps() local
48 padapter = pBtCoexist->Adapter; in halbtcoutsrc_EnterLps()
53 rtw_btcoex_LPS_Enter(padapter); in halbtcoutsrc_EnterLps()
58 struct adapter *padapter; in halbtcoutsrc_NormalLps() local
60 padapter = pBtCoexist->Adapter; in halbtcoutsrc_NormalLps()
64 rtw_btcoex_LPS_Leave(padapter); in halbtcoutsrc_NormalLps()
77 struct adapter *padapter; in halbtcoutsrc_LeaveLowPower() local
[all …]
/linux-6.1.9/drivers/staging/rtl8723bs/os_dep/
Dos_intfs.c181 static void loadparam(struct adapter *padapter, struct net_device *pnetdev) in loadparam() argument
183 struct registry_priv *registry_par = &padapter->registrypriv; in loadparam()
280 struct adapter *padapter = rtw_netdev_priv(pnetdev); in rtw_net_set_mac_address() local
283 if (!padapter->bup) { in rtw_net_set_mac_address()
285 memcpy(padapter->eeprompriv.mac_addr, addr->sa_data, ETH_ALEN); in rtw_net_set_mac_address()
295 struct adapter *padapter = rtw_netdev_priv(pnetdev); in rtw_net_get_stats() local
296 struct xmit_priv *pxmitpriv = &(padapter->xmitpriv); in rtw_net_get_stats()
297 struct recv_priv *precvpriv = &(padapter->recvpriv); in rtw_net_get_stats()
299 padapter->stats.tx_packets = pxmitpriv->tx_pkts;/* pxmitpriv->tx_pkts++; */ in rtw_net_get_stats()
300 padapter->stats.rx_packets = precvpriv->rx_pkts;/* precvpriv->rx_pkts++; */ in rtw_net_get_stats()
[all …]
Dsdio_intf.c216 void rtw_set_hal_ops(struct adapter *padapter) in rtw_set_hal_ops() argument
219 rtw_hal_data_init(padapter); in rtw_set_hal_ops()
221 rtl8723bs_set_hal_ops(padapter); in rtw_set_hal_ops()
224 static void sd_intf_start(struct adapter *padapter) in sd_intf_start() argument
226 if (!padapter) in sd_intf_start()
230 rtw_hal_enable_interrupt(padapter); in sd_intf_start()
233 static void sd_intf_stop(struct adapter *padapter) in sd_intf_stop() argument
235 if (!padapter) in sd_intf_stop()
239 rtw_hal_disable_interrupt(padapter); in sd_intf_stop()
247 struct adapter *padapter = NULL; in rtw_sdio_if1_init() local
[all …]
/linux-6.1.9/drivers/staging/rtl8712/
Drtl871x_eeprom.c22 static void up_clk(struct _adapter *padapter, u16 *x) in up_clk() argument
25 r8712_write8(padapter, EE_9346CR, (u8)*x); in up_clk()
29 static void down_clk(struct _adapter *padapter, u16 *x) in down_clk() argument
32 r8712_write8(padapter, EE_9346CR, (u8)*x); in down_clk()
36 static void shift_out_bits(struct _adapter *padapter, u16 data, u16 count) in shift_out_bits() argument
40 if (padapter->surprise_removed) in shift_out_bits()
43 x = r8712_read8(padapter, EE_9346CR); in shift_out_bits()
49 if (padapter->surprise_removed) in shift_out_bits()
51 r8712_write8(padapter, EE_9346CR, (u8)x); in shift_out_bits()
53 up_clk(padapter, &x); in shift_out_bits()
[all …]
Dos_intfs.c116 static void loadparam(struct _adapter *padapter, struct net_device *pnetdev) in loadparam() argument
118 struct registry_priv *registry_par = &padapter->registrypriv; in loadparam()
165 struct _adapter *padapter = netdev_priv(pnetdev); in r871x_net_set_mac_address() local
168 if (!padapter->bup) in r871x_net_set_mac_address()
175 struct _adapter *padapter = netdev_priv(pnetdev); in r871x_net_get_stats() local
176 struct xmit_priv *pxmitpriv = &padapter->xmitpriv; in r871x_net_get_stats()
177 struct recv_priv *precvpriv = &padapter->recvpriv; in r871x_net_get_stats()
179 padapter->stats.tx_packets = pxmitpriv->tx_pkts; in r871x_net_get_stats()
180 padapter->stats.rx_packets = precvpriv->rx_pkts; in r871x_net_get_stats()
181 padapter->stats.tx_dropped = pxmitpriv->tx_drop; in r871x_net_get_stats()
[all …]
Dusb_intf.c195 struct _adapter *padapter = netdev_priv(pnetdev); in r871x_suspend() local
198 padapter->suspended = true; in r871x_suspend()
199 rtl871x_intf_stop(padapter); in r871x_suspend()
207 static void rtl871x_intf_resume(struct _adapter *padapter) in rtl871x_intf_resume() argument
209 if (padapter->dvobjpriv.inirp_init) in rtl871x_intf_resume()
210 padapter->dvobjpriv.inirp_init(padapter); in rtl871x_intf_resume()
216 struct _adapter *padapter = netdev_priv(pnetdev); in r871x_resume() local
222 padapter->suspended = false; in r871x_resume()
223 rtl871x_intf_resume(padapter); in r871x_resume()
239 static uint r8712_usb_dvobj_init(struct _adapter *padapter) in r8712_usb_dvobj_init() argument
[all …]
Drtl8712_cmd.c43 static void check_hw_pbc(struct _adapter *padapter) in check_hw_pbc() argument
47 r8712_write8(padapter, MAC_PINMUX_CTRL, (GPIOMUX_EN | GPIOSEL_GPIO)); in check_hw_pbc()
48 tmp1byte = r8712_read8(padapter, GPIO_IO_SEL); in check_hw_pbc()
50 r8712_write8(padapter, GPIO_IO_SEL, tmp1byte); in check_hw_pbc()
51 tmp1byte = r8712_read8(padapter, GPIO_CTRL); in check_hw_pbc()
58 netdev_dbg(padapter->pnetdev, "CheckPbcGPIO - PBC is pressed !!!!\n"); in check_hw_pbc()
62 if (padapter->pid == 0) in check_hw_pbc()
64 kill_pid(find_vpid(padapter->pid), SIGUSR1, 1); in check_hw_pbc()
72 static void query_fw_rx_phy_status(struct _adapter *padapter) in query_fw_rx_phy_status() argument
77 if (check_fwstate(&padapter->mlmepriv, _FW_LINKED)) { in query_fw_rx_phy_status()
[all …]
/linux-6.1.9/drivers/staging/r8188eu/os_dep/
Dos_intfs.c147 static uint loadparam(struct adapter *padapter) in loadparam() argument
149 struct registry_priv *registry_par = &padapter->registrypriv; in loadparam()
221 struct adapter *padapter = (struct adapter *)rtw_netdev_priv(pnetdev); in rtw_net_set_mac_address() local
224 if (!padapter->bup) in rtw_net_set_mac_address()
225 memcpy(padapter->eeprompriv.mac_addr, addr->sa_data, ETH_ALEN); in rtw_net_set_mac_address()
232 struct adapter *padapter = (struct adapter *)rtw_netdev_priv(pnetdev); in rtw_net_get_stats() local
233 struct xmit_priv *pxmitpriv = &padapter->xmitpriv; in rtw_net_get_stats()
234 struct recv_priv *precvpriv = &padapter->recvpriv; in rtw_net_get_stats()
236 padapter->stats.tx_packets = pxmitpriv->tx_pkts;/* pxmitpriv->tx_pkts++; */ in rtw_net_get_stats()
237 padapter->stats.rx_packets = precvpriv->rx_pkts;/* precvpriv->rx_pkts++; */ in rtw_net_get_stats()
[all …]
Dusb_intf.c155 static void usb_intf_start(struct adapter *padapter) in usb_intf_start() argument
157 rtl8188eu_inirp_init(padapter); in usb_intf_start()
160 static void usb_intf_stop(struct adapter *padapter) in usb_intf_stop() argument
163 rtw_read_port_cancel(padapter); in usb_intf_stop()
166 rtw_write_port_cancel(padapter); in usb_intf_stop()
171 static void rtw_dev_unload(struct adapter *padapter) in rtw_dev_unload() argument
173 if (padapter->bup) { in rtw_dev_unload()
174 padapter->bDriverStopped = true; in rtw_dev_unload()
175 if (padapter->xmitpriv.ack_tx) in rtw_dev_unload()
176 rtw_ack_tx_done(&padapter->xmitpriv, RTW_SCTX_DONE_DRV_STOP); in rtw_dev_unload()
[all …]
/linux-6.1.9/drivers/staging/rtl8723bs/include/
Dhal_intf.h165 u32 (*hal_power_on)(struct adapter *padapter);
166 void (*hal_power_off)(struct adapter *padapter);
167 u32 (*hal_init)(struct adapter *padapter);
168 u32 (*hal_deinit)(struct adapter *padapter);
170 void (*free_hal_data)(struct adapter *padapter);
172 u32 (*inirp_init)(struct adapter *padapter);
173 u32 (*inirp_deinit)(struct adapter *padapter);
174 void (*irp_reset)(struct adapter *padapter);
176 s32 (*init_xmit_priv)(struct adapter *padapter);
177 void (*free_xmit_priv)(struct adapter *padapter);
[all …]
Drtw_mlme_ext.h249 unsigned int (*func)(struct adapter *padapter, union recv_frame *precv_frame);
255 unsigned int (*func)(struct adapter *padapter, union recv_frame *precv_frame);
402 struct adapter *padapter; member
462 void init_mlme_default_rate_set(struct adapter *padapter);
463 void init_mlme_ext_priv(struct adapter *padapter);
464 int init_hw_mlme_ext(struct adapter *padapter);
466 extern void init_mlme_ext_timer(struct adapter *padapter);
467 extern void init_addba_retry_timer(struct adapter *padapter, struct sta_info *psta);
474 void get_rate_set(struct adapter *padapter, unsigned char *pbssrate, int *bssrate_len);
476 void UpdateBrateTbl(struct adapter *padapter, u8 *mBratesOS);
[all …]
Drtw_mp.h22 struct adapter *padapter; member
296 s32 init_mp_priv(struct adapter *padapter);
298 s32 MPT_InitializeAdapter(struct adapter *padapter, u8 Channel);
299 void MPT_DeInitAdapter(struct adapter *padapter);
300 s32 mp_start_test(struct adapter *padapter);
301 void mp_stop_test(struct adapter *padapter);
303 u32 _read_rfreg(struct adapter *padapter, u8 rfpath, u32 addr, u32 bitmask);
304 void _write_rfreg(struct adapter *padapter, u8 rfpath, u32 addr, u32 bitmask, u32 val);
306 u32 read_macreg(struct adapter *padapter, u32 addr, u32 sz);
307 void write_macreg(struct adapter *padapter, u32 addr, u32 val, u32 sz);
[all …]
Drtw_ap.h10 void init_mlme_ap_info(struct adapter *padapter);
11 void free_mlme_ap_info(struct adapter *padapter);
13 void update_beacon(struct adapter *padapter, u8 ie_id, u8 *oui, u8 tx);
14 void add_RATid(struct adapter *padapter, struct sta_info *psta, u8 rssi_level);
15 void expire_timeout_chk(struct adapter *padapter);
16 void update_sta_info_apmode(struct adapter *padapter, struct sta_info *psta);
17 void start_bss_network(struct adapter *padapter);
18 int rtw_check_beacon_data(struct adapter *padapter, u8 *pbuf, int len);
19 void rtw_ap_restore_network(struct adapter *padapter);
20 void rtw_set_macaddr_acl(struct adapter *padapter, int mode);
[all …]
Dhal_btcoex.h23 void hal_btcoex_SetBTCoexist(struct adapter *padapter, u8 bBtExist);
24 bool hal_btcoex_IsBtExist(struct adapter *padapter);
26 void hal_btcoex_SetChipType(struct adapter *padapter, u8 chipType);
27 void hal_btcoex_SetPgAntNum(struct adapter *padapter, u8 antNum);
28 void hal_btcoex_SetSingleAntPath(struct adapter *padapter, u8 singleAntPath);
30 void hal_btcoex_Initialize(void *padapter);
31 void hal_btcoex_PowerOnSetting(struct adapter *padapter);
32 void hal_btcoex_InitHwConfig(struct adapter *padapter, u8 bWifiOnly);
34 void hal_btcoex_IpsNotify(struct adapter *padapter, u8 type);
35 void hal_btcoex_LpsNotify(struct adapter *padapter, u8 type);
[all …]
/linux-6.1.9/drivers/staging/rtl8723bs/core/
Drtw_pwrctrl.c13 void _ips_enter(struct adapter *padapter) in _ips_enter() argument
15 struct pwrctrl_priv *pwrpriv = adapter_to_pwrctl(padapter); in _ips_enter()
30 rtw_ips_pwr_down(padapter); in _ips_enter()
37 void ips_enter(struct adapter *padapter) in ips_enter() argument
39 struct pwrctrl_priv *pwrpriv = adapter_to_pwrctl(padapter); in ips_enter()
42 hal_btcoex_IpsNotify(padapter, pwrpriv->ips_mode_req); in ips_enter()
45 _ips_enter(padapter); in ips_enter()
49 int _ips_leave(struct adapter *padapter) in _ips_leave() argument
51 struct pwrctrl_priv *pwrpriv = adapter_to_pwrctl(padapter); in _ips_leave()
59 result = rtw_ips_pwr_up(padapter); in _ips_leave()
[all …]
Drtw_efuse.c77 struct adapter *padapter, in Efuse_PowerSwitch() argument
81 padapter->HalFunc.EfusePowerSwitch(padapter, bWrite, PwrState); in Efuse_PowerSwitch()
102 struct adapter *padapter, in Efuse_GetCurrentSize() argument
106 return padapter->HalFunc.EfuseGetCurrentSize(padapter, efuseType, in Efuse_GetCurrentSize()
168 struct adapter *padapter, in EFUSE_GetEfuseDefinition() argument
175 padapter->HalFunc.EFUSEGetEfuseDefinition(padapter, efuseType, type, pOut, bPseudoTest); in EFUSE_GetEfuseDefinition()
237 struct adapter *padapter, in efuse_OneByteRead() argument
252 rtw_write16(padapter, 0x34, rtw_read16(padapter, 0x34) & (~BIT11)); in efuse_OneByteRead()
256 rtw_write8(padapter, EFUSE_CTRL+1, (u8)(addr&0xff)); in efuse_OneByteRead()
257 rtw_write8(padapter, EFUSE_CTRL+2, ((u8)((addr>>8) & 0x03)) | in efuse_OneByteRead()
[all …]
Drtw_ap.c12 void init_mlme_ap_info(struct adapter *padapter) in init_mlme_ap_info() argument
14 struct mlme_priv *pmlmepriv = &padapter->mlmepriv; in init_mlme_ap_info()
15 struct sta_priv *pstapriv = &padapter->stapriv; in init_mlme_ap_info()
26 start_ap_mode(padapter); in init_mlme_ap_info()
29 void free_mlme_ap_info(struct adapter *padapter) in free_mlme_ap_info() argument
32 struct mlme_priv *pmlmepriv = &padapter->mlmepriv; in free_mlme_ap_info()
33 struct mlme_ext_priv *pmlmeext = &padapter->mlmeextpriv; in free_mlme_ap_info()
41 rtw_sta_flush(padapter); in free_mlme_ap_info()
46 rtw_free_all_stainfo(padapter); in free_mlme_ap_info()
49 psta = rtw_get_bcmc_stainfo(padapter); in free_mlme_ap_info()
[all …]
Drtw_btcoex.c12 void rtw_btcoex_MediaStatusNotify(struct adapter *padapter, u8 mediaStatus) in rtw_btcoex_MediaStatusNotify() argument
15 && (check_fwstate(&padapter->mlmepriv, WIFI_AP_STATE) == true)) { in rtw_btcoex_MediaStatusNotify()
16 rtw_hal_set_hwreg(padapter, HW_VAR_DL_RSVD_PAGE, NULL); in rtw_btcoex_MediaStatusNotify()
19 hal_btcoex_MediaStatusNotify(padapter, mediaStatus); in rtw_btcoex_MediaStatusNotify()
22 void rtw_btcoex_HaltNotify(struct adapter *padapter) in rtw_btcoex_HaltNotify() argument
24 if (!padapter->bup) in rtw_btcoex_HaltNotify()
27 if (padapter->bSurpriseRemoved) in rtw_btcoex_HaltNotify()
30 hal_btcoex_HaltNotify(padapter); in rtw_btcoex_HaltNotify()
36 void rtw_btcoex_RejectApAggregatedPacket(struct adapter *padapter, u8 enable) in rtw_btcoex_RejectApAggregatedPacket() argument
41 pmlmeinfo = &padapter->mlmeextpriv.mlmext_info; in rtw_btcoex_RejectApAggregatedPacket()
[all …]
/linux-6.1.9/drivers/staging/r8188eu/include/
Drtw_mlme_ext.h343 struct adapter *padapter; member
389 int init_hw_mlme_ext(struct adapter *padapter);
394 u8 judge_network_type(struct adapter *padapter, unsigned char *rate, int len);
395 void get_rate_set(struct adapter *padapter, unsigned char *pbssrate, int *len);
397 void Save_DM_Func_Flag(struct adapter *padapter);
398 void Restore_DM_Func_Flag(struct adapter *padapter);
400 void Set_MSR(struct adapter *padapter, u8 type);
407 void set_channel_bwmode(struct adapter *padapter, unsigned char channel,
409 void SelectChannel(struct adapter *padapter, unsigned char channel);
410 void SetBWMode(struct adapter *padapter, unsigned short bwmode,
[all …]
/linux-6.1.9/drivers/staging/r8188eu/core/
Drtw_pwrctrl.c11 void ips_enter(struct adapter *padapter) in ips_enter() argument
13 struct pwrctrl_priv *pwrpriv = &padapter->pwrctrlpriv; in ips_enter()
14 struct xmit_priv *pxmit_priv = &padapter->xmitpriv; in ips_enter()
34 rtw_ips_pwr_down(padapter); in ips_enter()
42 int ips_leave(struct adapter *padapter) in ips_leave() argument
44 struct pwrctrl_priv *pwrpriv = &padapter->pwrctrlpriv; in ips_leave()
45 struct security_priv *psecuritypriv = &padapter->securitypriv; in ips_leave()
46 struct mlme_priv *pmlmepriv = &padapter->mlmepriv; in ips_leave()
57 result = rtw_ips_pwr_up(padapter); in ips_leave()
63 …set_channel_bwmode(padapter, padapter->mlmeextpriv.cur_channel, HAL_PRIME_CHNL_OFFSET_DONT_CARE, H… in ips_leave()
[all …]
Drtw_ap.c12 void init_mlme_ap_info(struct adapter *padapter) in init_mlme_ap_info() argument
14 struct mlme_priv *pmlmepriv = &padapter->mlmepriv; in init_mlme_ap_info()
15 struct sta_priv *pstapriv = &padapter->stapriv; in init_mlme_ap_info()
23 start_ap_mode(padapter); in init_mlme_ap_info()
26 void free_mlme_ap_info(struct adapter *padapter) in free_mlme_ap_info() argument
29 struct sta_priv *pstapriv = &padapter->stapriv; in free_mlme_ap_info()
30 struct mlme_priv *pmlmepriv = &padapter->mlmepriv; in free_mlme_ap_info()
31 struct mlme_ext_priv *pmlmeext = &padapter->mlmeextpriv; in free_mlme_ap_info()
37 rtw_sta_flush(padapter); in free_mlme_ap_info()
42 rtw_free_all_stainfo(padapter); in free_mlme_ap_info()
[all …]

1234567