[PATCH 2/3] Mailbox : Added functionality to get power state
Mudit Jain
muditjain18011995 at gmail.com
Sat Aug 20 14:08:37 UTC 2016
Kindly ignore this. I have rebased and pushed all the changes in one
patch.
Thanks
Mudit
On Sat, Aug 20, 2016 at 6:55 PM, Mudit Jain <muditjain18011995 at gmail.com>
wrote:
> From: Mudit Jain <muditj at nvidia.com>
>
> ---
> c/src/lib/libbsp/arm/raspberrypi/include/vc.h | 2 ++
> c/src/lib/libbsp/arm/raspberrypi/misc/vc.c | 25
> ++++++++++++++++++++++
> c/src/lib/libbsp/arm/raspberrypi/misc/vc_defines.h | 12 +++++++++++
> 3 files changed, 39 insertions(+)
>
> diff --git a/c/src/lib/libbsp/arm/raspberrypi/include/vc.h
> b/c/src/lib/libbsp/arm/raspberrypi/include/vc.h
> index d3408f9..74f7557 100644
> --- a/c/src/lib/libbsp/arm/raspberrypi/include/vc.h
> +++ b/c/src/lib/libbsp/arm/raspberrypi/include/vc.h
> @@ -106,6 +106,8 @@ typedef struct {
> #define BCM2835_MAILBOX_POWER_STATE_NODEV ( 1 << 1 )
> int bcm2835_mailbox_set_power_state( bcm2835_set_power_state_entries
> *_entries );
>
> +int bcm2835_mailbox_get_power_state( bcm2835_set_power_state_entries
> *_entries );
> +
> typedef struct {
> uint32_t base;
> size_t size;
> diff --git a/c/src/lib/libbsp/arm/raspberrypi/misc/vc.c
> b/c/src/lib/libbsp/arm/raspberrypi/misc/vc.c
> index 53ac1e8..c089b36 100644
> --- a/c/src/lib/libbsp/arm/raspberrypi/misc/vc.c
> +++ b/c/src/lib/libbsp/arm/raspberrypi/misc/vc.c
> @@ -254,6 +254,31 @@ int bcm2835_mailbox_get_cmdline(
> bcm2835_get_cmdline_entries *_entries )
> return 0;
> }
>
> +int bcm2835_mailbox_get_power_state( bcm2835_set_power_state_entries
> *_entries )
> +{
> + struct {
> + bcm2835_mbox_buf_hdr hdr;
> + bcm2835_mbox_tag_get_power_state get_power_state;
> + uint32_t end_tag;
> + } buffer BCM2835_MBOX_BUF_ALIGN_ATTRIBUTE;
> + BCM2835_MBOX_INIT_BUF( &buffer );
> + BCM2835_MBOX_INIT_TAG( &buffer.get_power_state,
> + BCM2835_MAILBOX_TAG_GET_POWER_STATE );
> + buffer.get_power_state.body.req.dev_id = _entries->dev_id;
> + bcm2835_mailbox_buffer_flush_and_invalidate( &buffer, sizeof( &buffer
> ) );
> +
> + if ( bcm2835_mailbox_send_read_buffer( &buffer ) )
> + return -1;
> +
> + _entries->dev_id = buffer.get_power_state.body.resp.dev_id;
> + _entries->state = buffer.get_power_state.body.resp.state;
> +
> + if ( !bcm2835_mailbox_buffer_suceeded( &buffer.hdr ) )
> + return -2;
> +
> + return 0;
> +}
> +
> int bcm2835_mailbox_set_power_state( bcm2835_set_power_state_entries
> *_entries )
> {
> struct {
> diff --git a/c/src/lib/libbsp/arm/raspberrypi/misc/vc_defines.h
> b/c/src/lib/libbsp/arm/raspberrypi/misc/vc_defines.h
> index 516f8f4..e1a5a5b 100644
> --- a/c/src/lib/libbsp/arm/raspberrypi/misc/vc_defines.h
> +++ b/c/src/lib/libbsp/arm/raspberrypi/misc/vc_defines.h
> @@ -246,6 +246,18 @@ typedef struct {
> #define BCM2835_MAILBOX_POWER_UDID_CCP2TX 0x00000008
>
> #define BCM2835_MAILBOX_TAG_GET_POWER_STATE 0x00020001
> +typedef struct {
> + bcm2835_mbox_tag_hdr tag_hdr;
> + union {
> + struct {
> + uint32_t dev_id;
> + } req;
> + struct {
> + uint32_t dev_id;
> + uint32_t state;
> + } resp;
> + } body;
> +} bcm2835_mbox_tag_get_power_state;
>
> #define BCM2835_MAILBOX_POWER_STATE_RESP_ON (1 << 0)
> #define BCM2835_MAILBOX_POWER_STATE_RESP_NODEV (1 << 1)
> --
> 1.9.1
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.rtems.org/pipermail/devel/attachments/20160820/66f18082/attachment-0002.html>
More information about the devel
mailing list