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/),