]> git.neil.brown.name Git - history.git/commitdiff
ppc64: get rid of -fomit-frame-pointer and implement xics ibm,int-on
authorAnton Blanchard <anton@samba.org>
Sun, 8 Dec 2002 06:35:20 +0000 (17:35 +1100)
committerAnton Blanchard <anton@samba.org>
Sun, 8 Dec 2002 06:35:20 +0000 (17:35 +1100)
arch/ppc64/Kconfig
arch/ppc64/kernel/xics.c

index 9cdcc3d85124d7b6595a0feb42e63d964637f59f..4f34d46ed7b51eb0b94e91b9e4a6ea9469b12a74 100644 (file)
@@ -37,6 +37,10 @@ config COMPAT
        bool
        default y
 
+config FRAME_POINTER
+       bool
+       default y
+
 source "init/Kconfig"
 
 
index 9ae7993b36ce1abcd5dda0363585b558866e5678..477580671eb57f02d5447fb2a8b62b9edb27d3ae 100644 (file)
@@ -91,6 +91,7 @@ unsigned int default_distrib_server = 0;
 /* RTAS service tokens */
 int ibm_get_xive;
 int ibm_set_xive;
+int ibm_int_on;
 int ibm_int_off;
 
 struct xics_interrupt_node {
@@ -162,6 +163,14 @@ xics_enable_irq(
                       irq, call_status, status);
                return;
        }
+       /* Now unmask the interrupt (often a no-op) */
+       call_status = rtas_call(ibm_int_on, 1, 1, (unsigned long*)&status, 
+                               irq);
+       if( call_status != 0 ) {
+               printk("xics_disable_irq on: irq=%x: rtas_call failed, retn=%lx\n",
+                      irq, call_status);
+               return;
+       }
 }
 
 void
@@ -302,6 +311,7 @@ xics_init_IRQ( void )
 
        ibm_get_xive = rtas_token("ibm,get-xive");
        ibm_set_xive = rtas_token("ibm,set-xive");
+       ibm_int_on  = rtas_token("ibm,int-on");
        ibm_int_off = rtas_token("ibm,int-off");
 
        np = find_type_devices("PowerPC-External-Interrupt-Presentation");