Home
last modified time | relevance | path

Searched refs:eeprom (Results 1 – 25 of 229) sorted by relevance

12345678910

/drivers/misc/eeprom/
A Deeprom_93cx6.c25 eeprom->register_write(eeprom); in eeprom_93cx6_pulse_high()
38 eeprom->register_write(eeprom); in eeprom_93cx6_pulse_low()
53 eeprom->register_read(eeprom); in eeprom_93cx6_startup()
59 eeprom->register_write(eeprom); in eeprom_93cx6_startup()
73 eeprom->register_read(eeprom); in eeprom_93cx6_cleanup()
76 eeprom->register_write(eeprom); in eeprom_93cx6_cleanup()
90 eeprom->register_read(eeprom); in eeprom_93cx6_write_bits()
111 eeprom->register_write(eeprom); in eeprom_93cx6_write_bits()
121 eeprom->register_write(eeprom); in eeprom_93cx6_write_bits()
130 eeprom->register_read(eeprom); in eeprom_93cx6_read_bits()
[all …]
/drivers/i2c/
A Di2c-slave-eeprom.c52 if (eeprom->idx_write_cnt < eeprom->num_address_bytes) { in i2c_slave_eeprom_slave_cb()
54 eeprom->buffer_idx = 0; in i2c_slave_eeprom_slave_cb()
55 eeprom->buffer_idx = *val | (eeprom->buffer_idx << 8); in i2c_slave_eeprom_slave_cb()
56 eeprom->idx_write_cnt++; in i2c_slave_eeprom_slave_cb()
58 if (!eeprom->read_only) { in i2c_slave_eeprom_slave_cb()
60 eeprom->buffer[eeprom->buffer_idx++ & eeprom->address_mask] = *val; in i2c_slave_eeprom_slave_cb()
68 eeprom->buffer_idx++; in i2c_slave_eeprom_slave_cb()
72 *val = eeprom->buffer[eeprom->buffer_idx & eeprom->address_mask]; in i2c_slave_eeprom_slave_cb()
83 eeprom->idx_write_cnt = 0; in i2c_slave_eeprom_slave_cb()
152 if (!eeprom) in i2c_slave_eeprom_probe()
[all …]
/drivers/nvmem/
A Dlpc18xx_eeprom.c118 bytes -= eeprom->val_bytes; in lpc18xx_eeprom_gather_write()
119 val += eeprom->val_bytes; in lpc18xx_eeprom_gather_write()
120 offset += eeprom->val_bytes; in lpc18xx_eeprom_gather_write()
142 bytes -= eeprom->val_bytes; in lpc18xx_eeprom_read()
143 val += eeprom->val_bytes; in lpc18xx_eeprom_read()
171 eeprom = devm_kzalloc(dev, sizeof(*eeprom), GFP_KERNEL); in lpc18xx_eeprom_probe()
172 if (!eeprom) in lpc18xx_eeprom_probe()
186 if (IS_ERR(eeprom->clk)) { in lpc18xx_eeprom_probe()
210 eeprom->val_bytes = 4; in lpc18xx_eeprom_probe()
211 eeprom->reg_bytes = 4; in lpc18xx_eeprom_probe()
[all …]
A Drave-sp-eeprom.c107 cmd[offset++] = eeprom->address; in rave_sp_eeprom_io()
230 mutex_lock(&eeprom->mutex); in rave_sp_eeprom_access()
269 mutex_unlock(&eeprom->mutex); in rave_sp_eeprom_access()
293 struct rave_sp_eeprom *eeprom; in rave_sp_eeprom_probe() local
312 eeprom = devm_kzalloc(dev, sizeof(*eeprom), GFP_KERNEL); in rave_sp_eeprom_probe()
313 if (!eeprom) in rave_sp_eeprom_probe()
316 eeprom->address = reg[0]; in rave_sp_eeprom_probe()
317 eeprom->sp = sp; in rave_sp_eeprom_probe()
318 eeprom->dev = dev; in rave_sp_eeprom_probe()
325 mutex_init(&eeprom->mutex); in rave_sp_eeprom_probe()
[all …]
/drivers/net/wireless/mediatek/mt7601u/
A Deeprom.c131 u8 *eeprom, u8 max_pwr) in mt7601u_set_channel_target_power() argument
153 if (mt7601u_has_tssi(dev, eeprom)) { in mt7601u_set_channel_power()
181 u8 val = eeprom[MT_EE_COUNTRY_REGION]; in mt7601u_set_country_reg()
347 u8 *eeprom; in mt7601u_eeprom_init() local
359 if (!eeprom) in mt7601u_eeprom_init()
371 eeprom[MT_EE_VERSION_EE]); in mt7601u_eeprom_init()
373 eeprom[MT_EE_VERSION_EE], eeprom[MT_EE_VERSION_FAE]); in mt7601u_eeprom_init()
376 mt7601u_set_chip_cap(dev, eeprom); in mt7601u_eeprom_init()
378 mt7601u_set_country_reg(dev, eeprom); in mt7601u_eeprom_init()
379 mt7601u_set_rf_freq_off(dev, eeprom); in mt7601u_eeprom_init()
[all …]
/drivers/net/wireless/mediatek/mt76/mt7996/
A Deeprom.c12 u8 *eeprom = dev->mt76.eeprom.data; in mt7996_check_eeprom() local
13 u16 val = get_unaligned_le16(eeprom); in mt7996_check_eeprom()
75 eeprom[MT_EE_WIFI_CONF + 5]); in mt7996_eeprom_parse_stream()
83 eeprom[MT_EE_WIFI_CONF + 5]); in mt7996_eeprom_parse_stream()
100 u8 *eeprom = dev->mt76.eeprom.data, fem[2]; in mt7996_eeprom_variant_valid() local
137 u8 *eeprom = dev->mt76.eeprom.data; in mt7996_eeprom_check_or_use_default() local
253 u8 *eeprom = phy->dev->mt76.eeprom.data; in mt7996_eeprom_parse_band_config() local
291 u8 *eeprom = dev->mt76.eeprom.data; in mt7996_eeprom_parse_hw_cap() local
345 u8 *eeprom = dev->mt76.eeprom.data; in mt7996_eeprom_get_target_power() local
362 u8 *eeprom = dev->mt76.eeprom.data; in mt7996_eeprom_get_power_delta() local
[all …]
/drivers/net/wireless/mediatek/mt76/mt7915/
A Deeprom.c16 u8 *eeprom = mdev->eeprom.data; in mt7915_eeprom_load_precal() local
18 u32 size, val = eeprom[offs]; in mt7915_eeprom_load_precal()
49 u8 *eeprom = dev->mt76.eeprom.data; in mt7915_check_eeprom() local
100 u8 *eeprom = dev->mt76.eeprom.data; in mt7915_eeprom_load_default() local
162 u8 *eeprom = dev->mt76.eeprom.data; in mt7915_eeprom_parse_band_config() local
218 u8 path, nss, nss_max = 4, *eeprom = dev->mt76.eeprom.data; in mt7915_eeprom_parse_hw_cap() local
227 eeprom[MT_EE_WIFI_CONF]); in mt7915_eeprom_parse_hw_cap()
296 u8 *eeprom = dev->mt76.eeprom.data; in mt7915_eeprom_get_target_power() local
309 target_power = eeprom[index]; in mt7915_eeprom_get_target_power()
342 u8 *eeprom = dev->mt76.eeprom.data; in mt7915_eeprom_get_power_delta() local
[all …]
/drivers/net/wireless/ralink/rt2x00/
A Drt2800pci.c88 eeprom->reg_data_clock = in rt2800pci_eepromregister_read()
90 eeprom->reg_chip_select = in rt2800pci_eepromregister_read()
102 !!eeprom->reg_data_clock); in rt2800pci_eepromregister_write()
104 !!eeprom->reg_chip_select); in rt2800pci_eepromregister_write()
111 struct eeprom_93cx6 eeprom; in rt2800pci_read_eeprom_pci() local
116 eeprom.data = rt2x00dev; in rt2800pci_read_eeprom_pci()
131 eeprom.reg_data_in = 0; in rt2800pci_read_eeprom_pci()
132 eeprom.reg_data_out = 0; in rt2800pci_read_eeprom_pci()
133 eeprom.reg_data_clock = 0; in rt2800pci_read_eeprom_pci()
134 eeprom.reg_chip_select = 0; in rt2800pci_read_eeprom_pci()
[all …]
A Drt61pci.c175 eeprom->reg_data_clock = in rt61pci_eepromregister_read()
177 eeprom->reg_chip_select = in rt61pci_eepromregister_read()
207 .eeprom = {
753 u16 eeprom; in rt61pci_config_lna_gain() local
1572 u16 eeprom; in rt61pci_init_bbp() local
1607 if (eeprom != 0xffff && eeprom != 0x0000) { in rt61pci_init_bbp()
2309 eeprom.data = rt2x00dev; in rt61pci_validate_eeprom()
2314 eeprom.reg_data_in = 0; in rt61pci_validate_eeprom()
2315 eeprom.reg_data_out = 0; in rt61pci_validate_eeprom()
2319 eeprom_93cx6_multiread(&eeprom, EEPROM_BASE, rt2x00dev->eeprom, in rt61pci_validate_eeprom()
[all …]
A Drt2400pci.c137 eeprom->reg_data_clock = in rt2400pci_eepromregister_read()
139 eeprom->reg_chip_select = in rt2400pci_eepromregister_read()
169 .eeprom = {
919 u16 eeprom; in rt2400pci_init_bbp() local
944 if (eeprom != 0xffff && eeprom != 0x0000) { in rt2400pci_init_bbp()
1439 eeprom.data = rt2x00dev; in rt2400pci_validate_eeprom()
1444 eeprom.reg_data_in = 0; in rt2400pci_validate_eeprom()
1445 eeprom.reg_data_out = 0; in rt2400pci_validate_eeprom()
1446 eeprom.reg_data_clock = 0; in rt2400pci_validate_eeprom()
1449 eeprom_93cx6_multiread(&eeprom, EEPROM_BASE, rt2x00dev->eeprom, in rt2400pci_validate_eeprom()
[all …]
A Drt2500pci.c137 eeprom->reg_data_clock = in rt2500pci_eepromregister_read()
139 eeprom->reg_chip_select = in rt2500pci_eepromregister_read()
169 .eeprom = {
1057 u16 eeprom; in rt2500pci_init_bbp() local
1098 if (eeprom != 0xffff && eeprom != 0x0000) { in rt2500pci_init_bbp()
1565 eeprom.data = rt2x00dev; in rt2500pci_validate_eeprom()
1570 eeprom.reg_data_in = 0; in rt2500pci_validate_eeprom()
1571 eeprom.reg_data_out = 0; in rt2500pci_validate_eeprom()
1572 eeprom.reg_data_clock = 0; in rt2500pci_validate_eeprom()
1575 eeprom_93cx6_multiread(&eeprom, EEPROM_BASE, rt2x00dev->eeprom, in rt2500pci_validate_eeprom()
[all …]
/drivers/media/usb/pvrusb2/
A Dpvrusb2-eeprom.c34 u8 *eeprom; in pvr2_eeprom_fetch() local
42 eeprom = kzalloc(EEPROM_SIZE, GFP_KERNEL); in pvr2_eeprom_fetch()
43 if (!eeprom) { in pvr2_eeprom_fetch()
88 msg[1].buf = eeprom+tcnt; in pvr2_eeprom_fetch()
93 kfree(eeprom); in pvr2_eeprom_fetch()
97 return eeprom; in pvr2_eeprom_fetch()
104 u8 *eeprom; in pvr2_eeprom_analyze() local
109 eeprom = pvr2_eeprom_fetch(hdw); in pvr2_eeprom_analyze()
110 if (!eeprom) in pvr2_eeprom_analyze()
113 tveeprom_hauppauge_analog(&tvdata, eeprom); in pvr2_eeprom_analyze()
[all …]
/drivers/net/wireless/intel/iwlwifi/dvm/
A Deeprom.c167 offset = iwl_eeprom_query16(eeprom, eeprom_size, in eeprom_indirect_address()
215 return &eeprom[address]; in iwl_eeprom_query_addr()
359 const u8 *eeprom, size_t eeprom_size, in iwl_eeprom_enhanced_txpower() argument
417 const u8 *eeprom, size_t eeprom_size, in iwl_init_band_reference() argument
512 const u8 *eeprom, size_t eeprom_size) in iwl_init_channel_map() argument
929 if (!eeprom || !eeprom_size) in iwl_read_eeprom()
1013 *eeprom = (u8 *)e; in iwl_read_eeprom()
1026 const u8 *eeprom, size_t eeprom_size) in iwl_init_sbands() argument
1030 eeprom, eeprom_size); in iwl_init_sbands()
1060 const u8 *eeprom, size_t eeprom_size) in iwl_parse_eeprom_data() argument
[all …]
/drivers/net/wireless/mediatek/mt76/mt7615/
A Deeprom.c89 u16 val = get_unaligned_le16(dev->eeprom.data); in mt7615_check_eeprom()
104 u8 val, *eeprom = dev->mt76.eeprom.data; in mt7615_eeprom_parse_hw_band_cap() local
126 eeprom[MT_EE_WIFI_CONF]); in mt7615_eeprom_parse_hw_band_cap()
146 u8 *eeprom = dev->mt76.eeprom.data; in mt7615_eeprom_parse_hw_cap() local
154 eeprom[MT7663_EE_HW_CONF1]); in mt7615_eeprom_parse_hw_cap()
163 eeprom[MT_EE_NIC_CONF_0]); in mt7615_eeprom_parse_hw_cap()
277 u8 *eeprom = dev->mt76.eeprom.data; in mt7615_apply_cal_free_data() local
289 eeprom[ical[i]] = otp[ical[i]]; in mt7615_apply_cal_free_data()
292 eeprom[ical_nocheck[i]] = otp[ical_nocheck[i]]; in mt7615_apply_cal_free_data()
300 u8 *eeprom = dev->mt76.eeprom.data; in mt7622_apply_cal_free_data() local
[all …]
/drivers/net/wireless/mediatek/mt76/mt7603/
A Deeprom.c105 u8 *eeprom = dev->mt76.eeprom.data; in mt7603_apply_cal_free_data() local
121 eeprom[offset] = efuse[offset]; in mt7603_apply_cal_free_data()
139 u16 val = get_unaligned_le16(dev->eeprom.data); in mt7603_check_eeprom()
158 u8 *eeprom; in mt7603_eeprom_init() local
169 memcpy(dev->mt76.eeprom.data, dev->mt76.otp.data, in mt7603_eeprom_init()
173 eeprom = (u8 *)dev->mt76.eeprom.data; in mt7603_eeprom_init()
175 memcpy(dev->mphy.macaddr, eeprom + MT_EE_MAC_ADDR, ETH_ALEN); in mt7603_eeprom_init()
179 if (FIELD_GET(MT_EE_NIC_CONF_0_RX_PATH, eeprom[MT_EE_NIC_CONF_0]) == 1 || in mt7603_eeprom_init()
180 FIELD_GET(MT_EE_NIC_CONF_0_TX_PATH, eeprom[MT_EE_NIC_CONF_0]) == 1 || in mt7603_eeprom_init()
/drivers/net/ethernet/atheros/atl1e/
A Datl1e_ethtool.c205 struct ethtool_eeprom *eeprom, u8 *bytes) in atl1e_get_eeprom() argument
214 if (eeprom->len == 0) in atl1e_get_eeprom()
222 first_dword = eeprom->offset >> 2; in atl1e_get_eeprom()
223 last_dword = (eeprom->offset + eeprom->len - 1) >> 2; in atl1e_get_eeprom()
238 eeprom->len); in atl1e_get_eeprom()
255 if (eeprom->len == 0) in atl1e_set_eeprom()
261 first_dword = eeprom->offset >> 2; in atl1e_set_eeprom()
262 last_dword = (eeprom->offset + eeprom->len - 1) >> 2; in atl1e_set_eeprom()
269 if (eeprom->offset & 3) { in atl1e_set_eeprom()
278 if (((eeprom->offset + eeprom->len) & 3)) { in atl1e_set_eeprom()
[all …]
/drivers/gpu/drm/panel/
A Dpanel-olimex-lcd-olinuxino.c70 struct lcd_olinuxino_eeprom eeprom; member
111 for (i = 0; i < lcd->eeprom.num_modes; i++) { in lcd_olinuxino_get_modes()
113 &lcd->eeprom.reserved[i * sizeof(*lcd_mode)]; in lcd_olinuxino_get_modes()
196 (u8 *)&lcd->eeprom + i); in lcd_olinuxino_probe()
205 checksum = ~crc32(~0, (u8 *)&lcd->eeprom, 252); in lcd_olinuxino_probe()
206 if (checksum != lcd->eeprom.checksum) { in lcd_olinuxino_probe()
218 lcd->eeprom.info.name, in lcd_olinuxino_probe()
219 lcd->eeprom.revision, in lcd_olinuxino_probe()
220 lcd->eeprom.serial); in lcd_olinuxino_probe()
226 if (lcd->eeprom.num_modes > 4) { in lcd_olinuxino_probe()
[all …]
/drivers/net/wireless/marvell/libertas/
A Dethtool.c39 struct ethtool_eeprom *eeprom, u8 * bytes) in lbs_ethtool_get_eeprom() argument
45 if (eeprom->offset + eeprom->len > LBS_EEPROM_LEN || in lbs_ethtool_get_eeprom()
46 eeprom->len > LBS_EEPROM_READ_LEN) in lbs_ethtool_get_eeprom()
50 LBS_EEPROM_READ_LEN + eeprom->len); in lbs_ethtool_get_eeprom()
52 cmd.offset = cpu_to_le16(eeprom->offset); in lbs_ethtool_get_eeprom()
53 cmd.len = cpu_to_le16(eeprom->len); in lbs_ethtool_get_eeprom()
56 memcpy(bytes, cmd.value, eeprom->len); in lbs_ethtool_get_eeprom()
/drivers/net/ethernet/intel/e1000/
A De1000_hw.c3440 struct e1000_eeprom_info *eeprom = &hw->eeprom; in e1000_init_eeprom_params() local
3451 eeprom->word_size = 64; in e1000_init_eeprom_params()
3452 eeprom->opcode_bits = 3; in e1000_init_eeprom_params()
3509 eeprom->word_size = 64; in e1000_init_eeprom_params()
3567 struct e1000_eeprom_info *eeprom = &hw->eeprom; in e1000_shift_out_ee_bits() local
3659 struct e1000_eeprom_info *eeprom = &hw->eeprom; in e1000_acquire_eeprom() local
3710 struct e1000_eeprom_info *eeprom = &hw->eeprom; in e1000_standby_eeprom() local
3858 struct e1000_eeprom_info *eeprom = &hw->eeprom; in e1000_do_read_eeprom() local
4031 struct e1000_eeprom_info *eeprom = &hw->eeprom; in e1000_do_write_eeprom() local
4077 struct e1000_eeprom_info *eeprom = &hw->eeprom; in e1000_write_eeprom_spi() local
[all …]
/drivers/net/usb/
A Dasix_common.c621 if (eeprom->len == 0) in asix_get_eeprom()
624 eeprom->magic = AX_EEPROM_MAGIC; in asix_get_eeprom()
626 first_word = eeprom->offset >> 1; in asix_get_eeprom()
627 last_word = (eeprom->offset + eeprom->len - 1) >> 1; in asix_get_eeprom()
643 memcpy(data, (u8 *)eeprom_buff + (eeprom->offset & 1), eeprom->len); in asix_get_eeprom()
658 eeprom->len, eeprom->offset, eeprom->magic); in asix_set_eeprom()
660 if (eeprom->len == 0) in asix_set_eeprom()
667 last_word = (eeprom->offset + eeprom->len - 1) >> 1; in asix_set_eeprom()
676 if (eeprom->offset & 1) { in asix_set_eeprom()
685 if ((eeprom->offset + eeprom->len) & 1) { in asix_set_eeprom()
[all …]
/drivers/net/wireless/mediatek/mt76/mt76x2/
A Deeprom.c17 void *src = dev->mt76.eeprom.data + MT_EE_MAC_ADDR; in mt76x2_eeprom_get_macaddr()
81 u8 *eeprom = dev->mt76.eeprom.data; in mt76x2_apply_cal_free_data() local
83 eeprom[MT_EE_TX_POWER_0_START_5G], in mt76x2_apply_cal_free_data()
84 eeprom[MT_EE_TX_POWER_0_START_5G + 1], in mt76x2_apply_cal_free_data()
85 eeprom[MT_EE_TX_POWER_1_START_5G], in mt76x2_apply_cal_free_data()
86 eeprom[MT_EE_TX_POWER_1_START_5G + 1] in mt76x2_apply_cal_free_data()
100 eeprom[offset] = efuse[offset]; in mt76x2_apply_cal_free_data()
112 eeprom[MT_EE_BT_RCAL_RESULT] = val & 0xff; in mt76x2_apply_cal_free_data()
116 eeprom[MT_EE_BT_VCDL_CALIBRATION + 1] = val >> 8; in mt76x2_apply_cal_free_data()
120 eeprom[MT_EE_BT_PMUCFG] = val & 0xff; in mt76x2_apply_cal_free_data()
[all …]
/drivers/net/ethernet/intel/ixgbe/
A Dixgbe_common.c862 struct ixgbe_eeprom_info *eeprom = &hw->eeprom; in ixgbe_init_eeprom_params_generic() local
870 eeprom->semaphore_delay = 10; in ixgbe_init_eeprom_params_generic()
872 eeprom->word_page_size = 0; in ixgbe_init_eeprom_params_generic()
892 eeprom->address_bits = 16; in ixgbe_init_eeprom_params_generic()
894 eeprom->address_bits = 8; in ixgbe_init_eeprom_params_generic()
896 eeprom->type, eeprom->word_size, eeprom->address_bits); in ixgbe_init_eeprom_params_generic()
917 hw->eeprom.ops.init_params(hw); in ixgbe_write_eeprom_buffer_bit_bang_generic()
1037 hw->eeprom.ops.init_params(hw); in ixgbe_write_eeprom_generic()
1060 hw->eeprom.ops.init_params(hw); in ixgbe_read_eeprom_buffer_bit_bang_generic()
1148 hw->eeprom.ops.init_params(hw); in ixgbe_read_eeprom_bit_bang_generic()
[all …]
/drivers/net/wireless/admtek/
A Dadm8211.c90 if (eeprom->reg_data_in) in adm8211_eeprom_register_write()
92 if (eeprom->reg_data_out) in adm8211_eeprom_register_write()
94 if (eeprom->reg_data_clock) in adm8211_eeprom_register_write()
96 if (eeprom->reg_chip_select) in adm8211_eeprom_register_write()
109 struct eeprom_93cx6 eeprom = { in adm8211_read_eeprom() local
117 eeprom.width = PCI_EEPROM_WIDTH_93C66; in adm8211_read_eeprom()
127 if (!priv->eeprom) in adm8211_read_eeprom()
130 eeprom_93cx6_multiread(&eeprom, 0, (__le16 *)priv->eeprom, words); in adm8211_read_eeprom()
730 priv->eeprom->cr28 : 0); in adm8211_rf_set_channel()
1932 kfree(priv->eeprom); in adm8211_probe()
[all …]
/drivers/net/dsa/mv88e6xxx/
A Dglobal2.c455 eeprom->len = 0; in mv88e6xxx_g2_get_eeprom8()
462 eeprom->len++; in mv88e6xxx_g2_get_eeprom8()
478 eeprom->len = 0; in mv88e6xxx_g2_set_eeprom8()
485 eeprom->len++; in mv88e6xxx_g2_set_eeprom8()
502 eeprom->len = 0; in mv88e6xxx_g2_get_eeprom16()
513 eeprom->len++; in mv88e6xxx_g2_get_eeprom16()
526 eeprom->len += 2; in mv88e6xxx_g2_get_eeprom16()
538 eeprom->len++; in mv88e6xxx_g2_get_eeprom16()
560 eeprom->len = 0; in mv88e6xxx_g2_set_eeprom16()
575 eeprom->len++; in mv88e6xxx_g2_set_eeprom16()
[all …]
/drivers/scsi/
A Ddc395x.c549 eeprom->delay_time = eeprom_index_to_delay_map[eeprom->delay_time]; in eeprom_index_to_delay()
597 eeprom->target[id].cfg0 = in eeprom_override()
948 struct NvRamType *eeprom = &acb->eeprom; in reset_dev_param() local
2989 struct NvRamType *eeprom = &acb->eeprom; in device_alloc() local
3438 eeprom->sub_sys_id[1] = in check_eeprom()
3444 eeprom->device_id[1] = in check_eeprom()
3446 eeprom->reserved = 0x00; in check_eeprom()
3462 eeprom->cksum = 0x00; in check_eeprom()
3588 struct NvRamType *eeprom = &acb->eeprom; in adapter_init_params() local
3651 struct NvRamType *eeprom = &acb->eeprom; in adapter_init_scsi_host() local
[all …]

Completed in 77 milliseconds

12345678910