diff options
| author | Scott Shawcroft <scott@tannewt.org> | 2019-04-08 16:58:50 -0700 |
|---|---|---|
| committer | Scott Shawcroft <scott@tannewt.org> | 2019-04-08 16:58:50 -0700 |
| commit | 0f003ac5b8312fafb120e86e05eefd2431014d8c (patch) | |
| tree | ed3e9cd062573c0f0f7fcea51f7c4e9971319648 /shared-module/displayio | |
| parent | 7686f93ef456aa46f538da3159d0e12cae9fa737 (diff) | |
Reorganize board busses into shared-bindings and shared-module.
Diffstat (limited to 'shared-module/displayio')
| -rw-r--r-- | shared-module/displayio/FourWire.c | 2 | ||||
| -rw-r--r-- | shared-module/displayio/__init__.c | 4 |
2 files changed, 6 insertions, 0 deletions
diff --git a/shared-module/displayio/FourWire.c b/shared-module/displayio/FourWire.c index 043f68e26..2ca685f17 100644 --- a/shared-module/displayio/FourWire.c +++ b/shared-module/displayio/FourWire.c @@ -28,6 +28,7 @@ #include <stdint.h> +#include "py/gc.h" #include "shared-bindings/busio/SPI.h" #include "shared-bindings/digitalio/DigitalInOut.h" #include "shared-bindings/time/__init__.h" @@ -40,6 +41,7 @@ void common_hal_displayio_fourwire_construct(displayio_fourwire_obj_t* self, self->bus = spi; common_hal_busio_spi_never_reset(self->bus); + gc_never_free(self->bus); common_hal_digitalio_digitalinout_construct(&self->command, command); common_hal_digitalio_digitalinout_switch_to_output(&self->command, true, DRIVE_MODE_PUSH_PULL); diff --git a/shared-module/displayio/__init__.c b/shared-module/displayio/__init__.c index 49c85f277..c1f5a6810 100644 --- a/shared-module/displayio/__init__.c +++ b/shared-module/displayio/__init__.c @@ -5,6 +5,7 @@ #include "lib/utils/interrupt_char.h" #include "py/reload.h" #include "py/runtime.h" +#include "shared-bindings/board/__init__.h" #include "shared-bindings/displayio/Bitmap.h" #include "shared-bindings/displayio/Display.h" #include "shared-bindings/displayio/Group.h" @@ -190,6 +191,9 @@ void reset_displays(void) { if (((uint32_t) fourwire->bus) < ((uint32_t) &displays) || ((uint32_t) fourwire->bus) > ((uint32_t) &displays + CIRCUITPY_DISPLAY_LIMIT)) { busio_spi_obj_t* original_spi = fourwire->bus; + // We don't need to move original_spi if it is the board.SPI object because it is + // statically allocated already. (Doing so would also make it impossible to reference in + // a subsequent VM run.) if (original_spi == common_hal_board_get_spi()) { continue; } |
