Linux Audio

Check our new training course

Embedded Linux Audio

Check our new training course
with Creative Commons CC-BY-SA
lecture materials

Bootlin logo

Elixir Cross Referencer

Loading...
/*
 * FILE NAME
 *	arch/mips/vr41xx/victor-mpc30x/pci_fixup.c
 *
 * BRIEF MODULE DESCRIPTION
 *	The Victor MP-C303/304 specific PCI fixups.
 *
 * Copyright 2002 Yoichi Yuasa
 *                yuasa@hh.iij4u.or.jp
 *
 *  This program is free software; you can redistribute it and/or modify it
 *  under the terms of the GNU General Public License as published by the
 *  Free Software Foundation; either version 2 of the License, or (at your
 *  option) any later version.
 */
#include <linux/init.h>
#include <linux/pci.h>

#include <asm/vr41xx/vrc4173.h>
#include <asm/vr41xx/mpc30x.h>

/*
 * Shortcuts
 */
#define PCMCIA1	VRC4173_PCMCIA1_IRQ
#define PCMCIA2	VRC4173_PCMCIA2_IRQ
#define MQ	MQ200_IRQ

static const int internal_func_irqs[8] __initdata = {
	VRC4173_CASCADE_IRQ,
	VRC4173_AC97_IRQ,
	VRC4173_USB_IRQ,
	
};

static char irq_tab_mpc30x[][5] __initdata = {
 [12] = { PCMCIA1, PCMCIA1, 0, 0 },
 [13] = { PCMCIA2, PCMCIA2, 0, 0 },
 [29] = {      MQ,      MQ, 0, 0 },		/* mediaQ MQ-200 */
};

int __init pcibios_map_irq(struct pci_dev *dev, u8 slot, u8 pin)
{
	if (slot == 30)
		return internal_func_irqs[PCI_FUNC(dev->devfn)];

	return irq_tab_mpc30x[slot][pin];
}