forked from ~ljy/RK356X_SDK_RELEASE

hc
2024-05-11 04dd17822334871b23ea2862f7798fb0e0007777
kernel/drivers/tty/serial/8250/8250_em.c
....@@ -39,7 +39,7 @@
3939 break;
4040 case UART_IER: /* IER @ 0x04 */
4141 value &= 0x0f; /* only 4 valid bits - not Xscale */
42
- /* fall-through */
42
+ fallthrough;
4343 case UART_DLL_EM: /* DLL @ 0x24 (+9) */
4444 case UART_DLM_EM: /* DLM @ 0x28 (+9) */
4545 writel(value, p->membase + (offset << 2));
....@@ -78,14 +78,18 @@
7878
7979 static int serial8250_em_probe(struct platform_device *pdev)
8080 {
81
- struct resource *regs = platform_get_resource(pdev, IORESOURCE_MEM, 0);
82
- struct resource *irq = platform_get_resource(pdev, IORESOURCE_IRQ, 0);
8381 struct serial8250_em_priv *priv;
8482 struct uart_8250_port up;
85
- int ret;
83
+ struct resource *regs;
84
+ int irq, ret;
8685
87
- if (!regs || !irq) {
88
- dev_err(&pdev->dev, "missing registers or irq\n");
86
+ irq = platform_get_irq(pdev, 0);
87
+ if (irq < 0)
88
+ return irq;
89
+
90
+ regs = platform_get_resource(pdev, IORESOURCE_MEM, 0);
91
+ if (!regs) {
92
+ dev_err(&pdev->dev, "missing registers\n");
8993 return -EINVAL;
9094 }
9195
....@@ -101,9 +105,9 @@
101105
102106 memset(&up, 0, sizeof(up));
103107 up.port.mapbase = regs->start;
104
- up.port.irq = irq->start;
105
- up.port.type = PORT_UNKNOWN;
106
- up.port.flags = UPF_BOOT_AUTOCONF | UPF_FIXED_PORT | UPF_IOREMAP;
108
+ up.port.irq = irq;
109
+ up.port.type = PORT_16750;
110
+ up.port.flags = UPF_FIXED_PORT | UPF_IOREMAP | UPF_FIXED_TYPE;
107111 up.port.dev = &pdev->dev;
108112 up.port.private_data = priv;
109113