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);
214 struct mid8250 *mid = p->private_data;
223 if (mid->board->freq < fuart) {
225 if (mid->board->freq > baud)
226 ps = mid->board->freq / baud; /* baud rate too high */
232 fuart *= rounddown_pow_of_two(mid->board->freq / fuart);
235 rational_best_approximation(fuart, mid->board->freq, w, w, &mul, &div);
256 static int mid8250_dma_setup(struct mid8250 *mid, struct uart_8250_port *port)
258 struct uart_8250_dma *dma = &mid->dma;
263 if (!mid->dma_dev)
274 rx_param->chan_id = mid->dma_index * 2 + 1;
275 tx_param->chan_id = mid->dma_index * 2;
280 rx_param->dma_dev = &mid->dma_dev->dev;
281 tx_param->dma_dev = &mid->dma_dev->dev;
294 struct mid8250 *mid;
302 mid = devm_kzalloc(&pdev->dev, sizeof(*mid), GFP_KERNEL);
303 if (!mid)
306 mid->board = (struct mid8250_board *)id->driver_data;
307 bar = FL_GET_BASE(mid->board->flags);
313 uart.port.private_data = mid;
316 uart.port.uartclk = mid->board->base_baud * 16;
325 if (mid->board->setup) {
326 ret = mid->board->setup(mid, &uart.port);
331 ret = mid8250_dma_setup(mid, &uart);
339 mid->line = ret;
341 pci_set_drvdata(pdev, mid);
345 mid->board->exit(mid);
351 struct mid8250 *mid = pci_get_drvdata(pdev);
353 serial8250_unregister_port(mid->line);
355 mid->board->exit(mid);