• Home
  • History
  • Annotate
  • Raw
  • Download
  • only in /netgear-R7000-V1.0.7.12_1.2.5/components/opensource/linux/linux-2.6.36/drivers/firewire/

Lines Matching refs:lynx

97 lynx_get(struct pcilynx *lynx)
99 kref_get(&lynx->kref);
101 return lynx;
111 lynx_put(struct pcilynx *lynx)
113 kref_put(&lynx->kref, lynx_release);
117 struct pcilynx *lynx;
157 list_empty(&client->lynx->link))
225 reg_write(struct pcilynx *lynx, int offset, u32 data)
227 writel(data, lynx->registers + offset);
231 reg_read(struct pcilynx *lynx, int offset)
233 return readl(lynx->registers + offset);
237 reg_set_bits(struct pcilynx *lynx, int offset, u32 mask)
239 reg_write(lynx, offset, (reg_read(lynx, offset) | mask));
247 run_pcl(struct pcilynx *lynx, dma_addr_t pcl_bus,
250 reg_write(lynx, DMA0_CURRENT_PCL + dmachan * 0x20, pcl_bus);
251 reg_write(lynx, DMA0_CHAN_CTRL + dmachan * 0x20,
256 set_phy_reg(struct pcilynx *lynx, int addr, int val)
259 dev_err(&lynx->pci_device->dev,
264 dev_err(&lynx->pci_device->dev,
268 reg_write(lynx, LINK_PHY, LINK_PHY_WRITE |
279 struct pcilynx *tmp, *lynx = NULL;
284 lynx = lynx_get(tmp);
288 if (lynx == NULL)
296 client->lynx = lynx;
307 lynx_put(lynx);
316 struct pcilynx *lynx = client->lynx;
318 spin_lock_irq(&lynx->client_list_lock);
320 spin_unlock_irq(&lynx->client_list_lock);
324 lynx_put(lynx);
340 if (list_empty(&client->lynx->link))
358 spinlock_t *client_list_lock = &client->lynx->client_list_lock;
375 list_add_tail(&client->link, &client->lynx->client_list);
412 packet_irq_handler(struct pcilynx *lynx)
420 length = __le32_to_cpu(lynx->rcv_pcl->pcl_status) & 0x00001fff;
421 tcode = __le32_to_cpu(lynx->rcv_buffer[1]) >> 4 & 0xf;
424 lynx->rcv_buffer[0] = (__force __le32)tv.tv_usec;
431 spin_lock(&lynx->client_list_lock);
433 list_for_each_entry(client, &lynx->client_list, link)
436 lynx->rcv_buffer, length + 4);
438 spin_unlock(&lynx->client_list_lock);
442 bus_reset_irq_handler(struct pcilynx *lynx)
449 spin_lock(&lynx->client_list_lock);
451 list_for_each_entry(client, &lynx->client_list, link)
454 spin_unlock(&lynx->client_list_lock);
460 struct pcilynx *lynx = device;
463 pci_int_status = reg_read(lynx, PCI_INT_STATUS);
476 link_int_status = reg_read(lynx, LINK_INT_STATUS);
477 reg_write(lynx, LINK_INT_STATUS, link_int_status);
480 bus_reset_irq_handler(lynx);
487 reg_write(lynx, PCI_INT_STATUS, pci_int_status);
490 packet_irq_handler(lynx);
491 run_pcl(lynx, lynx->rcv_start_pcl_bus, 0);
500 struct pcilynx *lynx = pci_get_drvdata(dev);
504 list_del_init(&lynx->link);
505 misc_deregister(&lynx->misc);
508 reg_write(lynx, PCI_INT_ENABLE, 0);
509 free_irq(lynx->pci_device->irq, lynx);
511 spin_lock_irq(&lynx->client_list_lock);
512 list_for_each_entry(client, &lynx->client_list, link)
514 spin_unlock_irq(&lynx->client_list_lock);
516 pci_free_consistent(lynx->pci_device, sizeof(struct pcl),
517 lynx->rcv_start_pcl, lynx->rcv_start_pcl_bus);
518 pci_free_consistent(lynx->pci_device, sizeof(struct pcl),
519 lynx->rcv_pcl, lynx->rcv_pcl_bus);
520 pci_free_consistent(lynx->pci_device, PAGE_SIZE,
521 lynx->rcv_buffer, lynx->rcv_buffer_bus);
523 iounmap(lynx->registers);
525 lynx_put(lynx);
533 struct pcilynx *lynx;
548 lynx = kzalloc(sizeof *lynx, GFP_KERNEL);
549 if (lynx == NULL) {
554 lynx->pci_device = dev;
555 pci_set_drvdata(dev, lynx);
557 spin_lock_init(&lynx->client_list_lock);
558 INIT_LIST_HEAD(&lynx->client_list);
559 kref_init(&lynx->kref);
561 lynx->registers = ioremap_nocache(pci_resource_start(dev, 0),
564 lynx->rcv_start_pcl = pci_alloc_consistent(lynx->pci_device,
565 sizeof(struct pcl), &lynx->rcv_start_pcl_bus);
566 lynx->rcv_pcl = pci_alloc_consistent(lynx->pci_device,
567 sizeof(struct pcl), &lynx->rcv_pcl_bus);
568 lynx->rcv_buffer = pci_alloc_consistent(lynx->pci_device,
569 RCV_BUFFER_SIZE, &lynx->rcv_buffer_bus);
570 if (lynx->rcv_start_pcl == NULL ||
571 lynx->rcv_pcl == NULL ||
572 lynx->rcv_buffer == NULL) {
577 lynx->rcv_start_pcl->next = cpu_to_le32(lynx->rcv_pcl_bus);
578 lynx->rcv_pcl->next = cpu_to_le32(PCL_NEXT_INVALID);
579 lynx->rcv_pcl->async_error_next = cpu_to_le32(PCL_NEXT_INVALID);
581 lynx->rcv_pcl->buffer[0].control =
583 lynx->rcv_pcl->buffer[0].pointer =
584 cpu_to_le32(lynx->rcv_buffer_bus + 4);
585 p = lynx->rcv_buffer_bus + 2048;
586 end = lynx->rcv_buffer_bus + RCV_BUFFER_SIZE;
588 lynx->rcv_pcl->buffer[i].control =
590 lynx->rcv_pcl->buffer[i].pointer = cpu_to_le32(p);
592 lynx->rcv_pcl->buffer[i - 1].control |= cpu_to_le32(PCL_LAST_BUFF);
594 reg_set_bits(lynx, MISC_CONTROL, MISC_CONTROL_SWRESET);
596 reg_write(lynx, DMA0_CHAN_CTRL, 0);
597 reg_write(lynx, DMA_GLOBAL_REGISTER, 0x00 << 24);
601 reg_write(lynx, FIFO_SIZES, 255);
603 reg_set_bits(lynx, PCI_INT_ENABLE, PCI_INT_DMA_ALL);
605 reg_write(lynx, LINK_INT_ENABLE,
613 set_phy_reg(lynx, 4, 0);
616 reg_set_bits(lynx, LINK_CONTROL, LINK_CONTROL_SNOOP_ENABLE);
618 run_pcl(lynx, lynx->rcv_start_pcl_bus, 0);
621 driver_name, lynx)) {
628 lynx->misc.parent = &dev->dev;
629 lynx->misc.minor = MISC_DYNAMIC_MINOR;
630 lynx->misc.name = "nosy";
631 lynx->misc.fops = &nosy_ops;
634 ret = misc_register(&lynx->misc);
640 list_add_tail(&lynx->link, &card_list);
649 reg_write(lynx, PCI_INT_ENABLE, 0);
650 free_irq(lynx->pci_device->irq, lynx);
653 if (lynx->rcv_start_pcl)
654 pci_free_consistent(lynx->pci_device, sizeof(struct pcl),
655 lynx->rcv_start_pcl, lynx->rcv_start_pcl_bus);
656 if (lynx->rcv_pcl)
657 pci_free_consistent(lynx->pci_device, sizeof(struct pcl),
658 lynx->rcv_pcl, lynx->rcv_pcl_bus);
659 if (lynx->rcv_buffer)
660 pci_free_consistent(lynx->pci_device, PAGE_SIZE,
661 lynx->rcv_buffer, lynx->rcv_buffer_bus);
662 iounmap(lynx->registers);
663 kfree(lynx);