[rtems commit] bsp/tqm8xx: Use IRQ extensions API
Sebastian Huber
sebh at rtems.org
Mon Sep 17 06:59:19 UTC 2018
Module: rtems
Branch: master
Commit: 7b93d8570eb1bcc2480e106653d6c92788da8544
Changeset: http://git.rtems.org/rtems/commit/?id=7b93d8570eb1bcc2480e106653d6c92788da8544
Author: Sebastian Huber <sebastian.huber at embedded-brains.de>
Date: Wed Sep 12 10:08:50 2018 +0200
bsp/tqm8xx: Use IRQ extensions API
Update #3513.
---
bsps/powerpc/tqm8xx/console/console.c | 38 +++++++++++------------------------
1 file changed, 12 insertions(+), 26 deletions(-)
diff --git a/bsps/powerpc/tqm8xx/console/console.c b/bsps/powerpc/tqm8xx/console/console.c
index 5a681b1..ee246ff 100644
--- a/bsps/powerpc/tqm8xx/console/console.c
+++ b/bsps/powerpc/tqm8xx/console/console.c
@@ -57,7 +57,6 @@
#include <rtems/termiostypes.h>
#include <rtems/bspIo.h>
#include <rtems/error.h>
-#include <rtems/irq.h>
#include <bsp.h>
#include <mpc8xx.h>
@@ -120,7 +119,7 @@ typedef struct m8xx_console_chan_desc_s {
volatile m8xxSCCRegisters_t *sccr;
volatile m8xxSMCRegisters_t *smcr;
} regs;
- int ivec_src;
+ rtems_vector_number ivec_src;
int cr_chan_code;
int brg_used;
} m8xx_console_chan_desc_t;
@@ -497,23 +496,9 @@ sccInterruptHandler (void *arg)
}
static void
-mpc8xx_console_irq_on(const rtems_irq_connect_data *irq)
+mpc8xx_console_irq_on(int chan)
{
- CHN_MASK_SET(irq->name - BSP_CPM_IRQ_LOWEST_OFFSET,
- 3); /* Enable TX and RX interrupts */
-}
-
-static void
-mpc8xx_console_irq_off(const rtems_irq_connect_data *irq)
-{
- CHN_MASK_SET(irq->name - BSP_CPM_IRQ_LOWEST_OFFSET,
- 0); /* Disable TX and RX interrupts */
-}
-
-static int
-mpc8xx_console_irq_isOn(const rtems_irq_connect_data *irq)
-{
- return (0 != CHN_MASK_GET(irq->name - BSP_CPM_IRQ_LOWEST_OFFSET)); /* Check TX and RX interrupts */
+ CHN_MASK_SET(chan, 3); /* Enable TX and RX interrupts */
}
static void
@@ -709,18 +694,19 @@ sccInitialize (int chan)
}
if (m8xx_scc_mode[chan] != TERMIOS_POLLED) {
+ rtems_status_code sc;
- rtems_irq_connect_data irq_conn_data = {
+ sc = rtems_interrupt_handler_install(
m8xx_console_chan_desc[chan].ivec_src,
- sccInterruptHandler, /* rtems_irq_hdl */
- (rtems_irq_hdl_param)chan, /* (rtems_irq_hdl_param) */
- mpc8xx_console_irq_on, /* (rtems_irq_enable) */
- mpc8xx_console_irq_off, /* (rtems_irq_disable) */
- mpc8xx_console_irq_isOn /* (rtems_irq_is_enabled) */
- };
- if (!BSP_install_rtems_irq_handler (&irq_conn_data)) {
+ "SCC",
+ RTEMS_INTERRUPT_UNIQUE,
+ sccInterruptHandler,
+ (void *)chan
+ );
+ if (sc != RTEMS_SUCCESSFUL) {
rtems_panic("console: cannot install IRQ handler");
}
+ mpc8xx_console_irq_on(chan);
}
}
More information about the vc
mailing list