)]}'
{
  "log": [
    {
      "commit": "96fbf175893c5ebba1b66b458c3521bfb4123a24",
      "tree": "a5d7b1207464baee531bfe2b2f8882f806aa6b5e",
      "parents": [
        "277bbab15044c0e0f28443eed8dacd19faaa7691"
      ],
      "author": {
        "name": "jiabin",
        "email": "jiabin@google.com",
        "time": "Fri Jun 23 05:06:10 2023 +0000"
      },
      "committer": {
        "name": "JJ Lee",
        "email": "leejj@google.com",
        "time": "Mon Jun 26 06:38:08 2023 +0000"
      },
      "message": "Fix USB power regression when connecting USB headset during phone/voip call.\n\nWhen a bi-direction USB device plugged in, first connect the output device and then the input device. The policy will prefer the paired input and output device. Connecting USB output device first can make the USB input device be used for phone/voip call once it is available.\n\nAlso cache if the USB device support jack detect to avoid opening mixer when the jack detect is not supported.\n\nBug: 282094846\nTest: make\nTest: repo steps in the bug\nChange-Id: I7cc10b63c887493da284c8fad4384ee68bfd9337\n"
    },
    {
      "commit": "b4db8206224e598839414b67b0a3adbc5dedd723",
      "tree": "85f7b953eada093d35742ad38b7ee46fe79c9905",
      "parents": [
        "3d8774d28f2f116b3b4b1460a636efcac66d2a17"
      ],
      "author": {
        "name": "Jim Sun",
        "email": "jim.sun@mediatek.com",
        "time": "Thu Mar 17 10:23:39 2022 +0800"
      },
      "committer": {
        "name": "Cherrypicker Worker",
        "email": "android-build-cherrypicker-worker@google.com",
        "time": "Mon May 08 02:12:14 2023 +0000"
      },
      "message": "Add PS5 controller PID to Alsa manager block list.\n\nDisable PS5 controller audio output.\n\nTest:\nPlaying a game on Staida APP and then insert PS5 controller, TV dosen\u0027t mute.\n\nBug: 225293215\n(cherry picked from https://android-review.googlesource.com/q/commit:d6b2ae28222e22599485bed960bf11fb261e2dad)\nMerged-In: Ieb626512bc18dbf4cc84bb104eb4fd9cba342b60\nChange-Id: Ieb626512bc18dbf4cc84bb104eb4fd9cba342b60\n"
    },
    {
      "commit": "9a5cab13b4b31ba9bf66e90ef07312959aa391d3",
      "tree": "2ad6daf35c59b193c6d92db972eb97342ead5d69",
      "parents": [
        "0c919fc12a4f9abc230f5b9c2edd0388d4946dd2"
      ],
      "author": {
        "name": "jiabin",
        "email": "jiabin@google.com",
        "time": "Tue Apr 25 17:39:04 2023 +0000"
      },
      "committer": {
        "name": "jiabin",
        "email": "jiabin@google.com",
        "time": "Tue Apr 25 19:45:59 2023 +0000"
      },
      "message": "USB: update logic for reporting playback and capture capability of USB devices.\n\nReport USB devices support audio capture when there is a terminal whose\nsubtype is ACI_OUTPUT_TERMINAL and terminal type is USB streaming and\nthere is another terminal whose subtype is ACI_INPUT_TERMINAL and\nterminal type is not USB streaming.\n\nReport USB devices support audio playback when there is a terminal whose\nsubtype is ACI_INPUT_TERMINAL and terminal type is USB streaming and\nthere is another terminal whose subtype is ACI_OUTPUT_TERMINAL and\nterminal type is not USB streaming.\n\nBug: 279151646\nTest: connect usb headset, dumpsys audio policy\nChange-Id: If1c14cc0a4e3fbdfbed2c105d37ece9a866f18ed\n"
    },
    {
      "commit": "96dce36691b5bc95f901f54fa8da7f41d2f6fe68",
      "tree": "463acc03ceb59d220bf0e8bbde297e037badf32f",
      "parents": [
        "1be684590b24d84222a2674c167ce1147d7ac68e"
      ],
      "author": {
        "name": "jiabin",
        "email": "jiabin@google.com",
        "time": "Fri Mar 10 19:09:07 2023 +0000"
      },
      "committer": {
        "name": "jiabin",
        "email": "jiabin@google.com",
        "time": "Tue Apr 11 17:21:06 2023 +0000"
      },
      "message": "Multiple USB support.\n\nBy reading system property ro.audio.multi_usb_mode to decide if only one\nor multiple usb devices can be connected to audio system at a certain\ntime.\nIn multi USB mode, it is allowed to connect multiple USB devices to\naudio system as long as their device type is different.\n\nBug: 262415494\nTest: manual\nChange-Id: I10d6ea14188105b4cd96ed0973dbea1f3e80a852\n"
    },
    {
      "commit": "286289695bd9f10e1961ff2230a3515ff5acb51e",
      "tree": "1ca1cacba314045e3121fb595931d5ce4bf976bc",
      "parents": [
        "6f7a35628ea181146892fb37f09f67658e55135c"
      ],
      "author": {
        "name": "RD Babiera",
        "email": "rdbabiera@google.com",
        "time": "Thu Mar 09 22:07:44 2023 +0000"
      },
      "committer": {
        "name": "RD Babiera",
        "email": "rdbabiera@google.com",
        "time": "Thu Mar 09 22:07:44 2023 +0000"
      },
      "message": "USB: remove empty stats logging for compliance warnings\n\nRemoves a call to FrameworkStatsLog.write when mUsbPortStatus\nis null or when compliance warnings array is empty.\n\nTest: atest CtsStatsdAtomHostTestCases:UsbStatsTests\nBug: 269342794\nChange-Id: I7f03b66c6c713d8b2afa7905a962a458cce285fe\n"
    },
    {
      "commit": "8ab1601f61f9ff4593b49ff12df2a08fb1661760",
      "tree": "7be6f5978a74dbe1132c40140db6f1688a44fc14",
      "parents": [
        "365efa1166e958f1182c5298beb8109f37b133db",
        "b838794243078e565f4dfa150c3e9205a6a6f026"
      ],
      "author": {
        "name": "Chien Kun Niu",
        "email": "rickyniu@google.com",
        "time": "Tue Mar 07 08:56:48 2023 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Mar 07 08:56:48 2023 +0000"
      },
      "message": "Merge \"usb: Correct right USB Gadget HAL Version on resetUsbGadget\" into udc-dev"
    },
    {
      "commit": "b838794243078e565f4dfa150c3e9205a6a6f026",
      "tree": "755fdb6b17bb09a663b46a5dfa1f134de844db64",
      "parents": [
        "f3710c72aece54372bc9075da9fb35c1dc7c61ca"
      ],
      "author": {
        "name": "Chien Kun Niu",
        "email": "rickyniu@google.com",
        "time": "Mon Mar 06 17:38:38 2023 +0800"
      },
      "committer": {
        "name": "Chien Kun Niu",
        "email": "rickyniu@google.com",
        "time": "Tue Mar 07 06:47:33 2023 +0000"
      },
      "message": "usb: Correct right USB Gadget HAL Version on resetUsbGadget\n\nCorrect USB Gadget HAL Version from V1_2 to V1_1 on resetUsbGadget\n\nBug: 270500209\nTest: atest VtsHalUsbGadgetV1_1HostTest\n      atest VtsHalUsbGadgetV1_2HostTest\nChange-Id: I5315654d3af7c75b7f86e25c5aaf694ac93f3f7d\nSigned-off-by: Chien Kun Niu \u003crickyniu@google.com\u003e\n"
    },
    {
      "commit": "3b4472fc03db13729d7c4d9f684ac5ea84639be4",
      "tree": "e5d31bd4909eac2a8ddfb36331d63a798c4342de",
      "parents": [
        "e8d5d68e211237643cc530922c94bf6d561642e8",
        "88e10487ad7be86b9f2b222c9b962d2ad5044556"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Tue Feb 28 23:26:47 2023 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Feb 28 23:26:47 2023 +0000"
      },
      "message": "Merge \"USB MIDI: Multijack MIDI 1.0 for MIDI 2.0 devices\" into udc-dev"
    },
    {
      "commit": "88e10487ad7be86b9f2b222c9b962d2ad5044556",
      "tree": "40887e861a7edb44b6996278cfafba6ed77d88c6",
      "parents": [
        "ca9e2463e906508f044fc837b65567a2bf4b5b3f"
      ],
      "author": {
        "name": "Robert Wu",
        "email": "robertwu@google.com",
        "time": "Wed Jan 25 22:45:27 2023 +0000"
      },
      "committer": {
        "name": "Robert Wu",
        "email": "robertwu@google.com",
        "time": "Wed Feb 22 18:53:18 2023 +0000"
      },
      "message": "USB MIDI: Multijack MIDI 1.0 for MIDI 2.0 devices\n\nMIDI 2.0 devices only show one input and output port for its backup\nMIDI 1.0 path. This CL reads the jack counts and creates encoders\nand decoders accordingly.\n\nUsbMidiPacketConverter has been refactored to use cable numbers for\nmultiplexing USB MIDI streams.\n\nBug: 266473128\nTest: MidiScope/MidiKeyboard on multiport MIDI device\nTest: UmpMidiScope on MIDI 2.0 devices\nChange-Id: I58799393ab0bddf7c6a6c63f1ab014accf1ab10e\n"
    },
    {
      "commit": "c9da3f7848f5a06cd43460687fb5121d3a929fca",
      "tree": "8ed0c23f3f27600db3d165a7989946a62913f1ef",
      "parents": [
        "ca9e2463e906508f044fc837b65567a2bf4b5b3f"
      ],
      "author": {
        "name": "Robert Wu",
        "email": "robertwu@google.com",
        "time": "Wed Feb 01 21:47:38 2023 +0000"
      },
      "committer": {
        "name": "Robert Wu",
        "email": "robertwu@google.com",
        "time": "Tue Feb 21 17:54:53 2023 +0000"
      },
      "message": "USB MIDI: Fix incorrect timestamps\n\nTimestamp is calculated before waiting for USB data. When USB data comes in,\nthe timestamp from when it starts to wait is used. This makes the timestamp\nvery inaccurate.\n\nThe fix is to move \"timestamp \u003d System.nanoTime()\" after getting the USB\nresponse.\n\nBug: 267519645\nTest: Connect phone with MIDI Scope app to USB MIDI 2.0 keyboard\nTest: Play notes on the keyboard and verify timestamps look reasonable\nChange-Id: Ic3bccd89b65787badf3139964983572f83d99eaa\n"
    },
    {
      "commit": "765d52de14f694c8cb003a53e18a78d2d6230765",
      "tree": "d83558aa59f7a90941c20d5b0ab5c1d5e542d9f8",
      "parents": [
        "8b537cabc46a90e815bb1567d295800c9b2a37b7",
        "143de4a58f1a1f98bf55bca71dbd0a58ae4c8212"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Thu Feb 09 02:02:56 2023 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Feb 09 02:02:56 2023 +0000"
      },
      "message": "Merge \"Add resetCb\""
    },
    {
      "commit": "5be6fe38030781e0b0d94ecc2d6e66cad1efa02a",
      "tree": "ea9d95148af9a913d82caa3131ff1904267834d1",
      "parents": [
        "7f9d899af3e29a419d0aa836f124f98d5520f402"
      ],
      "author": {
        "name": "Andrei Onea",
        "email": "andreionea@google.com",
        "time": "Tue Feb 07 16:17:32 2023 +0000"
      },
      "committer": {
        "name": "Andrei Onea",
        "email": "andreionea@google.com",
        "time": "Tue Feb 07 16:17:32 2023 +0000"
      },
      "message": "Remove static dependency on usb gadget aidl libs\n\nThese libraries are already part of framework.jar, so there\u0027s no need to\nduplicate them in services.jar.\n\nBug: 266855401\nTest: atest StrictJavaPackagesTest\nChange-Id: Ia23b12e0b00d5ba7ff81ccc4fdc34f8e4e63db5b\n"
    },
    {
      "commit": "143de4a58f1a1f98bf55bca71dbd0a58ae4c8212",
      "tree": "e0bfb02e3e465da287b101175721ec195a3c5860",
      "parents": [
        "e40a9a7d5c595fd083c1f97f96555e12acb37ac7"
      ],
      "author": {
        "name": "Ricky Niu",
        "email": "rickyniu@google.com",
        "time": "Tue Jan 31 18:02:22 2023 +0800"
      },
      "committer": {
        "name": "Badhri Jagan Sridharan",
        "email": "badhri@google.com",
        "time": "Mon Feb 06 23:29:03 2023 +0000"
      },
      "message": "Add resetCb\n\nAdd the resetCb to complete asynchronous\n\nBug: 267252826\nTest: Boot to home and function work\nChange-Id: I52291bb89951339ac26e41f9ca3a63abaeb78fef\n"
    },
    {
      "commit": "16f4589abfbefe8bf658f48b47534fe514347382",
      "tree": "a45070ee47a4a10d4c9fb71554966018f86cc28b",
      "parents": [
        "e62ef4e15db86e6821331d4e261cb537604746a9"
      ],
      "author": {
        "name": "Avichal Rakesh",
        "email": "arakesh@google.com",
        "time": "Thu Jan 19 19:24:40 2023 -0800"
      },
      "committer": {
        "name": "Avichal Rakesh",
        "email": "arakesh@google.com",
        "time": "Fri Feb 03 17:38:19 2023 -0800"
      },
      "message": "Usb: Add UVC support to UsbManager and UsbDeviceManager\n\nThis CL adds support for UVC gadget function in USB System service.\n\nBug: 242344221\nTest: Manually tested that the UVC function can be enabled when needed.\nAPI-Coverage-Bug: 267667903\nChange-Id: Ifd93f065426a224274ec39f53366dd6e3fee0bfa\n"
    },
    {
      "commit": "d170d07bc098753e3e865c8706e49fd35a7b4b24",
      "tree": "de24322939399669c0a067d1cffdf52c0c67e57a",
      "parents": [
        "75208d7f9e9e7894594028402ca3944262c15705",
        "8e7bf0ff3b7cc6eb4f24c81cebe40bbbd034cd9b"
      ],
      "author": {
        "name": "Robert Wu",
        "email": "robertwu@google.com",
        "time": "Thu Feb 02 17:57:27 2023 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Feb 02 17:57:27 2023 +0000"
      },
      "message": "Merge \"USB MIDI: Rename as UsbAlsaMidiDevice\""
    },
    {
      "commit": "82c57ac41cdf452b70ab297f1fcf6594d4e3c8ab",
      "tree": "3e41768ef425b7560b938886fd480484fe7e247e",
      "parents": [
        "53ea22523e6cb0fabc1f11926529e68b2afa312a",
        "e2707bf84844c216b1c53c6d4779ac80d1e0a673"
      ],
      "author": {
        "name": "Jiabin Huang",
        "email": "jiabin@google.com",
        "time": "Wed Feb 01 19:35:53 2023 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Feb 01 19:35:53 2023 +0000"
      },
      "message": "Merge \"Monitor alsa device files to notify USB devices connection.\""
    },
    {
      "commit": "886ce426f1f51fa6d85cae95fef839ca8dcbea66",
      "tree": "625ad580ba17f467c3a49a69fb1fec8fcf700522",
      "parents": [
        "053c947efb830226cb90645b4b345597e2272862",
        "a7dee5d90648abb9c024b1815f0cecdedd26f719"
      ],
      "author": {
        "name": "Robert Wu",
        "email": "robertwu@google.com",
        "time": "Fri Jan 27 18:00:34 2023 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Jan 27 18:00:34 2023 +0000"
      },
      "message": "Merge \"USB MIDI: Add more info to MIDI Endpoints\""
    },
    {
      "commit": "8e7bf0ff3b7cc6eb4f24c81cebe40bbbd034cd9b",
      "tree": "3af70c31dd08f8fdfe68022eac72e396fb6f572c",
      "parents": [
        "0b9b6f13cf2ade687d44f0a5fa4db02f6ecce54e"
      ],
      "author": {
        "name": "Robert Wu",
        "email": "robertwu@google.com",
        "time": "Thu Jan 26 01:44:07 2023 +0000"
      },
      "committer": {
        "name": "Robert Wu",
        "email": "robertwu@google.com",
        "time": "Thu Jan 26 02:19:22 2023 +0000"
      },
      "message": "USB MIDI: Rename as UsbAlsaMidiDevice\n\nUsbMidiDevice is a confusing name for the ALSA MIDI path when\nUsbDirectMidiDevice exists. This CL renames UsbMidiDevice as\nUsbAlsaMidiDevice.\n\nBug: 266753421\nTest: MIDI Keyboard and MIDI Scope\nChange-Id: I6aca2b9c10043bcaa28fee1066cbece66578397a\n"
    },
    {
      "commit": "a7dee5d90648abb9c024b1815f0cecdedd26f719",
      "tree": "b8631136be37518de6a19bbcb11c37ef7efd9375",
      "parents": [
        "0b9b6f13cf2ade687d44f0a5fa4db02f6ecce54e"
      ],
      "author": {
        "name": "Robert Wu",
        "email": "robertwu@google.com",
        "time": "Tue Jan 24 22:37:24 2023 +0000"
      },
      "committer": {
        "name": "Robert Wu",
        "email": "robertwu@google.com",
        "time": "Thu Jan 26 02:04:45 2023 +0000"
      },
      "message": "USB MIDI: Add more info to MIDI Endpoints\n\nAdd more info to MIDI endpoint descriptors.\n\nBug: 266473128\nTest: adb shell dumpsys usb dump-descriptors -dump-list\nChange-Id: I047b542f34de97b72b429454c7592dda8c1d2884\n"
    },
    {
      "commit": "f1570be660da82a707439281973accc0d9076c05",
      "tree": "93e08eb0d377746848efb6db09611727a417e30f",
      "parents": [
        "6ed805f8a0e793900125d047f1fe4f68ec5a0bbe"
      ],
      "author": {
        "name": "RD Babiera",
        "email": "rdbabiera@google.com",
        "time": "Tue Jan 24 00:37:01 2023 +0000"
      },
      "committer": {
        "name": "RD Babiera",
        "email": "rdbabiera@google.com",
        "time": "Wed Jan 25 20:40:22 2023 +0000"
      },
      "message": "Add hpd and link training status to displayport alt mode api\n\nAdds isHotPlugDetectActive() and getLinkTraining() status to\nDisplayPortAltModeInfo as well as necessary enums within\nLINK_TRAINING_STATUS_\n\nTest: atest CtsUsbManagerTestCases\nBug: 253534975\nChange-Id: Ibbd3cd979b352f49819a7da01f030abfcae66444\n"
    },
    {
      "commit": "e2707bf84844c216b1c53c6d4779ac80d1e0a673",
      "tree": "11036b8fd720be1413a5baeedcf1a47fceb04378",
      "parents": [
        "812d9a9417abe7231f17eaf63d8f9433a8834023"
      ],
      "author": {
        "name": "jiabin",
        "email": "jiabin@google.com",
        "time": "Tue Jan 17 18:05:25 2023 +0000"
      },
      "committer": {
        "name": "jiabin",
        "email": "jiabin@google.com",
        "time": "Tue Jan 24 20:53:13 2023 +0000"
      },
      "message": "Monitor alsa device files to notify USB devices connection.\n\nOnly notify new USB device connection when there is any alsa device\nfile present. When the USB bus notifies new USB device connection, the\nalsa device files may not be present. If new USB device connection is\nnotified immediately when the bus detects new device attached, the HAL\nmay not be able to open any input/output stream over USB devices given\nthe alsa device files may not be ready. In this CL, adding the monitor\nto watch new alsa device files creation and only notify audio framework\nabout new USB device connection when there is nay alsa device file\nready.\n\nBug: 261538121\nTest: play and record audio via USB headset\nChange-Id: I2a93f4868f9db82c69dd839cef550244c7d9d3e7\n"
    },
    {
      "commit": "6ed805f8a0e793900125d047f1fe4f68ec5a0bbe",
      "tree": "66e6d437592f92f576100f7833efe9f69d0dac9f",
      "parents": [
        "1c1503180e200055614ea9c157162b29e014bf30"
      ],
      "author": {
        "name": "RD Babiera",
        "email": "rdbabiera@google.com",
        "time": "Mon Jan 23 18:45:10 2023 +0000"
      },
      "committer": {
        "name": "RD Babiera",
        "email": "rdbabiera@google.com",
        "time": "Mon Jan 23 21:59:11 2023 +0000"
      },
      "message": "Add hpd and link training status to usb frameworks\n\nAdds hpd and linkTrainingStatus fields to DisplayPortAltModeInfo.\nChanges dumpsys simulation to update new fields, and defines expected types\nfor all DisplayPortAltModeInfo fields.\n\nTest: manually check field population using simulator\nBug: 253534975\nChange-Id: Icd49fb468bbc186ae44f9b8169cb8045997390c0\n"
    },
    {
      "commit": "9106ef94f00b93decda516fe128dfb05904bbda4",
      "tree": "8316d6a158fadeb5d5c2aa9dc7ef6380a23e89e1",
      "parents": [
        "d8e7d6c92f5ef40a003b22ed03b94f674f2b6e9e",
        "768236ceecc2d81ea82671b8dc6c2031f356e391"
      ],
      "author": {
        "name": "Robert Wu",
        "email": "robertwu@google.com",
        "time": "Fri Jan 13 21:05:04 2023 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Jan 13 21:05:04 2023 +0000"
      },
      "message": "Merge \"Use ALSA for USB MIDI 1.0 devices\""
    },
    {
      "commit": "0b2be9a6fb59cdbfe28cf2a088f56593e5d8c83c",
      "tree": "ecb796b8090f25ee6816a5ceafdaf9952a60d4e1",
      "parents": [
        "40a53e6c8e752f3090f9a7d91edaaa8ad3168be0"
      ],
      "author": {
        "name": "Badhri Jagan Sridharan",
        "email": "badhri@google.com",
        "time": "Thu Jan 12 08:34:01 2023 +0000"
      },
      "committer": {
        "name": "Badhri Jagan Sridharan",
        "email": "badhri@google.com",
        "time": "Fri Jan 13 07:35:42 2023 +0000"
      },
      "message": "Do not debounce disconnect while resetUsbGadget\n\nWhen resetUsbGadget is requested, do not debounce disconnect to allow\nfalling back to the the default configuration. Also remove\naccessory mode enter timeout messages to prevent leaving AOAP\nenabled when resetUsbGadget is requested.\n\nBug: 260145166\nChange-Id: I538f405312049846839297dc3835ec2ff7d75084\n"
    },
    {
      "commit": "768236ceecc2d81ea82671b8dc6c2031f356e391",
      "tree": "9f44524411129a378ca125a4f604d6b8b89fee67",
      "parents": [
        "966144cc5e8827fc4ac2e1e9ba45fb642a4d3dfd"
      ],
      "author": {
        "name": "Robert Wu",
        "email": "robertwu@google.com",
        "time": "Thu Jan 05 19:04:36 2023 +0000"
      },
      "committer": {
        "name": "Robert Wu",
        "email": "robertwu@google.com",
        "time": "Wed Jan 11 20:41:55 2023 +0000"
      },
      "message": "Use ALSA for USB MIDI 1.0 devices\n\nIn Android T, we added USB MIDI 2.0 support. As part of the change,\nwe changed USB MIDI 1.0 devices to also not use ALSA.\n\nUsers have reported bugs where audio stops working after MIDI is used.\nThe root cause of this is because ALSA disconnects the sound card if\none part of the sound card is removed. Android disconnects the ALSA\nMIDI interface as a direct USB connection is made.\n\nAs long as ALSA is used for audio, ALSA needs to be used for MIDI.\nThus, Android will go back to using ALSA for MIDI 1.0 USB devices.\n\nRefer to ag/16835029 for the change where ALSA is no longer used for\nhost mode. This change is a partial revert of it.\n\nBug: 251243033\nBug: 259365701\nTest: MIDI Scope on Korg device\nTest: MIDI Keyboard and Scope loopback on 2x2 MIDI interface\nTest: MIDI Scope on MIDI 2.0 device\nTest: OboeTester Tap to Tone with MIDI and Audio\nChange-Id: Ia6a6021619e05dc5b483d4644d7fd152d89e1d46\n"
    },
    {
      "commit": "9de2881d5c56135307204f8616937886e3eef79d",
      "tree": "c4dd975d4e75ee74bbf9af340a60f8f248958bfd",
      "parents": [
        "613dc2608856a1115009a562b1d1a174c01cca88"
      ],
      "author": {
        "name": "RD Babiera",
        "email": "rdbabiera@google.com",
        "time": "Mon Dec 19 23:26:13 2022 +0000"
      },
      "committer": {
        "name": "RD Babiera",
        "email": "rdbabiera@google.com",
        "time": "Mon Jan 09 17:57:33 2023 +0000"
      },
      "message": "Usb DisplayPort alt mode frameworks api\n\nAdds getDisplayPortAltModeInfo() to UsbPortStatus as well as implementation\nfor DisplayPortAltModeInfo.\nAdds registerDisplayPortAltModeListener() to UsbManager in addition to\nDisplayPortAltModeInfoListener and DisplayPortAltModeInfoListener.aidl\nAdds isAltModeSupported() to UsbPort.\nProvides necessary pipeline to bubble up information from HAL layer to\nframeworks level.\n\nAdds AltMode support to simulated ports within UsbService.\n\nBug: 253534975\nTest: atest CtsUsbManagerTestCases\nChange-Id: Ie0b302ea79d0870b95f600cf3077023302a04a1d\n"
    },
    {
      "commit": "5722895266e4259b7bbf54dea2f236759e5c7fe4",
      "tree": "5d18741fccc9e5a2a3a4eee5d34cf2e523569352",
      "parents": [
        "4c6d93bc0f6c725ef0dc6b0299efbe8918b7dffe"
      ],
      "author": {
        "name": "RD Babiera",
        "email": "rdbabiera@google.com",
        "time": "Wed Nov 09 21:09:24 2022 +0000"
      },
      "committer": {
        "name": "Badhri Jagan Sridharan",
        "email": "badhri@google.com",
        "time": "Thu Dec 22 17:59:01 2022 +0000"
      },
      "message": "Usb non-compliant port partner frameworks suez stats\n\nOn compliance warning change, reports to FrameworkStatsLog.\n\nEldar: https://eldar.corp.google.com/assessments/990567567/revisions/1?jsmode\u003do#sections/999001\n\nTest: manually ran adb shell cmd stats print-logs,\nadb logcat | grep statsd | grep \\(582\\)\nBug: 236322506\nChange-Id: If96e8037cd0dabf4dde12b4aa2d30c817d2cb63c\n"
    },
    {
      "commit": "f5b9f2de69272ec2a8b948e19c6abad0bfae062a",
      "tree": "7bddae8ce6229e469c1c0917b0579f26f4d9b9d6",
      "parents": [
        "c106493d765563c9bb142892b3e48c0f3d280de8",
        "2ddb5aff0a35cc2090e4fff36992cb6f2369c5b1"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Wed Dec 21 09:04:32 2022 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Dec 21 09:04:32 2022 +0000"
      },
      "message": "Merge \"Add additional status flags to UsbDataStatus\""
    },
    {
      "commit": "2ddb5aff0a35cc2090e4fff36992cb6f2369c5b1",
      "tree": "6c6cd1a2e5286a5d75102e90669dfa1009a19139",
      "parents": [
        "3eab0a1997c9e59c079e76ddce00b27edf376514"
      ],
      "author": {
        "name": "Badhri Jagan Sridharan",
        "email": "badhri@google.com",
        "time": "Mon Dec 12 09:24:46 2022 +0000"
      },
      "committer": {
        "name": "Badhri Jagan Sridharan",
        "email": "badhri@google.com",
        "time": "Wed Dec 21 03:21:49 2022 +0000"
      },
      "message": "Add additional status flags to UsbDataStatus\n\nThis change introduces two new values to UsbDataStatus interface\nto denote status of Usb data. Previously, UsbDataStatus interface\ncontained DISABLED_DOCK which indicated that USB data is disabled\ndue to a docking event. Depending on the hardware design, some\narchitectures might only disable USB host mode or USB gadget\nmode selectively when docked. This change adds interface values\nto denote them. DISABLED_DOCK_HOST_MODE indicates USB host mode\ndisabled due to docking event. DISABLED_DOCK_DEVICE_MODE indicates\ndevice mode disabled due to docking event. DISABLED_DOCK needs to\nbe set when either of DISABLED_DOCK_HOST_MODE or\nDISABLED_DOCK_DEVICE_MODE is set.\n\nBug: 250522538\nChange-Id: Icaca2d2b704661261905bfaf79a03808ddc39895\n"
    },
    {
      "commit": "4a3a5e200b73759fd13c861544a65d5e599eb163",
      "tree": "61900304c9d17f77b4abd9054ed9569af3763993",
      "parents": [
        "f6f0b58c2099791b2ca40bfda79d64c2c59bdcb4"
      ],
      "author": {
        "name": "RD Babiera",
        "email": "rdbabiera@google.com",
        "time": "Mon Dec 19 01:31:09 2022 +0000"
      },
      "committer": {
        "name": "RD Babiera",
        "email": "rdbabiera@google.com",
        "time": "Mon Dec 19 05:47:19 2022 +0000"
      },
      "message": "Usb frameworks simulate compliance warnings\n\nAdds ability to set Compliance Warning support for simulated ports\nwithin UsbService, and fixes mislabeled constants.\n\nTest: manual simulation testing verifies proper behavior\nBug: 261480822\nChange-Id: Ic4c445b068719497b0c08d6735ca6cfc7553a287\n"
    },
    {
      "commit": "f27a03df9989f4e692fd8595c886035970efe6f4",
      "tree": "733e65c4bb85718a4064d22ae1ec6a279055bf80",
      "parents": [
        "c894d0addab4b0be47951da8243bb77125e79eff"
      ],
      "author": {
        "name": "Ricky Niu",
        "email": "rickyniu@google.com",
        "time": "Mon Dec 05 19:34:54 2022 +0800"
      },
      "committer": {
        "name": "Ricky Niu",
        "email": "rickyniu@google.com",
        "time": "Mon Dec 05 19:34:54 2022 +0800"
      },
      "message": "Fix the rss issue\n\nChange UsbHandlerHal to static\n\nBug: 261021174\nTest: android.platform.test.scenario.sleep.Idle#testDoingNothing\nChange-Id: I3d435534152cd51c2e3ca710ad3fc7e602c0a4ab\nSigned-off-by: Ricky Niu \u003crickyniu@google.com\u003e\n"
    },
    {
      "commit": "74272e24224233e0ad5caa363de609b534219a82",
      "tree": "8e5d07a42bad8a9c6dbf79aec46b12a8a5967845",
      "parents": [
        "fb11cf828915e76f4df7e1dee7a3f0325f219d37"
      ],
      "author": {
        "name": "Ricky Niu",
        "email": "rickyniu@google.com",
        "time": "Tue Jun 14 17:43:27 2022 +0800"
      },
      "committer": {
        "name": "Ricky Niu",
        "email": "rickyniu@google.com",
        "time": "Wed Nov 30 11:12:06 2022 +0800"
      },
      "message": "usb: Implement the AIDL in framework\n\nImplement the AIDL and HIDL coexist in framework\n\nBug: 218791946\nTest: USB function switch success and AIDL service is running.\n      atest VtsHalUsbGadgetV2_0HostTest\nSigned-off-by: Ricky Niu \u003crickyniu@google.com\u003e\nChange-Id: I6d9bc861a4aceb753bf6f816daccd039e423994d\n"
    },
    {
      "commit": "ed0abd02871ec48e5303d74dcb77defbbda88992",
      "tree": "55648a0afecb2b5f4c7a59d6aa2a53fcbc7a968b",
      "parents": [
        "fe266d0918c98be1832d80979bc139eb816eddd0",
        "f8cef77bf15699ae8ad7373aa05ec43e032a8ca0"
      ],
      "author": {
        "name": "RD Babiera",
        "email": "rdbabiera@google.com",
        "time": "Wed Nov 30 01:39:19 2022 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Nov 30 01:39:19 2022 +0000"
      },
      "message": "Merge \"Usb non-compliant port partner frameworks api\""
    },
    {
      "commit": "e4abcbec1dd751cbfb46ad4ea1c2d74bacc385a4",
      "tree": "89c8e0f90492a00a73ab963e7b73ec3f18f57eec",
      "parents": [
        "17b55fca1527d2c439500fa26265005c98bbe18b",
        "d3c499dabc9f267a00e59a05c578083dfc82f96b"
      ],
      "author": {
        "name": "Cole Faust",
        "email": "colefaust@google.com",
        "time": "Tue Nov 15 19:43:49 2022 +0000"
      },
      "committer": {
        "name": "Cole Faust",
        "email": "colefaust@google.com",
        "time": "Tue Nov 15 19:47:41 2022 +0000"
      },
      "message": "[conflict] Merge \"Fix errorprone warnings that should be errors\" am: 677d6cd780 am: f9df26ae3c am: d3c499dabc\n\nOriginal change: https://android-review.googlesource.com/c/platform/frameworks/base/+/2256563\n\nChange-Id: I84d67fdfcc99f9f6fca218d4264ab8e0bc1f1653\nSigned-off-by: Automerger Merge Worker \u003candroid-build-automerger-merge-worker@system.gserviceaccount.com\u003e\n"
    },
    {
      "commit": "f9df26ae3c8d70b819a72b7289e19860cf0dc5df",
      "tree": "d8b6fa573eb9b2b1d4509ae47b6389487b0b1bf2",
      "parents": [
        "2ca4a6f36afaebda9f4ca320bcce7974307ee442",
        "677d6cd78070bf5beb1959310018766f3706f7c6"
      ],
      "author": {
        "name": "Cole Faust",
        "email": "colefaust@google.com",
        "time": "Tue Nov 15 19:11:55 2022 +0000"
      },
      "committer": {
        "name": "Automerger Merge Worker",
        "email": "android-build-automerger-merge-worker@system.gserviceaccount.com",
        "time": "Tue Nov 15 19:11:55 2022 +0000"
      },
      "message": "Merge \"Fix errorprone warnings that should be errors\" am: 677d6cd780\n\nOriginal change: https://android-review.googlesource.com/c/platform/frameworks/base/+/2256563\n\nChange-Id: I0e9c5077610407a117ee34ff688b40b52e161a03\nSigned-off-by: Automerger Merge Worker \u003candroid-build-automerger-merge-worker@system.gserviceaccount.com\u003e\n"
    },
    {
      "commit": "7da659bb6cfb38697828c27ab1b47aa0f51c7a2d",
      "tree": "8301f4711c53e4b2e84526c7a2d9bf915e258878",
      "parents": [
        "81c4fd80412d1e76d6f942fa9a12efbe6c52c404"
      ],
      "author": {
        "name": "Cole Faust",
        "email": "colefaust@google.com",
        "time": "Sat Oct 15 21:33:29 2022 -0700"
      },
      "committer": {
        "name": "Cole Faust",
        "email": "colefaust@google.com",
        "time": "Mon Nov 14 17:57:30 2022 -0800"
      },
      "message": "Fix errorprone warnings that should be errors\n\nThis commit is part of a large scale change to fix errorprone\nerrors that have been downgraded to warnings in the android\nsource tree, so that they can be promoted to errors again.\nThe full list of changes include the following, but not all\nwill be present in any one individual commit:\n\nBadAnnotationImplementation\nBadShiftAmount\nBanJNDI\nBoxedPrimitiveEquality\nComparableType\nComplexBooleanConstant\nCollectionToArraySafeParameter\nConditionalExpressionNumericPromotion\nDangerousLiteralNull\nDoubleBraceInitialization\nDurationFrom\nDurationTemporalUnit\nEmptyTopLevelDeclaration\nEqualsNull\nEqualsReference\nFormatString\nFromTemporalAccessor\nGetClassOnAnnotation\nGetClassOnClass\nHashtableContains\nIdentityBinaryExpression\nIdentityHashMapBoxing\nInstantTemporalUnit\nInvalidTimeZoneID\nInvalidZoneId\nIsInstanceIncompatibleType\nJUnitParameterMethodNotFound\nLockOnBoxedPrimitive\nMathRoundIntLong\nMislabeledAndroidString\nMisusedDayOfYear\nMissingSuperCall\nMisusedWeekYear\nModifyingCollectionWithItself\nNoCanIgnoreReturnValueOnClasses\nNonRuntimeAnnotation\nNullableOnContainingClass\nNullTernary\nOverridesJavaxInjectableMethod\nParcelableCreator\nPeriodFrom\nPreconditionsInvalidPlaceholder\nProtoBuilderReturnValueIgnored\nProtoFieldNullComparison\nRandomModInteger\nRectIntersectReturnValueIgnored\nReturnValueIgnored\nSelfAssignment\nSelfComparison\nSelfEquals\nSizeGreaterThanOrEqualsZero\nStringBuilderInitWithChar\nTreeToString\nTryFailThrowable\nUnnecessaryCheckNotNull\nUnusedCollectionModifiedInPlace\nXorPower\n\nSee https://errorprone.info/bugpatterns for more\ninformation on the checks.\n\nBug: 253827323\nTest: m RUN_ERROR_PRONE\u003dtrue javac-check\nChange-Id: I8446f9076a45ebf7e7ffa06cb0d4ddb1001b6c00\n"
    },
    {
      "commit": "58bf68c2b23ac16daf8afbe37f23f3bdd9c8ff29",
      "tree": "a96b2f9248226cef6b6a826b6265c2c1da8b9362",
      "parents": [
        "cef8c91bae32c83173c82ffb5bbe28fd79b16f95"
      ],
      "author": {
        "name": "Jing Ji",
        "email": "jji@google.com",
        "time": "Sat Nov 05 22:33:17 2022 -0700"
      },
      "committer": {
        "name": "Jing Ji",
        "email": "jji@google.com",
        "time": "Wed Nov 09 23:15:36 2022 -0800"
      },
      "message": "Add internal APIs to check if a given app has USB permission or not\n\nBug: 254662522\nBug: 246792057\nTest: CtsAppFgsTestCases from follow-up CLs\nChange-Id: I943a6df64ae0b58ffd25e745b68d11e18f00b16b\n"
    },
    {
      "commit": "f8cef77bf15699ae8ad7373aa05ec43e032a8ca0",
      "tree": "577f593a00a8b1c3972fa5d9915018c9f9953842",
      "parents": [
        "c2d3644fb97a61e1a5d2a1fc416efc127c07cc57"
      ],
      "author": {
        "name": "RD Babiera",
        "email": "rdbabiera@google.com",
        "time": "Fri Sep 16 21:01:36 2022 +0000"
      },
      "committer": {
        "name": "RD Babiera",
        "email": "rdbabiera@google.com",
        "time": "Thu Nov 10 00:07:56 2022 +0000"
      },
      "message": "Usb non-compliant port partner frameworks api\n\nAdds supportsComplianceWarnings and getComplianceWarinings to support\nquerying non compliant USB port partner setups. COMPLIANCE_CHANGED\nbroadcast is broadcasted whenever a new port with non zero compliance\nwarnings list is added or when compliance warnings list changes for\nan existing port.\n\nTest: atest VtsAidlUsbTargetTest\n      atest CtsUsbManagerTestCases\nBug: 236322506\nBug: 253298114\nChange-Id: I29fab5f0191bbeb61ed54efd14838078647dd9a6\n"
    },
    {
      "commit": "ba6d3a26818c2b7494b84a440461b26420ec66bd",
      "tree": "29ebea25a31c06a5477021e9357e6900db82b41c",
      "parents": [
        "59eec43b747dc52d0c7ada8c7db2c60110355a6f"
      ],
      "author": {
        "name": "Alex Dadukin",
        "email": "adadukin@google.com",
        "time": "Wed Oct 19 13:19:56 2022 +0000"
      },
      "committer": {
        "name": "Alex Dadukin",
        "email": "adadukin@google.com",
        "time": "Tue Nov 01 18:14:51 2022 +0000"
      },
      "message": "Migrate UsbDeviceLogger to EventLogger\n\nIt looks like UsbDeviceLogger is a fork of EventLogger,\ntherefore it would be better to deduplicate it.\n\nBug: b/254234346\nTest: N/A\nChange-Id: I20da7bb0bbf83888f4c448742326a3cb54462a4d\n"
    },
    {
      "commit": "e55b8eeb28debdb2db618e6732d17a9e558ef704",
      "tree": "108802180f24780108bd6fea50ac9621d6cd5c8d",
      "parents": [
        "b90e6818c32504d925ee2d95252a7d212f6e7639"
      ],
      "author": {
        "name": "Hai Zhang",
        "email": "zhanghai@google.com",
        "time": "Tue Sep 06 23:48:09 2022 -0700"
      },
      "committer": {
        "name": "Hai Zhang",
        "email": "zhanghai@google.com",
        "time": "Fri Oct 21 04:28:13 2022 -0700"
      },
      "message": "Move TypedXml{Parser,Serializer} to modules utils package.\n\nA subsequent change will actually move the files to the other git\nproject.\n\nBug: 243194720\nTest: presubmit\nChange-Id: If126bb68f74852528c4da8df79831b49b5129983\n"
    },
    {
      "commit": "8c7028e8381ac030ff56f55c9be3b99da64820b6",
      "tree": "33f7f0b3fd69b56067be13720e016b1e6910f914",
      "parents": [
        "71cb768eb1cb4f4a1c9b27f3d45201b6aeee0e25"
      ],
      "author": {
        "name": "Robert Wu",
        "email": "robertwu@google.com",
        "time": "Mon Oct 03 22:03:51 2022 +0000"
      },
      "committer": {
        "name": "Robert Wu",
        "email": "robertwu@google.com",
        "time": "Thu Oct 13 17:11:12 2022 +0000"
      },
      "message": "USB MIDI: Extend bulkTransfer timeout\n\nIf a UsbDeviceConnection is used both for sending and receiving data,\nbulkTransfer may time out.\n\nThe solution is to extend the timeout from 10ms to a second.\n\nAlso, we need to split the packet into multiple packets if they are\ngreater than the endpoint\u0027s max packet size. Linux would do this for\nus, but with the new retry code, we may be sending some parts of the\npacket multiple times otherwise.\n\nThis is because if Linux would split the packet into 3 packets and\nonly the third packet fails, the first and second packets would resend\nif we don\u0027t split the packets.\n\nBug: 250616636\nBug: 251551233\nChange-Id: Ic4dc2d4434731d34b26b0e073221e4ef5ebbd920\nTest: CTS Verifier MIDI tests\n"
    },
    {
      "commit": "a13e37793f52acf56f1106cd7db8157e7c13ad76",
      "tree": "aef7a2050f2193e5721b5ff325b1c6665e7ff469",
      "parents": [
        "cc179ce375b0ee3f7a30d3f28f1d27f06e16e171"
      ],
      "author": {
        "name": "Khoa Hong",
        "email": "khoahong@google.com",
        "time": "Wed Aug 31 16:49:07 2022 +0800"
      },
      "committer": {
        "name": "Khoa Hong",
        "email": "khoahong@google.com",
        "time": "Wed Sep 07 08:56:07 2022 +0000"
      },
      "message": "Show charging notification when device is being charged via USB, with USB data disabled.\n\nBug: 239184431\nTest: Use TestDPC to enroll device and disable USB data, then verify that the behavior of charging notifications is identical to another phone with USB data enabled:\n - Notification shows up when connecting to laptop, another phone before/after power swap.\n - Notification does not show up when connecting to a wall charger.\n\nChange-Id: I016f65dcdd478d3429efe871bf99aee2f1653c45\n"
    },
    {
      "commit": "e5f330f8fd4e93e69a2c243b2d4ce339b1ea76e2",
      "tree": "0debd799ab84a8619795b5a5a445716c1f450f17",
      "parents": [
        "863cf2a768c320655ec30f9757cdd20772ce17e8"
      ],
      "author": {
        "name": "Robert Wu",
        "email": "robertwu@google.com",
        "time": "Mon Aug 15 18:11:19 2022 +0000"
      },
      "committer": {
        "name": "Robert Wu",
        "email": "robertwu@google.com",
        "time": "Thu Sep 01 22:22:44 2022 +0000"
      },
      "message": "MIDI: Power Boost when MIDI hardware sends data\n\nWhen USB MIDI hardware sends bytes to Android, Android should set\npower boost as if an interaction event just happened.\n\nThis change reduces the number of audio underruns.\n\nBug: 122678281\nTest: Connect Akai MIDI USB Keyboard to MIDI Synth Ex\nTest: Connect another Android phone as host to MIDI Synth Ex\nTest: Collect perfetto traces and verify a difference\nChange-Id: Ic95283813beb16e55d941f85f876124afa2f2794\n"
    },
    {
      "commit": "eb55c4e567fe3f9cc9db43b62e41bffc1b467488",
      "tree": "8d2868bf4548fb513e7ba622beac2df82112c993",
      "parents": [
        "f278de2b757bf83fbac2b07f606a156ddc1013ab",
        "12699672b5c0f1d040126ad6d99185926d280994"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Wed Aug 17 07:44:04 2022 +0000"
      },
      "committer": {
        "name": "Automerger Merge Worker",
        "email": "android-build-automerger-merge-worker@system.gserviceaccount.com",
        "time": "Wed Aug 17 07:44:04 2022 +0000"
      },
      "message": "Merge \"usb: Don\u0027t show the notification when no USB device is connected\" am: e648d3cb91 am: 40f45bddd3 am: 3161749b06 am: 12699672b5\n\nOriginal change: https://android-review.googlesource.com/c/platform/frameworks/base/+/2181961\n\nChange-Id: I01fafac7e27f4f87c0734b49dcfb6ba78f9e12c0\nSigned-off-by: Automerger Merge Worker \u003candroid-build-automerger-merge-worker@system.gserviceaccount.com\u003e\n"
    },
    {
      "commit": "e648d3cb91f9a0156c729ca18ec27e71f59f9ce2",
      "tree": "96b900f55660523012fe1ccc5ddb13f7d66ed143",
      "parents": [
        "c4cfeaf45f2cea6fcf97d029345e80c1f90124cf",
        "7b9a26138feda94191d5d49b0af2abbdd7d2e009"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Wed Aug 17 05:58:32 2022 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Aug 17 05:58:32 2022 +0000"
      },
      "message": "Merge \"usb: Don\u0027t show the notification when no USB device is connected\""
    },
    {
      "commit": "7b9a26138feda94191d5d49b0af2abbdd7d2e009",
      "tree": "0a5c4d1e4d68135db989709a7d6693a5755fcf41",
      "parents": [
        "621c7b69460831682749537a1de09c21ec85de56"
      ],
      "author": {
        "name": "Jimmy Hu",
        "email": "hhhuuu@google.com",
        "time": "Thu Jun 16 06:10:57 2022 +0000"
      },
      "committer": {
        "name": "Jimmy Hu",
        "email": "hhhuuu@google.com",
        "time": "Fri Aug 12 02:31:25 2022 +0000"
      },
      "message": "usb: Don\u0027t show the notification when no USB device is connected\n\nCurrently, the \"Charging connected device via USB\" notification appears\nand then disappears when a USB device is disconnected. The notification\nshould not appear when no USB device is connected. This CL prevents\nthis.\n\nAlso prevents the notification from showing up when a mouse is\nconnected.\n\nBug: 234548453\nTest: Peripheral mode, host mode, and Power/Data role swap\nSigned-off-by: Jimmy Hu \u003chhhuuu@google.com\u003e\nMerged-In: Ie4c67c639d8633361e5a3675502283cae4e35bd9\nChange-Id: Ie4c67c639d8633361e5a3675502283cae4e35bd9\n"
    },
    {
      "commit": "989e4d30a06c2069a9c9bc222ce2232919a3c4a2",
      "tree": "ca8c733aa8a01ca6f064c51eda0c13e268e39e6e",
      "parents": [
        "ec0e6da7aea36bb725b6a27d9eeda50da61c5155",
        "eae5eacdd6588f9cdcf143a72c3be7922c46e5b4"
      ],
      "author": {
        "name": "Jimmy Hu",
        "email": "hhhuuu@google.com",
        "time": "Thu Aug 11 02:40:25 2022 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Aug 11 02:40:25 2022 +0000"
      },
      "message": "Merge \"usb: Don\u0027t show the notification when no USB device is connected\""
    },
    {
      "commit": "e61d7fbd91556d78e2141e95cf67b8993ea5fd8d",
      "tree": "4815fb9213cf4b3a191696070da750812b3540ba",
      "parents": [
        "bc26061305d0ad10bd5ef3a8973150902531556a",
        "78bf1dade5f038d18a1beec741df9ee4b456cc3b"
      ],
      "author": {
        "name": "RD Babiera",
        "email": "rdbabiera@google.com",
        "time": "Tue Aug 09 01:39:02 2022 +0000"
      },
      "committer": {
        "name": "Automerger Merge Worker",
        "email": "android-build-automerger-merge-worker@system.gserviceaccount.com",
        "time": "Tue Aug 09 01:39:02 2022 +0000"
      },
      "message": "Merge \"Swap hal query order\" into tm-qpr-dev am: 4c5ec9874c am: 78bf1dade5\n\nOriginal change: https://googleplex-android-review.googlesource.com/c/platform/frameworks/base/+/19533073\n\nChange-Id: I81be0f07d6a9a595bfedb982d25f88fb9895238c\nSigned-off-by: Automerger Merge Worker \u003candroid-build-automerger-merge-worker@system.gserviceaccount.com\u003e\n"
    },
    {
      "commit": "eae5eacdd6588f9cdcf143a72c3be7922c46e5b4",
      "tree": "f21985d7207f6ee6b0d9faa53b5a13c502604729",
      "parents": [
        "57e20399683ebebc62227cad036d8c6ea15c4c55"
      ],
      "author": {
        "name": "Jimmy Hu",
        "email": "hhhuuu@google.com",
        "time": "Thu Jun 16 06:10:57 2022 +0000"
      },
      "committer": {
        "name": "Jimmy Hu",
        "email": "hhhuuu@google.com",
        "time": "Mon Aug 08 08:00:21 2022 +0000"
      },
      "message": "usb: Don\u0027t show the notification when no USB device is connected\n\nCurrently, the \"Charging connected device via USB\" notification appears\nand then disappears when a USB device is disconnected. The notification\nshould not appear when no USB device is connected. This CL prevents\nthis.\n\nAlso prevents the notification from showing up when a mouse is\nconnected.\n\nBug: 234548453\nTest: Peripheral mode, host mode, and Power/Data role swap\nSigned-off-by: Jimmy Hu \u003chhhuuu@google.com\u003e\nChange-Id: Ie4c67c639d8633361e5a3675502283cae4e35bd9\n"
    },
    {
      "commit": "86813d40d7ff519c68c894e3dce32d339a779bc2",
      "tree": "8c06caf11da6734429a73bc36e6556de63fdcfe2",
      "parents": [
        "0dfdd607b73253cdce122075b390cd6eed752a22"
      ],
      "author": {
        "name": "RD",
        "email": "rdbabiera@google.com",
        "time": "Thu Aug 04 22:23:10 2022 +0000"
      },
      "committer": {
        "name": "RD",
        "email": "rdbabiera@google.com",
        "time": "Thu Aug 04 22:28:44 2022 +0000"
      },
      "message": "Swap hal query order\n\nUSBPortManager now checks for AIDL post-migration, stops redundant error message for HIDL checks\n\nBug: 241042174\nTest: Checked to see USBPortManager Error no longer present in System Logcat after order swap\nChange-Id: I4f0092a68e0cc0dd42dcf2d16f4cdfa646cb72f4\n"
    },
    {
      "commit": "16c119018a80b8630c7736a5c6dc35ebef130c5b",
      "tree": "f82d24091694f254cdb3780803e082d336f217ce",
      "parents": [
        "fe752fc2b4acb5b65ba96e1c7de3d874ba964231",
        "7920f82a88b46236928f0ce24154dcbb6c780b74"
      ],
      "author": {
        "name": "Bill Yi",
        "email": "byi@google.com",
        "time": "Fri Jul 08 07:18:02 2022 -0700"
      },
      "committer": {
        "name": "Bill Yi",
        "email": "byi@google.com",
        "time": "Fri Jul 08 07:18:02 2022 -0700"
      },
      "message": "Merge SQ3A.220705.003 to aosp-master - DO NOT MERGE\n\nMerged-In: I7cffe34a393991c4ef98740f7c3a052c0b6344fb\nMerged-In: Ie0b7151fabd09f58d58745a3f9e2e0252e04411a\nChange-Id: Id75747f4a2519f9fa1c7850f99f0298a39dbc79e\n"
    },
    {
      "commit": "4f221e5c5100baf56cdf88ee231f98c45865d382",
      "tree": "1ee538df77d2b31253cc73db93dcc0688040baee",
      "parents": [
        "6e2ad6aace89a9f8cc8f38e1f15e4e2ba54e28fa"
      ],
      "author": {
        "name": "Hani Kazmi",
        "email": "hanikazmi@google.com",
        "time": "Mon Jun 20 09:38:26 2022 +0000"
      },
      "committer": {
        "name": "Hani Kazmi",
        "email": "hanikazmi@google.com",
        "time": "Fri Jul 01 10:53:53 2022 +0000"
      },
      "message": "Migrate Bundle/Intent APIs to new, type checked, variants\n\nPart of go/safer-parcel. Follow up to ag/16639043. Migrates the following unsafe APIs:\n\n* Parcel.readArray()\n* Parcel.readParcelableArray()\n* Bundle.getSerializable()\n* Bundle.getParcelable()\n* Bundle.getParcelableArrayList()\n* Bundle.getParcelableArray()\n* Bundle.getSparseParcelableArray()\n* Intent.getSerializableExtra()\n* Intent.getParcelableExtra()\n* Intent.getParcelableArrayExtra()\n* Intent.getParcelableArrayListExtra\n\nBug: 227458983\nTest: m and presubmit pass\nChange-Id: I72f206cb18eb5c669a7fff07a6845bed1c433fdb\n"
    },
    {
      "commit": "89d0c849907504112f3114ed749176c4bb6f7b2e",
      "tree": "95dcf95132f0a2b8f531fee0785a4aa7623b6649",
      "parents": [
        "f749b885902f3e22d3e02ef8ad1b17364dc16be9"
      ],
      "author": {
        "name": "jiabin",
        "email": "jiabin@google.com",
        "time": "Thu May 19 23:47:13 2022 +0000"
      },
      "committer": {
        "name": "jiabin",
        "email": "jiabin@google.com",
        "time": "Wed Jun 22 16:24:48 2022 +0000"
      },
      "message": "Update logic for determining if an USB device is a headset or not.\n\nUpdate the function of calculating likelihood of being an output\nheadset.\n1. Change the function name from probability to likelihood. It is fine\n   to have the value be negative or greater than 1.0f.\n2. If there is an output terminal with type as HEADPHONES or\n   BIDIR_HEADSET, likelihood +\u003d 0.75, goto 5. Otherwise, goto 2.\n3. If there is an output terminal with type as SPEAKER,\n   likelihood +\u003d 0.5. Goto 3.\n4. If there is associated input terminal for an output terminal exists,\n   likelihood +\u003d 0.25. Goto 4.\n5. If multiple channels are supported, likelihood -\u003d 0.25. Goto 5.\n6. If there is an output terminal with type as SPEAKER, HEADPHONES or\n   BIDIR_HEADSET and there is HID interface, likelihood +\u003d 0.25.\n\nTest: connect USB devices and check the reported device type.\nBug: 231973571\nChange-Id: I98e433b5333f8bb317b6ae89bd65fee2c42236eb\n"
    },
    {
      "commit": "f0acf2884f8c089a23ae7a34abf6fb06925397f8",
      "tree": "fb93ba9a8d4b98d5079f6d50dc6679b564fb2734",
      "parents": [
        "bfda53b42b6ba23476e188a0d300dccb75fa6b9b",
        "9043a28e0cc54357e5831555ff605bda4f5dc5e4"
      ],
      "author": {
        "name": "Robert Wu",
        "email": "robertwu@google.com",
        "time": "Thu Jun 09 03:45:12 2022 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Jun 09 03:45:12 2022 +0000"
      },
      "message": "Merge \"USB MIDI: Only use first USB Configuration\" into tm-dev"
    },
    {
      "commit": "186b9e447b5bbe8997f15f3878875fc05bd0589b",
      "tree": "873fbcc8b7690508e776a1f8b877668f400583a5",
      "parents": [
        "9ff3c6b64cfe6043d4e29326f5ebdff286b047d2"
      ],
      "author": {
        "name": "Robert Wu",
        "email": "robertwu@google.com",
        "time": "Fri Jun 03 22:18:42 2022 +0000"
      },
      "committer": {
        "name": "Robert Wu",
        "email": "robertwu@google.com",
        "time": "Fri Jun 03 22:22:45 2022 +0000"
      },
      "message": "USB MIDI: Reset counter after unique codes full\n\nSome tests continously plug and unplug MIDI devices.\nAfter 1000 operations, there is an infinite while loop.\n\nThis CL clears up the hashset if it is nearly full.\n\nBug: 234688233\nTest: Plug and unplug MIDI devices\nChange-Id: Ie0c6359c07694e3f6cc4a3011fd39a525314ab94\n"
    },
    {
      "commit": "9043a28e0cc54357e5831555ff605bda4f5dc5e4",
      "tree": "d681d06dba801949e146f27fa5bf07642c21d097",
      "parents": [
        "9ff3c6b64cfe6043d4e29326f5ebdff286b047d2"
      ],
      "author": {
        "name": "Robert Wu",
        "email": "robertwu@google.com",
        "time": "Wed Jun 01 21:03:07 2022 +0000"
      },
      "committer": {
        "name": "Robert Wu",
        "email": "robertwu@google.com",
        "time": "Thu Jun 02 23:01:09 2022 +0000"
      },
      "message": "USB MIDI: Only use first USB Configuration\n\nThe parser returns USB descriptors for multiple configurations.\nOnly one configuration should be used at once.\nThe first configuration is the default config.\n\nBug: 234607936\nBug: 223316278\nTest: CTS Verifier on AudioBox 96\nTest: MIDI Scope on MIDI 2.0 device\nChange-Id: I9169faa2ea5cf9fd516834f7802963245762e74b\n"
    },
    {
      "commit": "5aec766419a8570b780aca72cf1e3ab485a7f133",
      "tree": "89d496ecbb116b47d0cd678b4de3786dd386fa3c",
      "parents": [
        "79e7d4b5f614f3f85a486aeb15a42f0db526160c"
      ],
      "author": {
        "name": "Robert Wu",
        "email": "robertwu@google.com",
        "time": "Fri May 20 23:44:27 2022 +0000"
      },
      "committer": {
        "name": "Robert Wu",
        "email": "robertwu@google.com",
        "time": "Mon May 23 02:03:23 2022 +0000"
      },
      "message": "USB MIDI: Null check for mUsbMidiPacketConverter\n\nAdd null checks for mUsbMidiPacketConverter and\nother variables inside input/output threads.\n\nAlso adding a NullPointerException catch for more\nprotection.\n\nAlso changing a timeout from 50ms to 200ms.\n\nBug: 233409535\nTest: MidiScope and MidiKeyboard for MIDI 1.0/2.0\nChange-Id: Ib73060d05ba8cbad9ab9b4d0e37a892d8916c0d9\n"
    },
    {
      "commit": "6cd937c48870b18cbf6575a2019c21e523afbc86",
      "tree": "6707bc9da0e16b1294f8da859397a7c5881a3afa",
      "parents": [
        "96ad5ccad955dc5fc852d9cd2af9c1cfd4053bbf"
      ],
      "author": {
        "name": "Robert Wu",
        "email": "robertwu@google.com",
        "time": "Wed May 18 18:35:04 2022 +0000"
      },
      "committer": {
        "name": "Robert Wu",
        "email": "robertwu@google.com",
        "time": "Thu May 19 16:01:52 2022 +0000"
      },
      "message": "USB MIDI: Use Thread.interrupt() to close threads\n\nWe start input threads before setting mIsOpen.\nThis means that sometimes, input threads immediately exit\ndue to a race condition.\n\nThe fix here is to remove the use of mIsOpen and use a new\nmechanism with Thread.interrupt() and Thread.interrupted()\nto mark a thread to be closed.\n\nBug: 223316278\nTest: MidiScope/MidiKeyboard\nTest: CTS Verifier Bluetooth Tests\nChange-Id: I7c221504ae8a8814c1aa5598552494c80c202eb2\n"
    },
    {
      "commit": "4bc03ff22aff9fac1fb2c27a22d973868c171507",
      "tree": "2b07266a9047d5e5944b56bd36ed3d4b9e6943bb",
      "parents": [
        "e6e4df19f8b392120cc314010f93ee1bc5079982"
      ],
      "author": {
        "name": "James Wei",
        "email": "jameswei@google.com",
        "time": "Tue Jan 05 14:09:40 2021 +0530"
      },
      "committer": {
        "name": "Android Build Coastguard Worker",
        "email": "android-build-coastguard-worker@google.com",
        "time": "Mon May 16 21:11:35 2022 +0000"
      },
      "message": "USB: Increase debounce time for DISCONNECT processing (revised)\n\nOriginal patch: aosp/1539944\n\nBug: 207057578\nTest: See details in b/209342433\nChange-Id: I7ff58a1a9755939ccb26dad61969902ec91f2225\nSigned-off-by: James Wei \u003cjameswei@google.com\u003e\n(cherry picked from commit 06626cef7a9bc8a437aeb912a09484b2b0c922dc)\nMerged-In: I7ff58a1a9755939ccb26dad61969902ec91f2225\n(cherry picked from commit 615d5d653e036cbb6e09b0be35bdd6520aed9017)\nMerged-In: I7ff58a1a9755939ccb26dad61969902ec91f2225\n"
    },
    {
      "commit": "5a5ccbe0f287a07fbcf2155f05aea15a3a1b478a",
      "tree": "d5c32f813ad8c62a996644d2f007a5f7d79a3862",
      "parents": [
        "97bbf5804a575d33f6632092874c1268396e1b7a",
        "139be681854585bf24adb879111336f8ad5b4999"
      ],
      "author": {
        "name": "Robert Wu",
        "email": "robertwu@google.com",
        "time": "Fri May 13 14:25:26 2022 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri May 13 14:25:26 2022 +0000"
      },
      "message": "Merge \"USB MIDI: Don\u0027t call openLocked on device unplug\" into tm-dev"
    },
    {
      "commit": "139be681854585bf24adb879111336f8ad5b4999",
      "tree": "3c4a383227b45eef66a3b1441f7b13a3afd9b859",
      "parents": [
        "9228e50119a13c155d6048d7ee713e380ca54737"
      ],
      "author": {
        "name": "Robert Wu",
        "email": "robertwu@google.com",
        "time": "Tue May 10 23:01:24 2022 +0000"
      },
      "committer": {
        "name": "Robert Wu",
        "email": "robertwu@google.com",
        "time": "Thu May 12 22:05:34 2022 +0000"
      },
      "message": "USB MIDI: Don\u0027t call openLocked on device unplug\n\nWhen a USB MIDI device with multiple ports is\nunplugged, onDeviceStatusChanged gets called\nmultiple times. The first time ends up opening a\nport since there are still other open ports.\n\nThe fix here is to ignore onDeviceStatusChanged()\nif close() was called before.\n\nAlso changed a continue to a break since that\ncondition almost never gets hit.\n\nBug: 232142589\nBug: 231496864\nTest: Midi Keyboard that opens both input and output\nfor both peripheral and host mode\n\nChange-Id: I973d55371cd16803ede192081531ca5f59847a51\n"
    },
    {
      "commit": "0656f1c02a22a64ca76567fc9945d87ffbd1efed",
      "tree": "da18e1cdce831687ea90b55ac952ccd09c29252e",
      "parents": [
        "1ec0bf3d56150ecada691052accee6b18cacd468",
        "9228e50119a13c155d6048d7ee713e380ca54737"
      ],
      "author": {
        "name": "Robert Wu",
        "email": "robertwu@google.com",
        "time": "Tue May 10 17:53:49 2022 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue May 10 17:53:49 2022 +0000"
      },
      "message": "Merge \"USB MIDI: Replace bulkTransfer with requestWait\" into tm-dev"
    },
    {
      "commit": "9228e50119a13c155d6048d7ee713e380ca54737",
      "tree": "d81fdbc27f8f34777779cd520fe3f8cbc202fda9",
      "parents": [
        "7fe0b77c8bbd4760ee13003c39cf59f7be633850"
      ],
      "author": {
        "name": "Robert Wu",
        "email": "robertwu@google.com",
        "time": "Fri May 06 18:14:13 2022 +0000"
      },
      "committer": {
        "name": "Robert Wu",
        "email": "robertwu@google.com",
        "time": "Mon May 09 17:14:04 2022 +0000"
      },
      "message": "USB MIDI: Replace bulkTransfer with requestWait\n\nWhen getting data from a device, bulkTransfer loses\n~1-2% of data. The recommended approach is to use\nrequestWait as done in this CL.\n\nThis method also lets us remove a lock. Removing\nthis lock speeds up initialization, fixing a timeout\nbug with CTS Verifier.\n\nAlso add a null check for UsbDeviceConnection\n\nBug: 231496864\nBug: 223316278\nBug: 231973034\n\nTest: MidiKeyboard/MidiSynth to multiple keyboards\nTest: CTS Verifier with AudioBox USB96\n\nChange-Id: Ib841fd0b092e93ac5fdb7a65221ec5c2958f6171\n"
    },
    {
      "commit": "e91347a53bd308d8331209f44a4a9674ee479cbf",
      "tree": "b758245e32285f0e73e5664fe99c37903cc95702",
      "parents": [
        "b09d68a2ea142cdf827ce1efd418ca65279d93d2"
      ],
      "author": {
        "name": "Steven Moreland",
        "email": "smoreland@google.com",
        "time": "Mon Apr 04 22:11:35 2022 +0000"
      },
      "committer": {
        "name": "Ray Chi",
        "email": "raychi@google.com",
        "time": "Tue Apr 26 16:05:53 2022 +0800"
      },
      "message": "Implement getInterfaceHash/Version (USB)\n\nAs these interfaces get frozen, java services\nimplementing the interfaces are required to implement getInterfaceHash\nand getInterfaceVersion [1]\n\n[1]\nhttps://source.android.com/devices/architecture/aidl/stable-aidl#new-meta-interface-methods\n\nBug: 190577319\nTest: m\nChange-Id: I00ced32a26fd1af7bc8cc23749d92ae90d5a5a0f\nMerged-In: I00ced32a26fd1af7bc8cc23749d92ae90d5a5a0f\n(cherry picked from commit 1b46333208bdcdd2164d61fface3866dfed6e316)\n"
    },
    {
      "commit": "b09d68a2ea142cdf827ce1efd418ca65279d93d2",
      "tree": "ee12f827bef02822a8840b4043defcf06632f41f",
      "parents": [
        "8f721b9229a91164346b595de73048034e7e7422"
      ],
      "author": {
        "name": "Badhri Jagan Sridharan",
        "email": "badhri@google.com",
        "time": "Wed Nov 24 23:41:27 2021 -0800"
      },
      "committer": {
        "name": "Ray Chi",
        "email": "raychi@google.com",
        "time": "Tue Apr 26 16:04:13 2022 +0800"
      },
      "message": "Support IUsb AIDL interface\n\nUsbPortManager is made to support both AIDL \u0026 HIDL interface until\nHIDL is deprecated eventually. UsbPortHal abstract class is defined\nwhich the UsbPortManager grabs an instance of from UsbPortHalInstance\nmethod to talk to the Hal implementation process. UsbPortHalInstance\nqueries the underlying hal implementation and instantiates UsbPortHal\nwith either UsbPortHidl or UsbPortAidl based on the IUsb interface\nimplemented by HAL implementation.\n\ngo/iusb-aidl-migrate.\n\nBug: 200993386\nBug: 199357330\nBug: 211677613\nBug: 213312081\nBug: 199358576\nTest: Manually tested through UI.\nCTS-Coverage-Bug: 215019881\nChange-Id: I246fd6e5bee8138d3ad3b6994665a1d4788c8789\nMerged-In: I246fd6e5bee8138d3ad3b6994665a1d4788c8789\n(cherry picked from commit bbfa92e69402894dc0ec3906b33489af53c2eb1a)\n"
    },
    {
      "commit": "37ffba8d745d8af4fe4b43d9814e914d9b2d7a2f",
      "tree": "9a03ea5fd5a1630a9a84d0eea14700b48695b61b",
      "parents": [
        "54a8dee16d773ea0b46fd27c55ff40370e0c2798"
      ],
      "author": {
        "name": "Ricky Niu",
        "email": "rickyniu@google.com",
        "time": "Tue Apr 19 11:10:40 2022 +0800"
      },
      "committer": {
        "name": "Chien Kun Niu",
        "email": "rickyniu@google.com",
        "time": "Thu Apr 21 10:34:32 2022 +0000"
      },
      "message": "usb: Add the boot completed check before broadcasting intent\n\nBroadcasting intent is not allowed before boot completed.\nCheck if boot completed to broadcast accessory time out\nintent to avoid exception.\n\nBug:229387375\nTest: Reboot with head unit connected\n\nSigned-off-by: Ricky Niu \u003crickyniu@google.com\u003e\nChange-Id: I34bc7625bbcb9525ad25cb1538ed4138fcae8ead\n"
    },
    {
      "commit": "b45f0e8ac66cd12b1af25f8e2cc13ed2c8bf27bd",
      "tree": "d601df1ba0636c0f4e22867ea8d1fae5dec71ec7",
      "parents": [
        "f38c1aa17773ca0b0ef213d1cc69446047861880",
        "b83ae06adf6cf6ca843d494c81c6fea5bfb8114d"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Wed Apr 20 01:13:19 2022 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Apr 20 01:13:19 2022 +0000"
      },
      "message": "Merge \"Add MIDI info to USB dumpsys\" into tm-dev"
    },
    {
      "commit": "b83ae06adf6cf6ca843d494c81c6fea5bfb8114d",
      "tree": "f5e8fa9c9f80ee3507de8701a5a4fdf9f6e547f6",
      "parents": [
        "a4889a2180a2c1348938c6600603db3173dae544"
      ],
      "author": {
        "name": "Robert Wu",
        "email": "robertwu@google.com",
        "time": "Wed Apr 13 19:09:36 2022 +0000"
      },
      "committer": {
        "name": "Robert Wu",
        "email": "robertwu@google.com",
        "time": "Thu Apr 14 01:57:04 2022 +0000"
      },
      "message": "Add MIDI info to USB dumpsys\n\nAdding MIDI info to USB dumpsys so developers can debug better.\n\nBug: 229122603\nTest: adb shell dumpsys usb\nChange-Id: Ic3c7ab21865457b1e1f0f97fdd1827bb0b442481\n"
    },
    {
      "commit": "eb1eb03859559e48fcd2cbefb8b100523ac08d6c",
      "tree": "dd034a1d9159a3ec36e4335972736b34cc9ce3e1",
      "parents": [
        "bae41b28d5865bde188479256ce2209bbbc380fc",
        "975608fa0928b692bf1cdeee1481d56b735b7af6"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Wed Apr 13 08:12:14 2022 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Apr 13 08:12:14 2022 +0000"
      },
      "message": "Merge \"usb: Fixed the null pointer issue\" into tm-dev"
    },
    {
      "commit": "975608fa0928b692bf1cdeee1481d56b735b7af6",
      "tree": "79b577a50c59aa603749f2a822319b73529ea600",
      "parents": [
        "7038aedd7c997cd9d3f8caf83c9331c2d281f09d"
      ],
      "author": {
        "name": "Ricky Niu",
        "email": "rickyniu@google.com",
        "time": "Wed Nov 10 17:59:40 2021 +0800"
      },
      "committer": {
        "name": "Chien Kun Niu",
        "email": "rickyniu@google.com",
        "time": "Tue Apr 12 11:27:29 2022 +0000"
      },
      "message": "usb: Fixed the null pointer issue\n\nBug: 200323450\nTest: Function work with reboot connect to PC and HU\n\nSigned-off-by: Ricky Niu \u003crickyniu@google.com\u003e\nChange-Id: I9bdfcda195c30d71d9d39e1170bbf66a7021c39b\n"
    },
    {
      "commit": "1b46333208bdcdd2164d61fface3866dfed6e316",
      "tree": "794f86d0de40517444fc48a35d0b636aa470c398",
      "parents": [
        "ff46eb6627e83641b7554096b2d5175c2239ac6a"
      ],
      "author": {
        "name": "Steven Moreland",
        "email": "smoreland@google.com",
        "time": "Mon Apr 04 22:11:35 2022 +0000"
      },
      "committer": {
        "name": "Steven Moreland",
        "email": "smoreland@google.com",
        "time": "Mon Apr 04 22:11:35 2022 +0000"
      },
      "message": "Implement getInterfaceHash/Version (USB)\n\nAs these interfaces get frozen, java services\nimplementing the interfaces are required to implement getInterfaceHash\nand getInterfaceVersion [1]\n\n[1]\nhttps://source.android.com/devices/architecture/aidl/stable-aidl#new-meta-interface-methods\n\nBug: 190577319\nTest: m\nChange-Id: I00ced32a26fd1af7bc8cc23749d92ae90d5a5a0f\n"
    },
    {
      "commit": "dc74aff111d49d7cd85f1f45c11a4b7e7c4457c6",
      "tree": "72cd8548a54080465f3ad9cf327425a176531be0",
      "parents": [
        "4ca3b32345171f4bc87c779bfc755f402a04ee88"
      ],
      "author": {
        "name": "Ricky Niu",
        "email": "rickyniu@google.com",
        "time": "Fri Mar 25 04:17:50 2022 +0800"
      },
      "committer": {
        "name": "Chien Kun Niu",
        "email": "rickyniu@google.com",
        "time": "Fri Apr 01 18:13:32 2022 +0000"
      },
      "message": "Asynchronous the resetUsbPort\n\nModify the resetUsbPort be asynchronous\n\nBug: 217369748\nSigned-off-by: Ricky Niu \u003crickyniu@google.com\u003e\nChange-Id: I5d799691f2f3fce4df97a960c8628194236d9f81\n"
    },
    {
      "commit": "06626cef7a9bc8a437aeb912a09484b2b0c922dc",
      "tree": "2f619e13e6f9cb99fd2be6681845d3ba4796e768",
      "parents": [
        "ba57fccde4ee0bcf50ca455a7dc956f1c00a7fa2"
      ],
      "author": {
        "name": "James Wei",
        "email": "jameswei@google.com",
        "time": "Tue Jan 05 14:09:40 2021 +0530"
      },
      "committer": {
        "name": "James Wei",
        "email": "jameswei@google.com",
        "time": "Fri Mar 25 15:35:15 2022 +0000"
      },
      "message": "USB: Increase debounce time for DISCONNECT processing (revised)\n\nOriginal patch: aosp/1539944\n\nBug: 209342433\nTest: See details in b/209342433\nChange-Id: I7ff58a1a9755939ccb26dad61969902ec91f2225\nSigned-off-by: James Wei \u003cjameswei@google.com\u003e\n"
    },
    {
      "commit": "872029165866397da77f50fc258e7a685837fd21",
      "tree": "3640f46ea506e81405683c698f21cbea74dee0d6",
      "parents": [
        "48709c6565e89db2dd646e001d54cfef9f27ab77",
        "d338c3c8f8063a85fb82042affd6d197f5793be3"
      ],
      "author": {
        "name": "Robert Wu",
        "email": "robertwu@google.com",
        "time": "Thu Mar 24 22:23:24 2022 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Mar 24 22:23:24 2022 +0000"
      },
      "message": "Merge \"USB MIDI: Create encoder per output port\" into tm-dev"
    },
    {
      "commit": "d338c3c8f8063a85fb82042affd6d197f5793be3",
      "tree": "54d49e6152cc352308d267eb7428706a298eec50",
      "parents": [
        "f48450217c2039ced18ee48ec447a099578cb174"
      ],
      "author": {
        "name": "Robert Wu",
        "email": "robertwu@google.com",
        "time": "Mon Mar 21 15:29:02 2022 +0000"
      },
      "committer": {
        "name": "Robert Wu",
        "email": "robertwu@google.com",
        "time": "Thu Mar 24 16:42:25 2022 +0000"
      },
      "message": "USB MIDI: Create encoder per output port\n\nUsbMidiEncoder is not thread-safe. Therefore, each output port\nshould use its own encoder.\n\nBug: 225884009\nTest: MidiKeyboard/MidiScope on both MIDI 2.0 and MIDI 1.0 paths.\nTest: Verified M-Audio Keyboard with only input has the correct logs.\nChange-Id: I43bd7381982403766b7f37c22d55ef5d19013120\n"
    },
    {
      "commit": "01f255bbf34fd0a061dfcb925b443352ece2ee9a",
      "tree": "9ab96e3cc0282e3f914560ba2e1d2142f735b393",
      "parents": [
        "c037af53ba98c2fde518b5aa11cd2e04c10096c2"
      ],
      "author": {
        "name": "Ricky Niu",
        "email": "rickyniu@google.com",
        "time": "Tue Mar 22 16:50:42 2022 +0800"
      },
      "committer": {
        "name": "Chien Kun Niu",
        "email": "rickyniu@google.com",
        "time": "Tue Mar 22 13:41:02 2022 +0000"
      },
      "message": "Correct the operationID in resetUsbPort\n\nFixed the operationID when the operationID collisions, create another key\n\nBug: 217369748\nSigned-off-by: Ricky Niu \u003crickyniu@google.com\u003e\nChange-Id: I22126b4c04b5c92bc9fc9db7405e7ee9d2806b49\n"
    },
    {
      "commit": "b6a1953f21e2960914197f606096ea25432e848c",
      "tree": "1e7144edaabf42af3f7c0f7c6b27bc2fe8d29a4c",
      "parents": [
        "11d05992e77b5c4e67bd7a4d5342a7f1a08c68e2"
      ],
      "author": {
        "name": "Robert Wu",
        "email": "robertwu@google.com",
        "time": "Fri Mar 18 16:32:53 2022 +0000"
      },
      "committer": {
        "name": "Robert Wu",
        "email": "robertwu@google.com",
        "time": "Fri Mar 18 17:38:21 2022 +0000"
      },
      "message": "USB MIDI: Add null check on device removal\n\nIn I0b86f9bd26e4c9a50576f704deb6b53fc9a5c130,\nwe introduced a bug by forgetting a null check.\nThis CL adds the null check back.\n\nBug: 223481435\nChange-Id: I62e9b1135306b2d952f7fddace656a938545e74f\nTest: MidiKeyboard/MidiScope\n"
    },
    {
      "commit": "4ed510e47a8dc9aa5f937a96bd8e71ef5482c621",
      "tree": "a6dae4deb147f8aabe45d9c6ee2c681df62354cf",
      "parents": [
        "79acba3da95210b656da887539dde173bc625244",
        "a87ed3d36bb2d5aa8c2d13e26f29c7e063a038df"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Mon Mar 07 18:21:50 2022 +0000"
      },
      "committer": {
        "name": "Automerger Merge Worker",
        "email": "android-build-automerger-merge-worker@system.gserviceaccount.com",
        "time": "Mon Mar 07 18:21:50 2022 +0000"
      },
      "message": "Merge \"Avoid removing USB state changes during CONFIGURED uevent\" am: 6b8b9efad1 am: da70fd1af3 am: a87ed3d36b\n\nOriginal change: https://android-review.googlesource.com/c/platform/frameworks/base/+/1898830\n\nChange-Id: I82b80ef0e935f8cafba2d3b9ec527b55cbde8e5a\n"
    },
    {
      "commit": "da70fd1af30d4d54fb62594ca94719180944ba3c",
      "tree": "d714c4bbb801016a17c16ba82923f7fa1b145a53",
      "parents": [
        "25128ddbfd9f5e5621af1a822a613a7850b1ae60",
        "6b8b9efad1b8977df5acf7ac3fa589fd9216fded"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Mon Mar 07 17:26:54 2022 +0000"
      },
      "committer": {
        "name": "Automerger Merge Worker",
        "email": "android-build-automerger-merge-worker@system.gserviceaccount.com",
        "time": "Mon Mar 07 17:26:54 2022 +0000"
      },
      "message": "Merge \"Avoid removing USB state changes during CONFIGURED uevent\" am: 6b8b9efad1\n\nOriginal change: https://android-review.googlesource.com/c/platform/frameworks/base/+/1898830\n\nChange-Id: Ia1a792ea55cff7136c3dc133c4deb5caf7c96809\n"
    },
    {
      "commit": "6b8b9efad1b8977df5acf7ac3fa589fd9216fded",
      "tree": "ee7740b7d2ad4d8053b4dd75edcc567c1e5880a9",
      "parents": [
        "ef1cd8a1cad35f576d9bcf3b1c699a7ab89d711d",
        "ce66fa5757e72d1ba1a2326122b35850c16cff5f"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Mon Mar 07 17:11:26 2022 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Mon Mar 07 17:11:26 2022 +0000"
      },
      "message": "Merge \"Avoid removing USB state changes during CONFIGURED uevent\""
    },
    {
      "commit": "ea89c0e71da689efe45c79cb68cb3b61d5644093",
      "tree": "f35a37247250584d57f780808ab1e36a12fbc2f1",
      "parents": [
        "82c71dd74d588887383502fa42d63eff37696a3e"
      ],
      "author": {
        "name": "Paul Murphy",
        "email": "paulmur@google.com",
        "time": "Tue Feb 22 18:48:21 2022 -0800"
      },
      "committer": {
        "name": "Paul Murphy",
        "email": "paulmur@google.com",
        "time": "Mon Feb 28 17:36:18 2022 +0000"
      },
      "message": "Allow apps with MANAGE_USB_STATE permission access to all USB\naccessories.\n\nTest: Manually tested\nBug: b/220200798\nChange-Id: I8c574e18192a768a4a202acd891ec258c106deae\nMerged-In: I8c574e18192a768a4a202acd891ec258c106deae\n(cherry picked from commit e22c826cf240c20e2e51a9ab67f35d3dd38958d7)\n"
    },
    {
      "commit": "ec3e6791f4adb8f5a371005d0e9af1650ccdefca",
      "tree": "08f237b3ee2bd6ab3face8fe26141e9d7f58423e",
      "parents": [
        "e94361ef16912db2de07308cf4eff475bd328cf6",
        "750a3496d57e42b38101ea8d0d70e47e90d88455"
      ],
      "author": {
        "name": "Robert Wu",
        "email": "robertwu@google.com",
        "time": "Thu Feb 17 16:21:07 2022 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Feb 17 16:21:07 2022 +0000"
      },
      "message": "Merge \"Rewrite MIDI 1.0 USB Host mode in Java\""
    },
    {
      "commit": "750a3496d57e42b38101ea8d0d70e47e90d88455",
      "tree": "4968e642469cdd0be423cc368010345f1a029033",
      "parents": [
        "4c6239b1564f123dac66600c8a63b509ba3bbcf5"
      ],
      "author": {
        "name": "Robert Wu",
        "email": "robertwu@google.com",
        "time": "Thu Feb 10 18:43:08 2022 +0000"
      },
      "committer": {
        "name": "Robert Wu",
        "email": "robertwu@google.com",
        "time": "Thu Feb 17 00:06:58 2022 +0000"
      },
      "message": "Rewrite MIDI 1.0 USB Host mode in Java\n\nALSA has multiple bugs related to MIDI 1.0. This CL removes\nAndroid\u0027s dependency on ALSA for MIDI 1.0 USB Host mode. MIDI to\nUSB MIDI conversion is done in UsbMidiPacketConverter.java\n\nALSA is still used for peripheral mode.\n\nBug: 217392573\nTest: Ran local unit tests with UsbMidiPacketConverter\nTest: MidiScope/MidiKeyboard with multiple MIDI keyboards\nChange-Id: I0b86f9bd26e4c9a50576f704deb6b53fc9a5c130\n"
    },
    {
      "commit": "8a5e698aa1cd8a5fe3fbc6c3c1a8e5f82efa49fd",
      "tree": "2af1cfe4a942d4a07280ee12f7e2c4f248396005",
      "parents": [
        "8f618574a0a749079d6df9a53ac92cfe1190a2dd",
        "2ac83c4e475576b529a09b2414487efd152af205"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Wed Feb 16 05:25:58 2022 +0000"
      },
      "committer": {
        "name": "Automerger Merge Worker",
        "email": "android-build-automerger-merge-worker@system.gserviceaccount.com",
        "time": "Wed Feb 16 05:25:58 2022 +0000"
      },
      "message": "Merge \"Fix handling usb notification after pr_swap complete\" am: b681fec035 am: d68e9ab715 am: 2ac83c4e47\n\nOriginal change: https://android-review.googlesource.com/c/platform/frameworks/base/+/1984546\n\nChange-Id: Ic6901932eaa7d410700be980dc37ae37621d24e6\n"
    },
    {
      "commit": "d68e9ab71560dd400de993e12bf46bc38388d56f",
      "tree": "e0e1cbc317427db41d7fc7f29bdaf04fc783e3fc",
      "parents": [
        "5d27eda956f52e2d6c68815c8ece67909d84337e",
        "b681fec035754ed1f7c319a1fc9fe6d92fb0555c"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Wed Feb 16 04:45:07 2022 +0000"
      },
      "committer": {
        "name": "Automerger Merge Worker",
        "email": "android-build-automerger-merge-worker@system.gserviceaccount.com",
        "time": "Wed Feb 16 04:45:07 2022 +0000"
      },
      "message": "Merge \"Fix handling usb notification after pr_swap complete\" am: b681fec035\n\nOriginal change: https://android-review.googlesource.com/c/platform/frameworks/base/+/1984546\n\nChange-Id: I2df61f61b2ce2ff7934286e8e04d572f2042a523\n"
    },
    {
      "commit": "85a04c0b0fe225075f459805f56600510e8154d2",
      "tree": "2286656aed1db3cdacabd0c305266e30edb43050",
      "parents": [
        "2e153e00d0363a60c332ebc1f1b3b372a79bf674",
        "5e57f64c1b6e0e1ecae0fd64758df49cf26ef7aa"
      ],
      "author": {
        "name": "Kevin Jeon",
        "email": "kevinjeon@google.com",
        "time": "Wed Feb 16 01:22:50 2022 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Feb 16 01:22:50 2022 +0000"
      },
      "message": "Merge \"Annotate dump methods with @NeverCompile [5/5]\""
    },
    {
      "commit": "9c80283f831e77602af4dcfc2fbc4f21dd3a07a0",
      "tree": "a5be5ed5d408046c29661c3044d18caef8c77d00",
      "parents": [
        "86fda79938a3fbf86abd476afdb85f68e99ffcda"
      ],
      "author": {
        "name": "Badhri Jagan Sridharan",
        "email": "badhri@google.com",
        "time": "Mon Jan 24 19:25:06 2022 -0800"
      },
      "committer": {
        "name": "Badhri Jagan Sridharan",
        "email": "badhri@google.com",
        "time": "Tue Feb 15 03:17:46 2022 +0000"
      },
      "message": "Convert @UsbDataStatus into bit field flags.\n\ngetUsbDataStatus now returns bit field values of @UsbDataStatus.\n\nAlso renaming from USB_DATA_STATUS_* to DATA_STATUS_* based on\nreview comments.\n\nBug: 216640242\nSigned-off-by: Badhri Jagan Sridharan \u003cbadhri@google.com\u003e\nChange-Id: I96ade3dd7041a4094e57907069a872909a62e72f\n"
    },
    {
      "commit": "2424262814fc4e99c3c8d4e88e96f36fed0ea68e",
      "tree": "8866d2bb314f781819355671388d3d8661ba02b4",
      "parents": [
        "a83857b9e2c89bb4594846facb39888743a78862"
      ],
      "author": {
        "name": "Ray Chi",
        "email": "raychi@google.com",
        "time": "Mon Feb 14 11:50:14 2022 +0800"
      },
      "committer": {
        "name": "Ray Chi",
        "email": "raychi@google.com",
        "time": "Mon Feb 14 07:12:15 2022 +0000"
      },
      "message": "Fix handling usb notification after pr_swap complete\n\nAfter the device (USB host) finished the pr_swap and the power\nrole is changed from Source to Sink, the notification should be\nupdated with different messages. However, the notification may be\nignored since the charger type is not USB. Users may get\nconfused when the notification is gone.\n\nIf the peripheral device is still connected, UsbDeviceManager\nshould push new notification.\n\nBug: 212189038\nTest: notification is updated\nChange-Id: I772c8c06a1e3a8770d0bf132c5e8fdf313bb2685\n"
    },
    {
      "commit": "5e57f64c1b6e0e1ecae0fd64758df49cf26ef7aa",
      "tree": "57f0c2e4b531e7f44c8cbc11378007bd09b3e0ce",
      "parents": [
        "7f7d6185b77f77550d5051306c2bb82d450d18ec"
      ],
      "author": {
        "name": "Kevin Jeon",
        "email": "kevinjeon@google.com",
        "time": "Tue Jan 25 22:45:02 2022 +0000"
      },
      "committer": {
        "name": "Kevin Jeon",
        "email": "kevinjeon@google.com",
        "time": "Thu Feb 10 19:59:33 2022 +0000"
      },
      "message": "Annotate dump methods with @NeverCompile [5/5]\n\nThis change annotates dump/debug methods in services.odex that are\nlarger than 10000 bytes with NeverCompile so that they will not be\ncompiled. This results in an overall ~1% decrease in the size of\nservices.odex.\n\nBug: 215417388\nTest: Build and check that these methods are not called during boot or\n      app startup.\nChange-Id: Ic14b273a66a30ad63ba9a82c0b45fac9beb7589a\n"
    },
    {
      "commit": "dbad339f5fb7f0da0e3be598163ff385d3cbc1b5",
      "tree": "a6d511ce605b4e16e7d55b3291845196c762cd65",
      "parents": [
        "6a209a2d02596a22664a2e2336a5da930e75580b",
        "4173335baffc84a496d69e2ce4219771bc8bd08f"
      ],
      "author": {
        "name": "Nathalie Le Clair",
        "email": "lcnathalie@google.com",
        "time": "Fri Feb 04 14:11:19 2022 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Feb 04 14:11:19 2022 +0000"
      },
      "message": "Merge changes from topics \"AudioDeviceAttributes_update\", \"ShortAudioDescriptors\"\n\n* changes:\n  Inform AudioManager about ARC SADs\n  Add AudioDeviceAttributes as argument to AudioManager API\n  Add fields to AudioDeviceAttributes class\n"
    },
    {
      "commit": "19f083cda71b5903cff38bd71b9b4bd489d32db5",
      "tree": "52765dc6a535e9e59e024b00330142395d76c9cb",
      "parents": [
        "5c0a8f516977b76d8e7099fa03dbba6232fd3864",
        "4c6239b1564f123dac66600c8a63b509ba3bbcf5"
      ],
      "author": {
        "name": "Robert Wu",
        "email": "robertwu@google.com",
        "time": "Thu Jan 27 19:30:59 2022 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Jan 27 19:30:59 2022 +0000"
      },
      "message": "Merge \"Don\u0027t call setInterface when querying protocol\""
    },
    {
      "commit": "4c6239b1564f123dac66600c8a63b509ba3bbcf5",
      "tree": "4b06028d4e9a09b393b7b4ff752dd276a0965f04",
      "parents": [
        "91cfa7ff07612192644bb0106c224444cde7257d"
      ],
      "author": {
        "name": "Robert Wu",
        "email": "robertwu@google.com",
        "time": "Mon Jan 24 22:01:56 2022 +0000"
      },
      "committer": {
        "name": "Robert Wu",
        "email": "robertwu@google.com",
        "time": "Wed Jan 26 23:14:31 2022 +0000"
      },
      "message": "Don\u0027t call setInterface when querying protocol\n\ncalculateDefaultMidiProtocol() is a function that figures out the block\ntype of a specific MIDI device. This function is used whenever a MIDI 2.0\ndevice is added.\n\nCurrently, connection.setInterface() is always called in this function.\nWhen a different interface is set, the MIDI 1.0 interface in ALSA just stops.\n/dev/snd/midiC1D0 is no longer exposed.\n\nThe solution in this CL is that Android should not call\nconnection.setInterface() until the MIDI 2.0 interface has opened. This\nmeans that querying protocol on startup should not use setInterface.\n\nThis way, the MIDI 1.0 interface should work up until the MIDI 2.0\ninterface is actually used.\n\nBug: 216178160\nTest: MidiScope and MidiKeyboard\nChange-Id: I53d7792d6d331abcddea2d1aedb394ff4dee0a9c\n"
    },
    {
      "commit": "c807bd2b19a3218c31c514f8aaf01b8a43f9bfee",
      "tree": "6e904cd8ad1cad2aa57d57e21fd909c1caf3a8a4",
      "parents": [
        "c83914f97bf3dbec7959406dca08aa25ce060240"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Wed Jan 26 11:55:34 2022 +0100"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Wed Jan 26 11:44:41 2022 +0000"
      },
      "message": "Revert \"Revert \"Add support for USB audio docks.\"\"\n\nThis reverts commit 01f03c3d9f8cf1fa594d62332ead89c088770c5a.\n\nBug: 197584191\nTest: make\n\nChange-Id: I9eee0c20b663e590ba5c9400a8685015245ce80a\n"
    },
    {
      "commit": "5d4ad0c22c63823dd9156c2e4a91365b7abc89a0",
      "tree": "e859e9563bbffe17726960148cc96f106f74b059",
      "parents": [
        "6ec5f7fd7f9fc5350133b9b08a3e8a407f37a9ea",
        "476cd2e3ca02fcd48cecca5217e5e43053437a7e"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Wed Jan 26 08:13:08 2022 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Jan 26 08:13:08 2022 +0000"
      },
      "message": "Merge \"Support USB Port Reset\""
    },
    {
      "commit": "fd01586915c75ea83cfc9c10062d221ab36222a1",
      "tree": "b7c69092743b37646e06fe6b056c04d5c97b4604",
      "parents": [
        "0233e8a1786feed9646e96bfd400523c9c4ce434",
        "01f03c3d9f8cf1fa594d62332ead89c088770c5a"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Tue Jan 25 20:09:03 2022 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Jan 25 20:09:03 2022 +0000"
      },
      "message": "Merge \"Revert \"Add support for USB audio docks.\"\""
    },
    {
      "commit": "01f03c3d9f8cf1fa594d62332ead89c088770c5a",
      "tree": "22766bfe2361513fe8329432c7a378832aa7e8e4",
      "parents": [
        "9b2b85c2bf8d94ed9bbab6b91284dd5657ea769c"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Tue Jan 25 15:28:18 2022 +0000"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Tue Jan 25 15:28:18 2022 +0000"
      },
      "message": "Revert \"Add support for USB audio docks.\"\n\nRevert submission 16691170-usb_doc\n\nReason for revert: 216248574\nReverted Changes:\nI090e86b2e:Add support for USB audio docks.\nI461661dd4:audio policy: implement routing policy for USB doc...\n\nChange-Id: Ie28b74de7b8654cd199c86d06697bb52f0fa8f3d\n"
    },
    {
      "commit": "517a1327ca71b5f01c7705b0a90499c20e4b8a23",
      "tree": "a4893776a7fc11be5a87b0523807ce8d6d282bfe",
      "parents": [
        "4e27963e6055019b92ee8076214c7ec059e397e9"
      ],
      "author": {
        "name": "Nathalie Le Clair",
        "email": "lcnathalie@google.com",
        "time": "Fri Oct 15 14:22:41 2021 +0200"
      },
      "committer": {
        "name": "Nathalie Le Clair",
        "email": "lcnathalie@google.com",
        "time": "Tue Jan 25 08:00:59 2022 +0000"
      },
      "message": "Add AudioDeviceAttributes as argument to AudioManager API\n\nNoNonSdkCheck: This CL changes the arguments of an existing API that was\nannotated already.\nBug: 199846845\nTest: atest AidlConversionUnitTests\n\nChange-Id: I90a24c0428d9c77ccd45dff65bbdad198aa81fb2\n"
    },
    {
      "commit": "476cd2e3ca02fcd48cecca5217e5e43053437a7e",
      "tree": "0b16d8cddd6f486e6db39d7d7c3c78f3ef62a4a4",
      "parents": [
        "7212c8fda4942546a33f632ea5247ceb73005a4d"
      ],
      "author": {
        "name": "Ricky Niu",
        "email": "rickyniu@google.com",
        "time": "Wed Nov 03 18:44:14 2021 +0800"
      },
      "committer": {
        "name": "Ricky Niu",
        "email": "rickyniu@google.com",
        "time": "Tue Jan 25 12:01:34 2022 +0800"
      },
      "message": "Support USB Port Reset\n\nVerify the USB Gadget HAL already implement.\n\nBug: 197300598\nTest: Verify the API working manually\n\nSigned-off-by: Ricky Niu \u003crickyniu@google.com\u003e\nChange-Id: I8a4a4966237c925c87b32f74a382b7a56f82ab7d\n"
    },
    {
      "commit": "d368d4ee671a2f2c391896905dcf9cbcdd692d5c",
      "tree": "bf9b26c7057a85d6135762b0751c24dcc4beeda1",
      "parents": [
        "615951d16e38440120dcda924aeb2ba8f71fe19c",
        "7212c8fda4942546a33f632ea5247ceb73005a4d"
      ],
      "author": {
        "name": "Badhri Jagan Sridharan",
        "email": "badhri@google.com",
        "time": "Mon Jan 24 19:19:25 2022 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon Jan 24 19:19:25 2022 +0000"
      },
      "message": "Merge \"Add systemApis to allow data transfer over USB-C while being docked\""
    },
    {
      "commit": "7212c8fda4942546a33f632ea5247ceb73005a4d",
      "tree": "3e91efea48a74dd3bdc8bd90318c607e308dd5ef",
      "parents": [
        "bdbb2d15beeda11b94d1008061dd071902067b0b"
      ],
      "author": {
        "name": "Badhri Jagan Sridharan",
        "email": "badhri@google.com",
        "time": "Mon Dec 27 02:50:50 2021 -0800"
      },
      "committer": {
        "name": "Ricky Niu",
        "email": "rickyniu@google.com",
        "time": "Mon Jan 24 21:30:05 2022 +0800"
      },
      "message": "Add systemApis to allow data transfer over USB-C while being docked\n\nThis change adds two systemApis to UsbPortStatus viz.,\na. getUsbDataStatus: Allows caller to infer whether USB data is enabled.\nb. getPowerBrickStatus: Allows caller to infer whether a power brick\n                        is connected to the USB port.\n\nThe change also adds enableUsbDataWhileDocked systemApi to UsbPort to\nenable Usb data momentarily.\n\nBug: 211677613\nBug: 213312081\nTest: Manually tested on tablet\nCTS-Coverage-Bug: 215019881\nSigned-off-by: Badhri Jagan Sridharan \u003cbadhri@google.com\u003e\nChange-Id: Ib7521f0f04b7f8e3e58dc253b28072d3631f21a7\n"
    }
  ],
  "next": "846944e91e5614b0e89df5d8168d63b0f1b2db3e"
}
