Lines Matching refs:mid
54 static int pnw_setup(struct mid8250 *mid, struct uart_port *p) in pnw_setup() argument
60 mid->dma_index = 0; in pnw_setup()
63 mid->dma_index = 1; in pnw_setup()
66 mid->dma_index = 2; in pnw_setup()
72 mid->dma_dev = pci_get_slot(pdev->bus, in pnw_setup()
77 static int tng_setup(struct mid8250 *mid, struct uart_port *p) in tng_setup() argument
86 mid->dma_index = index; in tng_setup()
87 mid->dma_dev = pci_get_slot(pdev->bus, PCI_DEVFN(5, 0)); in tng_setup()
93 struct mid8250 *mid = p->private_data; in dnv_handle_irq() local
98 ret |= hsu_dma_irq(&mid->dma_chip, 1); in dnv_handle_irq()
100 ret |= hsu_dma_irq(&mid->dma_chip, 0); in dnv_handle_irq()
108 static int dnv_setup(struct mid8250 *mid, struct uart_port *p) in dnv_setup() argument
110 struct hsu_dma_chip *chip = &mid->dma_chip; in dnv_setup()
112 unsigned int bar = FL_GET_BASE(mid->board->flags); in dnv_setup()
126 mid->dma_dev = pdev; in dnv_setup()
132 static void dnv_exit(struct mid8250 *mid) in dnv_exit() argument
134 if (!mid->dma_dev) in dnv_exit()
136 hsu_dma_remove(&mid->dma_chip); in dnv_exit()
146 struct mid8250 *mid = p->private_data; in mid8250_set_termios() local
152 if (mid->board->freq < fuart) { in mid8250_set_termios()
154 if (mid->board->freq > baud) in mid8250_set_termios()
155 ps = mid->board->freq / baud; /* baud rate too high */ in mid8250_set_termios()
161 fuart *= rounddown_pow_of_two(mid->board->freq / fuart); in mid8250_set_termios()
164 rational_best_approximation(fuart, mid->board->freq, w, w, &mul, &div); in mid8250_set_termios()
185 static int mid8250_dma_setup(struct mid8250 *mid, struct uart_8250_port *port) in mid8250_dma_setup() argument
187 struct uart_8250_dma *dma = &mid->dma; in mid8250_dma_setup()
192 if (!mid->dma_dev) in mid8250_dma_setup()
203 rx_param->chan_id = mid->dma_index * 2 + 1; in mid8250_dma_setup()
204 tx_param->chan_id = mid->dma_index * 2; in mid8250_dma_setup()
209 rx_param->dma_dev = &mid->dma_dev->dev; in mid8250_dma_setup()
210 tx_param->dma_dev = &mid->dma_dev->dev; in mid8250_dma_setup()
223 struct mid8250 *mid; in mid8250_probe() local
233 mid = devm_kzalloc(&pdev->dev, sizeof(*mid), GFP_KERNEL); in mid8250_probe()
234 if (!mid) in mid8250_probe()
237 mid->board = (struct mid8250_board *)id->driver_data; in mid8250_probe()
238 bar = FL_GET_BASE(mid->board->flags); in mid8250_probe()
244 uart.port.private_data = mid; in mid8250_probe()
247 uart.port.uartclk = mid->board->base_baud * 16; in mid8250_probe()
256 if (mid->board->setup) { in mid8250_probe()
257 ret = mid->board->setup(mid, &uart.port); in mid8250_probe()
262 ret = mid8250_dma_setup(mid, &uart); in mid8250_probe()
270 mid->line = ret; in mid8250_probe()
272 pci_set_drvdata(pdev, mid); in mid8250_probe()
275 if (mid->board->exit) in mid8250_probe()
276 mid->board->exit(mid); in mid8250_probe()
282 struct mid8250 *mid = pci_get_drvdata(pdev); in mid8250_remove() local
284 if (mid->board->exit) in mid8250_remove()
285 mid->board->exit(mid); in mid8250_remove()
287 serial8250_unregister_port(mid->line); in mid8250_remove()