Lines Matching refs:chip

4 #include "chip.h"
10 static int mv88e6xxx_atu_get_hash(struct mv88e6xxx_chip *chip, u8 *hash)
12 if (chip->info->ops->atu_get_hash)
13 return chip->info->ops->atu_get_hash(chip, hash);
18 static int mv88e6xxx_atu_set_hash(struct mv88e6xxx_chip *chip, u8 hash)
20 if (chip->info->ops->atu_set_hash)
21 return chip->info->ops->atu_set_hash(chip, hash);
34 struct mv88e6xxx_chip *chip = ds->priv;
37 mv88e6xxx_reg_lock(chip);
41 err = mv88e6xxx_atu_get_hash(chip, &ctx->val.vu8);
48 mv88e6xxx_reg_unlock(chip);
56 struct mv88e6xxx_chip *chip = ds->priv;
59 mv88e6xxx_reg_lock(chip);
63 err = mv88e6xxx_atu_set_hash(chip, ctx->val.vu8);
70 mv88e6xxx_reg_unlock(chip);
101 static u64 mv88e6xxx_devlink_atu_bin_get(struct mv88e6xxx_chip *chip,
107 mv88e6xxx_reg_lock(chip);
109 err = mv88e6xxx_g2_atu_stats_set(chip, MV88E6XXX_G2_ATU_STATS_MODE_ALL,
112 dev_err(chip->dev, "failed to set ATU stats kind/bin\n");
116 err = mv88e6xxx_g1_atu_get_next(chip, 0);
118 dev_err(chip->dev, "failed to perform ATU get next\n");
122 err = mv88e6xxx_g2_atu_stats_get(chip, &occupancy);
124 dev_err(chip->dev, "failed to get ATU stats\n");
131 mv88e6xxx_reg_unlock(chip);
138 struct mv88e6xxx_chip *chip = priv;
140 return mv88e6xxx_devlink_atu_bin_get(chip,
146 struct mv88e6xxx_chip *chip = priv;
148 return mv88e6xxx_devlink_atu_bin_get(chip,
154 struct mv88e6xxx_chip *chip = priv;
156 return mv88e6xxx_devlink_atu_bin_get(chip,
162 struct mv88e6xxx_chip *chip = priv;
164 return mv88e6xxx_devlink_atu_bin_get(chip,
179 struct mv88e6xxx_chip *chip = ds->priv;
183 mv88e6xxx_num_macs(chip),
184 mv88e6xxx_num_macs(chip),
188 mv88e6xxx_num_macs(chip),
196 mv88e6xxx_num_macs(chip) / 4,
197 mv88e6xxx_num_macs(chip) / 4,
201 mv88e6xxx_num_macs(chip) / 4,
209 mv88e6xxx_num_macs(chip) / 4,
217 mv88e6xxx_num_macs(chip) / 4,
225 mv88e6xxx_num_macs(chip) / 4,
235 chip);
240 chip);
245 chip);
250 chip);
255 chip);
271 struct mv88e6xxx_chip *chip = ds->priv;
279 mv88e6xxx_reg_lock(chip);
283 err = mv88e6xxx_g1_read(chip, i, &registers[i]);
286 err = mv88e6xxx_g2_read(chip, i, &registers[i]);
299 mv88e6xxx_reg_unlock(chip);
319 static int mv88e6xxx_region_atu_snapshot_fid(struct mv88e6xxx_chip *chip,
332 err = mv88e6xxx_g1_atu_getnext(chip, fid, &addr);
339 err = mv88e6xxx_g1_read(chip, MV88E6XXX_G1_ATU_OP, &atu_op);
343 err = mv88e6xxx_g1_read(chip, MV88E6XXX_G1_ATU_DATA, &atu_data);
347 err = mv88e6xxx_g1_read(chip, MV88E6XXX_G1_ATU_MAC01, &atu_01);
351 err = mv88e6xxx_g1_read(chip, MV88E6XXX_G1_ATU_MAC23, &atu_23);
355 err = mv88e6xxx_g1_read(chip, MV88E6XXX_G1_ATU_MAC45, &atu_45);
379 struct mv88e6xxx_chip *chip = ds->priv;
382 table = kmalloc_array(mv88e6xxx_num_databases(chip),
388 memset(table, 0, mv88e6xxx_num_databases(chip) *
393 mv88e6xxx_reg_lock(chip);
395 err = mv88e6xxx_fid_map(chip, fid_bitmap);
406 err = mv88e6xxx_region_atu_snapshot_fid(chip, fid, table,
415 mv88e6xxx_reg_unlock(chip);
427 struct mv88e6xxx_chip *chip = ds->priv;
435 mv88e6xxx_reg_lock(chip);
437 err = mv88e6xxx_port_read(chip, port, i, &registers[i]);
445 mv88e6xxx_reg_unlock(chip);
504 mv88e6xxx_teardown_devlink_regions_global(struct mv88e6xxx_chip *chip)
509 dsa_devlink_region_destroy(chip->regions[i]);
513 mv88e6xxx_teardown_devlink_regions_port(struct mv88e6xxx_chip *chip,
516 dsa_devlink_region_destroy(chip->ports[port].region);
520 struct mv88e6xxx_chip *chip,
532 chip->ports[port].region = region;
538 mv88e6xxx_teardown_devlink_regions_ports(struct mv88e6xxx_chip *chip)
542 for (port = 0; port < mv88e6xxx_num_ports(chip); port++)
543 mv88e6xxx_teardown_devlink_regions_port(chip, port);
547 struct mv88e6xxx_chip *chip)
552 for (port = 0; port < mv88e6xxx_num_ports(chip); port++) {
553 err = mv88e6xxx_setup_devlink_regions_port(ds, chip, port);
562 mv88e6xxx_teardown_devlink_regions_port(chip, port);
568 struct mv88e6xxx_chip *chip)
580 size = mv88e6xxx_num_databases(chip) *
586 chip->regions[i] = region;
592 dsa_devlink_region_destroy(chip->regions[j]);
599 struct mv88e6xxx_chip *chip = ds->priv;
602 err = mv88e6xxx_setup_devlink_regions_global(ds, chip);
606 err = mv88e6xxx_setup_devlink_regions_ports(ds, chip);
608 mv88e6xxx_teardown_devlink_regions_global(chip);
615 struct mv88e6xxx_chip *chip = ds->priv;
617 mv88e6xxx_teardown_devlink_regions_ports(chip);
618 mv88e6xxx_teardown_devlink_regions_global(chip);
625 struct mv88e6xxx_chip *chip = ds->priv;
634 chip->info->name);