Page MenuHomeFreeBSD

D35607.1775813550.diff
No OneTemporary

Size
5 KB
Referenced Files
None
Subscribers
None

D35607.1775813550.diff

Index: sys/arm/mv/gpio.c
===================================================================
--- sys/arm/mv/gpio.c
+++ sys/arm/mv/gpio.c
@@ -531,9 +531,6 @@
MV_GPIO_ASSERT_LOCKED();
-#ifdef INTR_SOLO
- isrc.isrc_filter = NULL;
-#endif
isrc.isrc_event = sc->gpio_events[pin];
if (isrc.isrc_event == NULL ||
Index: sys/kern/subr_intr.c
===================================================================
--- sys/kern/subr_intr.c
+++ sys/kern/subr_intr.c
@@ -367,15 +367,6 @@
isrc_increment_count(isrc);
-#ifdef INTR_SOLO
- if (isrc->isrc_filter != NULL) {
- int error;
- error = isrc->isrc_filter(isrc->isrc_arg, tf);
- PIC_POST_FILTER(isrc->isrc_dev, isrc);
- if (error == FILTER_HANDLED)
- return (0);
- } else
-#endif
if (isrc->isrc_event != NULL) {
if (intr_event_handle(isrc->isrc_event, tf) == 0)
return (0);
@@ -544,37 +535,6 @@
}
#endif
-#ifdef INTR_SOLO
-/*
- * Setup filter into interrupt source.
- */
-static int
-iscr_setup_filter(struct intr_irqsrc *isrc, const char *name,
- intr_irq_filter_t *filter, void *arg, void **cookiep)
-{
-
- if (filter == NULL)
- return (EINVAL);
-
- mtx_lock(&isrc_table_lock);
- /*
- * Make sure that we do not mix the two ways
- * how we handle interrupt sources.
- */
- if (isrc->isrc_filter != NULL || isrc->isrc_event != NULL) {
- mtx_unlock(&isrc_table_lock);
- return (EBUSY);
- }
- isrc->isrc_filter = filter;
- isrc->isrc_arg = arg;
- isrc_update_name(isrc, name);
- mtx_unlock(&isrc_table_lock);
-
- *cookiep = isrc;
- return (0);
-}
-#endif
-
/*
* Interrupt source pre_ithread method for MI interrupt framework.
*/
@@ -665,14 +625,9 @@
mtx_lock(&isrc_table_lock);
/*
- * Make sure that we do not mix the two ways
- * how we handle interrupt sources. Let contested event wins.
+ * Let contested event win.
*/
-#ifdef INTR_SOLO
- if (isrc->isrc_filter != NULL || isrc->isrc_event != NULL) {
-#else
if (isrc->isrc_event != NULL) {
-#endif
mtx_unlock(&isrc_table_lock);
intr_event_destroy(ie);
return (isrc->isrc_event != NULL ? EBUSY : 0);
@@ -1066,34 +1021,8 @@
data = rman_get_virtual(res);
name = device_get_nameunit(dev);
-#ifdef INTR_SOLO
- /*
- * Standard handling is done through MI interrupt framework. However,
- * some interrupts could request solely own special handling. This
- * non standard handling can be used for interrupt controllers without
- * handler (filter only), so in case that interrupt controllers are
- * chained, MI interrupt framework is called only in leaf controller.
- *
- * Note that root interrupt controller routine is served as well,
- * however in intr_irq_handler(), i.e. main system dispatch routine.
- */
- if (flags & INTR_SOLO && hand != NULL) {
- debugf("irq %u cannot solo on %s\n", irq, name);
- return (EINVAL);
- }
-
- if (flags & INTR_SOLO) {
- error = iscr_setup_filter(isrc, name, (intr_irq_filter_t *)filt,
- arg, cookiep);
- debugf("irq %u setup filter error %d on %s\n", isrc->isrc_irq, error,
- name);
- } else
-#endif
- {
- error = isrc_add_handler(isrc, name, filt, hand, arg, flags,
- cookiep);
- debugf("irq %u add handler error %d on %s\n", isrc->isrc_irq, error, name);
- }
+ error = isrc_add_handler(isrc, name, filt, hand, arg, flags, cookiep);
+ debugf("irq %u add handler error %d on %s\n", isrc->isrc_irq, error, name);
if (error != 0)
return (error);
@@ -1128,22 +1057,6 @@
data = rman_get_virtual(res);
-#ifdef INTR_SOLO
- if (isrc->isrc_filter != NULL) {
- if (isrc != cookie)
- return (EINVAL);
-
- mtx_lock(&isrc_table_lock);
- isrc->isrc_filter = NULL;
- isrc->isrc_arg = NULL;
- isrc->isrc_handlers = 0;
- PIC_DISABLE_INTR(isrc->isrc_dev, isrc);
- PIC_TEARDOWN_INTR(isrc->isrc_dev, isrc, res, data);
- isrc_update_name(isrc, NULL);
- mtx_unlock(&isrc_table_lock);
- return (0);
- }
-#endif
if (isrc != intr_handler_source(cookie))
return (EINVAL);
@@ -1175,17 +1088,7 @@
isrc = intr_map_get_isrc(res_id);
if (isrc == NULL || isrc->isrc_handlers == 0)
return (EINVAL);
-#ifdef INTR_SOLO
- if (isrc->isrc_filter != NULL) {
- if (isrc != cookie)
- return (EINVAL);
- mtx_lock(&isrc_table_lock);
- isrc_update_name(isrc, descr);
- mtx_unlock(&isrc_table_lock);
- return (0);
- }
-#endif
error = intr_event_describe_handler(isrc->isrc_event, cookie, descr);
if (error == 0) {
mtx_lock(&isrc_table_lock);
@@ -1209,10 +1112,6 @@
isrc = intr_map_get_isrc(res_id);
if (isrc == NULL || isrc->isrc_handlers == 0)
return (EINVAL);
-#ifdef INTR_SOLO
- if (isrc->isrc_filter != NULL)
- return (intr_isrc_assign_cpu(isrc, cpu));
-#endif
return (intr_event_bind(isrc->isrc_event, cpu));
}
Index: sys/sys/intr.h
===================================================================
--- sys/sys/intr.h
+++ sys/sys/intr.h
@@ -63,12 +63,7 @@
struct intr_irqsrc *isrc;
};
-#ifdef notyet
-#define INTR_SOLO INTR_MD1
-typedef int intr_irq_filter_t(void *arg, struct trapframe *tf);
-#else
typedef int intr_irq_filter_t(void *arg);
-#endif
typedef int intr_child_irq_filter_t(void *arg, uintptr_t irq);
#define INTR_ISRC_NAMELEN (MAXCOMLEN + 1)
@@ -90,10 +85,6 @@
u_long * isrc_count;
u_int isrc_handlers;
struct intr_event * isrc_event;
-#ifdef INTR_SOLO
- intr_irq_filter_t * isrc_filter;
- void * isrc_arg;
-#endif
/* Used by MSI interrupts to store the iommu details */
void * isrc_iommu;
};

File Metadata

Mime Type
text/plain
Expires
Fri, Apr 10, 9:32 AM (3 h, 39 m)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
28315320
Default Alt Text
D35607.1775813550.diff (5 KB)

Event Timeline