mirror of
https://github.com/Fishwaldo/Star64_linux.git
synced 2025-06-28 09:31:14 +00:00
net: dsa: felix: move the PTP clock structure to felix_vsc9959.c
Not only does Sevile not have a PTP clock, but with separate modules, this structure cannot even live in felix.c, due to the .owner = THIS_MODULE assignment causing this link time error: drivers/net/dsa/ocelot/felix.o:(.data+0x0): undefined reference to `__this_module' Signed-off-by: Vladimir Oltean <vladimir.oltean@nxp.com> Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:
parent
881321b6ed
commit
2ac7c6c5b6
3 changed files with 20 additions and 18 deletions
|
@ -538,23 +538,6 @@ static int felix_init_structs(struct felix *felix, int num_phys_ports)
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
static struct ptp_clock_info ocelot_ptp_clock_info = {
|
|
||||||
.owner = THIS_MODULE,
|
|
||||||
.name = "felix ptp",
|
|
||||||
.max_adj = 0x7fffffff,
|
|
||||||
.n_alarm = 0,
|
|
||||||
.n_ext_ts = 0,
|
|
||||||
.n_per_out = OCELOT_PTP_PINS_NUM,
|
|
||||||
.n_pins = OCELOT_PTP_PINS_NUM,
|
|
||||||
.pps = 0,
|
|
||||||
.gettime64 = ocelot_ptp_gettime64,
|
|
||||||
.settime64 = ocelot_ptp_settime64,
|
|
||||||
.adjtime = ocelot_ptp_adjtime,
|
|
||||||
.adjfine = ocelot_ptp_adjfine,
|
|
||||||
.verify = ocelot_ptp_verify,
|
|
||||||
.enable = ocelot_ptp_enable,
|
|
||||||
};
|
|
||||||
|
|
||||||
/* Hardware initialization done here so that we can allocate structures with
|
/* Hardware initialization done here so that we can allocate structures with
|
||||||
* devm without fear of dsa_register_switch returning -EPROBE_DEFER and causing
|
* devm without fear of dsa_register_switch returning -EPROBE_DEFER and causing
|
||||||
* us to allocate structures twice (leak memory) and map PCI memory twice
|
* us to allocate structures twice (leak memory) and map PCI memory twice
|
||||||
|
@ -573,7 +556,7 @@ static int felix_setup(struct dsa_switch *ds)
|
||||||
|
|
||||||
ocelot_init(ocelot);
|
ocelot_init(ocelot);
|
||||||
if (ocelot->ptp) {
|
if (ocelot->ptp) {
|
||||||
err = ocelot_init_timestamp(ocelot, &ocelot_ptp_clock_info);
|
err = ocelot_init_timestamp(ocelot, felix->info->ptp_caps);
|
||||||
if (err) {
|
if (err) {
|
||||||
dev_err(ocelot->dev,
|
dev_err(ocelot->dev,
|
||||||
"Timestamp initialization failed\n");
|
"Timestamp initialization failed\n");
|
||||||
|
|
|
@ -26,6 +26,7 @@ struct felix_info {
|
||||||
const struct vcap_props *vcap;
|
const struct vcap_props *vcap;
|
||||||
int switch_pci_bar;
|
int switch_pci_bar;
|
||||||
int imdio_pci_bar;
|
int imdio_pci_bar;
|
||||||
|
const struct ptp_clock_info *ptp_caps;
|
||||||
int (*mdio_bus_alloc)(struct ocelot *ocelot);
|
int (*mdio_bus_alloc)(struct ocelot *ocelot);
|
||||||
void (*mdio_bus_free)(struct ocelot *ocelot);
|
void (*mdio_bus_free)(struct ocelot *ocelot);
|
||||||
void (*phylink_validate)(struct ocelot *ocelot, int port,
|
void (*phylink_validate)(struct ocelot *ocelot, int port,
|
||||||
|
|
|
@ -719,6 +719,23 @@ static const struct vcap_props vsc9959_vcap_props[] = {
|
||||||
},
|
},
|
||||||
};
|
};
|
||||||
|
|
||||||
|
static const struct ptp_clock_info vsc9959_ptp_caps = {
|
||||||
|
.owner = THIS_MODULE,
|
||||||
|
.name = "felix ptp",
|
||||||
|
.max_adj = 0x7fffffff,
|
||||||
|
.n_alarm = 0,
|
||||||
|
.n_ext_ts = 0,
|
||||||
|
.n_per_out = OCELOT_PTP_PINS_NUM,
|
||||||
|
.n_pins = OCELOT_PTP_PINS_NUM,
|
||||||
|
.pps = 0,
|
||||||
|
.gettime64 = ocelot_ptp_gettime64,
|
||||||
|
.settime64 = ocelot_ptp_settime64,
|
||||||
|
.adjtime = ocelot_ptp_adjtime,
|
||||||
|
.adjfine = ocelot_ptp_adjfine,
|
||||||
|
.verify = ocelot_ptp_verify,
|
||||||
|
.enable = ocelot_ptp_enable,
|
||||||
|
};
|
||||||
|
|
||||||
#define VSC9959_INIT_TIMEOUT 50000
|
#define VSC9959_INIT_TIMEOUT 50000
|
||||||
#define VSC9959_GCB_RST_SLEEP 100
|
#define VSC9959_GCB_RST_SLEEP 100
|
||||||
#define VSC9959_SYS_RAMINIT_SLEEP 80
|
#define VSC9959_SYS_RAMINIT_SLEEP 80
|
||||||
|
@ -1169,6 +1186,7 @@ static const struct felix_info felix_info_vsc9959 = {
|
||||||
.num_tx_queues = FELIX_NUM_TC,
|
.num_tx_queues = FELIX_NUM_TC,
|
||||||
.switch_pci_bar = 4,
|
.switch_pci_bar = 4,
|
||||||
.imdio_pci_bar = 0,
|
.imdio_pci_bar = 0,
|
||||||
|
.ptp_caps = &vsc9959_ptp_caps,
|
||||||
.mdio_bus_alloc = vsc9959_mdio_bus_alloc,
|
.mdio_bus_alloc = vsc9959_mdio_bus_alloc,
|
||||||
.mdio_bus_free = vsc9959_mdio_bus_free,
|
.mdio_bus_free = vsc9959_mdio_bus_free,
|
||||||
.phylink_validate = vsc9959_phylink_validate,
|
.phylink_validate = vsc9959_phylink_validate,
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue