.. | .. |
---|
73 | 73 | return 0; |
---|
74 | 74 | } |
---|
75 | 75 | |
---|
| 76 | +static void pnw_exit(struct mid8250 *mid) |
---|
| 77 | +{ |
---|
| 78 | + pci_dev_put(mid->dma_dev); |
---|
| 79 | +} |
---|
| 80 | + |
---|
76 | 81 | static int tng_handle_irq(struct uart_port *p) |
---|
77 | 82 | { |
---|
78 | 83 | struct mid8250 *mid = p->private_data; |
---|
.. | .. |
---|
122 | 127 | |
---|
123 | 128 | p->handle_irq = tng_handle_irq; |
---|
124 | 129 | return 0; |
---|
| 130 | +} |
---|
| 131 | + |
---|
| 132 | +static void tng_exit(struct mid8250 *mid) |
---|
| 133 | +{ |
---|
| 134 | + pci_dev_put(mid->dma_dev); |
---|
125 | 135 | } |
---|
126 | 136 | |
---|
127 | 137 | static int dnv_handle_irq(struct uart_port *p) |
---|
.. | .. |
---|
330 | 340 | |
---|
331 | 341 | pci_set_drvdata(pdev, mid); |
---|
332 | 342 | return 0; |
---|
| 343 | + |
---|
333 | 344 | err: |
---|
334 | | - if (mid->board->exit) |
---|
335 | | - mid->board->exit(mid); |
---|
| 345 | + mid->board->exit(mid); |
---|
336 | 346 | return ret; |
---|
337 | 347 | } |
---|
338 | 348 | |
---|
.. | .. |
---|
342 | 352 | |
---|
343 | 353 | serial8250_unregister_port(mid->line); |
---|
344 | 354 | |
---|
345 | | - if (mid->board->exit) |
---|
346 | | - mid->board->exit(mid); |
---|
| 355 | + mid->board->exit(mid); |
---|
347 | 356 | } |
---|
348 | 357 | |
---|
349 | 358 | static const struct mid8250_board pnw_board = { |
---|
.. | .. |
---|
351 | 360 | .freq = 50000000, |
---|
352 | 361 | .base_baud = 115200, |
---|
353 | 362 | .setup = pnw_setup, |
---|
| 363 | + .exit = pnw_exit, |
---|
354 | 364 | }; |
---|
355 | 365 | |
---|
356 | 366 | static const struct mid8250_board tng_board = { |
---|
.. | .. |
---|
358 | 368 | .freq = 38400000, |
---|
359 | 369 | .base_baud = 1843200, |
---|
360 | 370 | .setup = tng_setup, |
---|
| 371 | + .exit = tng_exit, |
---|
361 | 372 | }; |
---|
362 | 373 | |
---|
363 | 374 | static const struct mid8250_board dnv_board = { |
---|