Lines Matching defs:dsaf_dev

33 static void dsaf_write_sub(struct dsaf_device *dsaf_dev, u32 reg, u32 val)
35 if (dsaf_dev->sub_ctrl)
36 dsaf_write_syscon(dsaf_dev->sub_ctrl, reg, val);
38 dsaf_write_reg(dsaf_dev->sc_base, reg, val);
41 static u32 dsaf_read_sub(struct dsaf_device *dsaf_dev, u32 reg)
46 if (dsaf_dev->sub_ctrl) {
47 err = dsaf_read_syscon(dsaf_dev->sub_ctrl, reg, &ret);
49 dev_err(dsaf_dev->dev, "dsaf_read_syscon error %d!\n",
52 ret = dsaf_read_reg(dsaf_dev->sc_base, reg);
250 static void hns_dsaf_acpi_srst_by_port(struct dsaf_device *dsaf_dev, u8 op_type,
267 obj = acpi_evaluate_dsm(ACPI_HANDLE(dsaf_dev->dev),
270 dev_warn(dsaf_dev->dev, "reset port_type%d port%d fail!",
278 static void hns_dsaf_rst(struct dsaf_device *dsaf_dev, bool dereset)
291 dsaf_write_sub(dsaf_dev, xbar_reg_addr, RESET_REQ_OR_DREQ);
292 dsaf_write_sub(dsaf_dev, nt_reg_addr, RESET_REQ_OR_DREQ);
295 static void hns_dsaf_rst_acpi(struct dsaf_device *dsaf_dev, bool dereset)
297 hns_dsaf_acpi_srst_by_port(dsaf_dev, HNS_OP_RESET_FUNC,
302 static void hns_dsaf_xge_srst_by_port(struct dsaf_device *dsaf_dev, u32 port,
312 reg_val |= 0x2082082 << dsaf_dev->mac_cb[port]->port_rst_off;
319 dsaf_write_sub(dsaf_dev, reg_addr, reg_val);
322 static void hns_dsaf_xge_srst_by_port_acpi(struct dsaf_device *dsaf_dev,
325 hns_dsaf_acpi_srst_by_port(dsaf_dev, HNS_OP_RESET_FUNC,
331 * @dsaf_dev: dsaf device struct pointer
341 hns_dsaf_srst_chns(struct dsaf_device *dsaf_dev, u32 msk, bool dereset)
350 dsaf_write_sub(dsaf_dev, reg_addr, msk);
355 * @dsaf_dev: dsaf device struct pointer
365 hns_dsaf_srst_chns_acpi(struct dsaf_device *dsaf_dev, u32 msk, bool dereset)
367 hns_dsaf_acpi_srst_by_port(dsaf_dev, HNS_OP_RESET_FUNC,
372 static void hns_dsaf_roce_srst(struct dsaf_device *dsaf_dev, bool dereset)
375 dsaf_write_sub(dsaf_dev, DSAF_SUB_SC_ROCEE_RESET_REQ_REG, 1);
377 dsaf_write_sub(dsaf_dev,
379 dsaf_write_sub(dsaf_dev,
382 dsaf_write_sub(dsaf_dev, DSAF_SUB_SC_ROCEE_CLK_EN_REG, 1);
386 static void hns_dsaf_roce_srst_acpi(struct dsaf_device *dsaf_dev, bool dereset)
388 hns_dsaf_acpi_srst_by_port(dsaf_dev, HNS_OP_RESET_FUNC,
392 static void hns_dsaf_ge_srst_by_port(struct dsaf_device *dsaf_dev, u32 port,
402 if (!HNS_DSAF_IS_DEBUG(dsaf_dev)) {
408 port_rst_off = dsaf_dev->mac_cb[port]->port_rst_off;
410 reg_val_2 = AE_IS_VER1(dsaf_dev->dsaf_ver) ?
415 dsaf_write_sub(dsaf_dev, DSAF_SUB_SC_GE_RESET_REQ1_REG,
418 dsaf_write_sub(dsaf_dev, DSAF_SUB_SC_GE_RESET_REQ0_REG,
421 dsaf_write_sub(dsaf_dev, DSAF_SUB_SC_GE_RESET_DREQ0_REG,
424 dsaf_write_sub(dsaf_dev, DSAF_SUB_SC_GE_RESET_DREQ1_REG,
429 reg_val_2 = AE_IS_VER1(dsaf_dev->dsaf_ver) ? 0x100 : 0x40;
431 reg_val_1 <<= dsaf_dev->reset_offset;
432 reg_val_2 <<= dsaf_dev->reset_offset;
435 dsaf_write_sub(dsaf_dev, DSAF_SUB_SC_GE_RESET_REQ1_REG,
438 dsaf_write_sub(dsaf_dev, DSAF_SUB_SC_PPE_RESET_REQ_REG,
441 dsaf_write_sub(dsaf_dev, DSAF_SUB_SC_GE_RESET_DREQ1_REG,
444 dsaf_write_sub(dsaf_dev, DSAF_SUB_SC_PPE_RESET_DREQ_REG,
450 static void hns_dsaf_ge_srst_by_port_acpi(struct dsaf_device *dsaf_dev,
453 hns_dsaf_acpi_srst_by_port(dsaf_dev, HNS_OP_RESET_FUNC,
457 static void hns_ppe_srst_by_port(struct dsaf_device *dsaf_dev, u32 port,
463 reg_val |= RESET_REQ_OR_DREQ << dsaf_dev->mac_cb[port]->port_rst_off;
470 dsaf_write_sub(dsaf_dev, reg_addr, reg_val);
474 hns_ppe_srst_by_port_acpi(struct dsaf_device *dsaf_dev, u32 port, bool dereset)
476 hns_dsaf_acpi_srst_by_port(dsaf_dev, HNS_OP_RESET_FUNC,
480 static void hns_ppe_com_srst(struct dsaf_device *dsaf_dev, bool dereset)
485 if (!(dev_of_node(dsaf_dev->dev)))
488 if (!HNS_DSAF_IS_DEBUG(dsaf_dev)) {
496 reg_val = 0x100 << dsaf_dev->reset_offset;
504 dsaf_write_sub(dsaf_dev, reg_addr, reg_val);
516 bool is_ver1 = AE_IS_VER1(mac_cb->dsaf_dev->dsaf_ver);
521 if (HNS_DSAF_IS_DEBUG(mac_cb->dsaf_dev))
529 if (!HNS_DSAF_IS_DEBUG(mac_cb->dsaf_dev) && mac_id <= 3)
535 mode = dsaf_read_sub(mac_cb->dsaf_dev, reg);
653 if (!AE_IS_VER1(mac_cb->dsaf_dev->dsaf_ver)) {
659 if ((!HNS_DSAF_IS_DEBUG(mac_cb->dsaf_dev)) &&
699 obj = acpi_evaluate_dsm(ACPI_HANDLE(mac_cb->dsaf_dev->dev),
703 dev_warn(mac_cb->dsaf_dev->dev, "set port%d serdes lp fail!",
714 struct dsaf_misc_op *hns_misc_op_get(struct dsaf_device *dsaf_dev)
718 misc_op = devm_kzalloc(dsaf_dev->dev, sizeof(*misc_op), GFP_KERNEL);
722 if (dev_of_node(dsaf_dev->dev)) {
739 } else if (is_acpi_node(dsaf_dev->dev->fwnode)) {
757 devm_kfree(dsaf_dev->dev, (void *)misc_op);