forked from ~ljy/RK356X_SDK_RELEASE

hc
2024-02-19 1c055e55a242a33e574e48be530e06770a210dcd
kernel/drivers/tty/serial/8250/8250_mid.c
....@@ -73,6 +73,11 @@
7373 return 0;
7474 }
7575
76
+static void pnw_exit(struct mid8250 *mid)
77
+{
78
+ pci_dev_put(mid->dma_dev);
79
+}
80
+
7681 static int tng_handle_irq(struct uart_port *p)
7782 {
7883 struct mid8250 *mid = p->private_data;
....@@ -122,6 +127,11 @@
122127
123128 p->handle_irq = tng_handle_irq;
124129 return 0;
130
+}
131
+
132
+static void tng_exit(struct mid8250 *mid)
133
+{
134
+ pci_dev_put(mid->dma_dev);
125135 }
126136
127137 static int dnv_handle_irq(struct uart_port *p)
....@@ -330,9 +340,9 @@
330340
331341 pci_set_drvdata(pdev, mid);
332342 return 0;
343
+
333344 err:
334
- if (mid->board->exit)
335
- mid->board->exit(mid);
345
+ mid->board->exit(mid);
336346 return ret;
337347 }
338348
....@@ -342,8 +352,7 @@
342352
343353 serial8250_unregister_port(mid->line);
344354
345
- if (mid->board->exit)
346
- mid->board->exit(mid);
355
+ mid->board->exit(mid);
347356 }
348357
349358 static const struct mid8250_board pnw_board = {
....@@ -351,6 +360,7 @@
351360 .freq = 50000000,
352361 .base_baud = 115200,
353362 .setup = pnw_setup,
363
+ .exit = pnw_exit,
354364 };
355365
356366 static const struct mid8250_board tng_board = {
....@@ -358,6 +368,7 @@
358368 .freq = 38400000,
359369 .base_baud = 1843200,
360370 .setup = tng_setup,
371
+ .exit = tng_exit,
361372 };
362373
363374 static const struct mid8250_board dnv_board = {