serial: sa1100: use platform_get_resource()
authorAndy Shevchenko <andriy.shevchenko@linux.intel.com>
Tue, 4 Aug 2020 13:48:07 +0000 (16:48 +0300)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Tue, 18 Aug 2020 13:02:06 +0000 (15:02 +0200)
Use platform_get_resource() to fetch the memory resource
instead of open-coded variant.

While here, fail the probe if no resource found or no port is added.

Signed-off-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
Link: https://lore.kernel.org/r/20200804134807.11589-1-andriy.shevchenko@linux.intel.com
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
drivers/tty/serial/sa1100.c

index 75c2a22..f5fab1d 100644 (file)
@@ -879,22 +879,20 @@ static int sa1100_serial_add_one_port(struct sa1100_port *sport, struct platform
 
 static int sa1100_serial_probe(struct platform_device *dev)
 {
-       struct resource *res = dev->resource;
+       struct resource *res;
        int i;
 
-       for (i = 0; i < dev->num_resources; i++, res++)
-               if (res->flags & IORESOURCE_MEM)
-                       break;
-
-       if (i < dev->num_resources) {
-               for (i = 0; i < NR_PORTS; i++) {
-                       if (sa1100_ports[i].port.mapbase != res->start)
-                               continue;
+       res = platform_get_resource(dev, IORESOURCE_MEM, 0);
+       if (!res)
+               return -EINVAL;
 
-                       sa1100_serial_add_one_port(&sa1100_ports[i], dev);
+       for (i = 0; i < NR_PORTS; i++)
+               if (sa1100_ports[i].port.mapbase == res->start)
                        break;
-               }
-       }
+       if (i == NR_PORTS)
+               return -ENODEV;
+
+       sa1100_serial_add_one_port(&sa1100_ports[i], dev);
 
        return 0;
 }