)]}'
{
  "commit": "76edced40075ec7ef884dc13d308d5cfcc09690a",
  "tree": "1d46c7c0ab16e8a1b1b82f73155dda41845c56f7",
  "parents": [
    "e658f2c1b90e7ed0a53543f11998585a21a02ea6"
  ],
  "author": {
    "name": "hathach",
    "email": "thach@tinyusb.org",
    "time": "Thu Sep 03 18:19:17 2026 +0700"
  },
  "committer": {
    "name": "hathach",
    "email": "thach@tinyusb.org",
    "time": "Sat Sep 05 15:25:14 2026 +0700"
  },
  "message": "dual: run host_info_to_device_cdc on ea4088_quickstart\n\nThe board has both USB ports wired: U1 to the Type-A host connector and U2\nto the micro-B device connector, and board_init() already puts the port\nselect in that mode, so it can run the dual example.\n\n- Allow the example on LPC40XX.\n- Point the host stack at rhport 0: ohci maps the TinyUSB rhport onto its\n  root-hub port index, and the host controller here is index 0, while the\n  dual examples default to rhport 1.\n- Move the string-descriptor buffers out of the stack. They are written by\n  the host controller, so on parts whose USB master cannot reach the CPU\n  stack (this family) the strings came back as garbage. host/device_info\n  already keeps its transfer buffer in CFG_TUH_MEM_SECTION; do the same\n  here.\n\nVerified on ea4088_quickstart with a WCH-Link on the Type-A port and the\nmicro-B plugged into a PC:\n\n  mounted device 1\n  Device 1: ID 1a86:8010 SN 7FD88F0604B5\n    iManufacturer       1     wch.cn\n    iProduct            2     WCH-Link\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "4431065bab033371081e8ec64aad1c1bec8123da",
      "old_mode": 33188,
      "old_path": "examples/dual/host_info_to_device_cdc/only.txt",
      "new_id": "d98b67e8310741f148537c515335f5667f4ae6aa",
      "new_mode": 33188,
      "new_path": "examples/dual/host_info_to_device_cdc/only.txt"
    },
    {
      "type": "modify",
      "old_id": "5186f91dc5c4f1de94543c8e69d1a20a4f608717",
      "old_mode": 33188,
      "old_path": "examples/dual/host_info_to_device_cdc/src/main.c",
      "new_id": "b542e919e3b51f9748c83f31de53862fe47ab716",
      "new_mode": 33188,
      "new_path": "examples/dual/host_info_to_device_cdc/src/main.c"
    },
    {
      "type": "modify",
      "old_id": "5c02caf0c1453429fda6ea5f025bfafd38cc7c30",
      "old_mode": 33188,
      "old_path": "hw/bsp/lpc40/family.cmake",
      "new_id": "7cdc6efb218fc50a8e38156b37f3fab36f6d876a",
      "new_mode": 33188,
      "new_path": "hw/bsp/lpc40/family.cmake"
    },
    {
      "type": "modify",
      "old_id": "ad155a22900a97a2f4bb78207960b5b9a4ae7d88",
      "old_mode": 33188,
      "old_path": "hw/bsp/lpc40/family.mk",
      "new_id": "02903d374dfdd6f6e70a75667b0bd627eec28067",
      "new_mode": 33188,
      "new_path": "hw/bsp/lpc40/family.mk"
    }
  ]
}
