)]}'
{
  "commit": "831a5f0e555f5e1950f7122f03e74768fdfbefd4",
  "tree": "ae639deba4f480f40b00aad00f6658023480b9b6",
  "parents": [
    "73bf31f02882563aa03fabdde42357f6ee8120b3"
  ],
  "author": {
    "name": "Marcin Niestroj",
    "email": "m.niestroj@grinn-global.com",
    "time": "Thu Dec 10 12:10:24 2020 +0100"
  },
  "committer": {
    "name": "Jukka Rissanen",
    "email": "jukka.rissanen+github@gmail.com",
    "time": "Thu Jan 21 15:43:47 2021 +0200"
  },
  "message": "drivers: wifi: esp: rely on +IPD after each +CIPRECVDATA\n\nDump of communication between ESP chip and Zephyr shows that\n+IPD:\u003csock\u003e,\u003cbytes_avail\u003e is always received after +CIPRECVDATA. This\nmeans that we don\u0027t need to update sock-\u003ebytes_avail in esp_workq\nthread. Additionally there is no need to schedule next AT+CIPRECVDATA\nrequest, as that will be done by +IPD handler anyway.\n\nRelying on +IPD to be received after each +CIPRECVDATA (as long as there\nis some more data to be received) allows to simplify operations on\nsock-\u003ebytes_avail. From now on only esp_rx thread will update its value\nand schedule AT+CIPRECVDATA in esp_workq thread. Then in\nsock-\u003ebytes_avail will be treated as \"readonly\" in esp_workq\nthread. This allows to prevent race condition when both esp_rx and\nesp_workq threads could potentially update value of sock-\u003ebytes_avail\nvalue at the same time.\n\n\u003csock\u003e,CLOSED message is received always after retrieving all data from\nESP chip (using AT+CIPRECVDATA), so there is no need to check whether\nthere are more bytes to be received before marking socket as closed in\nZephyr driver.\n\nSigned-off-by: Marcin Niestroj \u003cm.niestroj@grinn-global.com\u003e\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "88408447aac403b77d309d61c2b2abd5ca4d2338",
      "old_mode": 33188,
      "old_path": "drivers/wifi/esp/esp_offload.c",
      "new_id": "99b3c8b098e7898f07a558d5bd4bcb4a5ff1f02e",
      "new_mode": 33188,
      "new_path": "drivers/wifi/esp/esp_offload.c"
    }
  ]
}
