Subject: Re: [PATCH] powerpc/powernv: Fix mis-merge of OPAL support for LEDS driver

From: Vasant Hegde <[email-masked]>
Date: Sat, 22 Aug 2015 09:36:31 +0530

On 08/22/2015 05:12 AM, Michael Ellerman wrote:
> When I merged the OPAL support for the powernv LEDS driver I missed a
> hunk.
> 
> This is slightly modified from the original patch, as the original added
> code to opal-api.h which is not in the skiboot version, which is
> discouraged.

Yeah. I should have made sure opal-api.h is in sync with skiboot. On skiboot
side I added below macros to fsp-leds.h instead of opal-api.h :-(

Anyway for now these macros are used by led driver only (on both side).. Hence I
think its fine to add to driver code itself. But we should make sure these
strings won't change as we use them while creating sysfs entries and use that
information to identify the type of LED.

> 
> Instead those values are moved into the driver, which is the only place
> they are used.
> 
> Fixes: 8a8d91817aec ("powerpc/powernv: Add OPAL interfaces for accessing and modifying system LED states")
> Signed-off-by: Michael Ellerman <[email-masked]>

Patch looks good.

Reviewed-by: Vasant Hegde <[email-masked]>

-Vasant

> ---
>  arch/powerpc/include/asm/opal-api.h | 12 ++++++++++++
>  drivers/leds/leds-powernv.c         |  6 +++---
>  2 files changed, 15 insertions(+), 3 deletions(-)
> 
> diff --git a/arch/powerpc/include/asm/opal-api.h b/arch/powerpc/include/asm/opal-api.h
> index b516ec1d3b4c..9784c9241c70 100644
> --- a/arch/powerpc/include/asm/opal-api.h
> +++ b/arch/powerpc/include/asm/opal-api.h
> @@ -343,6 +343,18 @@ enum OpalPciResetState {
>  	OPAL_ASSERT_RESET   = 1
>  };
> 
> +enum OpalSlotLedType {
> +	OPAL_SLOT_LED_TYPE_ID = 0,	/* IDENTIFY LED */
> +	OPAL_SLOT_LED_TYPE_FAULT = 1,	/* FAULT LED */
> +	OPAL_SLOT_LED_TYPE_ATTN = 2,	/* System Attention LED */
> +	OPAL_SLOT_LED_TYPE_MAX = 3
> +};
> +
> +enum OpalSlotLedState {
> +	OPAL_SLOT_LED_STATE_OFF = 0,	/* LED is OFF */
> +	OPAL_SLOT_LED_STATE_ON = 1	/* LED is ON */
> +};
> +
>  /*
>   * Address cycle types for LPC accesses. These also correspond
>   * to the content of the first cell of the "reg" property for
> diff --git a/drivers/leds/leds-powernv.c b/drivers/leds/leds-powernv.c
> index a2fea192573b..2c5c5b12ab64 100644
> --- a/drivers/leds/leds-powernv.c
> +++ b/drivers/leds/leds-powernv.c
> @@ -27,9 +27,9 @@ struct led_type_map {
>  	const char	*desc;
>  };
>  static const struct led_type_map led_type_map[] = {
> -	{OPAL_SLOT_LED_TYPE_ID,		POWERNV_LED_TYPE_IDENTIFY},
> -	{OPAL_SLOT_LED_TYPE_FAULT,	POWERNV_LED_TYPE_FAULT},
> -	{OPAL_SLOT_LED_TYPE_ATTN,	POWERNV_LED_TYPE_ATTENTION},
> +	{OPAL_SLOT_LED_TYPE_ID,		"identify"},
> +	{OPAL_SLOT_LED_TYPE_FAULT,	"fault"},
> +	{OPAL_SLOT_LED_TYPE_ATTN,	"attention"},
>  	{-1,				NULL},
>  };
>