Home
last modified time | relevance | path

Searched refs:pci_dev (Results 1 – 25 of 2157) sorted by relevance

12345678910>>...87

/linux-6.1.9/drivers/pci/
Dpci.h17 bool pcie_cap_has_lnkctl(const struct pci_dev *dev);
18 bool pcie_cap_has_rtctl(const struct pci_dev *dev);
22 int pci_create_sysfs_dev_files(struct pci_dev *pdev);
23 void pci_remove_sysfs_dev_files(struct pci_dev *pdev);
24 void pci_cleanup_rom(struct pci_dev *dev);
33 int pci_mmap_fits(struct pci_dev *pdev, int resno, struct vm_area_struct *vmai,
36 bool pci_reset_supported(struct pci_dev *dev);
37 void pci_init_reset_methods(struct pci_dev *dev);
38 int pci_bridge_secondary_bus_reset(struct pci_dev *dev);
39 int pci_bus_error_reset(struct pci_dev *dev);
[all …]
Dpci-driver.c106 struct pci_dev *dev) in pci_match_id()
137 struct pci_dev *dev) in pci_match_device()
206 struct pci_dev *pdev = kzalloc(sizeof(*pdev), GFP_KERNEL); in new_id_store()
301 struct pci_dev *dev;
308 struct pci_dev *pci_dev = ddi->dev; in local_pci_probe() local
310 struct device *dev = &pci_dev->dev; in local_pci_probe()
323 pci_dev->driver = pci_drv; in local_pci_probe()
324 rc = pci_drv->probe(pci_dev, ddi->id); in local_pci_probe()
328 pci_dev->driver = NULL; in local_pci_probe()
336 pci_warn(pci_dev, "Driver probe function unexpectedly returned %d\n", in local_pci_probe()
[all …]
/linux-6.1.9/include/linux/
Dpci.h305 enum pci_bus_speed pcie_get_speed_cap(struct pci_dev *dev);
306 enum pcie_link_width pcie_get_width_cap(struct pci_dev *dev);
321 struct pci_dev { struct
344 struct pci_dev *rcec; /* Associated RCEC device */ argument
496 struct pci_dev *physfn; /* VF: related PF */ argument
528 static inline struct pci_dev *pci_physfn(struct pci_dev *dev) in pci_physfn() argument
537 struct pci_dev *pci_alloc_dev(struct pci_bus *bus);
539 #define to_pci_dev(n) container_of(n, struct pci_dev, dev)
542 static inline int pci_channel_offline(struct pci_dev *pdev) in pci_channel_offline()
567 u8 (*swizzle_irq)(struct pci_dev *, u8 *); /* Platform IRQ swizzler */
[all …]
Dpci-ats.h9 bool pci_ats_supported(struct pci_dev *dev);
10 int pci_enable_ats(struct pci_dev *dev, int ps);
11 void pci_disable_ats(struct pci_dev *dev);
12 int pci_ats_queue_depth(struct pci_dev *dev);
13 int pci_ats_page_aligned(struct pci_dev *dev);
15 static inline bool pci_ats_supported(struct pci_dev *d) in pci_ats_supported()
17 static inline int pci_enable_ats(struct pci_dev *d, int ps) in pci_enable_ats()
19 static inline void pci_disable_ats(struct pci_dev *d) { } in pci_disable_ats()
20 static inline int pci_ats_queue_depth(struct pci_dev *d) in pci_ats_queue_depth()
22 static inline int pci_ats_page_aligned(struct pci_dev *dev) in pci_ats_page_aligned()
[all …]
Dpci-p2pdma.h20 int pci_p2pdma_add_resource(struct pci_dev *pdev, int bar, size_t size,
22 int pci_p2pdma_distance_many(struct pci_dev *provider, struct device **clients,
24 bool pci_has_p2pmem(struct pci_dev *pdev);
25 struct pci_dev *pci_p2pmem_find_many(struct device **clients, int num_clients);
26 void *pci_alloc_p2pmem(struct pci_dev *pdev, size_t size);
27 void pci_free_p2pmem(struct pci_dev *pdev, void *addr, size_t size);
28 pci_bus_addr_t pci_p2pmem_virt_to_bus(struct pci_dev *pdev, void *addr);
29 struct scatterlist *pci_p2pmem_alloc_sgl(struct pci_dev *pdev,
31 void pci_p2pmem_free_sgl(struct pci_dev *pdev, struct scatterlist *sgl);
32 void pci_p2pmem_publish(struct pci_dev *pdev, bool publish);
[all …]
Dvgaarb.h36 struct pci_dev;
48 void vga_set_legacy_decoding(struct pci_dev *pdev, unsigned int decodes);
49 int vga_get(struct pci_dev *pdev, unsigned int rsrc, int interruptible);
50 void vga_put(struct pci_dev *pdev, unsigned int rsrc);
51 struct pci_dev *vga_default_device(void);
52 void vga_set_default_device(struct pci_dev *pdev);
53 int vga_remove_vgacon(struct pci_dev *pdev);
54 int vga_client_register(struct pci_dev *pdev,
55 unsigned int (*set_decode)(struct pci_dev *pdev, bool state));
57 static inline void vga_set_legacy_decoding(struct pci_dev *pdev, in vga_set_legacy_decoding()
[all …]
Dvga_switcheroo.h36 struct pci_dev;
122 enum vga_switcheroo_client_id (*get_client_id)(struct pci_dev *pdev);
144 void (*set_gpu_state)(struct pci_dev *dev, enum vga_switcheroo_state);
145 void (*reprobe)(struct pci_dev *dev);
146 bool (*can_switch)(struct pci_dev *dev);
147 void (*gpu_bound)(struct pci_dev *dev, enum vga_switcheroo_client_id);
151 void vga_switcheroo_unregister_client(struct pci_dev *dev);
152 int vga_switcheroo_register_client(struct pci_dev *dev,
155 int vga_switcheroo_register_audio_client(struct pci_dev *pdev,
157 struct pci_dev *vga_dev);
[all …]
Daer.h19 struct pci_dev;
45 int pci_enable_pcie_error_reporting(struct pci_dev *dev);
46 int pci_disable_pcie_error_reporting(struct pci_dev *dev);
47 int pci_aer_clear_nonfatal_status(struct pci_dev *dev);
48 void pci_save_aer_state(struct pci_dev *dev);
49 void pci_restore_aer_state(struct pci_dev *dev);
51 static inline int pci_enable_pcie_error_reporting(struct pci_dev *dev) in pci_enable_pcie_error_reporting()
55 static inline int pci_disable_pcie_error_reporting(struct pci_dev *dev) in pci_disable_pcie_error_reporting()
59 static inline int pci_aer_clear_nonfatal_status(struct pci_dev *dev) in pci_aer_clear_nonfatal_status()
63 static inline void pci_save_aer_state(struct pci_dev *dev) {} in pci_save_aer_state()
[all …]
/linux-6.1.9/drivers/misc/genwqe/
Dcard_base.c178 struct pci_dev *pci_dev = cd->pci_dev; in genwqe_bus_reset() local
186 pci_iounmap(pci_dev, mmio); in genwqe_bus_reset()
188 pci_release_mem_regions(pci_dev); in genwqe_bus_reset()
195 dev_dbg(&pci_dev->dev, "[%s] pci_reset function ...\n", __func__); in genwqe_bus_reset()
196 rc = pci_reset_function(pci_dev); in genwqe_bus_reset()
198 dev_err(&pci_dev->dev, in genwqe_bus_reset()
202 dev_dbg(&pci_dev->dev, "[%s] done with rc=%d\n", __func__, rc); in genwqe_bus_reset()
212 rc = pci_request_mem_regions(pci_dev, genwqe_driver_name); in genwqe_bus_reset()
214 dev_err(&pci_dev->dev, in genwqe_bus_reset()
219 cd->mmio = pci_iomap(pci_dev, 0, 0); in genwqe_bus_reset()
[all …]
Dcard_ddcb.c168 struct pci_dev *pci_dev = cd->pci_dev; in print_ddcb_info() local
172 dev_info(&pci_dev->dev, in print_ddcb_info()
178 dev_err(&pci_dev->dev, in print_ddcb_info()
370 struct pci_dev *pci_dev = cd->pci_dev; in genwqe_check_ddcb_queue() local
413 dev_err(&pci_dev->dev, in genwqe_check_ddcb_queue()
423 dev_dbg(&pci_dev->dev, "FINISHED DDCB#%d\n", req->num); in genwqe_check_ddcb_queue()
424 genwqe_hexdump(pci_dev, pddcb, sizeof(*pddcb)); in genwqe_check_ddcb_queue()
436 GENWQE_DEVNAME, dev_name(&pci_dev->dev), in genwqe_check_ddcb_queue()
482 struct pci_dev *pci_dev = cd->pci_dev; in __genwqe_wait_ddcb() local
518 dev_err(&pci_dev->dev, in __genwqe_wait_ddcb()
[all …]
/linux-6.1.9/drivers/i2c/busses/
Di2c-amd-mp2-pci.c33 pci_warn(privdata->pci_dev, in amd_mp2_c2p_mutex_unlock()
62 pci_dbg(privdata->pci_dev, "id: %d\n", i2c_common->bus_id); in amd_mp2_bus_enable_set()
113 struct pci_dev *pdev = privdata->pci_dev; in amd_mp2_pci_check_rw_event()
137 struct pci_dev *pdev = privdata->pci_dev; in __amd_mp2_process_event()
186 struct pci_dev *pdev = privdata->pci_dev; in amd_mp2_process_event()
204 struct pci_dev *pdev = privdata->pci_dev; in amd_mp2_irq_isr()
251 struct pci_dev *pdev = privdata->pci_dev; in amd_mp2_register_cb()
289 struct pci_dev *pci_dev) in amd_mp2_pci_init() argument
293 pci_set_drvdata(pci_dev, privdata); in amd_mp2_pci_init()
295 rc = pcim_enable_device(pci_dev); in amd_mp2_pci_init()
[all …]
/linux-6.1.9/drivers/media/pci/netup_unidvb/
Dnetup_unidvb_core.c151 dev_dbg(&ndev->pci_dev->dev, "%s(): num %d is_dvb_tc %d\n", in netup_unidvb_tuner_ctrl()
182 dev_dbg(&ndev->pci_dev->dev, in netup_unidvb_dev_enable()
194 dev_dbg(&dma->ndev->pci_dev->dev, in netup_unidvb_dma_enable()
210 struct device *dev = &dma->ndev->pci_dev->dev; in netup_dma_interrupt()
249 struct pci_dev *pci_dev = (struct pci_dev *)dev_id; in netup_unidvb_isr() local
250 struct netup_unidvb_dev *ndev = pci_get_drvdata(pci_dev); in netup_unidvb_isr()
279 dev_err(&pci_dev->dev, in netup_unidvb_isr()
297 dev_dbg(&dma->ndev->pci_dev->dev, "%s()\n", __func__); in netup_unidvb_queue_setup()
303 dev_dbg(&dma->ndev->pci_dev->dev, "%s() nbuffers=%d sizes[0]=%d\n", in netup_unidvb_queue_setup()
315 dev_dbg(&dma->ndev->pci_dev->dev, "%s(): buf 0x%p\n", __func__, buf); in netup_unidvb_buf_prepare()
[all …]
/linux-6.1.9/drivers/xen/
Dpci.c30 struct pci_dev *pci_dev = to_pci_dev(dev); in xen_add_device() local
32 struct pci_dev *physfn = pci_dev->physfn; in xen_add_device()
51 .add.seg = pci_domain_nr(pci_dev->bus), in xen_add_device()
52 .add.bus = pci_dev->bus->number, in xen_add_device()
53 .add.devfn = pci_dev->devfn in xen_add_device()
62 if (pci_dev->is_virtfn) { in xen_add_device()
68 if (pci_ari_enabled(pci_dev->bus) && PCI_SLOT(pci_dev->devfn)) in xen_add_device()
72 handle = ACPI_HANDLE(&pci_dev->dev); in xen_add_device()
74 if (!handle && pci_dev->is_virtfn) in xen_add_device()
83 for (pbus = pci_dev->bus; pbus; pbus = pbus->parent) { in xen_add_device()
[all …]
/linux-6.1.9/drivers/media/pci/cobalt/
Dcobalt-driver.c187 struct pci_dev *pci_dev = cobalt->pci_dev; in cobalt_pcie_status_show() local
188 struct pci_dev *pci_bus_dev = cobalt->pci_dev->bus->self; in cobalt_pcie_status_show()
192 if (!pci_is_pcie(pci_dev) || !pci_is_pcie(pci_bus_dev)) in cobalt_pcie_status_show()
196 pcie_capability_read_dword(pci_dev, PCI_EXP_DEVCAP, &capa); in cobalt_pcie_status_show()
197 pcie_capability_read_word(pci_dev, PCI_EXP_DEVCTL, &ctrl); in cobalt_pcie_status_show()
198 pcie_capability_read_word(pci_dev, PCI_EXP_DEVSTA, &stat); in cobalt_pcie_status_show()
208 pcie_capability_read_dword(pci_dev, PCI_EXP_LNKCAP, &capa); in cobalt_pcie_status_show()
209 pcie_capability_read_word(pci_dev, PCI_EXP_LNKCTL, &ctrl); in cobalt_pcie_status_show()
210 pcie_capability_read_word(pci_dev, PCI_EXP_LNKSTA, &stat); in cobalt_pcie_status_show()
226 pcie_capability_read_dword(pci_dev, PCI_EXP_SLTCAP, &capa); in cobalt_pcie_status_show()
[all …]
/linux-6.1.9/drivers/net/wireless/ralink/rt2x00/
Drt2x00pci.c41 struct pci_dev *pci_dev = to_pci_dev(rt2x00dev->dev); in rt2x00pci_alloc_reg() local
43 rt2x00dev->csr.base = pci_ioremap_bar(pci_dev, 0); in rt2x00pci_alloc_reg()
65 int rt2x00pci_probe(struct pci_dev *pci_dev, const struct rt2x00_ops *ops) in rt2x00pci_probe() argument
72 retval = pci_enable_device(pci_dev); in rt2x00pci_probe()
78 retval = pci_request_regions(pci_dev, pci_name(pci_dev)); in rt2x00pci_probe()
84 pci_set_master(pci_dev); in rt2x00pci_probe()
86 if (pci_set_mwi(pci_dev)) in rt2x00pci_probe()
89 if (dma_set_mask(&pci_dev->dev, DMA_BIT_MASK(32))) { in rt2x00pci_probe()
102 pci_set_drvdata(pci_dev, hw); in rt2x00pci_probe()
105 rt2x00dev->dev = &pci_dev->dev; in rt2x00pci_probe()
[all …]
/linux-6.1.9/drivers/xen/xen-pciback/
Dconf_space.h15 typedef void *(*conf_field_init) (struct pci_dev *dev, int offset);
16 typedef void (*conf_field_reset) (struct pci_dev *dev, int offset, void *data);
17 typedef void (*conf_field_free) (struct pci_dev *dev, int offset, void *data);
19 typedef int (*conf_dword_write) (struct pci_dev *dev, int offset, u32 value,
21 typedef int (*conf_word_write) (struct pci_dev *dev, int offset, u16 value,
23 typedef int (*conf_byte_write) (struct pci_dev *dev, int offset, u8 value,
25 typedef int (*conf_dword_read) (struct pci_dev *dev, int offset, u32 *value,
27 typedef int (*conf_word_read) (struct pci_dev *dev, int offset, u16 *value,
29 typedef int (*conf_byte_read) (struct pci_dev *dev, int offset, u8 *value,
80 int xen_pcibk_config_add_field_offset(struct pci_dev *dev,
[all …]
Dpciback.h24 struct pci_dev *dev;
67 struct pci_dev *pcistub_get_pci_dev_by_slot(struct xen_pcibk_device *pdev,
70 struct pci_dev *pcistub_get_pci_dev(struct xen_pcibk_device *pdev,
71 struct pci_dev *dev);
72 void pcistub_put_pci_dev(struct pci_dev *dev);
80 void xen_pcibk_reset_device(struct pci_dev *pdev);
84 int xen_pcibk_config_init_dev(struct pci_dev *dev);
85 void xen_pcibk_config_free_dyn_fields(struct pci_dev *dev);
86 void xen_pcibk_config_reset_dev(struct pci_dev *dev);
87 void xen_pcibk_config_free_dev(struct pci_dev *dev);
[all …]
/linux-6.1.9/include/linux/ssb/
Dssb_driver_gige.h55 extern bool pdev_is_ssb_gige_core(struct pci_dev *pdev);
58 static inline struct ssb_gige * pdev_to_ssb_gige(struct pci_dev *pdev) in pdev_to_ssb_gige()
66 static inline bool ssb_gige_is_rgmii(struct pci_dev *pdev) in ssb_gige_is_rgmii()
73 static inline bool ssb_gige_have_roboswitch(struct pci_dev *pdev) in ssb_gige_have_roboswitch()
83 static inline bool ssb_gige_one_dma_at_once(struct pci_dev *pdev) in ssb_gige_one_dma_at_once()
93 static inline bool ssb_gige_must_flush_posted_writes(struct pci_dev *pdev) in ssb_gige_must_flush_posted_writes()
102 static inline int ssb_gige_get_macaddr(struct pci_dev *pdev, u8 *macaddr) in ssb_gige_get_macaddr()
113 static inline int ssb_gige_get_phyaddr(struct pci_dev *pdev) in ssb_gige_get_phyaddr()
123 struct pci_dev *pdev);
125 const struct pci_dev *pdev);
[all …]
/linux-6.1.9/arch/x86/pci/
Dirq.c35 static int pirq_enable_irq(struct pci_dev *dev);
36 static void pirq_disable_irq(struct pci_dev *dev);
53 int (*get)(struct pci_dev *router, struct pci_dev *dev, int pirq);
54 int (*set)(struct pci_dev *router, struct pci_dev *dev, int pirq,
56 int (*lvl)(struct pci_dev *router, struct pci_dev *dev, int pirq,
62 int (*probe)(struct irq_router *r, struct pci_dev *router, u16 device);
65 int (*pcibios_enable_irq)(struct pci_dev *dev) = pirq_enable_irq;
66 void (*pcibios_disable_irq)(struct pci_dev *dev) = pirq_disable_irq;
349 static int pirq_finali_get(struct pci_dev *router, struct pci_dev *dev, in pirq_finali_get()
368 static int pirq_finali_set(struct pci_dev *router, struct pci_dev *dev, in pirq_finali_set()
[all …]
/linux-6.1.9/drivers/virtio/
Dvirtio_pci_legacy_dev.c18 struct pci_dev *pci_dev = ldev->pci_dev; in vp_legacy_probe() local
22 if (pci_dev->device < 0x1000 || pci_dev->device > 0x103f) in vp_legacy_probe()
25 if (pci_dev->revision != VIRTIO_PCI_ABI_VERSION) in vp_legacy_probe()
28 rc = dma_set_mask(&pci_dev->dev, DMA_BIT_MASK(64)); in vp_legacy_probe()
30 rc = dma_set_mask_and_coherent(&pci_dev->dev, DMA_BIT_MASK(32)); in vp_legacy_probe()
36 dma_set_coherent_mask(&pci_dev->dev, in vp_legacy_probe()
41 …dev_warn(&pci_dev->dev, "Failed to enable 64-bit or 32-bit DMA. Trying to continue, but this migh… in vp_legacy_probe()
43 rc = pci_request_region(pci_dev, 0, "virtio-pci-legacy"); in vp_legacy_probe()
47 ldev->ioaddr = pci_iomap(pci_dev, 0, 0); in vp_legacy_probe()
55 ldev->id.vendor = pci_dev->subsystem_vendor; in vp_legacy_probe()
[all …]
/linux-6.1.9/drivers/media/pci/tw68/
Dtw68-core.c211 static int tw68_initdev(struct pci_dev *pci_dev, in tw68_initdev() argument
218 dev = devm_kzalloc(&pci_dev->dev, sizeof(*dev), GFP_KERNEL); in tw68_initdev()
225 err = v4l2_device_register(&pci_dev->dev, &dev->v4l2_dev); in tw68_initdev()
230 dev->pci = pci_dev; in tw68_initdev()
231 if (pci_enable_device(pci_dev)) { in tw68_initdev()
241 pci_write_config_byte(pci_dev, PCI_LATENCY_TIMER, latency); in tw68_initdev()
245 pci_read_config_byte(pci_dev, PCI_CLASS_REVISION, &dev->pci_rev); in tw68_initdev()
246 pci_read_config_byte(pci_dev, PCI_LATENCY_TIMER, &dev->pci_lat); in tw68_initdev()
248 dev->name, pci_name(pci_dev), dev->pci_rev, pci_dev->irq, in tw68_initdev()
249 dev->pci_lat, (u64)pci_resource_start(pci_dev, 0)); in tw68_initdev()
[all …]
/linux-6.1.9/drivers/staging/media/ipu3/
Dipu3.c236 dev_dbg(&imgu->pci_dev->dev, "Queue buffers to pipe %d", pipe); in imgu_queue_buffers()
250 dev_warn(&imgu->pci_dev->dev, in imgu_queue_buffers()
270 dev_warn(&imgu->pci_dev->dev, in imgu_queue_buffers()
276 dev_dbg(&imgu->pci_dev->dev, in imgu_queue_buffers()
294 dev_dbg(&imgu->pci_dev->dev, in imgu_queue_buffers()
314 dev_err(&imgu->pci_dev->dev, in imgu_queue_buffers()
355 dev_dbg(&imgu->pci_dev->dev, "pipe %u input format = %ux%u", in imgu_powerup()
361 r = imgu_css_set_powerup(&imgu->pci_dev->dev, imgu->base, freq); in imgu_powerup()
372 imgu_css_set_powerdown(&imgu->pci_dev->dev, imgu->base); in imgu_powerdown()
377 struct device *dev = &imgu->pci_dev->dev; in imgu_s_stream()
[all …]
/linux-6.1.9/drivers/usb/core/
Dhcd-pci.c36 static inline int is_ohci_or_uhci(struct pci_dev *pdev) in is_ohci_or_uhci()
41 typedef void (*companion_fn)(struct pci_dev *pdev, struct usb_hcd *hcd,
42 struct pci_dev *companion, struct usb_hcd *companion_hcd);
45 static void for_each_companion(struct pci_dev *pdev, struct usb_hcd *hcd, in for_each_companion()
48 struct pci_dev *companion; in for_each_companion()
84 static void ehci_pre_add(struct pci_dev *pdev, struct usb_hcd *hcd, in ehci_pre_add()
85 struct pci_dev *companion, struct usb_hcd *companion_hcd) in ehci_pre_add()
101 static void ehci_post_add(struct pci_dev *pdev, struct usb_hcd *hcd, in ehci_post_add()
102 struct pci_dev *companion, struct usb_hcd *companion_hcd) in ehci_post_add()
122 static void non_ehci_add(struct pci_dev *pdev, struct usb_hcd *hcd, in non_ehci_add()
[all …]
/linux-6.1.9/drivers/media/pci/tw686x/
Dtw686x-core.c159 dev_dbg(&dev->pci_dev->dev, "reset: stopping DMA\n"); in tw686x_reset_channels()
181 dev_dbg(&dev->pci_dev->dev, in tw686x_irq()
240 static int tw686x_probe(struct pci_dev *pci_dev, in tw686x_probe() argument
251 sprintf(dev->name, "tw%04X", pci_dev->device); in tw686x_probe()
268 pci_name(pci_dev), pci_dev->irq, in tw686x_probe()
269 (unsigned long)pci_resource_start(pci_dev, 0), in tw686x_probe()
272 dev->pci_dev = pci_dev; in tw686x_probe()
273 if (pci_enable_device(pci_dev)) { in tw686x_probe()
278 pci_set_master(pci_dev); in tw686x_probe()
279 err = dma_set_mask(&pci_dev->dev, DMA_BIT_MASK(32)); in tw686x_probe()
[all …]
/linux-6.1.9/include/asm-generic/
Dpci_iomap.h10 struct pci_dev;
13 extern void __iomem *pci_iomap(struct pci_dev *dev, int bar, unsigned long max);
14 extern void __iomem *pci_iomap_wc(struct pci_dev *dev, int bar, unsigned long max);
15 extern void __iomem *pci_iomap_range(struct pci_dev *dev, int bar,
18 extern void __iomem *pci_iomap_wc_range(struct pci_dev *dev, int bar,
21 extern void pci_iounmap(struct pci_dev *dev, void __iomem *);
26 extern void __iomem *__pci_ioport_map(struct pci_dev *dev, unsigned long port,
35 static inline void __iomem *pci_iomap(struct pci_dev *dev, int bar, unsigned long max) in pci_iomap()
40 static inline void __iomem *pci_iomap_wc(struct pci_dev *dev, int bar, unsigned long max) in pci_iomap_wc()
44 static inline void __iomem *pci_iomap_range(struct pci_dev *dev, int bar, in pci_iomap_range()
[all …]

12345678910>>...87