Lines Matching refs:mid
53 static int pnw_setup(struct mid8250 *mid, struct uart_port *p)
59 mid->dma_index = 0;
62 mid->dma_index = 1;
65 mid->dma_index = 2;
71 mid->dma_dev = pci_get_slot(pdev->bus,
76 static void pnw_exit(struct mid8250 *mid)
78 pci_dev_put(mid->dma_dev);
83 struct mid8250 *mid = p->private_data;
90 chip = pci_get_drvdata(mid->dma_dev);
93 err = hsu_dma_get_status(chip, mid->dma_index * 2 + 1, &status);
98 ret |= hsu_dma_do_irq(chip, mid->dma_index * 2 + 1, status);
101 err = hsu_dma_get_status(chip, mid->dma_index * 2, &status);
105 ret |= hsu_dma_do_irq(chip, mid->dma_index * 2, status);
112 static int tng_setup(struct mid8250 *mid, struct uart_port *p)
125 mid->dma_index = index;
126 mid->dma_dev = pci_get_slot(pdev->bus, PCI_DEVFN(5, 0));
132 static void tng_exit(struct mid8250 *mid)
134 pci_dev_put(mid->dma_dev);
139 struct mid8250 *mid = p->private_data;
147 err = hsu_dma_get_status(&mid->dma_chip, 1, &status);
152 ret |= hsu_dma_do_irq(&mid->dma_chip, 1, status);
155 err = hsu_dma_get_status(&mid->dma_chip, 0, &status);
159 ret |= hsu_dma_do_irq(&mid->dma_chip, 0, status);
168 static int dnv_setup(struct mid8250 *mid, struct uart_port *p)
170 struct hsu_dma_chip *chip = &mid->dma_chip;
172 unsigned int bar = FL_GET_BASE(mid->board->flags);
194 mid->dma_dev = pdev;
200 static void dnv_exit(struct mid8250 *mid)
202 if (!mid->dma_dev)
204 hsu_dma_remove(&mid->dma_chip);
213 struct mid8250 *mid = p->private_data;
222 if (mid->board->freq < fuart) {
224 if (mid->board->freq > baud)
225 ps = mid->board->freq / baud; /* baud rate too high */
231 fuart *= rounddown_pow_of_two(mid->board->freq / fuart);
234 rational_best_approximation(fuart, mid->board->freq, w, w, &mul, &div);
255 static int mid8250_dma_setup(struct mid8250 *mid, struct uart_8250_port *port)
257 struct uart_8250_dma *dma = &mid->dma;
262 if (!mid->dma_dev)
273 rx_param->chan_id = mid->dma_index * 2 + 1;
274 tx_param->chan_id = mid->dma_index * 2;
279 rx_param->dma_dev = &mid->dma_dev->dev;
280 tx_param->dma_dev = &mid->dma_dev->dev;
293 struct mid8250 *mid;
301 mid = devm_kzalloc(&pdev->dev, sizeof(*mid), GFP_KERNEL);
302 if (!mid)
305 mid->board = (struct mid8250_board *)id->driver_data;
306 bar = FL_GET_BASE(mid->board->flags);
312 uart.port.private_data = mid;
315 uart.port.uartclk = mid->board->base_baud * 16;
324 ret = mid->board->setup(mid, &uart.port);
328 ret = mid8250_dma_setup(mid, &uart);
336 mid->line = ret;
338 pci_set_drvdata(pdev, mid);
342 mid->board->exit(mid);
348 struct mid8250 *mid = pci_get_drvdata(pdev);
350 serial8250_unregister_port(mid->line);
352 mid->board->exit(mid);