Source
356
356
struct resource *res;
357
357
resource_size_t size;
358
358
int ret;
359
359
360
360
tdev = devm_kzalloc(&pdev->dev, sizeof(*tdev), GFP_KERNEL);
361
361
if (!tdev)
362
362
return -ENOMEM;
363
363
364
364
/* It's okay for MMIO to be NULL */
365
365
res = platform_get_resource(pdev, IORESOURCE_MEM, 0);
366
-
size = resource_size(res);
367
366
tdev->tx_mmio = devm_ioremap_resource(&pdev->dev, res);
368
-
if (PTR_ERR(tdev->tx_mmio) == -EBUSY)
367
+
if (PTR_ERR(tdev->tx_mmio) == -EBUSY) {
369
368
/* if reserved area in SRAM, try just ioremap */
369
+
size = resource_size(res);
370
370
tdev->tx_mmio = devm_ioremap(&pdev->dev, res->start, size);
371
-
else if (IS_ERR(tdev->tx_mmio))
371
+
} else if (IS_ERR(tdev->tx_mmio)) {
372
372
tdev->tx_mmio = NULL;
373
+
}
373
374
374
375
/* If specified, second reg entry is Rx MMIO */
375
376
res = platform_get_resource(pdev, IORESOURCE_MEM, 1);
376
-
size = resource_size(res);
377
377
tdev->rx_mmio = devm_ioremap_resource(&pdev->dev, res);
378
-
if (PTR_ERR(tdev->rx_mmio) == -EBUSY)
378
+
if (PTR_ERR(tdev->rx_mmio) == -EBUSY) {
379
+
size = resource_size(res);
379
380
tdev->rx_mmio = devm_ioremap(&pdev->dev, res->start, size);
380
-
else if (IS_ERR(tdev->rx_mmio))
381
+
} else if (IS_ERR(tdev->rx_mmio)) {
381
382
tdev->rx_mmio = tdev->tx_mmio;
383
+
}
382
384
383
385
tdev->tx_channel = mbox_test_request_channel(pdev, "tx");
384
386
tdev->rx_channel = mbox_test_request_channel(pdev, "rx");
385
387
386
388
if (!tdev->tx_channel && !tdev->rx_channel)
387
389
return -EPROBE_DEFER;
388
390
389
391
/* If Rx is not specified but has Rx MMIO, then Rx = Tx */
390
392
if (!tdev->rx_channel && (tdev->rx_mmio != tdev->tx_mmio))
391
393
tdev->rx_channel = tdev->tx_channel;