Lines Matching defs:dev

38 	int	(*probe)(struct pci_dev *dev);
39 int (*init)(struct pci_dev *dev);
43 void (*exit)(struct pci_dev *dev);
52 struct pci_dev *dev;
76 static void moan_device(const char *str, struct pci_dev *dev)
78 pci_err(dev, "%s\n"
83 str, dev->vendor, dev->device,
84 dev->subsystem_vendor, dev->subsystem_device);
91 struct pci_dev *dev = priv->dev;
96 if (pci_resource_flags(dev, bar) & IORESOURCE_MEM) {
97 if (!pcim_iomap(dev, bar, 0) && !pcim_iomap_table(dev))
102 port->port.mapbase = pci_resource_start(dev, bar) + offset;
103 port->port.membase = pcim_iomap_table(dev)[bar] + offset;
107 port->port.iobase = pci_resource_start(dev, bar) + offset;
169 static int pci_hp_diva_init(struct pci_dev *dev)
173 switch (dev->subsystem_device) {
207 switch (priv->dev->subsystem_device) {
230 static int pci_inteli960ni_init(struct pci_dev *dev)
234 if (!(dev->subsystem_device & 0x1000))
238 pci_read_config_dword(dev, 0x44, &oldval);
240 pci_dbg(dev, "Local i960 firmware missing\n");
252 static int pci_plx9050_init(struct pci_dev *dev)
257 if ((pci_resource_flags(dev, 0) & IORESOURCE_MEM) == 0) {
258 moan_device("no memory in bar 0", dev);
263 if (dev->vendor == PCI_VENDOR_ID_PANACOM ||
264 dev->subsystem_vendor == PCI_SUBVENDOR_ID_EXSYS)
267 if ((dev->vendor == PCI_VENDOR_ID_PLX) &&
268 (dev->device == PCI_DEVICE_ID_PLX_ROMULUS))
281 p = ioremap(pci_resource_start(dev, 0), 0x80);
295 static void pci_plx9050_exit(struct pci_dev *dev)
299 if ((pci_resource_flags(dev, 0) & IORESOURCE_MEM) == 0)
305 p = ioremap(pci_resource_start(dev, 0), 0x80);
320 static void pci_ni8420_exit(struct pci_dev *dev)
325 if ((pci_resource_flags(dev, bar) & IORESOURCE_MEM) == 0) {
326 moan_device("no memory in bar", dev);
330 p = pci_ioremap_bar(dev, bar);
349 static void pci_ni8430_exit(struct pci_dev *dev)
354 if ((pci_resource_flags(dev, bar) & IORESOURCE_MEM) == 0) {
355 moan_device("no memory in bar", dev);
359 p = pci_ioremap_bar(dev, bar);
399 static int sbs_init(struct pci_dev *dev)
403 p = pci_ioremap_bar(dev, 0);
423 static void sbs_exit(struct pci_dev *dev)
427 p = pci_ioremap_bar(dev, 0);
464 static int pci_siig10x_init(struct pci_dev *dev)
469 switch (dev->device & 0xfff8) {
481 p = ioremap(pci_resource_start(dev, 0), 0x80);
494 static int pci_siig20x_init(struct pci_dev *dev)
499 pci_read_config_byte(dev, 0x6f, &data);
500 pci_write_config_byte(dev, 0x6f, data & 0xef);
503 if (((dev->device & 0xfffc) == PCI_DEVICE_ID_SIIG_2S_20x) ||
504 ((dev->device & 0xfffc) == PCI_DEVICE_ID_SIIG_2S1P_20x)) {
505 pci_read_config_byte(dev, 0x73, &data);
506 pci_write_config_byte(dev, 0x73, data & 0xef);
511 static int pci_siig_init(struct pci_dev *dev)
513 unsigned int type = dev->device & 0xff00;
516 return pci_siig10x_init(dev);
518 return pci_siig20x_init(dev);
520 moan_device("Unknown SIIG card", dev);
583 static int pci_timedia_probe(struct pci_dev *dev)
589 if ((dev->subsystem_device & 0x00f0) >= 0x70) {
590 pci_info(dev, "ignoring Timedia subdevice %04x for parport_serial\n",
591 dev->subsystem_device);
598 static int pci_timedia_init(struct pci_dev *dev)
606 if (dev->subsystem_device == ids[j])
672 static int pci_xircom_init(struct pci_dev *dev)
678 static int pci_ni8420_init(struct pci_dev *dev)
683 if ((pci_resource_flags(dev, bar) & IORESOURCE_MEM) == 0) {
684 moan_device("no memory in bar", dev);
688 p = pci_ioremap_bar(dev, bar);
707 static int pci_ni8430_init(struct pci_dev *dev)
714 if ((pci_resource_flags(dev, bar) & IORESOURCE_MEM) == 0) {
715 moan_device("no memory in bar", dev);
719 p = pci_ioremap_bar(dev, bar);
728 pcibios_resource_to_bus(dev->bus, &region, &dev->resource[bar]);
756 struct pci_dev *dev = priv->dev;
766 p = pci_ioremap_bar(dev, bar);
785 if ((priv->dev->device != PCI_DEVICE_ID_NETMOS_9865) &&
786 (priv->dev->subsystem_device & 0xff00) == 0x3000) {
806 static int pci_netmos_9900_numports(struct pci_dev *dev)
808 unsigned int c = dev->class;
817 if ((pi == 0) && (dev->device == PCI_DEVICE_ID_NETMOS_9900)) {
824 sub_serports = dev->subsystem_device & 0xf;
828 pci_err(dev, "NetMos/Mostech serial driver ignoring port on ambiguous config.\n");
832 moan_device("unknown NetMos/Mostech program interface", dev);
836 static int pci_netmos_init(struct pci_dev *dev)
839 unsigned int num_serial = dev->subsystem_device & 0xf;
841 if ((dev->device == PCI_DEVICE_ID_NETMOS_9901) ||
842 (dev->device == PCI_DEVICE_ID_NETMOS_9865))
845 if (dev->subsystem_vendor == PCI_VENDOR_ID_IBM &&
846 dev->subsystem_device == 0x0299)
849 switch (dev->device) { /* FALLTHROUGH on all */
854 num_serial = pci_netmos_9900_numports(dev);
862 moan_device("unknown NetMos/Mostech device", dev);
899 static int pci_ite887x_init(struct pci_dev *dev)
911 pci_write_config_dword(dev, ITE_887x_POSIO0,
915 pci_write_config_dword(dev, ITE_887x_INTCBAR,
927 pci_err(dev, "could not find iobase\n");
949 moan_device("Unknown ITE887x", dev);
956 pci_read_config_dword(dev, ITE_887x_PS0BAR + (0x4 * (i + 1)),
959 pci_write_config_dword(dev, ITE_887x_POSIO0 + (0x4 * (i + 1)),
964 pci_read_config_dword(dev, ITE_887x_UARTBAR, &uartbar);
967 pci_write_config_dword(dev, ITE_887x_UARTBAR, uartbar);
970 pci_read_config_dword(dev, ITE_887x_MISCR, &miscr);
976 pci_write_config_dword(dev, ITE_887x_MISCR, miscr);
987 static void pci_ite887x_exit(struct pci_dev *dev)
991 pci_read_config_dword(dev, ITE_887x_POSIO0, &ioport);
1003 static bool pci_oxsemi_tornado_p(struct pci_dev *dev)
1006 if (dev->vendor == PCI_VENDOR_ID_OXSEMI &&
1007 (dev->device & 0xf000) != 0xc000)
1011 if (dev->vendor == PCI_VENDOR_ID_ENDRUN &&
1012 (dev->device & 0xf000) != 0xe000)
1021 static int pci_oxsemi_tornado_init(struct pci_dev *dev)
1027 if (!pci_oxsemi_tornado_p(dev))
1030 p = pci_iomap(dev, 0, 5);
1038 pci_dbg(dev, "%d ports detected on %s PCI Express device\n",
1040 dev->vendor == PCI_VENDOR_ID_ENDRUN ?
1043 pci_iounmap(dev, p);
1093 static int pci_quatech_amcc(struct pci_dev *dev)
1097 if (qf->devid == dev->device)
1101 pci_err(dev, "unknown port type '0x%04X'.\n", dev->device);
1262 static int pci_quatech_init(struct pci_dev *dev)
1264 if (pci_quatech_amcc(dev)) {
1265 unsigned long base = pci_resource_start(dev, 0);
1283 port->port.iobase = pci_resource_start(priv->dev, FL_GET_BASE(board->flags));
1288 pci_warn(priv->dev, "software control of RS422 features not currently supported.\n");
1292 static void pci_quatech_exit(struct pci_dev *dev)
1308 maxnr = (pci_resource_len(priv->dev, bar) - board->first_offset) >>
1363 maxnr = (pci_resource_len(priv->dev, bar) - board->first_offset) >>
1389 maxnr = (pci_resource_len(priv->dev, bar) - board->first_offset) >>
1445 struct pci_dev *pci_dev = to_pci_dev(port->dev);
1492 struct pci_dev *pdev = priv->dev;
1508 data = devm_kzalloc(&pdev->dev, sizeof(u8), GFP_KERNEL);
1519 static int pci_fintek_init(struct pci_dev *dev)
1525 struct serial_private *priv = pci_get_drvdata(dev);
1527 if (!(pci_resource_flags(dev, 5) & IORESOURCE_IO) ||
1528 !(pci_resource_flags(dev, 4) & IORESOURCE_IO) ||
1529 !(pci_resource_flags(dev, 3) & IORESOURCE_IO))
1532 switch (dev->device) {
1535 max_port = dev->device & 0xff;
1545 bar_data[0] = pci_resource_start(dev, 5);
1546 bar_data[1] = pci_resource_start(dev, 4);
1547 bar_data[2] = pci_resource_start(dev, 3);
1557 pci_write_config_byte(dev, config_base + 0x00, 0x01);
1560 pci_write_config_byte(dev, config_base + 0x01, 0x33);
1563 pci_write_config_byte(dev, config_base + 0x04,
1567 pci_write_config_byte(dev, config_base + 0x05,
1570 pci_write_config_byte(dev, config_base + 0x06, dev->irq);
1576 pci_write_config_byte(dev, config_base + 0x07, 0x01);
1598 struct pci_dev *pdev = priv->dev;
1601 data = devm_kzalloc(&pdev->dev, sizeof(*data), GFP_KERNEL);
1617 static int pci_fintek_f815xxa_init(struct pci_dev *dev)
1622 if (!(pci_resource_flags(dev, 0) & IORESOURCE_MEM))
1625 switch (dev->device) {
1628 max_port = dev->device & 0xff;
1638 pci_write_config_byte(dev, 0x209, 0x40);
1645 pci_write_config_byte(dev, config_base + 0x01, 0x33);
1648 pci_write_config_byte(dev, config_base + 0, 0x01);
1659 pci_dbg(priv->dev,
1661 priv->dev->vendor, priv->dev->device,
1662 priv->dev->subsystem_vendor, priv->dev->subsystem_device);
1711 static int pci_eg20t_init(struct pci_dev *dev)
1754 static int pci_wch_ch38x_init(struct pci_dev *dev)
1760 switch (dev->device) {
1768 iobase = pci_resource_start(dev, 0);
1774 static void pci_wch_ch38x_exit(struct pci_dev *dev)
1778 iobase = pci_resource_start(dev, 0);
2764 static struct pci_serial_quirk *find_quirk(struct pci_dev *dev)
2769 if (quirk_id_matches(quirk->vendor, dev->vendor) &&
2770 quirk_id_matches(quirk->device, dev->device) &&
2771 quirk_id_matches(quirk->subvendor, dev->subsystem_vendor) &&
2772 quirk_id_matches(quirk->subdevice, dev->subsystem_device))
3806 static int serial_pci_is_class_communication(struct pci_dev *dev)
3812 if ((((dev->class >> 8) != PCI_CLASS_COMMUNICATION_SERIAL) &&
3813 ((dev->class >> 8) != PCI_CLASS_COMMUNICATION_MULTISERIAL) &&
3814 ((dev->class >> 8) != PCI_CLASS_COMMUNICATION_MODEM)) ||
3815 (dev->class & 0xff) > 6)
3827 serial_pci_guess_board(struct pci_dev *dev, struct pciserial_board *board)
3832 rc = serial_pci_is_class_communication(dev);
3839 if ((dev->class >> 8) == PCI_CLASS_COMMUNICATION_MULTISERIAL)
3844 if (pci_resource_flags(dev, i) & IORESOURCE_IO) {
3849 if (pci_resource_flags(dev, i) & IORESOURCE_MEM)
3860 board->num_ports = pci_resource_len(dev, first_port) / 8;
3872 if (pci_resource_flags(dev, i) & IORESOURCE_IO &&
3873 pci_resource_len(dev, i) == 8 &&
3903 pciserial_init_ports(struct pci_dev *dev, const struct pciserial_board *board)
3915 quirk = find_quirk(dev);
3925 rc = quirk->init(dev);
3942 priv->dev = dev;
3952 if (pci_match_id(pci_use_msi, dev)) {
3953 pci_dbg(dev, "Using MSI(-X) interrupts\n");
3954 pci_set_master(dev);
3956 rc = pci_alloc_irq_vectors(dev, 1, 1, PCI_IRQ_ALL_TYPES);
3958 pci_dbg(dev, "Using legacy interrupts\n");
3959 rc = pci_alloc_irq_vectors(dev, 1, 1, PCI_IRQ_LEGACY);
3967 uart.port.irq = pci_irq_vector(dev, 0);
3970 uart.port.dev = &dev->dev;
3976 pci_dbg(dev, "Setup PCI port: port %lx, irq %d, type %d\n",
3981 pci_err(dev,
3994 quirk->exit(dev);
4011 quirk = find_quirk(priv->dev);
4013 quirk->exit(priv->dev);
4035 priv->quirk->exit(priv->dev);
4047 priv->quirk->init(priv->dev);
4060 pciserial_init_one(struct pci_dev *dev, const struct pci_device_id *ent)
4069 quirk = find_quirk(dev);
4071 rc = quirk->probe(dev);
4077 pci_err(dev, "invalid driver_data: %ld\n", ent->driver_data);
4083 exclude = pci_match_id(blacklist, dev);
4087 rc = pcim_enable_device(dev);
4088 pci_save_state(dev);
4104 rc = serial_pci_guess_board(dev, &tmp);
4115 rc = serial_pci_guess_board(dev, &tmp);
4118 dev);
4121 priv = pciserial_init_ports(dev, board);
4125 pci_set_drvdata(dev, priv);
4129 static void pciserial_remove_one(struct pci_dev *dev)
4131 struct serial_private *priv = pci_get_drvdata(dev);
4137 static int pciserial_suspend_one(struct device *dev)
4139 struct serial_private *priv = dev_get_drvdata(dev);
4147 static int pciserial_resume_one(struct device *dev)
4149 struct pci_dev *pdev = to_pci_dev(dev);
5886 static pci_ers_result_t serial8250_io_error_detected(struct pci_dev *dev,
5889 struct serial_private *priv = pci_get_drvdata(dev);
5897 pci_disable_device(dev);
5902 static pci_ers_result_t serial8250_io_slot_reset(struct pci_dev *dev)
5906 rc = pci_enable_device(dev);
5911 pci_restore_state(dev);
5912 pci_save_state(dev);
5917 static void serial8250_io_resume(struct pci_dev *dev)
5919 struct serial_private *priv = pci_get_drvdata(dev);
5925 new = pciserial_init_ports(dev, priv->board);
5927 pci_set_drvdata(dev, new);