/* AFAVLAB uses a different mixture of BARs and offsets Not that ugly ;)  */
static int afavlab_setup(struct serial_private *priv, const struct pciserial_board *board, struct uart_port *port, int idx)
/* AFAVLAB uses a different mixture of BARs and offsets Not that ugly ;)  */
static int afavlab_setup(struct serial_private *priv, const struct pciserial_board *board, struct uart_port *port, int idx)
{
	unsigned int bar, offset = board->first_offset;
	bar = FL_GET_BASE(board->flags);
	if (idx < 4)
		bar += idx;
	else {
		bar = 4;
		offset += (idx - 4) * board->uart_offset;
	}
	return setup_port(priv, port, bar, offset, board->reg_shift);
}