Lines Matching refs:mid
53 static int pnw_setup(struct mid8250 *mid, struct uart_port *p) in pnw_setup() argument
59 mid->dma_index = 0; in pnw_setup()
62 mid->dma_index = 1; in pnw_setup()
65 mid->dma_index = 2; in pnw_setup()
71 mid->dma_dev = pci_get_slot(pdev->bus, in pnw_setup()
78 struct mid8250 *mid = p->private_data; in tng_handle_irq() local
85 chip = pci_get_drvdata(mid->dma_dev); in tng_handle_irq()
88 err = hsu_dma_get_status(chip, mid->dma_index * 2 + 1, &status); in tng_handle_irq()
93 ret |= hsu_dma_do_irq(chip, mid->dma_index * 2 + 1, status); in tng_handle_irq()
96 err = hsu_dma_get_status(chip, mid->dma_index * 2, &status); in tng_handle_irq()
100 ret |= hsu_dma_do_irq(chip, mid->dma_index * 2, status); in tng_handle_irq()
107 static int tng_setup(struct mid8250 *mid, struct uart_port *p) in tng_setup() argument
120 mid->dma_index = index; in tng_setup()
121 mid->dma_dev = pci_get_slot(pdev->bus, PCI_DEVFN(5, 0)); in tng_setup()
129 struct mid8250 *mid = p->private_data; in dnv_handle_irq() local
137 err = hsu_dma_get_status(&mid->dma_chip, 1, &status); in dnv_handle_irq()
142 ret |= hsu_dma_do_irq(&mid->dma_chip, 1, status); in dnv_handle_irq()
145 err = hsu_dma_get_status(&mid->dma_chip, 0, &status); in dnv_handle_irq()
149 ret |= hsu_dma_do_irq(&mid->dma_chip, 0, status); in dnv_handle_irq()
158 static int dnv_setup(struct mid8250 *mid, struct uart_port *p) in dnv_setup() argument
160 struct hsu_dma_chip *chip = &mid->dma_chip; in dnv_setup()
162 unsigned int bar = FL_GET_BASE(mid->board->flags); in dnv_setup()
184 mid->dma_dev = pdev; in dnv_setup()
190 static void dnv_exit(struct mid8250 *mid) in dnv_exit() argument
192 if (!mid->dma_dev) in dnv_exit()
194 hsu_dma_remove(&mid->dma_chip); in dnv_exit()
204 struct mid8250 *mid = p->private_data; in mid8250_set_termios() local
213 if (mid->board->freq < fuart) { in mid8250_set_termios()
215 if (mid->board->freq > baud) in mid8250_set_termios()
216 ps = mid->board->freq / baud; /* baud rate too high */ in mid8250_set_termios()
222 fuart *= rounddown_pow_of_two(mid->board->freq / fuart); in mid8250_set_termios()
225 rational_best_approximation(fuart, mid->board->freq, w, w, &mul, &div); in mid8250_set_termios()
246 static int mid8250_dma_setup(struct mid8250 *mid, struct uart_8250_port *port) in mid8250_dma_setup() argument
248 struct uart_8250_dma *dma = &mid->dma; in mid8250_dma_setup()
253 if (!mid->dma_dev) in mid8250_dma_setup()
264 rx_param->chan_id = mid->dma_index * 2 + 1; in mid8250_dma_setup()
265 tx_param->chan_id = mid->dma_index * 2; in mid8250_dma_setup()
270 rx_param->dma_dev = &mid->dma_dev->dev; in mid8250_dma_setup()
271 tx_param->dma_dev = &mid->dma_dev->dev; in mid8250_dma_setup()
284 struct mid8250 *mid; in mid8250_probe() local
292 mid = devm_kzalloc(&pdev->dev, sizeof(*mid), GFP_KERNEL); in mid8250_probe()
293 if (!mid) in mid8250_probe()
296 mid->board = (struct mid8250_board *)id->driver_data; in mid8250_probe()
297 bar = FL_GET_BASE(mid->board->flags); in mid8250_probe()
303 uart.port.private_data = mid; in mid8250_probe()
306 uart.port.uartclk = mid->board->base_baud * 16; in mid8250_probe()
315 if (mid->board->setup) { in mid8250_probe()
316 ret = mid->board->setup(mid, &uart.port); in mid8250_probe()
321 ret = mid8250_dma_setup(mid, &uart); in mid8250_probe()
329 mid->line = ret; in mid8250_probe()
331 pci_set_drvdata(pdev, mid); in mid8250_probe()
334 if (mid->board->exit) in mid8250_probe()
335 mid->board->exit(mid); in mid8250_probe()
341 struct mid8250 *mid = pci_get_drvdata(pdev); in mid8250_remove() local
343 serial8250_unregister_port(mid->line); in mid8250_remove()
345 if (mid->board->exit) in mid8250_remove()
346 mid->board->exit(mid); in mid8250_remove()