[prev in list] [next in list] [prev in thread] [next in thread] 

List:       linuxppc-embedded
Subject:    Re: [PATCH 1/2] powerpc/powernv: Enable fetching of platform sensor data
From:       Paul Gortmaker <paul.gortmaker () windriver ! com>
Date:       2014-03-28 15:26:47
Message-ID: CAP=VYLpVZ7b2ooYjU8XteOxU4K0Ak4JfXDTsvrNYwTN4Wxj_2g () mail ! gmail ! com
[Download RAW message or body]

On Fri, Mar 7, 2014 at 12:33 AM, Neelesh Gupta
<neelegup@linux.vnet.ibm.com> wrote:
> This patch enables fetching of various platform sensor data through
> OPAL and expects a sensor handle from the driver to pass to OPAL.

Looks like a missing header, causing build failures on celleb_defconfig

cc1: warnings being treated as errors
In file included from arch/powerpc/platforms/powernv/opal-sensor.c:23:0:
/home/paul/git/linux-head/arch/powerpc/include/asm/opal.h:893:42:
error: 'struct notifier_block' declared inside parameter list
/home/paul/git/linux-head/arch/powerpc/include/asm/opal.h:893:42:
error: its scope is only this definition or declaration, which is
probably not what you want
/home/paul/git/linux-head/arch/powerpc/include/asm/opal.h:895:14:
error: 'struct notifier_block' declared inside parameter list
make[2]: *** [arch/powerpc/platforms/powernv/opal-sensor.o] Error 1
make[1]: *** [arch/powerpc/platforms/powernv] Error 2
make[1]: *** Waiting for unfinished jobs....
make: *** [arch/powerpc/platforms] Error 2
make: *** Waiting for unfinished jobs....
Bisecting: 0 revisions left to test after this (roughly 0 steps)
[4029cd66545f0a45258eda5313b7559bfeaaaae4] powerpc/powernv: Enable
reading and updating of system parameters
running ./x
#
# configuration written to .config
#
7224adbbb80329d1a3ec5aa98213b50365fcd246 is the first bad commit
commit 7224adbbb80329d1a3ec5aa98213b50365fcd246
Author: Neelesh Gupta <neelegup@linux.vnet.ibm.com>
Date:   Fri Mar 7 11:03:27 2014 +0530

    powerpc/powernv: Enable fetching of platform sensor data

    This patch enables fetching of various platform sensor data through
    OPAL and expects a sensor handle from the driver to pass to OPAL.

    Signed-off-by: Neelesh Gupta <neelegup@linux.vnet.ibm.com>
    Signed-off-by: Benjamin Herrenschmidt <benh@kernel.crashing.org>

> 040000 040000 ee7c8dec121a0da53be09da0e1449d8b885ef8a1
b8c4906de326638be77387c78173f7148369d6ff M    arch
bisect run success

http://kisskb.ellerman.id.au/kisskb/buildresult/10844143/

Paul.
---

