@@ -207,12 +207,11 @@ static unsigned int ingenic_uart_serial_in(struct uart_port *p, int offset)
207
207
static int ingenic_uart_probe (struct platform_device * pdev )
208
208
{
209
209
struct uart_8250_port uart = {};
210
- struct resource * regs = platform_get_resource (pdev , IORESOURCE_MEM , 0 );
211
- struct resource * irq = platform_get_resource (pdev , IORESOURCE_IRQ , 0 );
212
210
struct ingenic_uart_data * data ;
213
211
const struct ingenic_uart_config * cdata ;
214
212
const struct of_device_id * match ;
215
- int err , line ;
213
+ struct resource * regs ;
214
+ int irq , err , line ;
216
215
217
216
match = of_match_device (of_match , & pdev -> dev );
218
217
if (!match ) {
@@ -221,8 +220,13 @@ static int ingenic_uart_probe(struct platform_device *pdev)
221
220
}
222
221
cdata = match -> data ;
223
222
224
- if (!regs || !irq ) {
225
- dev_err (& pdev -> dev , "no registers/irq defined\n" );
223
+ irq = platform_get_irq (pdev , 0 );
224
+ if (irq < 0 )
225
+ return irq ;
226
+
227
+ regs = platform_get_resource (pdev , IORESOURCE_MEM , 0 );
228
+ if (!regs ) {
229
+ dev_err (& pdev -> dev , "no registers defined\n" );
226
230
return - EINVAL ;
227
231
}
228
232
@@ -238,7 +242,7 @@ static int ingenic_uart_probe(struct platform_device *pdev)
238
242
uart .port .regshift = 2 ;
239
243
uart .port .serial_out = ingenic_uart_serial_out ;
240
244
uart .port .serial_in = ingenic_uart_serial_in ;
241
- uart .port .irq = irq -> start ;
245
+ uart .port .irq = irq ;
242
246
uart .port .dev = & pdev -> dev ;
243
247
uart .port .fifosize = cdata -> fifosize ;
244
248
uart .tx_loadsz = cdata -> tx_loadsz ;
0 commit comments