Module Name: src Committed By: skrll Date: Sat Oct 13 08:42:51 UTC 2012
Modified Files: src/sys/arch/arm/broadcom: bcm2835_mbox.h bcm2835_mbox_subr.c Log Message: Change the mailbox handling so that the data value top 28 bits are used. To generate a diff of this commit: cvs rdiff -u -r1.2 -r1.3 src/sys/arch/arm/broadcom/bcm2835_mbox.h \ src/sys/arch/arm/broadcom/bcm2835_mbox_subr.c Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files.
Modified files: Index: src/sys/arch/arm/broadcom/bcm2835_mbox.h diff -u src/sys/arch/arm/broadcom/bcm2835_mbox.h:1.2 src/sys/arch/arm/broadcom/bcm2835_mbox.h:1.3 --- src/sys/arch/arm/broadcom/bcm2835_mbox.h:1.2 Wed Aug 22 13:19:47 2012 +++ src/sys/arch/arm/broadcom/bcm2835_mbox.h Sat Oct 13 08:42:50 2012 @@ -1,4 +1,4 @@ -/* $NetBSD: bcm2835_mbox.h,v 1.2 2012/08/22 13:19:47 jakllsch Exp $ */ +/* $NetBSD: bcm2835_mbox.h,v 1.3 2012/10/13 08:42:50 skrll Exp $ */ /*- * Copyright (c) 2012 The NetBSD Foundation, Inc. @@ -34,11 +34,6 @@ #include <sys/bus.h> -#define BCM2835_MBOX_CHAN(mbox) ((mbox) & 0xf) -#define BCM2835_MBOX_DATA(mbox) (((mbox) & ~0xf) >> 4) - -#define BCM2835_MBOX_MSG(chan, data) (((chan) & 0xf) | ((data) << 4)) - void bcm2835_mbox_read(bus_space_tag_t, bus_space_handle_t, uint8_t, uint32_t *); void bcm2835_mbox_write(bus_space_tag_t, bus_space_handle_t, uint8_t, Index: src/sys/arch/arm/broadcom/bcm2835_mbox_subr.c diff -u src/sys/arch/arm/broadcom/bcm2835_mbox_subr.c:1.2 src/sys/arch/arm/broadcom/bcm2835_mbox_subr.c:1.3 --- src/sys/arch/arm/broadcom/bcm2835_mbox_subr.c:1.2 Sat Oct 13 07:57:50 2012 +++ src/sys/arch/arm/broadcom/bcm2835_mbox_subr.c Sat Oct 13 08:42:50 2012 @@ -1,4 +1,4 @@ -/* $NetBSD: bcm2835_mbox_subr.c,v 1.2 2012/10/13 07:57:50 skrll Exp $ */ +/* $NetBSD: bcm2835_mbox_subr.c,v 1.3 2012/10/13 08:42:50 skrll Exp $ */ /*- * Copyright (c) 2012 The NetBSD Foundation, Inc. @@ -30,7 +30,7 @@ */ #include <sys/cdefs.h> -__KERNEL_RCSID(0, "$NetBSD: bcm2835_mbox_subr.c,v 1.2 2012/10/13 07:57:50 skrll Exp $"); +__KERNEL_RCSID(0, "$NetBSD: bcm2835_mbox_subr.c,v 1.3 2012/10/13 08:42:50 skrll Exp $"); #include <sys/param.h> #include <sys/systm.h> @@ -44,12 +44,20 @@ __KERNEL_RCSID(0, "$NetBSD: bcm2835_mbox #include <arm/broadcom/bcm2835_mboxreg.h> #include <arm/broadcom/bcm2835reg.h> + +#define BCM2835_MBOX_CHAN(chan) ((chan) & 0xf) +#define BCM2835_MBOX_DATA(data) ((data) & ~0xf) + +#define BCM2835_MBOX_MSG(chan, data) (((chan) & 0xf) | ((data) & ~0xf)) + void bcm2835_mbox_read(bus_space_tag_t iot, bus_space_handle_t ioh, uint8_t chan, uint32_t *data) { uint32_t mbox; + KASSERT((chan & 0xf) == chan); + for (;;) { uint8_t rchan; uint32_t rdata; @@ -79,6 +87,8 @@ bcm2835_mbox_write(bus_space_tag_t iot, { uint32_t rdata; + KASSERT((chan & 0xf) == chan); + KASSERT((data & 0xf) == 0); for (;;) { bus_space_barrier(iot, ioh, 0, BCM2835_MBOX_SIZE,