> 
> Signed-off-by: Neelesh Gupta <neelegup@linux.vnet.ibm.com>
> Signed-off-by: Benjamin Herrenschmidt <benh@kernel.crashing.org>
> ---
> arch/powerpc/include/asm/opal.h                |    4 ++
> arch/powerpc/platforms/powernv/Makefile        |    2 -
> arch/powerpc/platforms/powernv/opal-sensor.c   |   64 ++++++++++++++++++++++++
> arch/powerpc/platforms/powernv/opal-wrappers.S |    1
> 4 files changed, 70 insertions(+), 1 deletion(-)
> create mode 100644 arch/powerpc/platforms/powernv/opal-sensor.c
> 
> diff --git a/arch/powerpc/include/asm/opal.h b/arch/powerpc/include/asm/opal.h
> index 60b3edc..a1cc4dd 100644
> --- a/arch/powerpc/include/asm/opal.h
> +++ b/arch/powerpc/include/asm/opal.h
> @@ -159,6 +159,7 @@ extern int opal_enter_rtas(struct rtas_args *args,
> #define OPAL_GET_MSG                           85
> #define OPAL_CHECK_ASYNC_COMPLETION            86
> #define OPAL_SYNC_HOST_REBOOT                  87
> +#define OPAL_SENSOR_READ                       88
> #define OPAL_GET_PARAM                         89
> #define OPAL_SET_PARAM                         90
> 
> @@ -847,6 +848,8 @@ int64_t opal_get_param(uint64_t token, uint32_t param_id, \
> uint64_t buffer, size_t length);
> int64_t opal_set_param(uint64_t token, uint32_t param_id, uint64_t buffer,
> size_t length);
> +int64_t opal_sensor_read(uint32_t sensor_hndl, int token,
> +               uint32_t *sensor_data);
> 
> /* Internal functions */
> extern int early_init_dt_scan_opal(unsigned long node, const char *uname, int \
> depth, void *data); @@ -875,6 +878,7 @@ extern int \
> opal_async_get_token_interruptible(void); extern int __opal_async_release_token(int \
> token); extern int opal_async_release_token(int token);
> extern int opal_async_wait_response(uint64_t token, struct opal_msg *msg);
> +extern int opal_get_sensor_data(u32 sensor_hndl, u32 *sensor_data);
> 
> extern void hvc_opal_init_early(void);
> 
> diff --git a/arch/powerpc/platforms/powernv/Makefile \
> b/arch/powerpc/platforms/powernv/Makefile index e6166d3..00ae938 100644
> --- a/arch/powerpc/platforms/powernv/Makefile
> +++ b/arch/powerpc/platforms/powernv/Makefile
> @@ -1,6 +1,6 @@
> obj-y                  += setup.o opal-takeover.o opal-wrappers.o opal.o \
> opal-async.o obj-y                  += opal-rtc.o opal-nvram.o opal-lpc.o \
>                 opal-flash.o opal-sysparam.o
> -obj-y                  += rng.o
> +obj-y                  += rng.o opal-sensor.o
> 
> obj-$(CONFIG_SMP)      += smp.o
> obj-$(CONFIG_PCI)      += pci.o pci-p5ioc2.o pci-ioda.o
> diff --git a/arch/powerpc/platforms/powernv/opal-sensor.c \
> b/arch/powerpc/platforms/powernv/opal-sensor.c new file mode 100644
> index 0000000..663cc9c
> --- /dev/null
> +++ b/arch/powerpc/platforms/powernv/opal-sensor.c
> @@ -0,0 +1,64 @@
> +/*
> + * PowerNV sensor code
> + *
> + * Copyright (C) 2013 IBM
> + *
> + * This program is free software; you can redistribute it and/or modify
> + * it under the terms of the GNU General Public License as published by
> + * the Free Software Foundation; either version 2 of the License, or
> + * (at your option) any later version.
> + *
> + * This program is distributed in the hope that it will be useful,
> + * but WITHOUT ANY WARRANTY; without even the implied warranty of
> + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
> + * GNU General Public License for more details.
> + *
> + * You should have received a copy of the GNU General Public License
> + * along with this program; if not, write to the Free Software
> + * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
> + */
> +
> +#include <linux/delay.h>
> +#include <linux/mutex.h>
> +#include <asm/opal.h>
> +
> +static DEFINE_MUTEX(opal_sensor_mutex);
> +
> +/*
> + * This will return sensor information to driver based on the requested sensor
> + * handle. A handle is an opaque id for the powernv, read by the driver from the
> + * device tree..
> + */
> +int opal_get_sensor_data(u32 sensor_hndl, u32 *sensor_data)
> +{
> +       int ret, token;
> +       struct opal_msg msg;
> +
> +       token = opal_async_get_token_interruptible();
> +       if (token < 0) {
> +               pr_err("%s: Couldn't get the token, returning\n", __func__);
> +               ret = token;
> +               goto out;
> +       }
> +
> +       mutex_lock(&opal_sensor_mutex);
> +       ret = opal_sensor_read(sensor_hndl, token, sensor_data);
> +       if (ret != OPAL_ASYNC_COMPLETION)
> +               goto out_token;
> +
> +       ret = opal_async_wait_response(token, &msg);
> +       if (ret) {
> +               pr_err("%s: Failed to wait for the async response, %d\n",
> +                               __func__, ret);
> +               goto out_token;
> +       }
> +
> +       ret = msg.params[1];
> +
> +out_token:
> +       mutex_unlock(&opal_sensor_mutex);
> +       opal_async_release_token(token);
> +out:
> +       return ret;
> +}
> +EXPORT_SYMBOL_GPL(opal_get_sensor_data);
> diff --git a/arch/powerpc/platforms/powernv/opal-wrappers.S \
> b/arch/powerpc/platforms/powernv/opal-wrappers.S index 0afdeca..4279e30 100644
> --- a/arch/powerpc/platforms/powernv/opal-wrappers.S
> +++ b/arch/powerpc/platforms/powernv/opal-wrappers.S
> @@ -129,5 +129,6 @@ OPAL_CALL(opal_update_flash,                        \
> OPAL_FLASH_UPDATE); OPAL_CALL(opal_get_msg,                                \
> OPAL_GET_MSG); OPAL_CALL(opal_check_completion,               \
> OPAL_CHECK_ASYNC_COMPLETION); OPAL_CALL(opal_sync_host_reboot,               \
> OPAL_SYNC_HOST_REBOOT); +OPAL_CALL(opal_sensor_read,                    \
> OPAL_SENSOR_READ); OPAL_CALL(opal_get_param,                      OPAL_GET_PARAM);
> OPAL_CALL(opal_set_param,                      OPAL_SET_PARAM);
> 
> _______________________________________________
> Linuxppc-dev mailing list
> Linuxppc-dev@lists.ozlabs.org
> https://lists.ozlabs.org/listinfo/linuxppc-dev
_______________________________________________
Linuxppc-dev mailing list
Linuxppc-dev@lists.ozlabs.org
https://lists.ozlabs.org/listinfo/linuxppc-dev


[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic