felix.c (dbacfd8ca755b9f710ab17a1e47572fc4e5dabcc) | felix.c (91c724cfc0cbc049f18c04634ad56080650e93b8) |
---|---|
1// SPDX-License-Identifier: GPL-2.0 2/* Copyright 2019 NXP Semiconductors 3 */ 4#include <uapi/linux/if_bridge.h> 5#include <soc/mscc/ocelot_vcap.h> 6#include <soc/mscc/ocelot_qsys.h> 7#include <soc/mscc/ocelot_sys.h> 8#include <soc/mscc/ocelot_dev.h> --- 510 unchanged lines hidden (view full) --- 519 if (err) { 520 dev_err(ocelot->dev, "failed to init reg fields map\n"); 521 kfree(port_phy_modes); 522 return err; 523 } 524 525 for (port = 0; port < num_phys_ports; port++) { 526 struct ocelot_port *ocelot_port; | 1// SPDX-License-Identifier: GPL-2.0 2/* Copyright 2019 NXP Semiconductors 3 */ 4#include <uapi/linux/if_bridge.h> 5#include <soc/mscc/ocelot_vcap.h> 6#include <soc/mscc/ocelot_qsys.h> 7#include <soc/mscc/ocelot_sys.h> 8#include <soc/mscc/ocelot_dev.h> --- 510 unchanged lines hidden (view full) --- 519 if (err) { 520 dev_err(ocelot->dev, "failed to init reg fields map\n"); 521 kfree(port_phy_modes); 522 return err; 523 } 524 525 for (port = 0; port < num_phys_ports; port++) { 526 struct ocelot_port *ocelot_port; |
527 void __iomem *port_regs; | 527 struct regmap *target; |
528 529 ocelot_port = devm_kzalloc(ocelot->dev, 530 sizeof(struct ocelot_port), 531 GFP_KERNEL); 532 if (!ocelot_port) { 533 dev_err(ocelot->dev, 534 "failed to allocate port memory\n"); 535 kfree(port_phy_modes); 536 return -ENOMEM; 537 } 538 539 memcpy(&res, &felix->info->port_io_res[port], sizeof(res)); 540 res.flags = IORESOURCE_MEM; 541 res.start += switch_base; 542 res.end += switch_base; 543 | 528 529 ocelot_port = devm_kzalloc(ocelot->dev, 530 sizeof(struct ocelot_port), 531 GFP_KERNEL); 532 if (!ocelot_port) { 533 dev_err(ocelot->dev, 534 "failed to allocate port memory\n"); 535 kfree(port_phy_modes); 536 return -ENOMEM; 537 } 538 539 memcpy(&res, &felix->info->port_io_res[port], sizeof(res)); 540 res.flags = IORESOURCE_MEM; 541 res.start += switch_base; 542 res.end += switch_base; 543 |
544 port_regs = devm_ioremap_resource(ocelot->dev, &res); 545 if (IS_ERR(port_regs)) { | 544 target = ocelot_regmap_init(ocelot, &res); 545 if (IS_ERR(target)) { |
546 dev_err(ocelot->dev, | 546 dev_err(ocelot->dev, |
547 "failed to map registers for port %d\n", port); | 547 "Failed to map memory space for port %d\n", 548 port); |
548 kfree(port_phy_modes); | 549 kfree(port_phy_modes); |
549 return PTR_ERR(port_regs); | 550 return PTR_ERR(target); |
550 } 551 552 ocelot_port->phy_mode = port_phy_modes[port]; 553 ocelot_port->ocelot = ocelot; | 551 } 552 553 ocelot_port->phy_mode = port_phy_modes[port]; 554 ocelot_port->ocelot = ocelot; |
554 ocelot_port->regs = port_regs; | 555 ocelot_port->target = target; |
555 ocelot->ports[port] = ocelot_port; 556 } 557 558 kfree(port_phy_modes); 559 560 if (felix->info->mdio_bus_alloc) { 561 err = felix->info->mdio_bus_alloc(ocelot); 562 if (err < 0) --- 420 unchanged lines hidden --- | 556 ocelot->ports[port] = ocelot_port; 557 } 558 559 kfree(port_phy_modes); 560 561 if (felix->info->mdio_bus_alloc) { 562 err = felix->info->mdio_bus_alloc(ocelot); 563 if (err < 0) --- 420 unchanged lines hidden --- |