/* ibm,dynamic-reconfiguration-memory property supported */
 #define OV5_DRCONF_MEMORY      0x20
 #define OV5_LARGE_PAGES                0x10    /* large pages supported */
+#define OV5_DONATE_DEDICATE_CPU 0x02   /* donate dedicated CPU support */
 /* PCIe/MSI support.  Without MSI full PCIe is not supported */
 #ifdef CONFIG_PCI_MSI
 #define OV5_MSI                        0x01    /* PCIe/MSI support */
        /* option vector 5: PAPR/OF options */
        3 - 2,                          /* length */
        0,                              /* don't ignore, don't halt */
-       OV5_LPAR | OV5_SPLPAR | OV5_LARGE_PAGES | OV5_DRCONF_MEMORY | OV5_MSI,
+       OV5_LPAR | OV5_SPLPAR | OV5_LARGE_PAGES | OV5_DRCONF_MEMORY |
+       OV5_DONATE_DEDICATE_CPU | OV5_MSI,
 };
 
 /* Old method - ELF header with PT_NOTE sections */
 
         * a good time to find other work to dispatch.
         */
        get_lppaca()->idle = 1;
+       get_lppaca()->donate_dedicated_cpu = 1;
 
        /*
         * We come in with interrupts disabled, and need_resched()
 
 out:
        HMT_medium();
+       get_lppaca()->donate_dedicated_cpu = 0;
        get_lppaca()->idle = 0;
 }
 
 
        u64     saved_gpr5;             // Saved GPR5                   x30-x37
 
        u8      reserved4;              // Reserved                     x38-x38
-       u8      cpuctls_task_attrs;     // Task attributes for cpuctls  x39-x39
+       u8      donate_dedicated_cpu;   // Donate dedicated CPU cycles  x39-x39
        u8      fpregs_in_use;          // FP regs in use               x3A-x3A
        u8      pmcregs_in_use;         // PMC regs in use              x3B-x3B
        volatile u32 saved_decr;        // Saved Decr Value             x3C-x3F