Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit f4263957 authored by Kenji Kaneshige's avatar Kenji Kaneshige Committed by Greg Kroah-Hartman
Browse files

[PATCH] shpchp: Cleanup interrupt polling timer



This patch cleans up the interrupt polling timer code in
shpchp_hpc.c. This has no functional changes.

Signed-off-by: default avatarKenji Kaneshige <kaneshige.kenji@jp.fujitsu.com>
Cc: Kristen Accardi <kristen.c.accardi@intel.com>
Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@suse.de>
parent 4085399d
Loading
Loading
Loading
Loading
+26 −33
Original line number Diff line number Diff line
@@ -221,8 +221,7 @@ static spinlock_t list_lock;
static atomic_t shpchp_num_controllers = ATOMIC_INIT(0);

static irqreturn_t shpc_isr(int irq, void *dev_id, struct pt_regs *regs);

static void start_int_poll_timer(struct php_ctlr_state_s *php_ctlr, int seconds);
static void start_int_poll_timer(struct php_ctlr_state_s *php_ctlr, int sec);
static int hpc_check_cmd_status(struct controller *ctrl);

static inline u8 shpc_readb(struct controller *ctrl, int reg)
@@ -268,47 +267,41 @@ static inline int shpc_indirect_read(struct controller *ctrl, int index,
	return pci_read_config_dword(pdev, cap_offset + DWORD_DATA, value);
}

/* This is the interrupt polling timeout function. */
/*
 * This is the interrupt polling timeout function.
 */
static void int_poll_timeout(unsigned long lphp_ctlr)
{
    struct php_ctlr_state_s *php_ctlr = (struct php_ctlr_state_s *)lphp_ctlr;
	struct php_ctlr_state_s *php_ctlr =
		(struct php_ctlr_state_s *)lphp_ctlr;

	DBG_ENTER_ROUTINE

    if ( !php_ctlr ) {
		err("%s: Invalid HPC controller handle!\n", __FUNCTION__);
		return;
    }

	/* Poll for interrupt events.  regs == NULL => polling */
	shpc_isr(0, php_ctlr->callback_instance_id, NULL);

	init_timer(&php_ctlr->int_poll_timer);
	if (!shpchp_poll_time)
		shpchp_poll_time = 2; /* reset timer to poll in 2 secs if user doesn't specify at module installation*/
		shpchp_poll_time = 2; /* default polling interval is 2 sec */

	start_int_poll_timer(php_ctlr, shpchp_poll_time);

	return;
	DBG_LEAVE_ROUTINE
}

/* This function starts the interrupt polling timer. */
static void start_int_poll_timer(struct php_ctlr_state_s *php_ctlr, int seconds)
/*
 * This function starts the interrupt polling timer.
 */
static void start_int_poll_timer(struct php_ctlr_state_s *php_ctlr, int sec)
{
    if (!php_ctlr) {
		err("%s: Invalid HPC controller handle!\n", __FUNCTION__);
		return;
	}

    if ( ( seconds <= 0 ) || ( seconds > 60 ) )
        seconds = 2;            /* Clamp to sane value */
	/* Clamp to sane value */
	if ((sec <= 0) || (sec > 60))
		sec = 2;

	php_ctlr->int_poll_timer.function = &int_poll_timeout;
    php_ctlr->int_poll_timer.data = (unsigned long)php_ctlr;    /* Instance data */
    php_ctlr->int_poll_timer.expires = jiffies + seconds * HZ;
	php_ctlr->int_poll_timer.data = (unsigned long)php_ctlr;
	php_ctlr->int_poll_timer.expires = jiffies + sec * HZ;
	add_timer(&php_ctlr->int_poll_timer);

	return;
}

static inline int shpc_wait_cmd(struct controller *ctrl)