[RTEMS Project] #2483: raspberrypi: i2c driver can block task forever if compiled with #if I2C_IO_MODE == 1
RTEMS trac
trac at rtems.org
Wed Dec 2 10:18:17 UTC 2015
#2483: raspberrypi: i2c driver can block task forever if compiled with #if
I2C_IO_MODE == 1
--------------------+------------------
Reporter: soja | Owner:
Type: defect | Status: new
Priority: normal | Milestone:
Component: bsps | Version: 4.12
Severity: normal | Keywords:
--------------------+------------------
If the i2c driver is compiled with #if I2C_IO_MODE == 1 it uses a
transient event send by an ISR to wait for space in the TX FIFO.
The transient event is sent to the taskid which is stored in the structure
for the corresponding bus (bus->task_id).
However, this field is only set once in the rpi_i2c_register_bus-function.
That means if a task other than the one which registered the bus wants to
access it, it will block forever because the event is sent to the wrong
one (the one which registered the bus).
--
Ticket URL: <http://devel.rtems.org/ticket/2483>
RTEMS Project <http://www.rtems.org/>
RTEMS Project
More information about the bugs
mailing list