smi_info          146 drivers/char/ipmi/ipmi_si_intf.c 	int (*oem_data_avail_handler)(struct smi_info *smi_info);
smi_info          261 drivers/char/ipmi/ipmi_si_intf.c static int try_smi_init(struct smi_info *smi);
smi_info          262 drivers/char/ipmi/ipmi_si_intf.c static void cleanup_one_si(struct smi_info *smi_info);
smi_info          283 drivers/char/ipmi/ipmi_si_intf.c static void deliver_recv_msg(struct smi_info *smi_info,
smi_info          287 drivers/char/ipmi/ipmi_si_intf.c 	ipmi_smi_msg_received(smi_info->intf, msg);
smi_info          290 drivers/char/ipmi/ipmi_si_intf.c static void return_hosed_msg(struct smi_info *smi_info, int cCode)
smi_info          292 drivers/char/ipmi/ipmi_si_intf.c 	struct ipmi_smi_msg *msg = smi_info->curr_msg;
smi_info          304 drivers/char/ipmi/ipmi_si_intf.c 	smi_info->curr_msg = NULL;
smi_info          305 drivers/char/ipmi/ipmi_si_intf.c 	deliver_recv_msg(smi_info, msg);
smi_info          308 drivers/char/ipmi/ipmi_si_intf.c static enum si_sm_result start_next_msg(struct smi_info *smi_info)
smi_info          312 drivers/char/ipmi/ipmi_si_intf.c 	if (!smi_info->waiting_msg) {
smi_info          313 drivers/char/ipmi/ipmi_si_intf.c 		smi_info->curr_msg = NULL;
smi_info          318 drivers/char/ipmi/ipmi_si_intf.c 		smi_info->curr_msg = smi_info->waiting_msg;
smi_info          319 drivers/char/ipmi/ipmi_si_intf.c 		smi_info->waiting_msg = NULL;
smi_info          322 drivers/char/ipmi/ipmi_si_intf.c 				0, smi_info);
smi_info          327 drivers/char/ipmi/ipmi_si_intf.c 		err = smi_info->handlers->start_transaction(
smi_info          328 drivers/char/ipmi/ipmi_si_intf.c 			smi_info->si_sm,
smi_info          329 drivers/char/ipmi/ipmi_si_intf.c 			smi_info->curr_msg->data,
smi_info          330 drivers/char/ipmi/ipmi_si_intf.c 			smi_info->curr_msg->data_size);
smi_info          332 drivers/char/ipmi/ipmi_si_intf.c 			return_hosed_msg(smi_info, err);
smi_info          340 drivers/char/ipmi/ipmi_si_intf.c static void smi_mod_timer(struct smi_info *smi_info, unsigned long new_val)
smi_info          342 drivers/char/ipmi/ipmi_si_intf.c 	if (!smi_info->timer_can_start)
smi_info          344 drivers/char/ipmi/ipmi_si_intf.c 	smi_info->last_timeout_jiffies = jiffies;
smi_info          345 drivers/char/ipmi/ipmi_si_intf.c 	mod_timer(&smi_info->si_timer, new_val);
smi_info          346 drivers/char/ipmi/ipmi_si_intf.c 	smi_info->timer_running = true;
smi_info          352 drivers/char/ipmi/ipmi_si_intf.c static void start_new_msg(struct smi_info *smi_info, unsigned char *msg,
smi_info          355 drivers/char/ipmi/ipmi_si_intf.c 	smi_mod_timer(smi_info, jiffies + SI_TIMEOUT_JIFFIES);
smi_info          357 drivers/char/ipmi/ipmi_si_intf.c 	if (smi_info->thread)
smi_info          358 drivers/char/ipmi/ipmi_si_intf.c 		wake_up_process(smi_info->thread);
smi_info          360 drivers/char/ipmi/ipmi_si_intf.c 	smi_info->handlers->start_transaction(smi_info->si_sm, msg, size);
smi_info          363 drivers/char/ipmi/ipmi_si_intf.c static void start_check_enables(struct smi_info *smi_info)
smi_info          370 drivers/char/ipmi/ipmi_si_intf.c 	start_new_msg(smi_info, msg, 2);
smi_info          371 drivers/char/ipmi/ipmi_si_intf.c 	smi_info->si_state = SI_CHECKING_ENABLES;
smi_info          374 drivers/char/ipmi/ipmi_si_intf.c static void start_clear_flags(struct smi_info *smi_info)
smi_info          383 drivers/char/ipmi/ipmi_si_intf.c 	start_new_msg(smi_info, msg, 3);
smi_info          384 drivers/char/ipmi/ipmi_si_intf.c 	smi_info->si_state = SI_CLEARING_FLAGS;
smi_info          387 drivers/char/ipmi/ipmi_si_intf.c static void start_getting_msg_queue(struct smi_info *smi_info)
smi_info          389 drivers/char/ipmi/ipmi_si_intf.c 	smi_info->curr_msg->data[0] = (IPMI_NETFN_APP_REQUEST << 2);
smi_info          390 drivers/char/ipmi/ipmi_si_intf.c 	smi_info->curr_msg->data[1] = IPMI_GET_MSG_CMD;
smi_info          391 drivers/char/ipmi/ipmi_si_intf.c 	smi_info->curr_msg->data_size = 2;
smi_info          393 drivers/char/ipmi/ipmi_si_intf.c 	start_new_msg(smi_info, smi_info->curr_msg->data,
smi_info          394 drivers/char/ipmi/ipmi_si_intf.c 		      smi_info->curr_msg->data_size);
smi_info          395 drivers/char/ipmi/ipmi_si_intf.c 	smi_info->si_state = SI_GETTING_MESSAGES;
smi_info          398 drivers/char/ipmi/ipmi_si_intf.c static void start_getting_events(struct smi_info *smi_info)
smi_info          400 drivers/char/ipmi/ipmi_si_intf.c 	smi_info->curr_msg->data[0] = (IPMI_NETFN_APP_REQUEST << 2);
smi_info          401 drivers/char/ipmi/ipmi_si_intf.c 	smi_info->curr_msg->data[1] = IPMI_READ_EVENT_MSG_BUFFER_CMD;
smi_info          402 drivers/char/ipmi/ipmi_si_intf.c 	smi_info->curr_msg->data_size = 2;
smi_info          404 drivers/char/ipmi/ipmi_si_intf.c 	start_new_msg(smi_info, smi_info->curr_msg->data,
smi_info          405 drivers/char/ipmi/ipmi_si_intf.c 		      smi_info->curr_msg->data_size);
smi_info          406 drivers/char/ipmi/ipmi_si_intf.c 	smi_info->si_state = SI_GETTING_EVENTS;
smi_info          418 drivers/char/ipmi/ipmi_si_intf.c static inline bool disable_si_irq(struct smi_info *smi_info)
smi_info          420 drivers/char/ipmi/ipmi_si_intf.c 	if ((smi_info->io.irq) && (!smi_info->interrupt_disabled)) {
smi_info          421 drivers/char/ipmi/ipmi_si_intf.c 		smi_info->interrupt_disabled = true;
smi_info          422 drivers/char/ipmi/ipmi_si_intf.c 		start_check_enables(smi_info);
smi_info          428 drivers/char/ipmi/ipmi_si_intf.c static inline bool enable_si_irq(struct smi_info *smi_info)
smi_info          430 drivers/char/ipmi/ipmi_si_intf.c 	if ((smi_info->io.irq) && (smi_info->interrupt_disabled)) {
smi_info          431 drivers/char/ipmi/ipmi_si_intf.c 		smi_info->interrupt_disabled = false;
smi_info          432 drivers/char/ipmi/ipmi_si_intf.c 		start_check_enables(smi_info);
smi_info          444 drivers/char/ipmi/ipmi_si_intf.c static struct ipmi_smi_msg *alloc_msg_handle_irq(struct smi_info *smi_info)
smi_info          450 drivers/char/ipmi/ipmi_si_intf.c 		if (!disable_si_irq(smi_info))
smi_info          451 drivers/char/ipmi/ipmi_si_intf.c 			smi_info->si_state = SI_NORMAL;
smi_info          452 drivers/char/ipmi/ipmi_si_intf.c 	} else if (enable_si_irq(smi_info)) {
smi_info          459 drivers/char/ipmi/ipmi_si_intf.c static void handle_flags(struct smi_info *smi_info)
smi_info          462 drivers/char/ipmi/ipmi_si_intf.c 	if (smi_info->msg_flags & WDT_PRE_TIMEOUT_INT) {
smi_info          464 drivers/char/ipmi/ipmi_si_intf.c 		smi_inc_stat(smi_info, watchdog_pretimeouts);
smi_info          466 drivers/char/ipmi/ipmi_si_intf.c 		start_clear_flags(smi_info);
smi_info          467 drivers/char/ipmi/ipmi_si_intf.c 		smi_info->msg_flags &= ~WDT_PRE_TIMEOUT_INT;
smi_info          468 drivers/char/ipmi/ipmi_si_intf.c 		ipmi_smi_watchdog_pretimeout(smi_info->intf);
smi_info          469 drivers/char/ipmi/ipmi_si_intf.c 	} else if (smi_info->msg_flags & RECEIVE_MSG_AVAIL) {
smi_info          471 drivers/char/ipmi/ipmi_si_intf.c 		smi_info->curr_msg = alloc_msg_handle_irq(smi_info);
smi_info          472 drivers/char/ipmi/ipmi_si_intf.c 		if (!smi_info->curr_msg)
smi_info          475 drivers/char/ipmi/ipmi_si_intf.c 		start_getting_msg_queue(smi_info);
smi_info          476 drivers/char/ipmi/ipmi_si_intf.c 	} else if (smi_info->msg_flags & EVENT_MSG_BUFFER_FULL) {
smi_info          478 drivers/char/ipmi/ipmi_si_intf.c 		smi_info->curr_msg = alloc_msg_handle_irq(smi_info);
smi_info          479 drivers/char/ipmi/ipmi_si_intf.c 		if (!smi_info->curr_msg)
smi_info          482 drivers/char/ipmi/ipmi_si_intf.c 		start_getting_events(smi_info);
smi_info          483 drivers/char/ipmi/ipmi_si_intf.c 	} else if (smi_info->msg_flags & OEM_DATA_AVAIL &&
smi_info          484 drivers/char/ipmi/ipmi_si_intf.c 		   smi_info->oem_data_avail_handler) {
smi_info          485 drivers/char/ipmi/ipmi_si_intf.c 		if (smi_info->oem_data_avail_handler(smi_info))
smi_info          488 drivers/char/ipmi/ipmi_si_intf.c 		smi_info->si_state = SI_NORMAL;
smi_info          497 drivers/char/ipmi/ipmi_si_intf.c static u8 current_global_enables(struct smi_info *smi_info, u8 base,
smi_info          502 drivers/char/ipmi/ipmi_si_intf.c 	if (smi_info->supports_event_msg_buff)
smi_info          505 drivers/char/ipmi/ipmi_si_intf.c 	if (((smi_info->io.irq && !smi_info->interrupt_disabled) ||
smi_info          506 drivers/char/ipmi/ipmi_si_intf.c 	     smi_info->cannot_disable_irq) &&
smi_info          507 drivers/char/ipmi/ipmi_si_intf.c 	    !smi_info->irq_enable_broken)
smi_info          510 drivers/char/ipmi/ipmi_si_intf.c 	if (smi_info->supports_event_msg_buff &&
smi_info          511 drivers/char/ipmi/ipmi_si_intf.c 	    smi_info->io.irq && !smi_info->interrupt_disabled &&
smi_info          512 drivers/char/ipmi/ipmi_si_intf.c 	    !smi_info->irq_enable_broken)
smi_info          520 drivers/char/ipmi/ipmi_si_intf.c static void check_bt_irq(struct smi_info *smi_info, bool irq_on)
smi_info          522 drivers/char/ipmi/ipmi_si_intf.c 	u8 irqstate = smi_info->io.inputb(&smi_info->io, IPMI_BT_INTMASK_REG);
smi_info          530 drivers/char/ipmi/ipmi_si_intf.c 		smi_info->io.outputb(&smi_info->io, IPMI_BT_INTMASK_REG,
smi_info          533 drivers/char/ipmi/ipmi_si_intf.c 		smi_info->io.outputb(&smi_info->io, IPMI_BT_INTMASK_REG, 0);
smi_info          536 drivers/char/ipmi/ipmi_si_intf.c static void handle_transaction_done(struct smi_info *smi_info)
smi_info          541 drivers/char/ipmi/ipmi_si_intf.c 	switch (smi_info->si_state) {
smi_info          543 drivers/char/ipmi/ipmi_si_intf.c 		if (!smi_info->curr_msg)
smi_info          546 drivers/char/ipmi/ipmi_si_intf.c 		smi_info->curr_msg->rsp_size
smi_info          547 drivers/char/ipmi/ipmi_si_intf.c 			= smi_info->handlers->get_result(
smi_info          548 drivers/char/ipmi/ipmi_si_intf.c 				smi_info->si_sm,
smi_info          549 drivers/char/ipmi/ipmi_si_intf.c 				smi_info->curr_msg->rsp,
smi_info          557 drivers/char/ipmi/ipmi_si_intf.c 		msg = smi_info->curr_msg;
smi_info          558 drivers/char/ipmi/ipmi_si_intf.c 		smi_info->curr_msg = NULL;
smi_info          559 drivers/char/ipmi/ipmi_si_intf.c 		deliver_recv_msg(smi_info, msg);
smi_info          568 drivers/char/ipmi/ipmi_si_intf.c 		len = smi_info->handlers->get_result(smi_info->si_sm, msg, 4);
smi_info          571 drivers/char/ipmi/ipmi_si_intf.c 			smi_info->si_state = SI_NORMAL;
smi_info          577 drivers/char/ipmi/ipmi_si_intf.c 			smi_info->si_state = SI_NORMAL;
smi_info          579 drivers/char/ipmi/ipmi_si_intf.c 			smi_info->msg_flags = msg[3];
smi_info          580 drivers/char/ipmi/ipmi_si_intf.c 			handle_flags(smi_info);
smi_info          590 drivers/char/ipmi/ipmi_si_intf.c 		smi_info->handlers->get_result(smi_info->si_sm, msg, 3);
smi_info          593 drivers/char/ipmi/ipmi_si_intf.c 			dev_warn(smi_info->io.dev,
smi_info          596 drivers/char/ipmi/ipmi_si_intf.c 		smi_info->si_state = SI_NORMAL;
smi_info          602 drivers/char/ipmi/ipmi_si_intf.c 		smi_info->curr_msg->rsp_size
smi_info          603 drivers/char/ipmi/ipmi_si_intf.c 			= smi_info->handlers->get_result(
smi_info          604 drivers/char/ipmi/ipmi_si_intf.c 				smi_info->si_sm,
smi_info          605 drivers/char/ipmi/ipmi_si_intf.c 				smi_info->curr_msg->rsp,
smi_info          613 drivers/char/ipmi/ipmi_si_intf.c 		msg = smi_info->curr_msg;
smi_info          614 drivers/char/ipmi/ipmi_si_intf.c 		smi_info->curr_msg = NULL;
smi_info          620 drivers/char/ipmi/ipmi_si_intf.c 			smi_info->msg_flags &= ~EVENT_MSG_BUFFER_FULL;
smi_info          621 drivers/char/ipmi/ipmi_si_intf.c 			handle_flags(smi_info);
smi_info          623 drivers/char/ipmi/ipmi_si_intf.c 			smi_inc_stat(smi_info, events);
smi_info          631 drivers/char/ipmi/ipmi_si_intf.c 			handle_flags(smi_info);
smi_info          633 drivers/char/ipmi/ipmi_si_intf.c 			deliver_recv_msg(smi_info, msg);
smi_info          640 drivers/char/ipmi/ipmi_si_intf.c 		smi_info->curr_msg->rsp_size
smi_info          641 drivers/char/ipmi/ipmi_si_intf.c 			= smi_info->handlers->get_result(
smi_info          642 drivers/char/ipmi/ipmi_si_intf.c 				smi_info->si_sm,
smi_info          643 drivers/char/ipmi/ipmi_si_intf.c 				smi_info->curr_msg->rsp,
smi_info          651 drivers/char/ipmi/ipmi_si_intf.c 		msg = smi_info->curr_msg;
smi_info          652 drivers/char/ipmi/ipmi_si_intf.c 		smi_info->curr_msg = NULL;
smi_info          658 drivers/char/ipmi/ipmi_si_intf.c 			smi_info->msg_flags &= ~RECEIVE_MSG_AVAIL;
smi_info          659 drivers/char/ipmi/ipmi_si_intf.c 			handle_flags(smi_info);
smi_info          661 drivers/char/ipmi/ipmi_si_intf.c 			smi_inc_stat(smi_info, incoming_messages);
smi_info          669 drivers/char/ipmi/ipmi_si_intf.c 			handle_flags(smi_info);
smi_info          671 drivers/char/ipmi/ipmi_si_intf.c 			deliver_recv_msg(smi_info, msg);
smi_info          683 drivers/char/ipmi/ipmi_si_intf.c 		smi_info->handlers->get_result(smi_info->si_sm, msg, 4);
smi_info          685 drivers/char/ipmi/ipmi_si_intf.c 			dev_warn(smi_info->io.dev,
smi_info          687 drivers/char/ipmi/ipmi_si_intf.c 			dev_warn(smi_info->io.dev,
smi_info          689 drivers/char/ipmi/ipmi_si_intf.c 			smi_info->si_state = SI_NORMAL;
smi_info          692 drivers/char/ipmi/ipmi_si_intf.c 		enables = current_global_enables(smi_info, 0, &irq_on);
smi_info          693 drivers/char/ipmi/ipmi_si_intf.c 		if (smi_info->io.si_type == SI_BT)
smi_info          695 drivers/char/ipmi/ipmi_si_intf.c 			check_bt_irq(smi_info, irq_on);
smi_info          701 drivers/char/ipmi/ipmi_si_intf.c 			smi_info->handlers->start_transaction(
smi_info          702 drivers/char/ipmi/ipmi_si_intf.c 				smi_info->si_sm, msg, 3);
smi_info          703 drivers/char/ipmi/ipmi_si_intf.c 			smi_info->si_state = SI_SETTING_ENABLES;
smi_info          704 drivers/char/ipmi/ipmi_si_intf.c 		} else if (smi_info->supports_event_msg_buff) {
smi_info          705 drivers/char/ipmi/ipmi_si_intf.c 			smi_info->curr_msg = ipmi_alloc_smi_msg();
smi_info          706 drivers/char/ipmi/ipmi_si_intf.c 			if (!smi_info->curr_msg) {
smi_info          707 drivers/char/ipmi/ipmi_si_intf.c 				smi_info->si_state = SI_NORMAL;
smi_info          710 drivers/char/ipmi/ipmi_si_intf.c 			start_getting_events(smi_info);
smi_info          712 drivers/char/ipmi/ipmi_si_intf.c 			smi_info->si_state = SI_NORMAL;
smi_info          721 drivers/char/ipmi/ipmi_si_intf.c 		smi_info->handlers->get_result(smi_info->si_sm, msg, 4);
smi_info          723 drivers/char/ipmi/ipmi_si_intf.c 			dev_warn(smi_info->io.dev,
smi_info          727 drivers/char/ipmi/ipmi_si_intf.c 		if (smi_info->supports_event_msg_buff) {
smi_info          728 drivers/char/ipmi/ipmi_si_intf.c 			smi_info->curr_msg = ipmi_alloc_smi_msg();
smi_info          729 drivers/char/ipmi/ipmi_si_intf.c 			if (!smi_info->curr_msg) {
smi_info          730 drivers/char/ipmi/ipmi_si_intf.c 				smi_info->si_state = SI_NORMAL;
smi_info          733 drivers/char/ipmi/ipmi_si_intf.c 			start_getting_events(smi_info);
smi_info          735 drivers/char/ipmi/ipmi_si_intf.c 			smi_info->si_state = SI_NORMAL;
smi_info          747 drivers/char/ipmi/ipmi_si_intf.c static enum si_sm_result smi_event_handler(struct smi_info *smi_info,
smi_info          761 drivers/char/ipmi/ipmi_si_intf.c 	si_sm_result = smi_info->handlers->event(smi_info->si_sm, time);
smi_info          764 drivers/char/ipmi/ipmi_si_intf.c 		si_sm_result = smi_info->handlers->event(smi_info->si_sm, 0);
smi_info          767 drivers/char/ipmi/ipmi_si_intf.c 		smi_inc_stat(smi_info, complete_transactions);
smi_info          769 drivers/char/ipmi/ipmi_si_intf.c 		handle_transaction_done(smi_info);
smi_info          772 drivers/char/ipmi/ipmi_si_intf.c 		smi_inc_stat(smi_info, hosed_count);
smi_info          778 drivers/char/ipmi/ipmi_si_intf.c 		smi_info->si_state = SI_NORMAL;
smi_info          779 drivers/char/ipmi/ipmi_si_intf.c 		if (smi_info->curr_msg != NULL) {
smi_info          785 drivers/char/ipmi/ipmi_si_intf.c 			return_hosed_msg(smi_info, IPMI_ERR_UNSPECIFIED);
smi_info          794 drivers/char/ipmi/ipmi_si_intf.c 	if (si_sm_result == SI_SM_ATTN || smi_info->got_attn) {
smi_info          797 drivers/char/ipmi/ipmi_si_intf.c 		if (smi_info->si_state != SI_NORMAL) {
smi_info          802 drivers/char/ipmi/ipmi_si_intf.c 			smi_info->got_attn = true;
smi_info          804 drivers/char/ipmi/ipmi_si_intf.c 			smi_info->got_attn = false;
smi_info          805 drivers/char/ipmi/ipmi_si_intf.c 			smi_inc_stat(smi_info, attentions);
smi_info          817 drivers/char/ipmi/ipmi_si_intf.c 			start_new_msg(smi_info, msg, 2);
smi_info          818 drivers/char/ipmi/ipmi_si_intf.c 			smi_info->si_state = SI_GETTING_FLAGS;
smi_info          825 drivers/char/ipmi/ipmi_si_intf.c 		smi_inc_stat(smi_info, idles);
smi_info          827 drivers/char/ipmi/ipmi_si_intf.c 		si_sm_result = start_next_msg(smi_info);
smi_info          833 drivers/char/ipmi/ipmi_si_intf.c 	    && (atomic_read(&smi_info->req_events))) {
smi_info          838 drivers/char/ipmi/ipmi_si_intf.c 		atomic_set(&smi_info->req_events, 0);
smi_info          846 drivers/char/ipmi/ipmi_si_intf.c 		if (smi_info->supports_event_msg_buff || smi_info->io.irq) {
smi_info          847 drivers/char/ipmi/ipmi_si_intf.c 			start_check_enables(smi_info);
smi_info          849 drivers/char/ipmi/ipmi_si_intf.c 			smi_info->curr_msg = alloc_msg_handle_irq(smi_info);
smi_info          850 drivers/char/ipmi/ipmi_si_intf.c 			if (!smi_info->curr_msg)
smi_info          853 drivers/char/ipmi/ipmi_si_intf.c 			start_getting_events(smi_info);
smi_info          858 drivers/char/ipmi/ipmi_si_intf.c 	if (si_sm_result == SI_SM_IDLE && smi_info->timer_running) {
smi_info          860 drivers/char/ipmi/ipmi_si_intf.c 		if (del_timer(&smi_info->si_timer))
smi_info          861 drivers/char/ipmi/ipmi_si_intf.c 			smi_info->timer_running = false;
smi_info          868 drivers/char/ipmi/ipmi_si_intf.c static void check_start_timer_thread(struct smi_info *smi_info)
smi_info          870 drivers/char/ipmi/ipmi_si_intf.c 	if (smi_info->si_state == SI_NORMAL && smi_info->curr_msg == NULL) {
smi_info          871 drivers/char/ipmi/ipmi_si_intf.c 		smi_mod_timer(smi_info, jiffies + SI_TIMEOUT_JIFFIES);
smi_info          873 drivers/char/ipmi/ipmi_si_intf.c 		if (smi_info->thread)
smi_info          874 drivers/char/ipmi/ipmi_si_intf.c 			wake_up_process(smi_info->thread);
smi_info          876 drivers/char/ipmi/ipmi_si_intf.c 		start_next_msg(smi_info);
smi_info          877 drivers/char/ipmi/ipmi_si_intf.c 		smi_event_handler(smi_info, 0);
smi_info          883 drivers/char/ipmi/ipmi_si_intf.c 	struct smi_info *smi_info = send_info;
smi_info          890 drivers/char/ipmi/ipmi_si_intf.c 	result = smi_event_handler(smi_info, 0);
smi_info          893 drivers/char/ipmi/ipmi_si_intf.c 		result = smi_event_handler(smi_info, SI_SHORT_TIMEOUT_USEC);
smi_info          900 drivers/char/ipmi/ipmi_si_intf.c 	struct smi_info   *smi_info = send_info;
smi_info          905 drivers/char/ipmi/ipmi_si_intf.c 	if (smi_info->run_to_completion) {
smi_info          910 drivers/char/ipmi/ipmi_si_intf.c 		smi_info->waiting_msg = msg;
smi_info          914 drivers/char/ipmi/ipmi_si_intf.c 	spin_lock_irqsave(&smi_info->si_lock, flags);
smi_info          922 drivers/char/ipmi/ipmi_si_intf.c 	BUG_ON(smi_info->waiting_msg);
smi_info          923 drivers/char/ipmi/ipmi_si_intf.c 	smi_info->waiting_msg = msg;
smi_info          924 drivers/char/ipmi/ipmi_si_intf.c 	check_start_timer_thread(smi_info);
smi_info          925 drivers/char/ipmi/ipmi_si_intf.c 	spin_unlock_irqrestore(&smi_info->si_lock, flags);
smi_info          930 drivers/char/ipmi/ipmi_si_intf.c 	struct smi_info   *smi_info = send_info;
smi_info          932 drivers/char/ipmi/ipmi_si_intf.c 	smi_info->run_to_completion = i_run_to_completion;
smi_info          934 drivers/char/ipmi/ipmi_si_intf.c 		flush_messages(smi_info);
smi_info          952 drivers/char/ipmi/ipmi_si_intf.c 					 const struct smi_info *smi_info,
smi_info          957 drivers/char/ipmi/ipmi_si_intf.c 	if (smi_info->si_num < num_max_busy_us)
smi_info          958 drivers/char/ipmi/ipmi_si_intf.c 		max_busy_us = kipmid_max_busy_us[smi_info->si_num];
smi_info          988 drivers/char/ipmi/ipmi_si_intf.c 	struct smi_info *smi_info = data;
smi_info          998 drivers/char/ipmi/ipmi_si_intf.c 		spin_lock_irqsave(&(smi_info->si_lock), flags);
smi_info          999 drivers/char/ipmi/ipmi_si_intf.c 		smi_result = smi_event_handler(smi_info, 0);
smi_info         1008 drivers/char/ipmi/ipmi_si_intf.c 		if (smi_result != SI_SM_IDLE && !smi_info->timer_running)
smi_info         1009 drivers/char/ipmi/ipmi_si_intf.c 			smi_mod_timer(smi_info, jiffies + SI_TIMEOUT_JIFFIES);
smi_info         1011 drivers/char/ipmi/ipmi_si_intf.c 		spin_unlock_irqrestore(&(smi_info->si_lock), flags);
smi_info         1012 drivers/char/ipmi/ipmi_si_intf.c 		busy_wait = ipmi_thread_busy_wait(smi_result, smi_info,
smi_info         1023 drivers/char/ipmi/ipmi_si_intf.c 			if (smi_info->in_maintenance_mode)
smi_info         1028 drivers/char/ipmi/ipmi_si_intf.c 			if (atomic_read(&smi_info->need_watch)) {
smi_info         1045 drivers/char/ipmi/ipmi_si_intf.c 	struct smi_info *smi_info = send_info;
smi_info         1047 drivers/char/ipmi/ipmi_si_intf.c 	bool run_to_completion = smi_info->run_to_completion;
smi_info         1055 drivers/char/ipmi/ipmi_si_intf.c 		spin_lock_irqsave(&smi_info->si_lock, flags);
smi_info         1056 drivers/char/ipmi/ipmi_si_intf.c 	smi_event_handler(smi_info, 10);
smi_info         1058 drivers/char/ipmi/ipmi_si_intf.c 		spin_unlock_irqrestore(&smi_info->si_lock, flags);
smi_info         1063 drivers/char/ipmi/ipmi_si_intf.c 	struct smi_info *smi_info = send_info;
smi_info         1065 drivers/char/ipmi/ipmi_si_intf.c 	if (!smi_info->has_event_buffer)
smi_info         1068 drivers/char/ipmi/ipmi_si_intf.c 	atomic_set(&smi_info->req_events, 1);
smi_info         1073 drivers/char/ipmi/ipmi_si_intf.c 	struct smi_info *smi_info = send_info;
smi_info         1079 drivers/char/ipmi/ipmi_si_intf.c 	atomic_set(&smi_info->need_watch, enable);
smi_info         1080 drivers/char/ipmi/ipmi_si_intf.c 	spin_lock_irqsave(&smi_info->si_lock, flags);
smi_info         1081 drivers/char/ipmi/ipmi_si_intf.c 	check_start_timer_thread(smi_info);
smi_info         1082 drivers/char/ipmi/ipmi_si_intf.c 	spin_unlock_irqrestore(&smi_info->si_lock, flags);
smi_info         1087 drivers/char/ipmi/ipmi_si_intf.c 	struct smi_info   *smi_info = from_timer(smi_info, t, si_timer);
smi_info         1094 drivers/char/ipmi/ipmi_si_intf.c 	spin_lock_irqsave(&(smi_info->si_lock), flags);
smi_info         1098 drivers/char/ipmi/ipmi_si_intf.c 	time_diff = (((long)jiffies_now - (long)smi_info->last_timeout_jiffies)
smi_info         1100 drivers/char/ipmi/ipmi_si_intf.c 	smi_result = smi_event_handler(smi_info, time_diff);
smi_info         1102 drivers/char/ipmi/ipmi_si_intf.c 	if ((smi_info->io.irq) && (!smi_info->interrupt_disabled)) {
smi_info         1105 drivers/char/ipmi/ipmi_si_intf.c 		smi_inc_stat(smi_info, long_timeouts);
smi_info         1114 drivers/char/ipmi/ipmi_si_intf.c 		smi_inc_stat(smi_info, short_timeouts);
smi_info         1117 drivers/char/ipmi/ipmi_si_intf.c 		smi_inc_stat(smi_info, long_timeouts);
smi_info         1123 drivers/char/ipmi/ipmi_si_intf.c 		smi_mod_timer(smi_info, timeout);
smi_info         1125 drivers/char/ipmi/ipmi_si_intf.c 		smi_info->timer_running = false;
smi_info         1126 drivers/char/ipmi/ipmi_si_intf.c 	spin_unlock_irqrestore(&(smi_info->si_lock), flags);
smi_info         1131 drivers/char/ipmi/ipmi_si_intf.c 	struct smi_info *smi_info = data;
smi_info         1134 drivers/char/ipmi/ipmi_si_intf.c 	if (smi_info->io.si_type == SI_BT)
smi_info         1136 drivers/char/ipmi/ipmi_si_intf.c 		smi_info->io.outputb(&smi_info->io, IPMI_BT_INTMASK_REG,
smi_info         1140 drivers/char/ipmi/ipmi_si_intf.c 	spin_lock_irqsave(&(smi_info->si_lock), flags);
smi_info         1142 drivers/char/ipmi/ipmi_si_intf.c 	smi_inc_stat(smi_info, interrupts);
smi_info         1146 drivers/char/ipmi/ipmi_si_intf.c 	smi_event_handler(smi_info, 0);
smi_info         1147 drivers/char/ipmi/ipmi_si_intf.c 	spin_unlock_irqrestore(&(smi_info->si_lock), flags);
smi_info         1154 drivers/char/ipmi/ipmi_si_intf.c 	struct smi_info *new_smi = send_info;
smi_info         1199 drivers/char/ipmi/ipmi_si_intf.c 	struct smi_info *smi = send_info;
smi_info         1211 drivers/char/ipmi/ipmi_si_intf.c 	struct smi_info   *smi_info = send_info;
smi_info         1214 drivers/char/ipmi/ipmi_si_intf.c 		atomic_set(&smi_info->req_events, 0);
smi_info         1215 drivers/char/ipmi/ipmi_si_intf.c 	smi_info->in_maintenance_mode = enable;
smi_info         1300 drivers/char/ipmi/ipmi_si_intf.c static int wait_for_msg_done(struct smi_info *smi_info)
smi_info         1304 drivers/char/ipmi/ipmi_si_intf.c 	smi_result = smi_info->handlers->event(smi_info->si_sm, 0);
smi_info         1309 drivers/char/ipmi/ipmi_si_intf.c 			smi_result = smi_info->handlers->event(
smi_info         1310 drivers/char/ipmi/ipmi_si_intf.c 				smi_info->si_sm, jiffies_to_usecs(1));
smi_info         1312 drivers/char/ipmi/ipmi_si_intf.c 			smi_result = smi_info->handlers->event(
smi_info         1313 drivers/char/ipmi/ipmi_si_intf.c 				smi_info->si_sm, 0);
smi_info         1327 drivers/char/ipmi/ipmi_si_intf.c static int try_get_dev_id(struct smi_info *smi_info)
smi_info         1344 drivers/char/ipmi/ipmi_si_intf.c 	smi_info->handlers->start_transaction(smi_info->si_sm, msg, 2);
smi_info         1346 drivers/char/ipmi/ipmi_si_intf.c 	rv = wait_for_msg_done(smi_info);
smi_info         1350 drivers/char/ipmi/ipmi_si_intf.c 	resp_len = smi_info->handlers->get_result(smi_info->si_sm,
smi_info         1355 drivers/char/ipmi/ipmi_si_intf.c 			resp + 2, resp_len - 2, &smi_info->device_id);
smi_info         1362 drivers/char/ipmi/ipmi_si_intf.c static int get_global_enables(struct smi_info *smi_info, u8 *enables)
smi_info         1375 drivers/char/ipmi/ipmi_si_intf.c 	smi_info->handlers->start_transaction(smi_info->si_sm, msg, 2);
smi_info         1377 drivers/char/ipmi/ipmi_si_intf.c 	rv = wait_for_msg_done(smi_info);
smi_info         1379 drivers/char/ipmi/ipmi_si_intf.c 		dev_warn(smi_info->io.dev,
smi_info         1385 drivers/char/ipmi/ipmi_si_intf.c 	resp_len = smi_info->handlers->get_result(smi_info->si_sm,
smi_info         1392 drivers/char/ipmi/ipmi_si_intf.c 		dev_warn(smi_info->io.dev,
smi_info         1409 drivers/char/ipmi/ipmi_si_intf.c static int set_global_enables(struct smi_info *smi_info, u8 enables)
smi_info         1423 drivers/char/ipmi/ipmi_si_intf.c 	smi_info->handlers->start_transaction(smi_info->si_sm, msg, 3);
smi_info         1425 drivers/char/ipmi/ipmi_si_intf.c 	rv = wait_for_msg_done(smi_info);
smi_info         1427 drivers/char/ipmi/ipmi_si_intf.c 		dev_warn(smi_info->io.dev,
smi_info         1433 drivers/char/ipmi/ipmi_si_intf.c 	resp_len = smi_info->handlers->get_result(smi_info->si_sm,
smi_info         1439 drivers/char/ipmi/ipmi_si_intf.c 		dev_warn(smi_info->io.dev,
smi_info         1459 drivers/char/ipmi/ipmi_si_intf.c static void check_clr_rcv_irq(struct smi_info *smi_info)
smi_info         1464 drivers/char/ipmi/ipmi_si_intf.c 	rv = get_global_enables(smi_info, &enables);
smi_info         1471 drivers/char/ipmi/ipmi_si_intf.c 		rv = set_global_enables(smi_info, enables);
smi_info         1475 drivers/char/ipmi/ipmi_si_intf.c 		dev_err(smi_info->io.dev,
smi_info         1485 drivers/char/ipmi/ipmi_si_intf.c 		dev_warn(smi_info->io.dev,
smi_info         1487 drivers/char/ipmi/ipmi_si_intf.c 		smi_info->cannot_disable_irq = true;
smi_info         1496 drivers/char/ipmi/ipmi_si_intf.c static void check_set_rcv_irq(struct smi_info *smi_info)
smi_info         1501 drivers/char/ipmi/ipmi_si_intf.c 	if (!smi_info->io.irq)
smi_info         1504 drivers/char/ipmi/ipmi_si_intf.c 	rv = get_global_enables(smi_info, &enables);
smi_info         1507 drivers/char/ipmi/ipmi_si_intf.c 		rv = set_global_enables(smi_info, enables);
smi_info         1511 drivers/char/ipmi/ipmi_si_intf.c 		dev_err(smi_info->io.dev,
smi_info         1521 drivers/char/ipmi/ipmi_si_intf.c 		dev_warn(smi_info->io.dev,
smi_info         1523 drivers/char/ipmi/ipmi_si_intf.c 		smi_info->cannot_disable_irq = true;
smi_info         1524 drivers/char/ipmi/ipmi_si_intf.c 		smi_info->irq_enable_broken = true;
smi_info         1528 drivers/char/ipmi/ipmi_si_intf.c static int try_enable_event_buffer(struct smi_info *smi_info)
smi_info         1541 drivers/char/ipmi/ipmi_si_intf.c 	smi_info->handlers->start_transaction(smi_info->si_sm, msg, 2);
smi_info         1543 drivers/char/ipmi/ipmi_si_intf.c 	rv = wait_for_msg_done(smi_info);
smi_info         1549 drivers/char/ipmi/ipmi_si_intf.c 	resp_len = smi_info->handlers->get_result(smi_info->si_sm,
smi_info         1563 drivers/char/ipmi/ipmi_si_intf.c 		smi_info->supports_event_msg_buff = true;
smi_info         1570 drivers/char/ipmi/ipmi_si_intf.c 	smi_info->handlers->start_transaction(smi_info->si_sm, msg, 3);
smi_info         1572 drivers/char/ipmi/ipmi_si_intf.c 	rv = wait_for_msg_done(smi_info);
smi_info         1578 drivers/char/ipmi/ipmi_si_intf.c 	resp_len = smi_info->handlers->get_result(smi_info->si_sm,
smi_info         1596 drivers/char/ipmi/ipmi_si_intf.c 		smi_info->supports_event_msg_buff = true;
smi_info         1608 drivers/char/ipmi/ipmi_si_intf.c 	struct smi_info *smi_info = dev_get_drvdata(dev);		\
smi_info         1610 drivers/char/ipmi/ipmi_si_intf.c 	return snprintf(buf, 10, "%u\n", smi_get_stat(smi_info, name));	\
smi_info         1618 drivers/char/ipmi/ipmi_si_intf.c 	struct smi_info *smi_info = dev_get_drvdata(dev);
smi_info         1620 drivers/char/ipmi/ipmi_si_intf.c 	return snprintf(buf, 10, "%s\n", si_to_str[smi_info->io.si_type]);
smi_info         1628 drivers/char/ipmi/ipmi_si_intf.c 	struct smi_info *smi_info = dev_get_drvdata(dev);
smi_info         1629 drivers/char/ipmi/ipmi_si_intf.c 	int enabled = smi_info->io.irq && !smi_info->interrupt_disabled;
smi_info         1652 drivers/char/ipmi/ipmi_si_intf.c 	struct smi_info *smi_info = dev_get_drvdata(dev);
smi_info         1656 drivers/char/ipmi/ipmi_si_intf.c 			si_to_str[smi_info->io.si_type],
smi_info         1657 drivers/char/ipmi/ipmi_si_intf.c 			addr_space_to_str[smi_info->io.addr_space],
smi_info         1658 drivers/char/ipmi/ipmi_si_intf.c 			smi_info->io.addr_data,
smi_info         1659 drivers/char/ipmi/ipmi_si_intf.c 			smi_info->io.regspacing,
smi_info         1660 drivers/char/ipmi/ipmi_si_intf.c 			smi_info->io.regsize,
smi_info         1661 drivers/char/ipmi/ipmi_si_intf.c 			smi_info->io.regshift,
smi_info         1662 drivers/char/ipmi/ipmi_si_intf.c 			smi_info->io.irq,
smi_info         1663 drivers/char/ipmi/ipmi_si_intf.c 			smi_info->io.slave_addr);
smi_info         1696 drivers/char/ipmi/ipmi_si_intf.c static int oem_data_avail_to_receive_msg_avail(struct smi_info *smi_info)
smi_info         1698 drivers/char/ipmi/ipmi_si_intf.c 	smi_info->msg_flags = ((smi_info->msg_flags & ~OEM_DATA_AVAIL) |
smi_info         1732 drivers/char/ipmi/ipmi_si_intf.c static void setup_dell_poweredge_oem_data_handler(struct smi_info *smi_info)
smi_info         1734 drivers/char/ipmi/ipmi_si_intf.c 	struct ipmi_device_id *id = &smi_info->device_id;
smi_info         1739 drivers/char/ipmi/ipmi_si_intf.c 			smi_info->oem_data_avail_handler =
smi_info         1744 drivers/char/ipmi/ipmi_si_intf.c 			smi_info->oem_data_avail_handler =
smi_info         1751 drivers/char/ipmi/ipmi_si_intf.c static void return_hosed_msg_badsize(struct smi_info *smi_info)
smi_info         1753 drivers/char/ipmi/ipmi_si_intf.c 	struct ipmi_smi_msg *msg = smi_info->curr_msg;
smi_info         1760 drivers/char/ipmi/ipmi_si_intf.c 	smi_info->curr_msg = NULL;
smi_info         1761 drivers/char/ipmi/ipmi_si_intf.c 	deliver_recv_msg(smi_info, msg);
smi_info         1781 drivers/char/ipmi/ipmi_si_intf.c 	struct smi_info *smi_info = in;
smi_info         1782 drivers/char/ipmi/ipmi_si_intf.c 	unsigned char *data = smi_info->curr_msg->data;
smi_info         1783 drivers/char/ipmi/ipmi_si_intf.c 	unsigned int size   = smi_info->curr_msg->data_size;
smi_info         1788 drivers/char/ipmi/ipmi_si_intf.c 		return_hosed_msg_badsize(smi_info);
smi_info         1806 drivers/char/ipmi/ipmi_si_intf.c setup_dell_poweredge_bt_xaction_handler(struct smi_info *smi_info)
smi_info         1808 drivers/char/ipmi/ipmi_si_intf.c 	struct ipmi_device_id *id = &smi_info->device_id;
smi_info         1810 drivers/char/ipmi/ipmi_si_intf.c 	    smi_info->io.si_type == SI_BT)
smi_info         1822 drivers/char/ipmi/ipmi_si_intf.c static void setup_oem_data_handler(struct smi_info *smi_info)
smi_info         1824 drivers/char/ipmi/ipmi_si_intf.c 	setup_dell_poweredge_oem_data_handler(smi_info);
smi_info         1827 drivers/char/ipmi/ipmi_si_intf.c static void setup_xaction_handlers(struct smi_info *smi_info)
smi_info         1829 drivers/char/ipmi/ipmi_si_intf.c 	setup_dell_poweredge_bt_xaction_handler(smi_info);
smi_info         1832 drivers/char/ipmi/ipmi_si_intf.c static void check_for_broken_irqs(struct smi_info *smi_info)
smi_info         1834 drivers/char/ipmi/ipmi_si_intf.c 	check_clr_rcv_irq(smi_info);
smi_info         1835 drivers/char/ipmi/ipmi_si_intf.c 	check_set_rcv_irq(smi_info);
smi_info         1838 drivers/char/ipmi/ipmi_si_intf.c static inline void stop_timer_and_thread(struct smi_info *smi_info)
smi_info         1840 drivers/char/ipmi/ipmi_si_intf.c 	if (smi_info->thread != NULL) {
smi_info         1841 drivers/char/ipmi/ipmi_si_intf.c 		kthread_stop(smi_info->thread);
smi_info         1842 drivers/char/ipmi/ipmi_si_intf.c 		smi_info->thread = NULL;
smi_info         1845 drivers/char/ipmi/ipmi_si_intf.c 	smi_info->timer_can_start = false;
smi_info         1846 drivers/char/ipmi/ipmi_si_intf.c 	del_timer_sync(&smi_info->si_timer);
smi_info         1849 drivers/char/ipmi/ipmi_si_intf.c static struct smi_info *find_dup_si(struct smi_info *info)
smi_info         1851 drivers/char/ipmi/ipmi_si_intf.c 	struct smi_info *e;
smi_info         1874 drivers/char/ipmi/ipmi_si_intf.c 	struct smi_info *new_smi, *dup;
smi_info         1944 drivers/char/ipmi/ipmi_si_intf.c static int try_smi_init(struct smi_info *new_smi)
smi_info         2094 drivers/char/ipmi/ipmi_si_intf.c 	struct smi_info *e;
smi_info         2162 drivers/char/ipmi/ipmi_si_intf.c 	struct smi_info *smi_info = send_info;
smi_info         2164 drivers/char/ipmi/ipmi_si_intf.c 	if (smi_info->dev_group_added) {
smi_info         2165 drivers/char/ipmi/ipmi_si_intf.c 		device_remove_group(smi_info->io.dev, &ipmi_si_dev_attr_group);
smi_info         2166 drivers/char/ipmi/ipmi_si_intf.c 		smi_info->dev_group_added = false;
smi_info         2168 drivers/char/ipmi/ipmi_si_intf.c 	if (smi_info->io.dev)
smi_info         2169 drivers/char/ipmi/ipmi_si_intf.c 		dev_set_drvdata(smi_info->io.dev, NULL);
smi_info         2175 drivers/char/ipmi/ipmi_si_intf.c 	smi_info->interrupt_disabled = true;
smi_info         2176 drivers/char/ipmi/ipmi_si_intf.c 	if (smi_info->io.irq_cleanup) {
smi_info         2177 drivers/char/ipmi/ipmi_si_intf.c 		smi_info->io.irq_cleanup(&smi_info->io);
smi_info         2178 drivers/char/ipmi/ipmi_si_intf.c 		smi_info->io.irq_cleanup = NULL;
smi_info         2180 drivers/char/ipmi/ipmi_si_intf.c 	stop_timer_and_thread(smi_info);
smi_info         2194 drivers/char/ipmi/ipmi_si_intf.c 	while (smi_info->curr_msg || (smi_info->si_state != SI_NORMAL)) {
smi_info         2195 drivers/char/ipmi/ipmi_si_intf.c 		poll(smi_info);
smi_info         2198 drivers/char/ipmi/ipmi_si_intf.c 	if (smi_info->handlers)
smi_info         2199 drivers/char/ipmi/ipmi_si_intf.c 		disable_si_irq(smi_info);
smi_info         2200 drivers/char/ipmi/ipmi_si_intf.c 	while (smi_info->curr_msg || (smi_info->si_state != SI_NORMAL)) {
smi_info         2201 drivers/char/ipmi/ipmi_si_intf.c 		poll(smi_info);
smi_info         2204 drivers/char/ipmi/ipmi_si_intf.c 	if (smi_info->handlers)
smi_info         2205 drivers/char/ipmi/ipmi_si_intf.c 		smi_info->handlers->cleanup(smi_info->si_sm);
smi_info         2207 drivers/char/ipmi/ipmi_si_intf.c 	if (smi_info->io.addr_source_cleanup) {
smi_info         2208 drivers/char/ipmi/ipmi_si_intf.c 		smi_info->io.addr_source_cleanup(&smi_info->io);
smi_info         2209 drivers/char/ipmi/ipmi_si_intf.c 		smi_info->io.addr_source_cleanup = NULL;
smi_info         2211 drivers/char/ipmi/ipmi_si_intf.c 	if (smi_info->io.io_cleanup) {
smi_info         2212 drivers/char/ipmi/ipmi_si_intf.c 		smi_info->io.io_cleanup(&smi_info->io);
smi_info         2213 drivers/char/ipmi/ipmi_si_intf.c 		smi_info->io.io_cleanup = NULL;
smi_info         2216 drivers/char/ipmi/ipmi_si_intf.c 	kfree(smi_info->si_sm);
smi_info         2217 drivers/char/ipmi/ipmi_si_intf.c 	smi_info->si_sm = NULL;
smi_info         2219 drivers/char/ipmi/ipmi_si_intf.c 	smi_info->intf = NULL;
smi_info         2226 drivers/char/ipmi/ipmi_si_intf.c static void cleanup_one_si(struct smi_info *smi_info)
smi_info         2228 drivers/char/ipmi/ipmi_si_intf.c 	if (!smi_info)
smi_info         2231 drivers/char/ipmi/ipmi_si_intf.c 	list_del(&smi_info->link);
smi_info         2233 drivers/char/ipmi/ipmi_si_intf.c 	if (smi_info->intf)
smi_info         2234 drivers/char/ipmi/ipmi_si_intf.c 		ipmi_unregister_smi(smi_info->intf);
smi_info         2236 drivers/char/ipmi/ipmi_si_intf.c 	kfree(smi_info);
smi_info         2241 drivers/char/ipmi/ipmi_si_intf.c 	struct smi_info *e;
smi_info         2261 drivers/char/ipmi/ipmi_si_intf.c 	struct smi_info *e, *tmp_e;
smi_info         2282 drivers/char/ipmi/ipmi_si_intf.c 	struct smi_info *e, *tmp_e;