smi 113 arch/x86/events/msr.c PMU_EVENT_ATTR_STRING(smi, attr_smi, "event=0x04" ); smi 125 arch/x86/events/msr.c PMU_EVENT_GROUP(events, smi); smi 325 arch/x86/include/uapi/asm/kvm.h } smi; smi 3810 arch/x86/kvm/x86.c events->smi.smm = is_smm(vcpu); smi 3811 arch/x86/kvm/x86.c events->smi.pending = vcpu->arch.smi_pending; smi 3812 arch/x86/kvm/x86.c events->smi.smm_inside_nmi = smi 3814 arch/x86/kvm/x86.c events->smi.latched_init = kvm_lapic_latched_init(vcpu); smi 3855 arch/x86/kvm/x86.c (events->smi.smm || events->smi.pending) && smi 3885 arch/x86/kvm/x86.c if (!!(vcpu->arch.hflags & HF_SMM_MASK) != events->smi.smm) { smi 3886 arch/x86/kvm/x86.c if (events->smi.smm) smi 3893 arch/x86/kvm/x86.c vcpu->arch.smi_pending = events->smi.pending; smi 3895 arch/x86/kvm/x86.c if (events->smi.smm) { smi 3896 arch/x86/kvm/x86.c if (events->smi.smm_inside_nmi) smi 3901 arch/x86/kvm/x86.c if (events->smi.latched_init) smi 38 drivers/char/ipmi/ipmi_powernv.c struct ipmi_smi_powernv *smi = send_info; smi 40 drivers/char/ipmi/ipmi_powernv.c smi->intf = intf; smi 44 drivers/char/ipmi/ipmi_powernv.c static void send_error_reply(struct ipmi_smi_powernv *smi, smi 51 drivers/char/ipmi/ipmi_powernv.c ipmi_smi_msg_received(smi->intf, msg); smi 56 drivers/char/ipmi/ipmi_powernv.c struct ipmi_smi_powernv *smi = send_info; smi 74 drivers/char/ipmi/ipmi_powernv.c spin_lock_irqsave(&smi->msg_lock, flags); smi 76 drivers/char/ipmi/ipmi_powernv.c if (smi->cur_msg) { smi 82 drivers/char/ipmi/ipmi_powernv.c opal_msg = smi->opal_msg; smi 93 drivers/char/ipmi/ipmi_powernv.c smi->interface_id, opal_msg, size); smi 94 drivers/char/ipmi/ipmi_powernv.c rc = opal_ipmi_send(smi->interface_id, opal_msg, size); smi 98 drivers/char/ipmi/ipmi_powernv.c smi->cur_msg = msg; smi 99 drivers/char/ipmi/ipmi_powernv.c spin_unlock_irqrestore(&smi->msg_lock, flags); smi 105 drivers/char/ipmi/ipmi_powernv.c spin_unlock_irqrestore(&smi->msg_lock, flags); smi 107 drivers/char/ipmi/ipmi_powernv.c send_error_reply(smi, msg, comp); smi 110 drivers/char/ipmi/ipmi_powernv.c static int ipmi_powernv_recv(struct ipmi_smi_powernv *smi) smi 119 drivers/char/ipmi/ipmi_powernv.c smi->interface_id); smi 121 drivers/char/ipmi/ipmi_powernv.c spin_lock_irqsave(&smi->msg_lock, flags); smi 123 drivers/char/ipmi/ipmi_powernv.c if (!smi->cur_msg) { smi 124 drivers/char/ipmi/ipmi_powernv.c spin_unlock_irqrestore(&smi->msg_lock, flags); smi 129 drivers/char/ipmi/ipmi_powernv.c msg = smi->cur_msg; smi 130 drivers/char/ipmi/ipmi_powernv.c opal_msg = smi->opal_msg; smi 134 drivers/char/ipmi/ipmi_powernv.c rc = opal_ipmi_recv(smi->interface_id, smi 143 drivers/char/ipmi/ipmi_powernv.c spin_unlock_irqrestore(&smi->msg_lock, flags); smi 147 drivers/char/ipmi/ipmi_powernv.c smi->cur_msg = NULL; smi 148 drivers/char/ipmi/ipmi_powernv.c spin_unlock_irqrestore(&smi->msg_lock, flags); smi 149 drivers/char/ipmi/ipmi_powernv.c send_error_reply(smi, msg, IPMI_ERR_UNSPECIFIED); smi 154 drivers/char/ipmi/ipmi_powernv.c spin_unlock_irqrestore(&smi->msg_lock, flags); smi 160 drivers/char/ipmi/ipmi_powernv.c spin_unlock_irqrestore(&smi->msg_lock, flags); smi 172 drivers/char/ipmi/ipmi_powernv.c smi->cur_msg = NULL; smi 173 drivers/char/ipmi/ipmi_powernv.c spin_unlock_irqrestore(&smi->msg_lock, flags); smi 174 drivers/char/ipmi/ipmi_powernv.c ipmi_smi_msg_received(smi->intf, msg); smi 189 drivers/char/ipmi/ipmi_powernv.c struct ipmi_smi_powernv *smi = send_info; smi 191 drivers/char/ipmi/ipmi_powernv.c ipmi_powernv_recv(smi); smi 205 drivers/char/ipmi/ipmi_powernv.c struct ipmi_smi_powernv *smi = data; smi 207 drivers/char/ipmi/ipmi_powernv.c ipmi_powernv_recv(smi); smi 286 drivers/char/ipmi/ipmi_powernv.c struct ipmi_smi_powernv *smi = dev_get_drvdata(&pdev->dev); smi 288 drivers/char/ipmi/ipmi_powernv.c ipmi_unregister_smi(smi->intf); smi 289 drivers/char/ipmi/ipmi_powernv.c free_irq(smi->irq, smi); smi 290 drivers/char/ipmi/ipmi_powernv.c irq_dispose_mapping(smi->irq); smi 247 drivers/char/ipmi/ipmi_si_intf.c #define smi_inc_stat(smi, stat) \ smi 248 drivers/char/ipmi/ipmi_si_intf.c atomic_inc(&(smi)->stats[SI_STAT_ ## stat]) smi 249 drivers/char/ipmi/ipmi_si_intf.c #define smi_get_stat(smi, stat) \ smi 250 drivers/char/ipmi/ipmi_si_intf.c ((unsigned int) atomic_read(&(smi)->stats[SI_STAT_ ## stat])) smi 261 drivers/char/ipmi/ipmi_si_intf.c static int try_smi_init(struct smi_info *smi); smi 1199 drivers/char/ipmi/ipmi_si_intf.c struct smi_info *smi = send_info; smi 1201 drivers/char/ipmi/ipmi_si_intf.c data->addr_src = smi->io.addr_source; smi 1202 drivers/char/ipmi/ipmi_si_intf.c data->dev = smi->io.dev; smi 1203 drivers/char/ipmi/ipmi_si_intf.c data->addr_info = smi->io.addr_info; smi 1204 drivers/char/ipmi/ipmi_si_intf.c get_device(smi->io.dev); smi 56 drivers/char/ipmi/ipmi_si_sm.h unsigned int (*init_data)(struct si_sm_data *smi, smi 65 drivers/char/ipmi/ipmi_si_sm.h int (*start_transaction)(struct si_sm_data *smi, smi 73 drivers/char/ipmi/ipmi_si_sm.h int (*get_result)(struct si_sm_data *smi, smi 84 drivers/char/ipmi/ipmi_si_sm.h enum si_sm_result (*event)(struct si_sm_data *smi, long time); smi 90 drivers/char/ipmi/ipmi_si_sm.h int (*detect)(struct si_sm_data *smi); smi 93 drivers/char/ipmi/ipmi_si_sm.h void (*cleanup)(struct si_sm_data *smi); smi 81 drivers/memory/mtk-smi.c struct mtk_smi smi; smi 89 drivers/memory/mtk-smi.c static int mtk_smi_clk_enable(const struct mtk_smi *smi) smi 93 drivers/memory/mtk-smi.c ret = clk_prepare_enable(smi->clk_apb); smi 97 drivers/memory/mtk-smi.c ret = clk_prepare_enable(smi->clk_smi); smi 101 drivers/memory/mtk-smi.c ret = clk_prepare_enable(smi->clk_gals0); smi 105 drivers/memory/mtk-smi.c ret = clk_prepare_enable(smi->clk_gals1); smi 112 drivers/memory/mtk-smi.c clk_disable_unprepare(smi->clk_gals0); smi 114 drivers/memory/mtk-smi.c clk_disable_unprepare(smi->clk_smi); smi 116 drivers/memory/mtk-smi.c clk_disable_unprepare(smi->clk_apb); smi 120 drivers/memory/mtk-smi.c static void mtk_smi_clk_disable(const struct mtk_smi *smi) smi 122 drivers/memory/mtk-smi.c clk_disable_unprepare(smi->clk_gals1); smi 123 drivers/memory/mtk-smi.c clk_disable_unprepare(smi->clk_gals0); smi 124 drivers/memory/mtk-smi.c clk_disable_unprepare(smi->clk_smi); smi 125 drivers/memory/mtk-smi.c clk_disable_unprepare(smi->clk_apb); smi 287 drivers/memory/mtk-smi.c larb->smi.clk_apb = devm_clk_get(dev, "apb"); smi 288 drivers/memory/mtk-smi.c if (IS_ERR(larb->smi.clk_apb)) smi 289 drivers/memory/mtk-smi.c return PTR_ERR(larb->smi.clk_apb); smi 291 drivers/memory/mtk-smi.c larb->smi.clk_smi = devm_clk_get(dev, "smi"); smi 292 drivers/memory/mtk-smi.c if (IS_ERR(larb->smi.clk_smi)) smi 293 drivers/memory/mtk-smi.c return PTR_ERR(larb->smi.clk_smi); smi 297 drivers/memory/mtk-smi.c larb->smi.clk_gals0 = devm_clk_get(dev, "gals"); smi 298 drivers/memory/mtk-smi.c if (PTR_ERR(larb->smi.clk_gals0) == -ENOENT) smi 299 drivers/memory/mtk-smi.c larb->smi.clk_gals0 = NULL; smi 300 drivers/memory/mtk-smi.c else if (IS_ERR(larb->smi.clk_gals0)) smi 301 drivers/memory/mtk-smi.c return PTR_ERR(larb->smi.clk_gals0); smi 303 drivers/memory/mtk-smi.c larb->smi.dev = dev; smi 345 drivers/memory/mtk-smi.c ret = mtk_smi_clk_enable(&larb->smi); smi 362 drivers/memory/mtk-smi.c mtk_smi_clk_disable(&larb->smi); smi 301 drivers/mmc/host/cavium.c struct sg_mapping_iter *smi = &host->smi; smi 310 drivers/mmc/host/cavium.c if (smi->consumed >= smi->length) { smi 311 drivers/mmc/host/cavium.c if (!sg_miter_next(smi)) smi 313 drivers/mmc/host/cavium.c smi->consumed = 0; smi 321 drivers/mmc/host/cavium.c while (smi->consumed < smi->length && shift >= 0) { smi 322 drivers/mmc/host/cavium.c ((u8 *)smi->addr)[smi->consumed] = (dat >> shift) & 0xff; smi 324 drivers/mmc/host/cavium.c smi->consumed++; smi 329 drivers/mmc/host/cavium.c sg_miter_stop(smi); smi 711 drivers/mmc/host/cavium.c sg_miter_start(&host->smi, mrq->data->sg, mrq->data->sg_len, smi 718 drivers/mmc/host/cavium.c struct sg_mapping_iter *smi = &host->smi; smi 724 drivers/mmc/host/cavium.c sg_miter_start(smi, mrq->data->sg, mrq->data->sg_len, SG_MITER_FROM_SG); smi 730 drivers/mmc/host/cavium.c if (smi->consumed >= smi->length) { smi 731 drivers/mmc/host/cavium.c if (!sg_miter_next(smi)) smi 733 drivers/mmc/host/cavium.c smi->consumed = 0; smi 736 drivers/mmc/host/cavium.c while (smi->consumed < smi->length && shift >= 0) { smi 737 drivers/mmc/host/cavium.c dat |= (u64)((u8 *)smi->addr)[smi->consumed] << shift; smi 739 drivers/mmc/host/cavium.c smi->consumed++; smi 749 drivers/mmc/host/cavium.c sg_miter_stop(smi); smi 68 drivers/mmc/host/cavium.h struct sg_mapping_iter smi; smi 49 drivers/net/dsa/realtek-smi-core.c static inline void realtek_smi_clk_delay(struct realtek_smi *smi) smi 51 drivers/net/dsa/realtek-smi-core.c ndelay(smi->clk_delay); smi 54 drivers/net/dsa/realtek-smi-core.c static void realtek_smi_start(struct realtek_smi *smi) smi 59 drivers/net/dsa/realtek-smi-core.c gpiod_direction_output(smi->mdc, 0); smi 60 drivers/net/dsa/realtek-smi-core.c gpiod_direction_output(smi->mdio, 1); smi 61 drivers/net/dsa/realtek-smi-core.c realtek_smi_clk_delay(smi); smi 64 drivers/net/dsa/realtek-smi-core.c gpiod_set_value(smi->mdc, 1); smi 65 drivers/net/dsa/realtek-smi-core.c realtek_smi_clk_delay(smi); smi 66 drivers/net/dsa/realtek-smi-core.c gpiod_set_value(smi->mdc, 0); smi 67 drivers/net/dsa/realtek-smi-core.c realtek_smi_clk_delay(smi); smi 70 drivers/net/dsa/realtek-smi-core.c gpiod_set_value(smi->mdc, 1); smi 71 drivers/net/dsa/realtek-smi-core.c realtek_smi_clk_delay(smi); smi 72 drivers/net/dsa/realtek-smi-core.c gpiod_set_value(smi->mdio, 0); smi 73 drivers/net/dsa/realtek-smi-core.c realtek_smi_clk_delay(smi); smi 74 drivers/net/dsa/realtek-smi-core.c gpiod_set_value(smi->mdc, 0); smi 75 drivers/net/dsa/realtek-smi-core.c realtek_smi_clk_delay(smi); smi 76 drivers/net/dsa/realtek-smi-core.c gpiod_set_value(smi->mdio, 1); smi 79 drivers/net/dsa/realtek-smi-core.c static void realtek_smi_stop(struct realtek_smi *smi) smi 81 drivers/net/dsa/realtek-smi-core.c realtek_smi_clk_delay(smi); smi 82 drivers/net/dsa/realtek-smi-core.c gpiod_set_value(smi->mdio, 0); smi 83 drivers/net/dsa/realtek-smi-core.c gpiod_set_value(smi->mdc, 1); smi 84 drivers/net/dsa/realtek-smi-core.c realtek_smi_clk_delay(smi); smi 85 drivers/net/dsa/realtek-smi-core.c gpiod_set_value(smi->mdio, 1); smi 86 drivers/net/dsa/realtek-smi-core.c realtek_smi_clk_delay(smi); smi 87 drivers/net/dsa/realtek-smi-core.c gpiod_set_value(smi->mdc, 1); smi 88 drivers/net/dsa/realtek-smi-core.c realtek_smi_clk_delay(smi); smi 89 drivers/net/dsa/realtek-smi-core.c gpiod_set_value(smi->mdc, 0); smi 90 drivers/net/dsa/realtek-smi-core.c realtek_smi_clk_delay(smi); smi 91 drivers/net/dsa/realtek-smi-core.c gpiod_set_value(smi->mdc, 1); smi 94 drivers/net/dsa/realtek-smi-core.c realtek_smi_clk_delay(smi); smi 95 drivers/net/dsa/realtek-smi-core.c gpiod_set_value(smi->mdc, 0); smi 96 drivers/net/dsa/realtek-smi-core.c realtek_smi_clk_delay(smi); smi 97 drivers/net/dsa/realtek-smi-core.c gpiod_set_value(smi->mdc, 1); smi 100 drivers/net/dsa/realtek-smi-core.c gpiod_direction_input(smi->mdio); smi 101 drivers/net/dsa/realtek-smi-core.c gpiod_direction_input(smi->mdc); smi 104 drivers/net/dsa/realtek-smi-core.c static void realtek_smi_write_bits(struct realtek_smi *smi, u32 data, u32 len) smi 107 drivers/net/dsa/realtek-smi-core.c realtek_smi_clk_delay(smi); smi 110 drivers/net/dsa/realtek-smi-core.c gpiod_set_value(smi->mdio, !!(data & (1 << (len - 1)))); smi 111 drivers/net/dsa/realtek-smi-core.c realtek_smi_clk_delay(smi); smi 114 drivers/net/dsa/realtek-smi-core.c gpiod_set_value(smi->mdc, 1); smi 115 drivers/net/dsa/realtek-smi-core.c realtek_smi_clk_delay(smi); smi 116 drivers/net/dsa/realtek-smi-core.c gpiod_set_value(smi->mdc, 0); smi 120 drivers/net/dsa/realtek-smi-core.c static void realtek_smi_read_bits(struct realtek_smi *smi, u32 len, u32 *data) smi 122 drivers/net/dsa/realtek-smi-core.c gpiod_direction_input(smi->mdio); smi 127 drivers/net/dsa/realtek-smi-core.c realtek_smi_clk_delay(smi); smi 130 drivers/net/dsa/realtek-smi-core.c gpiod_set_value(smi->mdc, 1); smi 131 drivers/net/dsa/realtek-smi-core.c realtek_smi_clk_delay(smi); smi 132 drivers/net/dsa/realtek-smi-core.c u = !!gpiod_get_value(smi->mdio); smi 133 drivers/net/dsa/realtek-smi-core.c gpiod_set_value(smi->mdc, 0); smi 138 drivers/net/dsa/realtek-smi-core.c gpiod_direction_output(smi->mdio, 0); smi 141 drivers/net/dsa/realtek-smi-core.c static int realtek_smi_wait_for_ack(struct realtek_smi *smi) smi 149 drivers/net/dsa/realtek-smi-core.c realtek_smi_read_bits(smi, 1, &ack); smi 154 drivers/net/dsa/realtek-smi-core.c dev_err(smi->dev, "ACK timeout\n"); smi 162 drivers/net/dsa/realtek-smi-core.c static int realtek_smi_write_byte(struct realtek_smi *smi, u8 data) smi 164 drivers/net/dsa/realtek-smi-core.c realtek_smi_write_bits(smi, data, 8); smi 165 drivers/net/dsa/realtek-smi-core.c return realtek_smi_wait_for_ack(smi); smi 168 drivers/net/dsa/realtek-smi-core.c static int realtek_smi_write_byte_noack(struct realtek_smi *smi, u8 data) smi 170 drivers/net/dsa/realtek-smi-core.c realtek_smi_write_bits(smi, data, 8); smi 174 drivers/net/dsa/realtek-smi-core.c static int realtek_smi_read_byte0(struct realtek_smi *smi, u8 *data) smi 179 drivers/net/dsa/realtek-smi-core.c realtek_smi_read_bits(smi, 8, &t); smi 183 drivers/net/dsa/realtek-smi-core.c realtek_smi_write_bits(smi, 0x00, 1); smi 188 drivers/net/dsa/realtek-smi-core.c static int realtek_smi_read_byte1(struct realtek_smi *smi, u8 *data) smi 193 drivers/net/dsa/realtek-smi-core.c realtek_smi_read_bits(smi, 8, &t); smi 197 drivers/net/dsa/realtek-smi-core.c realtek_smi_write_bits(smi, 0x01, 1); smi 202 drivers/net/dsa/realtek-smi-core.c static int realtek_smi_read_reg(struct realtek_smi *smi, u32 addr, u32 *data) smi 209 drivers/net/dsa/realtek-smi-core.c spin_lock_irqsave(&smi->lock, flags); smi 211 drivers/net/dsa/realtek-smi-core.c realtek_smi_start(smi); smi 214 drivers/net/dsa/realtek-smi-core.c ret = realtek_smi_write_byte(smi, smi->cmd_read); smi 219 drivers/net/dsa/realtek-smi-core.c ret = realtek_smi_write_byte(smi, addr & 0xff); smi 224 drivers/net/dsa/realtek-smi-core.c ret = realtek_smi_write_byte(smi, addr >> 8); smi 229 drivers/net/dsa/realtek-smi-core.c realtek_smi_read_byte0(smi, &lo); smi 231 drivers/net/dsa/realtek-smi-core.c realtek_smi_read_byte1(smi, &hi); smi 238 drivers/net/dsa/realtek-smi-core.c realtek_smi_stop(smi); smi 239 drivers/net/dsa/realtek-smi-core.c spin_unlock_irqrestore(&smi->lock, flags); smi 244 drivers/net/dsa/realtek-smi-core.c static int realtek_smi_write_reg(struct realtek_smi *smi, smi 250 drivers/net/dsa/realtek-smi-core.c spin_lock_irqsave(&smi->lock, flags); smi 252 drivers/net/dsa/realtek-smi-core.c realtek_smi_start(smi); smi 255 drivers/net/dsa/realtek-smi-core.c ret = realtek_smi_write_byte(smi, smi->cmd_write); smi 260 drivers/net/dsa/realtek-smi-core.c ret = realtek_smi_write_byte(smi, addr & 0xff); smi 265 drivers/net/dsa/realtek-smi-core.c ret = realtek_smi_write_byte(smi, addr >> 8); smi 270 drivers/net/dsa/realtek-smi-core.c ret = realtek_smi_write_byte(smi, data & 0xff); smi 276 drivers/net/dsa/realtek-smi-core.c ret = realtek_smi_write_byte(smi, data >> 8); smi 278 drivers/net/dsa/realtek-smi-core.c ret = realtek_smi_write_byte_noack(smi, data >> 8); smi 285 drivers/net/dsa/realtek-smi-core.c realtek_smi_stop(smi); smi 286 drivers/net/dsa/realtek-smi-core.c spin_unlock_irqrestore(&smi->lock, flags); smi 295 drivers/net/dsa/realtek-smi-core.c int realtek_smi_write_reg_noack(struct realtek_smi *smi, u32 addr, smi 298 drivers/net/dsa/realtek-smi-core.c return realtek_smi_write_reg(smi, addr, data, false); smi 306 drivers/net/dsa/realtek-smi-core.c struct realtek_smi *smi = ctx; smi 308 drivers/net/dsa/realtek-smi-core.c return realtek_smi_write_reg(smi, reg, val, true); smi 313 drivers/net/dsa/realtek-smi-core.c struct realtek_smi *smi = ctx; smi 315 drivers/net/dsa/realtek-smi-core.c return realtek_smi_read_reg(smi, reg, val); smi 332 drivers/net/dsa/realtek-smi-core.c struct realtek_smi *smi = bus->priv; smi 334 drivers/net/dsa/realtek-smi-core.c return smi->ops->phy_read(smi, addr, regnum); smi 340 drivers/net/dsa/realtek-smi-core.c struct realtek_smi *smi = bus->priv; smi 342 drivers/net/dsa/realtek-smi-core.c return smi->ops->phy_write(smi, addr, regnum, val); smi 345 drivers/net/dsa/realtek-smi-core.c int realtek_smi_setup_mdio(struct realtek_smi *smi) smi 350 drivers/net/dsa/realtek-smi-core.c mdio_np = of_get_compatible_child(smi->dev->of_node, "realtek,smi-mdio"); smi 352 drivers/net/dsa/realtek-smi-core.c dev_err(smi->dev, "no MDIO bus node\n"); smi 356 drivers/net/dsa/realtek-smi-core.c smi->slave_mii_bus = devm_mdiobus_alloc(smi->dev); smi 357 drivers/net/dsa/realtek-smi-core.c if (!smi->slave_mii_bus) { smi 361 drivers/net/dsa/realtek-smi-core.c smi->slave_mii_bus->priv = smi; smi 362 drivers/net/dsa/realtek-smi-core.c smi->slave_mii_bus->name = "SMI slave MII"; smi 363 drivers/net/dsa/realtek-smi-core.c smi->slave_mii_bus->read = realtek_smi_mdio_read; smi 364 drivers/net/dsa/realtek-smi-core.c smi->slave_mii_bus->write = realtek_smi_mdio_write; smi 365 drivers/net/dsa/realtek-smi-core.c snprintf(smi->slave_mii_bus->id, MII_BUS_ID_SIZE, "SMI-%d", smi 366 drivers/net/dsa/realtek-smi-core.c smi->ds->index); smi 367 drivers/net/dsa/realtek-smi-core.c smi->slave_mii_bus->dev.of_node = mdio_np; smi 368 drivers/net/dsa/realtek-smi-core.c smi->slave_mii_bus->parent = smi->dev; smi 369 drivers/net/dsa/realtek-smi-core.c smi->ds->slave_mii_bus = smi->slave_mii_bus; smi 371 drivers/net/dsa/realtek-smi-core.c ret = of_mdiobus_register(smi->slave_mii_bus, mdio_np); smi 373 drivers/net/dsa/realtek-smi-core.c dev_err(smi->dev, "unable to register MDIO bus %s\n", smi 374 drivers/net/dsa/realtek-smi-core.c smi->slave_mii_bus->id); smi 390 drivers/net/dsa/realtek-smi-core.c struct realtek_smi *smi; smi 397 drivers/net/dsa/realtek-smi-core.c smi = devm_kzalloc(dev, sizeof(*smi), GFP_KERNEL); smi 398 drivers/net/dsa/realtek-smi-core.c if (!smi) smi 400 drivers/net/dsa/realtek-smi-core.c smi->map = devm_regmap_init(dev, NULL, smi, smi 402 drivers/net/dsa/realtek-smi-core.c if (IS_ERR(smi->map)) { smi 403 drivers/net/dsa/realtek-smi-core.c ret = PTR_ERR(smi->map); smi 409 drivers/net/dsa/realtek-smi-core.c smi->dev = dev; smi 410 drivers/net/dsa/realtek-smi-core.c smi->clk_delay = var->clk_delay; smi 411 drivers/net/dsa/realtek-smi-core.c smi->cmd_read = var->cmd_read; smi 412 drivers/net/dsa/realtek-smi-core.c smi->cmd_write = var->cmd_write; smi 413 drivers/net/dsa/realtek-smi-core.c smi->ops = var->ops; smi 415 drivers/net/dsa/realtek-smi-core.c dev_set_drvdata(dev, smi); smi 416 drivers/net/dsa/realtek-smi-core.c spin_lock_init(&smi->lock); smi 421 drivers/net/dsa/realtek-smi-core.c smi->reset = devm_gpiod_get_optional(dev, "reset", GPIOD_OUT_HIGH); smi 422 drivers/net/dsa/realtek-smi-core.c if (IS_ERR(smi->reset)) { smi 424 drivers/net/dsa/realtek-smi-core.c return PTR_ERR(smi->reset); smi 427 drivers/net/dsa/realtek-smi-core.c gpiod_set_value(smi->reset, 0); smi 432 drivers/net/dsa/realtek-smi-core.c smi->mdc = devm_gpiod_get_optional(dev, "mdc", GPIOD_OUT_LOW); smi 433 drivers/net/dsa/realtek-smi-core.c if (IS_ERR(smi->mdc)) smi 434 drivers/net/dsa/realtek-smi-core.c return PTR_ERR(smi->mdc); smi 435 drivers/net/dsa/realtek-smi-core.c smi->mdio = devm_gpiod_get_optional(dev, "mdio", GPIOD_OUT_LOW); smi 436 drivers/net/dsa/realtek-smi-core.c if (IS_ERR(smi->mdio)) smi 437 drivers/net/dsa/realtek-smi-core.c return PTR_ERR(smi->mdio); smi 439 drivers/net/dsa/realtek-smi-core.c smi->leds_disabled = of_property_read_bool(np, "realtek,disable-leds"); smi 441 drivers/net/dsa/realtek-smi-core.c ret = smi->ops->detect(smi); smi 447 drivers/net/dsa/realtek-smi-core.c smi->ds = dsa_switch_alloc(dev, smi->num_ports); smi 448 drivers/net/dsa/realtek-smi-core.c if (!smi->ds) smi 450 drivers/net/dsa/realtek-smi-core.c smi->ds->priv = smi; smi 452 drivers/net/dsa/realtek-smi-core.c smi->ds->ops = var->ds_ops; smi 453 drivers/net/dsa/realtek-smi-core.c ret = dsa_register_switch(smi->ds); smi 463 drivers/net/dsa/realtek-smi-core.c struct realtek_smi *smi = dev_get_drvdata(&pdev->dev); smi 465 drivers/net/dsa/realtek-smi-core.c dsa_unregister_switch(smi->ds); smi 466 drivers/net/dsa/realtek-smi-core.c if (smi->slave_mii_bus) smi 467 drivers/net/dsa/realtek-smi-core.c of_node_put(smi->slave_mii_bus->dev.of_node); smi 468 drivers/net/dsa/realtek-smi-core.c gpiod_set_value(smi->reset, 1); smi 78 drivers/net/dsa/realtek-smi-core.h int (*detect)(struct realtek_smi *smi); smi 79 drivers/net/dsa/realtek-smi-core.h int (*reset_chip)(struct realtek_smi *smi); smi 80 drivers/net/dsa/realtek-smi-core.h int (*setup)(struct realtek_smi *smi); smi 81 drivers/net/dsa/realtek-smi-core.h void (*cleanup)(struct realtek_smi *smi); smi 82 drivers/net/dsa/realtek-smi-core.h int (*get_mib_counter)(struct realtek_smi *smi, smi 86 drivers/net/dsa/realtek-smi-core.h int (*get_vlan_mc)(struct realtek_smi *smi, u32 index, smi 88 drivers/net/dsa/realtek-smi-core.h int (*set_vlan_mc)(struct realtek_smi *smi, u32 index, smi 90 drivers/net/dsa/realtek-smi-core.h int (*get_vlan_4k)(struct realtek_smi *smi, u32 vid, smi 92 drivers/net/dsa/realtek-smi-core.h int (*set_vlan_4k)(struct realtek_smi *smi, smi 94 drivers/net/dsa/realtek-smi-core.h int (*get_mc_index)(struct realtek_smi *smi, int port, int *val); smi 95 drivers/net/dsa/realtek-smi-core.h int (*set_mc_index)(struct realtek_smi *smi, int port, int index); smi 96 drivers/net/dsa/realtek-smi-core.h bool (*is_vlan_valid)(struct realtek_smi *smi, unsigned int vlan); smi 97 drivers/net/dsa/realtek-smi-core.h int (*enable_vlan)(struct realtek_smi *smi, bool enable); smi 98 drivers/net/dsa/realtek-smi-core.h int (*enable_vlan4k)(struct realtek_smi *smi, bool enable); smi 99 drivers/net/dsa/realtek-smi-core.h int (*enable_port)(struct realtek_smi *smi, int port, bool enable); smi 100 drivers/net/dsa/realtek-smi-core.h int (*phy_read)(struct realtek_smi *smi, int phy, int regnum); smi 101 drivers/net/dsa/realtek-smi-core.h int (*phy_write)(struct realtek_smi *smi, int phy, int regnum, smi 114 drivers/net/dsa/realtek-smi-core.h int realtek_smi_write_reg_noack(struct realtek_smi *smi, u32 addr, smi 116 drivers/net/dsa/realtek-smi-core.h int realtek_smi_setup_mdio(struct realtek_smi *smi); smi 119 drivers/net/dsa/realtek-smi-core.h int rtl8366_mc_is_used(struct realtek_smi *smi, int mc_index, int *used); smi 120 drivers/net/dsa/realtek-smi-core.h int rtl8366_set_vlan(struct realtek_smi *smi, int vid, u32 member, smi 122 drivers/net/dsa/realtek-smi-core.h int rtl8366_get_pvid(struct realtek_smi *smi, int port, int *val); smi 123 drivers/net/dsa/realtek-smi-core.h int rtl8366_set_pvid(struct realtek_smi *smi, unsigned int port, smi 125 drivers/net/dsa/realtek-smi-core.h int rtl8366_enable_vlan4k(struct realtek_smi *smi, bool enable); smi 126 drivers/net/dsa/realtek-smi-core.h int rtl8366_enable_vlan(struct realtek_smi *smi, bool enable); smi 127 drivers/net/dsa/realtek-smi-core.h int rtl8366_reset_vlan(struct realtek_smi *smi); smi 128 drivers/net/dsa/realtek-smi-core.h int rtl8366_init_vlan(struct realtek_smi *smi); smi 16 drivers/net/dsa/rtl8366.c int rtl8366_mc_is_used(struct realtek_smi *smi, int mc_index, int *used) smi 22 drivers/net/dsa/rtl8366.c for (i = 0; i < smi->num_ports; i++) { smi 25 drivers/net/dsa/rtl8366.c ret = smi->ops->get_mc_index(smi, i, &index); smi 39 drivers/net/dsa/rtl8366.c int rtl8366_set_vlan(struct realtek_smi *smi, int vid, u32 member, smi 47 drivers/net/dsa/rtl8366.c ret = smi->ops->get_vlan_4k(smi, vid, &vlan4k); smi 54 drivers/net/dsa/rtl8366.c ret = smi->ops->set_vlan_4k(smi, &vlan4k); smi 59 drivers/net/dsa/rtl8366.c for (i = 0; i < smi->num_vlan_mc; i++) { smi 62 drivers/net/dsa/rtl8366.c ret = smi->ops->get_vlan_mc(smi, i, &vlanmc); smi 72 drivers/net/dsa/rtl8366.c ret = smi->ops->set_vlan_mc(smi, i, &vlanmc); smi 81 drivers/net/dsa/rtl8366.c int rtl8366_get_pvid(struct realtek_smi *smi, int port, int *val) smi 87 drivers/net/dsa/rtl8366.c ret = smi->ops->get_mc_index(smi, port, &index); smi 91 drivers/net/dsa/rtl8366.c ret = smi->ops->get_vlan_mc(smi, index, &vlanmc); smi 100 drivers/net/dsa/rtl8366.c int rtl8366_set_pvid(struct realtek_smi *smi, unsigned int port, smi 109 drivers/net/dsa/rtl8366.c for (i = 0; i < smi->num_vlan_mc; i++) { smi 110 drivers/net/dsa/rtl8366.c ret = smi->ops->get_vlan_mc(smi, i, &vlanmc); smi 115 drivers/net/dsa/rtl8366.c ret = smi->ops->set_vlan_mc(smi, i, &vlanmc); smi 119 drivers/net/dsa/rtl8366.c ret = smi->ops->set_mc_index(smi, port, i); smi 125 drivers/net/dsa/rtl8366.c for (i = 0; i < smi->num_vlan_mc; i++) { smi 126 drivers/net/dsa/rtl8366.c ret = smi->ops->get_vlan_mc(smi, i, &vlanmc); smi 132 drivers/net/dsa/rtl8366.c ret = smi->ops->get_vlan_4k(smi, vid, &vlan4k); smi 140 drivers/net/dsa/rtl8366.c ret = smi->ops->set_vlan_mc(smi, i, &vlanmc); smi 144 drivers/net/dsa/rtl8366.c ret = smi->ops->set_mc_index(smi, port, i); smi 150 drivers/net/dsa/rtl8366.c for (i = 0; i < smi->num_vlan_mc; i++) { smi 153 drivers/net/dsa/rtl8366.c ret = rtl8366_mc_is_used(smi, i, &used); smi 159 drivers/net/dsa/rtl8366.c ret = smi->ops->get_vlan_4k(smi, vid, &vlan4k); smi 167 drivers/net/dsa/rtl8366.c ret = smi->ops->set_vlan_mc(smi, i, &vlanmc); smi 171 drivers/net/dsa/rtl8366.c ret = smi->ops->set_mc_index(smi, port, i); smi 176 drivers/net/dsa/rtl8366.c dev_err(smi->dev, smi 183 drivers/net/dsa/rtl8366.c int rtl8366_enable_vlan4k(struct realtek_smi *smi, bool enable) smi 193 drivers/net/dsa/rtl8366.c ret = smi->ops->enable_vlan(smi, true); smi 197 drivers/net/dsa/rtl8366.c smi->vlan_enabled = true; smi 200 drivers/net/dsa/rtl8366.c ret = smi->ops->enable_vlan4k(smi, enable); smi 204 drivers/net/dsa/rtl8366.c smi->vlan4k_enabled = enable; smi 209 drivers/net/dsa/rtl8366.c int rtl8366_enable_vlan(struct realtek_smi *smi, bool enable) smi 213 drivers/net/dsa/rtl8366.c ret = smi->ops->enable_vlan(smi, enable); smi 217 drivers/net/dsa/rtl8366.c smi->vlan_enabled = enable; smi 223 drivers/net/dsa/rtl8366.c smi->vlan4k_enabled = false; smi 224 drivers/net/dsa/rtl8366.c ret = smi->ops->enable_vlan4k(smi, false); smi 231 drivers/net/dsa/rtl8366.c int rtl8366_reset_vlan(struct realtek_smi *smi) smi 237 drivers/net/dsa/rtl8366.c rtl8366_enable_vlan(smi, false); smi 238 drivers/net/dsa/rtl8366.c rtl8366_enable_vlan4k(smi, false); smi 246 drivers/net/dsa/rtl8366.c for (i = 0; i < smi->num_vlan_mc; i++) { smi 247 drivers/net/dsa/rtl8366.c ret = smi->ops->set_vlan_mc(smi, i, &vlanmc); smi 256 drivers/net/dsa/rtl8366.c int rtl8366_init_vlan(struct realtek_smi *smi) smi 261 drivers/net/dsa/rtl8366.c ret = rtl8366_reset_vlan(smi); smi 268 drivers/net/dsa/rtl8366.c for (port = 0; port < smi->num_ports; port++) { smi 271 drivers/net/dsa/rtl8366.c if (port == smi->cpu_port) smi 275 drivers/net/dsa/rtl8366.c mask = GENMASK(smi->num_ports - 1, 0); smi 280 drivers/net/dsa/rtl8366.c mask = BIT(port) | BIT(smi->cpu_port); smi 287 drivers/net/dsa/rtl8366.c dev_info(smi->dev, "VLAN%d port mask for port %d, %08x\n", smi 289 drivers/net/dsa/rtl8366.c ret = rtl8366_set_vlan(smi, (port + 1), mask, mask, 0); smi 293 drivers/net/dsa/rtl8366.c dev_info(smi->dev, "VLAN%d port %d, PVID set to %d\n", smi 295 drivers/net/dsa/rtl8366.c ret = rtl8366_set_pvid(smi, port, (port + 1)); smi 300 drivers/net/dsa/rtl8366.c return rtl8366_enable_vlan(smi, true); smi 306 drivers/net/dsa/rtl8366.c struct realtek_smi *smi = ds->priv; smi 311 drivers/net/dsa/rtl8366.c if (!smi->ops->is_vlan_valid(smi, port + 1)) smi 314 drivers/net/dsa/rtl8366.c dev_info(smi->dev, "%s filtering on port %d\n", smi 322 drivers/net/dsa/rtl8366.c ret = smi->ops->get_vlan_4k(smi, port + 1, &vlan4k); smi 327 drivers/net/dsa/rtl8366.c ret = rtl8366_set_vlan(smi, port + 1, smi 341 drivers/net/dsa/rtl8366.c struct realtek_smi *smi = ds->priv; smi 346 drivers/net/dsa/rtl8366.c if (!smi->ops->is_vlan_valid(smi, vid)) smi 349 drivers/net/dsa/rtl8366.c dev_info(smi->dev, "prepare VLANs %04x..%04x\n", smi 356 drivers/net/dsa/rtl8366.c ret = rtl8366_enable_vlan4k(smi, true); smi 369 drivers/net/dsa/rtl8366.c struct realtek_smi *smi = ds->priv; smi 376 drivers/net/dsa/rtl8366.c if (!smi->ops->is_vlan_valid(smi, vid)) smi 379 drivers/net/dsa/rtl8366.c dev_info(smi->dev, "add VLAN on port %d, %s, %s\n", smi 385 drivers/net/dsa/rtl8366.c dev_err(smi->dev, "port is DSA or CPU port\n"); smi 390 drivers/net/dsa/rtl8366.c dev_info(smi->dev, "add VLAN %04x\n", vid); smi 399 drivers/net/dsa/rtl8366.c ret = rtl8366_get_pvid(smi, port, &pvid_val); smi 401 drivers/net/dsa/rtl8366.c dev_err(smi->dev, "could not lookup PVID for port %d\n", smi 406 drivers/net/dsa/rtl8366.c ret = rtl8366_set_pvid(smi, port, vid); smi 412 drivers/net/dsa/rtl8366.c ret = rtl8366_set_vlan(smi, port, member, untag, 0); smi 414 drivers/net/dsa/rtl8366.c dev_err(smi->dev, smi 423 drivers/net/dsa/rtl8366.c struct realtek_smi *smi = ds->priv; smi 427 drivers/net/dsa/rtl8366.c dev_info(smi->dev, "del VLAN on port %d\n", port); smi 432 drivers/net/dsa/rtl8366.c dev_info(smi->dev, "del VLAN %04x\n", vid); smi 434 drivers/net/dsa/rtl8366.c for (i = 0; i < smi->num_vlan_mc; i++) { smi 437 drivers/net/dsa/rtl8366.c ret = smi->ops->get_vlan_mc(smi, i, &vlanmc); smi 449 drivers/net/dsa/rtl8366.c ret = smi->ops->set_vlan_mc(smi, i, &vlanmc); smi 451 drivers/net/dsa/rtl8366.c dev_err(smi->dev, smi 468 drivers/net/dsa/rtl8366.c struct realtek_smi *smi = ds->priv; smi 472 drivers/net/dsa/rtl8366.c if (port >= smi->num_ports) smi 475 drivers/net/dsa/rtl8366.c for (i = 0; i < smi->num_mib_counters; i++) { smi 476 drivers/net/dsa/rtl8366.c mib = &smi->mib_counters[i]; smi 485 drivers/net/dsa/rtl8366.c struct realtek_smi *smi = ds->priv; smi 490 drivers/net/dsa/rtl8366.c if (port >= smi->num_ports) smi 493 drivers/net/dsa/rtl8366.c return smi->num_mib_counters; smi 499 drivers/net/dsa/rtl8366.c struct realtek_smi *smi = ds->priv; smi 503 drivers/net/dsa/rtl8366.c if (port >= smi->num_ports) smi 506 drivers/net/dsa/rtl8366.c for (i = 0; i < smi->num_mib_counters; i++) { smi 510 drivers/net/dsa/rtl8366.c mib = &smi->mib_counters[i]; smi 511 drivers/net/dsa/rtl8366.c ret = smi->ops->get_mib_counter(smi, port, mib, &mibvalue); smi 513 drivers/net/dsa/rtl8366.c dev_err(smi->dev, "error reading MIB counter %s\n", smi 350 drivers/net/dsa/rtl8366rb.c static int rtl8366rb_get_mib_counter(struct realtek_smi *smi, smi 366 drivers/net/dsa/rtl8366rb.c ret = regmap_write(smi->map, addr, 0); /* Write whatever */ smi 371 drivers/net/dsa/rtl8366rb.c ret = regmap_read(smi->map, RTL8366RB_MIB_CTRL_REG, &val); smi 384 drivers/net/dsa/rtl8366rb.c ret = regmap_read(smi->map, addr + (i - 1), &val); smi 409 drivers/net/dsa/rtl8366rb.c struct realtek_smi *smi = irq_data_get_irq_chip_data(d); smi 412 drivers/net/dsa/rtl8366rb.c ret = regmap_update_bits(smi->map, RTL8366RB_INTERRUPT_MASK_REG, smi 415 drivers/net/dsa/rtl8366rb.c dev_err(smi->dev, "could not mask IRQ\n"); smi 420 drivers/net/dsa/rtl8366rb.c struct realtek_smi *smi = irq_data_get_irq_chip_data(d); smi 423 drivers/net/dsa/rtl8366rb.c ret = regmap_update_bits(smi->map, RTL8366RB_INTERRUPT_MASK_REG, smi 427 drivers/net/dsa/rtl8366rb.c dev_err(smi->dev, "could not unmask IRQ\n"); smi 432 drivers/net/dsa/rtl8366rb.c struct realtek_smi *smi = data; smi 437 drivers/net/dsa/rtl8366rb.c ret = regmap_read(smi->map, RTL8366RB_INTERRUPT_STATUS_REG, smi 440 drivers/net/dsa/rtl8366rb.c dev_err(smi->dev, "can't read interrupt status\n"); smi 456 drivers/net/dsa/rtl8366rb.c child_irq = irq_find_mapping(smi->irqdomain, line); smi 492 drivers/net/dsa/rtl8366rb.c static int rtl8366rb_setup_cascaded_irq(struct realtek_smi *smi) smi 501 drivers/net/dsa/rtl8366rb.c intc = of_get_child_by_name(smi->dev->of_node, "interrupt-controller"); smi 503 drivers/net/dsa/rtl8366rb.c dev_err(smi->dev, "missing child interrupt-controller node\n"); smi 509 drivers/net/dsa/rtl8366rb.c dev_err(smi->dev, "failed to get parent IRQ\n"); smi 515 drivers/net/dsa/rtl8366rb.c ret = regmap_read(smi->map, RTL8366RB_INTERRUPT_STATUS_REG, smi 518 drivers/net/dsa/rtl8366rb.c dev_err(smi->dev, "can't read interrupt status\n"); smi 527 drivers/net/dsa/rtl8366rb.c dev_info(smi->dev, "active high/rising IRQ\n"); smi 532 drivers/net/dsa/rtl8366rb.c dev_info(smi->dev, "active low/falling IRQ\n"); smi 536 drivers/net/dsa/rtl8366rb.c ret = regmap_update_bits(smi->map, RTL8366RB_INTERRUPT_CONTROL_REG, smi 540 drivers/net/dsa/rtl8366rb.c dev_err(smi->dev, "could not configure IRQ polarity\n"); smi 544 drivers/net/dsa/rtl8366rb.c ret = devm_request_threaded_irq(smi->dev, irq, NULL, smi 546 drivers/net/dsa/rtl8366rb.c "RTL8366RB", smi); smi 548 drivers/net/dsa/rtl8366rb.c dev_err(smi->dev, "unable to request irq: %d\n", ret); smi 551 drivers/net/dsa/rtl8366rb.c smi->irqdomain = irq_domain_add_linear(intc, smi 554 drivers/net/dsa/rtl8366rb.c smi); smi 555 drivers/net/dsa/rtl8366rb.c if (!smi->irqdomain) { smi 556 drivers/net/dsa/rtl8366rb.c dev_err(smi->dev, "failed to create IRQ domain\n"); smi 560 drivers/net/dsa/rtl8366rb.c for (i = 0; i < smi->num_ports; i++) smi 561 drivers/net/dsa/rtl8366rb.c irq_set_parent(irq_create_mapping(smi->irqdomain, i), irq); smi 568 drivers/net/dsa/rtl8366rb.c static int rtl8366rb_set_addr(struct realtek_smi *smi) smi 576 drivers/net/dsa/rtl8366rb.c dev_info(smi->dev, "set MAC: %02X:%02X:%02X:%02X:%02X:%02X\n", smi 579 drivers/net/dsa/rtl8366rb.c ret = regmap_write(smi->map, RTL8366RB_SMAR0, val); smi 583 drivers/net/dsa/rtl8366rb.c ret = regmap_write(smi->map, RTL8366RB_SMAR1, val); smi 587 drivers/net/dsa/rtl8366rb.c ret = regmap_write(smi->map, RTL8366RB_SMAR2, val); smi 713 drivers/net/dsa/rtl8366rb.c struct realtek_smi *smi = ds->priv; smi 722 drivers/net/dsa/rtl8366rb.c ret = regmap_read(smi->map, RTL8366RB_CHIP_ID_REG, &chip_id); smi 724 drivers/net/dsa/rtl8366rb.c dev_err(smi->dev, "unable to read chip id\n"); smi 732 drivers/net/dsa/rtl8366rb.c dev_err(smi->dev, "unknown chip id (%04x)\n", chip_id); smi 736 drivers/net/dsa/rtl8366rb.c ret = regmap_read(smi->map, RTL8366RB_CHIP_VERSION_CTRL_REG, smi 739 drivers/net/dsa/rtl8366rb.c dev_err(smi->dev, "unable to read chip version\n"); smi 743 drivers/net/dsa/rtl8366rb.c dev_info(smi->dev, "RTL%04x ver %u chip found\n", smi 783 drivers/net/dsa/rtl8366rb.c ret = regmap_read(smi->map, smi 789 drivers/net/dsa/rtl8366rb.c ret = regmap_write(smi->map, smi 796 drivers/net/dsa/rtl8366rb.c dev_dbg(smi->dev, "jam %04x into register %04x\n", smi 799 drivers/net/dsa/rtl8366rb.c ret = regmap_write(smi->map, smi 810 drivers/net/dsa/rtl8366rb.c ret = regmap_read(smi->map, RTL8366RB_PHY_ACCESS_BUSY_REG, smi 815 drivers/net/dsa/rtl8366rb.c ret = regmap_write(smi->map, smi 820 drivers/net/dsa/rtl8366rb.c ret = regmap_write(smi->map, smi 828 drivers/net/dsa/rtl8366rb.c ret = regmap_write(smi->map, smi 835 drivers/net/dsa/rtl8366rb.c ret = regmap_write(smi->map, 0x0c, 0x240); smi 838 drivers/net/dsa/rtl8366rb.c ret = regmap_write(smi->map, 0x0d, 0x240); smi 843 drivers/net/dsa/rtl8366rb.c ret = rtl8366rb_set_addr(smi); smi 854 drivers/net/dsa/rtl8366rb.c ret = regmap_update_bits(smi->map, RTL8368RB_CPU_CTRL_REG, smi 856 drivers/net/dsa/rtl8366rb.c RTL8368RB_CPU_INSTAG | BIT(smi->cpu_port)); smi 861 drivers/net/dsa/rtl8366rb.c ret = regmap_update_bits(smi->map, RTL8366RB_PECR, smi 862 drivers/net/dsa/rtl8366rb.c BIT(smi->cpu_port), smi 868 drivers/net/dsa/rtl8366rb.c ret = regmap_update_bits(smi->map, RTL8366RB_SGCR, smi 875 drivers/net/dsa/rtl8366rb.c ret = regmap_write(smi->map, RTL8366RB_SSCR0, 0); smi 880 drivers/net/dsa/rtl8366rb.c ret = regmap_write(smi->map, RTL8366RB_SSCR1, 0); smi 891 drivers/net/dsa/rtl8366rb.c ret = regmap_update_bits(smi->map, RTL8366RB_PMC0, smi 900 drivers/net/dsa/rtl8366rb.c ret = regmap_write(smi->map, RTL8366RB_VLAN_INGRESS_CTRL2_REG, smi 906 drivers/net/dsa/rtl8366rb.c ret = regmap_update_bits(smi->map, RTL8366RB_SSCR2, smi 912 drivers/net/dsa/rtl8366rb.c ret = regmap_update_bits(smi->map, RTL8366RB_LED_BLINKRATE_REG, smi 923 drivers/net/dsa/rtl8366rb.c if (smi->leds_disabled) { smi 925 drivers/net/dsa/rtl8366rb.c regmap_update_bits(smi->map, smi 928 drivers/net/dsa/rtl8366rb.c regmap_update_bits(smi->map, smi 931 drivers/net/dsa/rtl8366rb.c regmap_update_bits(smi->map, smi 941 drivers/net/dsa/rtl8366rb.c ret = regmap_update_bits(smi->map, smi 949 drivers/net/dsa/rtl8366rb.c ret = rtl8366_init_vlan(smi); smi 953 drivers/net/dsa/rtl8366rb.c ret = rtl8366rb_setup_cascaded_irq(smi); smi 955 drivers/net/dsa/rtl8366rb.c dev_info(smi->dev, "no interrupt support\n"); smi 957 drivers/net/dsa/rtl8366rb.c ret = realtek_smi_setup_mdio(smi); smi 959 drivers/net/dsa/rtl8366rb.c dev_info(smi->dev, "could not set up MDIO bus\n"); smi 989 drivers/net/dsa/rtl8366rb.c struct realtek_smi *smi = ds->priv; smi 992 drivers/net/dsa/rtl8366rb.c if (port != smi->cpu_port) smi 995 drivers/net/dsa/rtl8366rb.c dev_info(smi->dev, "adjust link on CPU port (%d)\n", port); smi 998 drivers/net/dsa/rtl8366rb.c ret = regmap_update_bits(smi->map, RTL8366RB_MAC_FORCE_CTRL_REG, smi 1003 drivers/net/dsa/rtl8366rb.c ret = regmap_update_bits(smi->map, RTL8366RB_PAACR2, smi 1010 drivers/net/dsa/rtl8366rb.c ret = regmap_update_bits(smi->map, RTL8366RB_PECR, BIT(port), smi 1016 drivers/net/dsa/rtl8366rb.c static void rb8366rb_set_port_led(struct realtek_smi *smi, smi 1022 drivers/net/dsa/rtl8366rb.c if (smi->leds_disabled) smi 1027 drivers/net/dsa/rtl8366rb.c ret = regmap_update_bits(smi->map, smi 1032 drivers/net/dsa/rtl8366rb.c ret = regmap_update_bits(smi->map, smi 1038 drivers/net/dsa/rtl8366rb.c ret = regmap_update_bits(smi->map, smi 1043 drivers/net/dsa/rtl8366rb.c ret = regmap_update_bits(smi->map, smi 1049 drivers/net/dsa/rtl8366rb.c ret = regmap_update_bits(smi->map, smi 1055 drivers/net/dsa/rtl8366rb.c dev_err(smi->dev, "no LED for port %d\n", port); smi 1059 drivers/net/dsa/rtl8366rb.c dev_err(smi->dev, "error updating LED on port %d\n", port); smi 1066 drivers/net/dsa/rtl8366rb.c struct realtek_smi *smi = ds->priv; smi 1069 drivers/net/dsa/rtl8366rb.c dev_dbg(smi->dev, "enable port %d\n", port); smi 1070 drivers/net/dsa/rtl8366rb.c ret = regmap_update_bits(smi->map, RTL8366RB_PECR, BIT(port), smi 1075 drivers/net/dsa/rtl8366rb.c rb8366rb_set_port_led(smi, port, true); smi 1082 drivers/net/dsa/rtl8366rb.c struct realtek_smi *smi = ds->priv; smi 1085 drivers/net/dsa/rtl8366rb.c dev_dbg(smi->dev, "disable port %d\n", port); smi 1086 drivers/net/dsa/rtl8366rb.c ret = regmap_update_bits(smi->map, RTL8366RB_PECR, BIT(port), smi 1091 drivers/net/dsa/rtl8366rb.c rb8366rb_set_port_led(smi, port, false); smi 1094 drivers/net/dsa/rtl8366rb.c static int rtl8366rb_get_vlan_4k(struct realtek_smi *smi, u32 vid, smi 1107 drivers/net/dsa/rtl8366rb.c ret = regmap_write(smi->map, RTL8366RB_VLAN_TABLE_WRITE_BASE, smi 1113 drivers/net/dsa/rtl8366rb.c ret = regmap_write(smi->map, RTL8366RB_TABLE_ACCESS_CTRL_REG, smi 1119 drivers/net/dsa/rtl8366rb.c ret = regmap_read(smi->map, smi 1135 drivers/net/dsa/rtl8366rb.c static int rtl8366rb_set_vlan_4k(struct realtek_smi *smi, smi 1155 drivers/net/dsa/rtl8366rb.c ret = regmap_write(smi->map, smi 1163 drivers/net/dsa/rtl8366rb.c ret = regmap_write(smi->map, RTL8366RB_TABLE_ACCESS_CTRL_REG, smi 1169 drivers/net/dsa/rtl8366rb.c static int rtl8366rb_get_vlan_mc(struct realtek_smi *smi, u32 index, smi 1182 drivers/net/dsa/rtl8366rb.c ret = regmap_read(smi->map, smi 1200 drivers/net/dsa/rtl8366rb.c static int rtl8366rb_set_vlan_mc(struct realtek_smi *smi, u32 index, smi 1224 drivers/net/dsa/rtl8366rb.c ret = regmap_write(smi->map, smi 1234 drivers/net/dsa/rtl8366rb.c static int rtl8366rb_get_mc_index(struct realtek_smi *smi, int port, int *val) smi 1239 drivers/net/dsa/rtl8366rb.c if (port >= smi->num_ports) smi 1242 drivers/net/dsa/rtl8366rb.c ret = regmap_read(smi->map, RTL8366RB_PORT_VLAN_CTRL_REG(port), smi 1253 drivers/net/dsa/rtl8366rb.c static int rtl8366rb_set_mc_index(struct realtek_smi *smi, int port, int index) smi 1255 drivers/net/dsa/rtl8366rb.c if (port >= smi->num_ports || index >= RTL8366RB_NUM_VLANS) smi 1258 drivers/net/dsa/rtl8366rb.c return regmap_update_bits(smi->map, RTL8366RB_PORT_VLAN_CTRL_REG(port), smi 1265 drivers/net/dsa/rtl8366rb.c static bool rtl8366rb_is_vlan_valid(struct realtek_smi *smi, unsigned int vlan) smi 1269 drivers/net/dsa/rtl8366rb.c if (smi->vlan4k_enabled) smi 1278 drivers/net/dsa/rtl8366rb.c static int rtl8366rb_enable_vlan(struct realtek_smi *smi, bool enable) smi 1280 drivers/net/dsa/rtl8366rb.c dev_dbg(smi->dev, "%s VLAN\n", enable ? "enable" : "disable"); smi 1281 drivers/net/dsa/rtl8366rb.c return regmap_update_bits(smi->map, smi 1286 drivers/net/dsa/rtl8366rb.c static int rtl8366rb_enable_vlan4k(struct realtek_smi *smi, bool enable) smi 1288 drivers/net/dsa/rtl8366rb.c dev_dbg(smi->dev, "%s VLAN 4k\n", enable ? "enable" : "disable"); smi 1289 drivers/net/dsa/rtl8366rb.c return regmap_update_bits(smi->map, RTL8366RB_SGCR, smi 1294 drivers/net/dsa/rtl8366rb.c static int rtl8366rb_phy_read(struct realtek_smi *smi, int phy, int regnum) smi 1303 drivers/net/dsa/rtl8366rb.c ret = regmap_write(smi->map, RTL8366RB_PHY_ACCESS_CTRL_REG, smi 1310 drivers/net/dsa/rtl8366rb.c ret = regmap_write(smi->map, reg, 0); smi 1312 drivers/net/dsa/rtl8366rb.c dev_err(smi->dev, smi 1318 drivers/net/dsa/rtl8366rb.c ret = regmap_read(smi->map, RTL8366RB_PHY_ACCESS_DATA_REG, &val); smi 1322 drivers/net/dsa/rtl8366rb.c dev_dbg(smi->dev, "read PHY%d register 0x%04x @ %08x, val <- %04x\n", smi 1328 drivers/net/dsa/rtl8366rb.c static int rtl8366rb_phy_write(struct realtek_smi *smi, int phy, int regnum, smi 1337 drivers/net/dsa/rtl8366rb.c ret = regmap_write(smi->map, RTL8366RB_PHY_ACCESS_CTRL_REG, smi 1344 drivers/net/dsa/rtl8366rb.c dev_dbg(smi->dev, "write PHY%d register 0x%04x @ %04x, val -> %04x\n", smi 1347 drivers/net/dsa/rtl8366rb.c ret = regmap_write(smi->map, reg, val); smi 1354 drivers/net/dsa/rtl8366rb.c static int rtl8366rb_reset_chip(struct realtek_smi *smi) smi 1360 drivers/net/dsa/rtl8366rb.c realtek_smi_write_reg_noack(smi, RTL8366RB_RESET_CTRL_REG, smi 1364 drivers/net/dsa/rtl8366rb.c ret = regmap_read(smi->map, RTL8366RB_RESET_CTRL_REG, &val); smi 1373 drivers/net/dsa/rtl8366rb.c dev_err(smi->dev, "timeout waiting for the switch to reset\n"); smi 1380 drivers/net/dsa/rtl8366rb.c static int rtl8366rb_detect(struct realtek_smi *smi) smi 1382 drivers/net/dsa/rtl8366rb.c struct device *dev = smi->dev; smi 1387 drivers/net/dsa/rtl8366rb.c ret = regmap_read(smi->map, 0x5c, &val); smi 1400 drivers/net/dsa/rtl8366rb.c smi->cpu_port = RTL8366RB_PORT_NUM_CPU; smi 1401 drivers/net/dsa/rtl8366rb.c smi->num_ports = RTL8366RB_NUM_PORTS; smi 1402 drivers/net/dsa/rtl8366rb.c smi->num_vlan_mc = RTL8366RB_NUM_VLANS; smi 1403 drivers/net/dsa/rtl8366rb.c smi->mib_counters = rtl8366rb_mib_counters; smi 1404 drivers/net/dsa/rtl8366rb.c smi->num_mib_counters = ARRAY_SIZE(rtl8366rb_mib_counters); smi 1412 drivers/net/dsa/rtl8366rb.c ret = rtl8366rb_reset_chip(smi); smi 325 tools/arch/x86/include/uapi/asm/kvm.h } smi; smi 1287 tools/perf/builtin-stat.c int smi; smi 1289 tools/perf/builtin-stat.c if (sysfs__read_int(FREEZE_ON_SMI_PATH, &smi) < 0) { smi 1294 tools/perf/builtin-stat.c if (!smi) { smi 98 tools/perf/util/stat.c ID(SMI_NUM, msr/smi/),