|
@@ -169,7 +169,6 @@ static struct locomo_dev_info locomo_devices[] = {
|
|
static void locomo_handler(unsigned int irq, struct irq_desc *desc)
|
|
static void locomo_handler(unsigned int irq, struct irq_desc *desc)
|
|
{
|
|
{
|
|
int req, i;
|
|
int req, i;
|
|
- struct irq_desc *d;
|
|
|
|
void __iomem *mapbase = get_irq_chip_data(irq);
|
|
void __iomem *mapbase = get_irq_chip_data(irq);
|
|
|
|
|
|
/* Acknowledge the parent IRQ */
|
|
/* Acknowledge the parent IRQ */
|
|
@@ -181,10 +180,9 @@ static void locomo_handler(unsigned int irq, struct irq_desc *desc)
|
|
if (req) {
|
|
if (req) {
|
|
/* generate the next interrupt(s) */
|
|
/* generate the next interrupt(s) */
|
|
irq = LOCOMO_IRQ_START;
|
|
irq = LOCOMO_IRQ_START;
|
|
- d = irq_desc + irq;
|
|
|
|
- for (i = 0; i <= 3; i++, d++, irq++) {
|
|
|
|
|
|
+ for (i = 0; i <= 3; i++, irq++) {
|
|
if (req & (0x0100 << i)) {
|
|
if (req & (0x0100 << i)) {
|
|
- desc_handle_irq(irq, d);
|
|
|
|
|
|
+ generic_handle_irq(irq);
|
|
}
|
|
}
|
|
|
|
|
|
}
|
|
}
|
|
@@ -222,12 +220,10 @@ static struct irq_chip locomo_chip = {
|
|
|
|
|
|
static void locomo_key_handler(unsigned int irq, struct irq_desc *desc)
|
|
static void locomo_key_handler(unsigned int irq, struct irq_desc *desc)
|
|
{
|
|
{
|
|
- struct irq_desc *d;
|
|
|
|
void __iomem *mapbase = get_irq_chip_data(irq);
|
|
void __iomem *mapbase = get_irq_chip_data(irq);
|
|
|
|
|
|
if (locomo_readl(mapbase + LOCOMO_KEYBOARD + LOCOMO_KIC) & 0x0001) {
|
|
if (locomo_readl(mapbase + LOCOMO_KEYBOARD + LOCOMO_KIC) & 0x0001) {
|
|
- d = irq_desc + LOCOMO_IRQ_KEY_START;
|
|
|
|
- desc_handle_irq(LOCOMO_IRQ_KEY_START, d);
|
|
|
|
|
|
+ generic_handle_irq(LOCOMO_IRQ_KEY_START);
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
|
|
@@ -268,7 +264,6 @@ static struct irq_chip locomo_key_chip = {
|
|
static void locomo_gpio_handler(unsigned int irq, struct irq_desc *desc)
|
|
static void locomo_gpio_handler(unsigned int irq, struct irq_desc *desc)
|
|
{
|
|
{
|
|
int req, i;
|
|
int req, i;
|
|
- struct irq_desc *d;
|
|
|
|
void __iomem *mapbase = get_irq_chip_data(irq);
|
|
void __iomem *mapbase = get_irq_chip_data(irq);
|
|
|
|
|
|
req = locomo_readl(mapbase + LOCOMO_GIR) &
|
|
req = locomo_readl(mapbase + LOCOMO_GIR) &
|
|
@@ -277,10 +272,9 @@ static void locomo_gpio_handler(unsigned int irq, struct irq_desc *desc)
|
|
|
|
|
|
if (req) {
|
|
if (req) {
|
|
irq = LOCOMO_IRQ_GPIO_START;
|
|
irq = LOCOMO_IRQ_GPIO_START;
|
|
- d = irq_desc + LOCOMO_IRQ_GPIO_START;
|
|
|
|
- for (i = 0; i <= 15; i++, irq++, d++) {
|
|
|
|
|
|
+ for (i = 0; i <= 15; i++, irq++) {
|
|
if (req & (0x0001 << i)) {
|
|
if (req & (0x0001 << i)) {
|
|
- desc_handle_irq(irq, d);
|
|
|
|
|
|
+ generic_handle_irq(irq);
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
@@ -361,12 +355,10 @@ static struct irq_chip locomo_gpio_chip = {
|
|
|
|
|
|
static void locomo_lt_handler(unsigned int irq, struct irq_desc *desc)
|
|
static void locomo_lt_handler(unsigned int irq, struct irq_desc *desc)
|
|
{
|
|
{
|
|
- struct irq_desc *d;
|
|
|
|
void __iomem *mapbase = get_irq_chip_data(irq);
|
|
void __iomem *mapbase = get_irq_chip_data(irq);
|
|
|
|
|
|
if (locomo_readl(mapbase + LOCOMO_LTINT) & 0x0001) {
|
|
if (locomo_readl(mapbase + LOCOMO_LTINT) & 0x0001) {
|
|
- d = irq_desc + LOCOMO_IRQ_LT_START;
|
|
|
|
- desc_handle_irq(LOCOMO_IRQ_LT_START, d);
|
|
|
|
|
|
+ generic_handle_irq(LOCOMO_IRQ_LT_START);
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
|
|
@@ -407,17 +399,15 @@ static struct irq_chip locomo_lt_chip = {
|
|
static void locomo_spi_handler(unsigned int irq, struct irq_desc *desc)
|
|
static void locomo_spi_handler(unsigned int irq, struct irq_desc *desc)
|
|
{
|
|
{
|
|
int req, i;
|
|
int req, i;
|
|
- struct irq_desc *d;
|
|
|
|
void __iomem *mapbase = get_irq_chip_data(irq);
|
|
void __iomem *mapbase = get_irq_chip_data(irq);
|
|
|
|
|
|
req = locomo_readl(mapbase + LOCOMO_SPI + LOCOMO_SPIIR) & 0x000F;
|
|
req = locomo_readl(mapbase + LOCOMO_SPI + LOCOMO_SPIIR) & 0x000F;
|
|
if (req) {
|
|
if (req) {
|
|
irq = LOCOMO_IRQ_SPI_START;
|
|
irq = LOCOMO_IRQ_SPI_START;
|
|
- d = irq_desc + irq;
|
|
|
|
|
|
|
|
- for (i = 0; i <= 3; i++, irq++, d++) {
|
|
|
|
|
|
+ for (i = 0; i <= 3; i++, irq++) {
|
|
if (req & (0x0001 << i)) {
|
|
if (req & (0x0001 << i)) {
|
|
- desc_handle_irq(irq, d);
|
|
|
|
|
|
+ generic_handle_irq(irq);
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|