Skip to content

Commit 2e710be

Browse files
authored
Merge pull request #9568 from jepler/issue9426
Avoid crashing when display components are deinitialized
2 parents 503f1e2 + 0c84b12 commit 2e710be

File tree

21 files changed

+64
-0
lines changed

21 files changed

+64
-0
lines changed

ports/atmel-samd/boards/stackrduino_m0_pro/mpconfigboard.mk

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -9,3 +9,6 @@ CHIP_FAMILY = samd21
99
SPI_FLASH_FILESYSTEM = 1
1010
EXTERNAL_FLASH_DEVICES = "W25Q64JVxQ"
1111
LONGINT_IMPL = MPZ
12+
13+
CIRCUITPY_CODEOP = 0
14+
CIRCUITPY_PARALLELDISPLAYBUS = 0

ports/atmel-samd/common-hal/busio/I2C.c

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -147,6 +147,9 @@ bool common_hal_busio_i2c_probe(busio_i2c_obj_t *self, uint8_t addr) {
147147
}
148148

149149
bool common_hal_busio_i2c_try_lock(busio_i2c_obj_t *self) {
150+
if (common_hal_busio_i2c_deinited(self)) {
151+
return false;
152+
}
150153
bool grabbed_lock = false;
151154
CRITICAL_SECTION_ENTER()
152155
if (!self->has_lock) {

ports/atmel-samd/common-hal/busio/SPI.c

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -222,6 +222,9 @@ bool common_hal_busio_spi_configure(busio_spi_obj_t *self,
222222
}
223223

224224
bool common_hal_busio_spi_try_lock(busio_spi_obj_t *self) {
225+
if (common_hal_busio_spi_deinited(self)) {
226+
return false;
227+
}
225228
bool grabbed_lock = false;
226229
CRITICAL_SECTION_ENTER()
227230
if (!self->has_lock) {

ports/broadcom/common-hal/busio/I2C.c

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -109,6 +109,9 @@ bool common_hal_busio_i2c_probe(busio_i2c_obj_t *self, uint8_t addr) {
109109
}
110110

111111
bool common_hal_busio_i2c_try_lock(busio_i2c_obj_t *self) {
112+
if (common_hal_busio_i2c_deinited(self)) {
113+
return false;
114+
}
112115
bool grabbed_lock = false;
113116
if (!self->has_lock) {
114117
grabbed_lock = true;

ports/broadcom/common-hal/busio/SPI.c

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -200,6 +200,9 @@ bool common_hal_busio_spi_configure(busio_spi_obj_t *self,
200200
}
201201

202202
bool common_hal_busio_spi_try_lock(busio_spi_obj_t *self) {
203+
if (common_hal_busio_spi_deinited(self)) {
204+
return false;
205+
}
203206
bool grabbed_lock = false;
204207
if (!self->has_lock) {
205208
grabbed_lock = true;

ports/cxd56/common-hal/busio/I2C.c

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -51,6 +51,9 @@ bool common_hal_busio_i2c_deinited(busio_i2c_obj_t *self) {
5151
}
5252

5353
bool common_hal_busio_i2c_try_lock(busio_i2c_obj_t *self) {
54+
if (common_hal_busio_i2c_deinited(self)) {
55+
return false;
56+
}
5457
bool grabbed_lock = false;
5558
if (!self->has_lock) {
5659
grabbed_lock = true;

ports/cxd56/common-hal/busio/SPI.c

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -96,6 +96,9 @@ bool common_hal_busio_spi_configure(busio_spi_obj_t *self, uint32_t baudrate, ui
9696
}
9797

9898
bool common_hal_busio_spi_try_lock(busio_spi_obj_t *self) {
99+
if (common_hal_busio_spi_deinited(self)) {
100+
return false;
101+
}
99102
bool grabbed_lock = false;
100103
if (!self->has_lock) {
101104
grabbed_lock = true;

ports/espressif/common-hal/busio/I2C.c

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -141,6 +141,9 @@ bool common_hal_busio_i2c_probe(busio_i2c_obj_t *self, uint8_t addr) {
141141
}
142142

143143
bool common_hal_busio_i2c_try_lock(busio_i2c_obj_t *self) {
144+
if (common_hal_busio_i2c_deinited(self)) {
145+
return false;
146+
}
144147
if (self->has_lock) {
145148
return false;
146149
}

ports/mimxrt10xx/common-hal/busio/I2C.c

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -187,6 +187,9 @@ bool common_hal_busio_i2c_probe(busio_i2c_obj_t *self, uint8_t addr) {
187187
}
188188

189189
bool common_hal_busio_i2c_try_lock(busio_i2c_obj_t *self) {
190+
if (common_hal_busio_i2c_deinited(self)) {
191+
return false;
192+
}
190193
bool grabbed_lock = false;
191194
// CRITICAL_SECTION_ENTER()
192195
if (!self->has_lock) {

ports/mimxrt10xx/common-hal/busio/SPI.c

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -272,6 +272,9 @@ bool common_hal_busio_spi_configure(busio_spi_obj_t *self,
272272
}
273273

274274
bool common_hal_busio_spi_try_lock(busio_spi_obj_t *self) {
275+
if (common_hal_busio_spi_deinited(self)) {
276+
return false;
277+
}
275278
bool grabbed_lock = false;
276279
// CRITICAL_SECTION_ENTER()
277280
if (!self->has_lock) {

0 commit comments

Comments
 (0)