Message ID | 20150308111408.3759.70606.stgit@localhost.localdomain (mailing list archive) |
---|---|
State | Superseded |
Headers | show |
Vasant Hegde <hegdevasant@linux.vnet.ibm.com> writes: > From: Anshuman Khandual <khandual@linux.vnet.ibm.com> > > This patch registers the following two new OPAL interfaces calls > for the platform LED subsystem. With the help of these new OPAL calls, > the kernel will be able to get or set the state of various individual > LEDs on the system at any given location code which is passed through > the LED specific device tree nodes. > > (1) OPAL_LEDS_GET_INDICATOR opal_leds_get_ind > (2) OPAL_LEDS_SET_INDICATOR opal_leds_set_ind > > Signed-off-by: Anshuman Khandual <khandual@linux.vnet.ibm.com> > Signed-off-by: Vasant Hegde <hegdevasant@linux.vnet.ibm.com> I also just merged the skiboot side of these calls. Acked-by: Stewart Smith <stewart@linux.vnet.ibm.com> Tested-by: Stewart Smith <stewart@linux.vnet.ibm.com> (well, it boots, interacts with firmware. I didn't go and look at the LEDs themselves).
On Sun, 2015-03-08 at 16:44 +0530, Vasant Hegde wrote: > From: Anshuman Khandual <khandual@linux.vnet.ibm.com> > > This patch registers the following two new OPAL interfaces calls > for the platform LED subsystem. With the help of these new OPAL calls, > the kernel will be able to get or set the state of various individual > LEDs on the system at any given location code which is passed through > the LED specific device tree nodes. > > (1) OPAL_LEDS_GET_INDICATOR opal_leds_get_ind > (2) OPAL_LEDS_SET_INDICATOR opal_leds_set_ind > > Signed-off-by: Anshuman Khandual <khandual@linux.vnet.ibm.com> > Signed-off-by: Vasant Hegde <hegdevasant@linux.vnet.ibm.com> > --- > arch/powerpc/include/asm/opal.h | 19 +++++++++++++------ We've split opal.h in next. Can you please rebase on top of it: https://git.kernel.org/cgit/linux/kernel/git/mpe/linux.git/log/?h=next cheers
On 03/20/2015 11:53 AM, Michael Ellerman wrote: > On Sun, 2015-03-08 at 16:44 +0530, Vasant Hegde wrote: >> From: Anshuman Khandual <khandual@linux.vnet.ibm.com> >> >> This patch registers the following two new OPAL interfaces calls >> for the platform LED subsystem. With the help of these new OPAL calls, >> the kernel will be able to get or set the state of various individual >> LEDs on the system at any given location code which is passed through >> the LED specific device tree nodes. >> >> (1) OPAL_LEDS_GET_INDICATOR opal_leds_get_ind >> (2) OPAL_LEDS_SET_INDICATOR opal_leds_set_ind >> >> Signed-off-by: Anshuman Khandual <khandual@linux.vnet.ibm.com> >> Signed-off-by: Vasant Hegde <hegdevasant@linux.vnet.ibm.com> >> --- >> arch/powerpc/include/asm/opal.h | 19 +++++++++++++------ > > We've split opal.h in next. > > Can you please rebase on top of it: > > https://git.kernel.org/cgit/linux/kernel/git/mpe/linux.git/log/?h=next Sure.. will rebase and send v2 soon. -Vasant
diff --git a/arch/powerpc/include/asm/opal.h b/arch/powerpc/include/asm/opal.h index 9ee0a30..462ee59 100644 --- a/arch/powerpc/include/asm/opal.h +++ b/arch/powerpc/include/asm/opal.h @@ -169,6 +169,8 @@ struct opal_sg_list { #define OPAL_IPMI_SEND 107 #define OPAL_IPMI_RECV 108 #define OPAL_I2C_REQUEST 109 +#define OPAL_LEDS_GET_INDICATOR 114 +#define OPAL_LEDS_SET_INDICATOR 115 /* Device tree flags */ @@ -380,14 +382,14 @@ enum OpalPciMaskAction { }; enum OpalSlotLedType { - OPAL_SLOT_LED_ID_TYPE = 0, - OPAL_SLOT_LED_FAULT_TYPE = 1 + OPAL_SLOT_LED_TYPE_ID = 0, /* IDENTIFY LED */ + OPAL_SLOT_LED_TYPE_FAULT = 1, /* FAULT LED */ + OPAL_SLOT_LED_TYPE_MAX = 2 }; -enum OpalLedAction { - OPAL_TURN_OFF_LED = 0, - OPAL_TURN_ON_LED = 1, - OPAL_QUERY_LED_STATE_AFTER_BUSY = 2 +enum OpalSlotLedState { + OPAL_SLOT_LED_STATE_OFF = 0, /* LED is OFF */ + OPAL_SLOT_LED_STATE_ON = 1 /* LED is ON */ }; enum OpalEpowStatus { @@ -931,6 +933,11 @@ int64_t opal_ipmi_recv(uint64_t interface, struct opal_ipmi_msg *msg, uint64_t *msg_len); int64_t opal_i2c_request(uint64_t async_token, uint32_t bus_id, struct opal_i2c_request *oreq); +int64_t opal_leds_get_ind(char *loc_code, u64 *led_mask, + u64 *led_value, u64 *max_led_type); +int64_t opal_leds_set_ind(uint64_t token, char *loc_code, const u64 led_mask, + const u64 led_value, u64 *max_led_type); + /* Internal functions */ extern int early_init_dt_scan_opal(unsigned long node, const char *uname, diff --git a/arch/powerpc/platforms/powernv/opal-wrappers.S b/arch/powerpc/platforms/powernv/opal-wrappers.S index 0509bca..86f2acf 100644 --- a/arch/powerpc/platforms/powernv/opal-wrappers.S +++ b/arch/powerpc/platforms/powernv/opal-wrappers.S @@ -292,3 +292,5 @@ OPAL_CALL(opal_tpo_read, OPAL_READ_TPO); OPAL_CALL(opal_ipmi_send, OPAL_IPMI_SEND); OPAL_CALL(opal_ipmi_recv, OPAL_IPMI_RECV); OPAL_CALL(opal_i2c_request, OPAL_I2C_REQUEST); +OPAL_CALL(opal_leds_get_ind, OPAL_LEDS_GET_INDICATOR); +OPAL_CALL(opal_leds_set_ind, OPAL_LEDS_SET_INDICATOR);