Lines Matching refs:ps
99 struct mv88e6xxx_priv_state *ps = ds_to_priv(ds); in mv88e6xxx_reg_read() local
102 mutex_lock(&ps->smi_mutex); in mv88e6xxx_reg_read()
104 mutex_unlock(&ps->smi_mutex); in mv88e6xxx_reg_read()
158 struct mv88e6xxx_priv_state *ps = ds_to_priv(ds); in mv88e6xxx_reg_write() local
161 mutex_lock(&ps->smi_mutex); in mv88e6xxx_reg_write()
163 mutex_unlock(&ps->smi_mutex); in mv88e6xxx_reg_write()
281 struct mv88e6xxx_priv_state *ps; in mv88e6xxx_ppu_reenable_work() local
283 ps = container_of(ugly, struct mv88e6xxx_priv_state, ppu_work); in mv88e6xxx_ppu_reenable_work()
284 if (mutex_trylock(&ps->ppu_mutex)) { in mv88e6xxx_ppu_reenable_work()
285 struct dsa_switch *ds = ((struct dsa_switch *)ps) - 1; in mv88e6xxx_ppu_reenable_work()
288 ps->ppu_disabled = 0; in mv88e6xxx_ppu_reenable_work()
289 mutex_unlock(&ps->ppu_mutex); in mv88e6xxx_ppu_reenable_work()
295 struct mv88e6xxx_priv_state *ps = (void *)_ps; in mv88e6xxx_ppu_reenable_timer() local
297 schedule_work(&ps->ppu_work); in mv88e6xxx_ppu_reenable_timer()
302 struct mv88e6xxx_priv_state *ps = ds_to_priv(ds); in mv88e6xxx_ppu_access_get() local
305 mutex_lock(&ps->ppu_mutex); in mv88e6xxx_ppu_access_get()
312 if (!ps->ppu_disabled) { in mv88e6xxx_ppu_access_get()
315 mutex_unlock(&ps->ppu_mutex); in mv88e6xxx_ppu_access_get()
318 ps->ppu_disabled = 1; in mv88e6xxx_ppu_access_get()
320 del_timer(&ps->ppu_timer); in mv88e6xxx_ppu_access_get()
329 struct mv88e6xxx_priv_state *ps = ds_to_priv(ds); in mv88e6xxx_ppu_access_put() local
332 mod_timer(&ps->ppu_timer, jiffies + msecs_to_jiffies(10)); in mv88e6xxx_ppu_access_put()
333 mutex_unlock(&ps->ppu_mutex); in mv88e6xxx_ppu_access_put()
338 struct mv88e6xxx_priv_state *ps = ds_to_priv(ds); in mv88e6xxx_ppu_state_init() local
340 mutex_init(&ps->ppu_mutex); in mv88e6xxx_ppu_state_init()
341 INIT_WORK(&ps->ppu_work, mv88e6xxx_ppu_reenable_work); in mv88e6xxx_ppu_state_init()
342 init_timer(&ps->ppu_timer); in mv88e6xxx_ppu_state_init()
343 ps->ppu_timer.data = (unsigned long)ps; in mv88e6xxx_ppu_state_init()
344 ps->ppu_timer.function = mv88e6xxx_ppu_reenable_timer; in mv88e6xxx_ppu_state_init()
439 struct mv88e6xxx_priv_state *ps = ds_to_priv(ds); in mv88e6xxx_6352_family() local
441 switch (ps->id) { in mv88e6xxx_6352_family()
554 struct mv88e6xxx_priv_state *ps = ds_to_priv(ds); in have_sw_in_discards() local
556 switch (ps->id) { in have_sw_in_discards()
586 struct mv88e6xxx_priv_state *ps = ds_to_priv(ds); in _mv88e6xxx_get_ethtool_stats() local
590 mutex_lock(&ps->stats_mutex); in _mv88e6xxx_get_ethtool_stats()
594 mutex_unlock(&ps->stats_mutex); in _mv88e6xxx_get_ethtool_stats()
627 mutex_unlock(&ps->stats_mutex); in _mv88e6xxx_get_ethtool_stats()
691 struct mv88e6xxx_priv_state *ps = ds_to_priv(ds); in mv88e6xxx_get_temp() local
697 mutex_lock(&ps->phy_mutex); in mv88e6xxx_get_temp()
730 mutex_unlock(&ps->phy_mutex); in mv88e6xxx_get_temp()
824 struct mv88e6xxx_priv_state *ps = ds_to_priv(ds); in mv88e6xxx_get_eee() local
827 mutex_lock(&ps->phy_mutex); in mv88e6xxx_get_eee()
844 mutex_unlock(&ps->phy_mutex); in mv88e6xxx_get_eee()
851 struct mv88e6xxx_priv_state *ps = ds_to_priv(ds); in mv88e6xxx_set_eee() local
855 mutex_lock(&ps->phy_mutex); in mv88e6xxx_set_eee()
869 mutex_unlock(&ps->phy_mutex); in mv88e6xxx_set_eee()
902 struct mv88e6xxx_priv_state *ps = ds_to_priv(ds); in mv88e6xxx_set_port_state() local
906 mutex_lock(&ps->smi_mutex); in mv88e6xxx_set_port_state()
922 ret = _mv88e6xxx_flush_fid(ds, ps->fid[port]); in mv88e6xxx_set_port_state()
932 mutex_unlock(&ps->smi_mutex); in mv88e6xxx_set_port_state()
939 struct mv88e6xxx_priv_state *ps = ds_to_priv(ds); in _mv88e6xxx_update_port_config() local
940 u8 fid = ps->fid[port]; in _mv88e6xxx_update_port_config()
946 reg |= (ps->bridge_mask[fid] | in _mv88e6xxx_update_port_config()
955 struct mv88e6xxx_priv_state *ps = ds_to_priv(ds); in _mv88e6xxx_update_bridge_config() local
964 if (ps->fid[port] != fid) in _mv88e6xxx_update_bridge_config()
979 struct mv88e6xxx_priv_state *ps = ds_to_priv(ds); in mv88e6xxx_join_bridge() local
987 fid = ps->fid[port]; in mv88e6xxx_join_bridge()
990 fid = ps->fid[__ffs(nmask)]; in mv88e6xxx_join_bridge()
992 nmask = ps->bridge_mask[fid] | (1 << port); in mv88e6xxx_join_bridge()
1000 mutex_lock(&ps->smi_mutex); in mv88e6xxx_join_bridge()
1002 ps->bridge_mask[fid] = br_port_mask; in mv88e6xxx_join_bridge()
1004 if (fid != ps->fid[port]) { in mv88e6xxx_join_bridge()
1005 ps->fid_mask |= 1 << ps->fid[port]; in mv88e6xxx_join_bridge()
1006 ps->fid[port] = fid; in mv88e6xxx_join_bridge()
1010 mutex_unlock(&ps->smi_mutex); in mv88e6xxx_join_bridge()
1017 struct mv88e6xxx_priv_state *ps = ds_to_priv(ds); in mv88e6xxx_leave_bridge() local
1021 fid = ps->fid[port]; in mv88e6xxx_leave_bridge()
1023 if (ps->bridge_mask[fid] != br_port_mask) { in mv88e6xxx_leave_bridge()
1026 fid, br_port_mask, ps->bridge_mask[fid]); in mv88e6xxx_leave_bridge()
1037 mutex_lock(&ps->smi_mutex); in mv88e6xxx_leave_bridge()
1039 newfid = __ffs(ps->fid_mask); in mv88e6xxx_leave_bridge()
1040 ps->fid[port] = newfid; in mv88e6xxx_leave_bridge()
1041 ps->fid_mask &= (1 << newfid); in mv88e6xxx_leave_bridge()
1042 ps->bridge_mask[fid] &= ~(1 << port); in mv88e6xxx_leave_bridge()
1043 ps->bridge_mask[newfid] = 1 << port; in mv88e6xxx_leave_bridge()
1049 mutex_unlock(&ps->smi_mutex); in mv88e6xxx_leave_bridge()
1056 struct mv88e6xxx_priv_state *ps = ds_to_priv(ds); in mv88e6xxx_port_stp_update() local
1081 ps->port_state[port] = stp_state; in mv88e6xxx_port_stp_update()
1082 set_bit(port, &ps->port_state_update_mask); in mv88e6xxx_port_stp_update()
1083 schedule_work(&ps->bridge_work); in mv88e6xxx_port_stp_update()
1123 struct mv88e6xxx_priv_state *ps = ds_to_priv(ds); in __mv88e6xxx_port_fdb_cmd() local
1124 u8 fid = ps->fid[port]; in __mv88e6xxx_port_fdb_cmd()
1151 struct mv88e6xxx_priv_state *ps = ds_to_priv(ds); in mv88e6xxx_port_fdb_add() local
1154 mutex_lock(&ps->smi_mutex); in mv88e6xxx_port_fdb_add()
1156 mutex_unlock(&ps->smi_mutex); in mv88e6xxx_port_fdb_add()
1164 struct mv88e6xxx_priv_state *ps = ds_to_priv(ds); in mv88e6xxx_port_fdb_del() local
1167 mutex_lock(&ps->smi_mutex); in mv88e6xxx_port_fdb_del()
1170 mutex_unlock(&ps->smi_mutex); in mv88e6xxx_port_fdb_del()
1178 struct mv88e6xxx_priv_state *ps = ds_to_priv(ds); in __mv88e6xxx_port_getnext() local
1179 u8 fid = ps->fid[port]; in __mv88e6xxx_port_getnext()
1218 struct mv88e6xxx_priv_state *ps = ds_to_priv(ds); in mv88e6xxx_port_fdb_getnext() local
1221 mutex_lock(&ps->smi_mutex); in mv88e6xxx_port_fdb_getnext()
1223 mutex_unlock(&ps->smi_mutex); in mv88e6xxx_port_fdb_getnext()
1230 struct mv88e6xxx_priv_state *ps; in mv88e6xxx_bridge_work() local
1234 ps = container_of(work, struct mv88e6xxx_priv_state, bridge_work); in mv88e6xxx_bridge_work()
1235 ds = ((struct dsa_switch *)ps) - 1; in mv88e6xxx_bridge_work()
1237 while (ps->port_state_update_mask) { in mv88e6xxx_bridge_work()
1238 port = __ffs(ps->port_state_update_mask); in mv88e6xxx_bridge_work()
1239 clear_bit(port, &ps->port_state_update_mask); in mv88e6xxx_bridge_work()
1240 mv88e6xxx_set_port_state(ds, port, ps->port_state[port]); in mv88e6xxx_bridge_work()
1246 struct mv88e6xxx_priv_state *ps = ds_to_priv(ds); in mv88e6xxx_setup_port_common() local
1249 mutex_lock(&ps->smi_mutex); in mv88e6xxx_setup_port_common()
1263 fid = __ffs(ps->fid_mask); in mv88e6xxx_setup_port_common()
1264 ps->fid[port] = fid; in mv88e6xxx_setup_port_common()
1265 ps->fid_mask &= ~(1 << fid); in mv88e6xxx_setup_port_common()
1268 ps->bridge_mask[fid] = 1 << port; in mv88e6xxx_setup_port_common()
1280 mutex_unlock(&ps->smi_mutex); in mv88e6xxx_setup_port_common()
1286 struct mv88e6xxx_priv_state *ps = ds_to_priv(ds); in mv88e6xxx_setup_common() local
1288 mutex_init(&ps->smi_mutex); in mv88e6xxx_setup_common()
1289 mutex_init(&ps->stats_mutex); in mv88e6xxx_setup_common()
1290 mutex_init(&ps->phy_mutex); in mv88e6xxx_setup_common()
1292 ps->id = REG_READ(REG_PORT(0), PORT_SWITCH_ID) & 0xfff0; in mv88e6xxx_setup_common()
1294 ps->fid_mask = (1 << DSA_MAX_PORTS) - 1; in mv88e6xxx_setup_common()
1296 INIT_WORK(&ps->bridge_work, mv88e6xxx_bridge_work); in mv88e6xxx_setup_common()
1303 struct mv88e6xxx_priv_state *ps = ds_to_priv(ds); in mv88e6xxx_switch_reset() local
1310 for (i = 0; i < ps->num_ports; i++) { in mv88e6xxx_switch_reset()
1343 struct mv88e6xxx_priv_state *ps = ds_to_priv(ds); in mv88e6xxx_phy_page_read() local
1346 mutex_lock(&ps->phy_mutex); in mv88e6xxx_phy_page_read()
1353 mutex_unlock(&ps->phy_mutex); in mv88e6xxx_phy_page_read()
1360 struct mv88e6xxx_priv_state *ps = ds_to_priv(ds); in mv88e6xxx_phy_page_write() local
1363 mutex_lock(&ps->phy_mutex); in mv88e6xxx_phy_page_write()
1371 mutex_unlock(&ps->phy_mutex); in mv88e6xxx_phy_page_write()
1377 struct mv88e6xxx_priv_state *ps = ds_to_priv(ds); in mv88e6xxx_port_to_phy_addr() local
1379 if (port >= 0 && port < ps->num_ports) in mv88e6xxx_port_to_phy_addr()
1387 struct mv88e6xxx_priv_state *ps = ds_to_priv(ds); in mv88e6xxx_phy_read() local
1394 mutex_lock(&ps->phy_mutex); in mv88e6xxx_phy_read()
1396 mutex_unlock(&ps->phy_mutex); in mv88e6xxx_phy_read()
1403 struct mv88e6xxx_priv_state *ps = ds_to_priv(ds); in mv88e6xxx_phy_write() local
1410 mutex_lock(&ps->phy_mutex); in mv88e6xxx_phy_write()
1412 mutex_unlock(&ps->phy_mutex); in mv88e6xxx_phy_write()
1419 struct mv88e6xxx_priv_state *ps = ds_to_priv(ds); in mv88e6xxx_phy_read_indirect() local
1426 mutex_lock(&ps->phy_mutex); in mv88e6xxx_phy_read_indirect()
1428 mutex_unlock(&ps->phy_mutex); in mv88e6xxx_phy_read_indirect()
1436 struct mv88e6xxx_priv_state *ps = ds_to_priv(ds); in mv88e6xxx_phy_write_indirect() local
1443 mutex_lock(&ps->phy_mutex); in mv88e6xxx_phy_write_indirect()
1445 mutex_unlock(&ps->phy_mutex); in mv88e6xxx_phy_write_indirect()