summaryrefslogtreecommitdiff
path: root/board/madoo/board.c
Commit message (Collapse)AuthorAgeFilesLines
* lid_angle: Create a common callback for lid angle changesWai-Hong Tam2021-08-051-3/+1
| | | | | | | | | | | | | | | | | | | | | | Each board defines its own callback lid_angle_peripheral_enable(). The implementation is very similar. Create a common implementation and reduce the duplicated code. This CL removes the board callbacks which are identifical to the common callback. If it is slightly different, keep it and add the __override tag. The check of TEST_BUILD is unnecessary as the board callback is not linked in the test build. BRANCH=None BUG=b:194922043 TEST=Build all the images. Change-Id: I73d381730f35b80eff69399cdfc5fb54f839aee0 Signed-off-by: Wai-Hong Tam <waihong@google.com> Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/ec/+/3069175 Reviewed-by: Aseda Aboagye <aaboagye@chromium.org>
* Reland "dedede/raa489000: Disable ASGATE from READY state"Aseda Aboagye2021-04-011-2/+6
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This is a reland of f7fbc629f0655229cc7ffdadfb18c9e13118e3d2 Original change's description: > dedede/raa489000: Disable ASGATE from READY state > > On the boards which use the RAA489000, we keep the ADC enabled while > giving VBUS control to the charger side. This can cause a situation > where VBUS is not quite zero volts when a charger is removed. This > commit uses the charger side registers to control the ASGATE when > selecting our active charge port. This is done in addition to the > existing implementation which uses the TCPCI registers to control > ASGATE. When we place the parts into low power mode, we move the VBUS > control from the TCPC side of the IC to the charger side. It should > be safe to issue both commands as if the TCPC side has control, the IC > ignores the setting from the charger side registers. > > BUG=b:183220414 > BRANCH=dedede > TEST=Build and flash madoo, plug in charger to port, unplug, verify > that VBUS falls to < 200mV and decays from there. > > Signed-off-by: Aseda Aboagye <aaboagye@google.com> > Change-Id: I8e8c8cc32575d18c9d3d1210ed3c5cf69ad5ca4b > Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/ec/+/2793058 > Tested-by: Aseda Aboagye <aaboagye@chromium.org> > Reviewed-by: Diana Z <dzigterman@chromium.org> > Commit-Queue: Aseda Aboagye <aaboagye@chromium.org> Bug: b:183220414 Change-Id: I36db53f3e13ba848308cd7e0c94a1b5a3551c600 Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/ec/+/2797549 Reviewed-by: Diana Z <dzigterman@chromium.org> Commit-Queue: Aseda Aboagye <aaboagye@chromium.org> Tested-by: Aseda Aboagye <aaboagye@chromium.org>
* Revert "dedede/raa489000: Disable ASGATE from READY state"Aseda Aboagye2021-03-311-6/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This reverts commit f7fbc629f0655229cc7ffdadfb18c9e13118e3d2. Reason for revert: Breaks sourcing of VBUS. Original change's description: > dedede/raa489000: Disable ASGATE from READY state > > On the boards which use the RAA489000, we keep the ADC enabled while > giving VBUS control to the charger side. This can cause a situation > where VBUS is not quite zero volts when a charger is removed. This > commit uses the charger side registers to control the ASGATE when > selecting our active charge port. This is done in addition to the > existing implementation which uses the TCPCI registers to control > ASGATE. When we place the parts into low power mode, we move the VBUS > control from the TCPC side of the IC to the charger side. It should > be safe to issue both commands as if the TCPC side has control, the IC > ignores the setting from the charger side registers. > > BUG=b:183220414 > BRANCH=dedede > TEST=Build and flash madoo, plug in charger to port, unplug, verify > that VBUS falls to < 200mV and decays from there. > > Signed-off-by: Aseda Aboagye <aaboagye@google.com> > Change-Id: I8e8c8cc32575d18c9d3d1210ed3c5cf69ad5ca4b > Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/ec/+/2793058 > Tested-by: Aseda Aboagye <aaboagye@chromium.org> > Reviewed-by: Diana Z <dzigterman@chromium.org> > Commit-Queue: Aseda Aboagye <aaboagye@chromium.org> Bug: b:183220414 Change-Id: Ibf6c161adca9981a065e969b6c3b73dd408ef1ba Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/ec/+/2796411 Reviewed-by: Aseda Aboagye <aaboagye@chromium.org> Commit-Queue: Aseda Aboagye <aaboagye@chromium.org> Tested-by: Aseda Aboagye <aaboagye@chromium.org> Bot-Commit: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com>
* dedede/raa489000: Disable ASGATE from READY stateAseda Aboagye2021-03-301-2/+6
| | | | | | | | | | | | | | | | | | | | | | | | | On the boards which use the RAA489000, we keep the ADC enabled while giving VBUS control to the charger side. This can cause a situation where VBUS is not quite zero volts when a charger is removed. This commit uses the charger side registers to control the ASGATE when selecting our active charge port. This is done in addition to the existing implementation which uses the TCPCI registers to control ASGATE. When we place the parts into low power mode, we move the VBUS control from the TCPC side of the IC to the charger side. It should be safe to issue both commands as if the TCPC side has control, the IC ignores the setting from the charger side registers. BUG=b:183220414 BRANCH=dedede TEST=Build and flash madoo, plug in charger to port, unplug, verify that VBUS falls to < 200mV and decays from there. Signed-off-by: Aseda Aboagye <aaboagye@google.com> Change-Id: I8e8c8cc32575d18c9d3d1210ed3c5cf69ad5ca4b Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/ec/+/2793058 Tested-by: Aseda Aboagye <aaboagye@chromium.org> Reviewed-by: Diana Z <dzigterman@chromium.org> Commit-Queue: Aseda Aboagye <aaboagye@chromium.org>
* madoo: Update OCPC PID constantsAseda Aboagye2021-02-101-19/+6
| | | | | | | | | | | | | | | | | | | | | | | | This commit updates the OCPC constants for madoo such that it meets the criteria at go/ocpc-testing. - Converges around the target current. - Average steady state error is less than 4% of target. - Current is reduced to target level in less than 5s when load is suddenly released. BUG=b:176197658 BRANCH=dedede TEST=Build and flash madoo. Verify that battery can charge to 100%. Verify that it meets or exceeds the constraints above. TEST=Verify that DUT can come out of battery cutoff from sub board. Signed-off-by: Aseda Aboagye <aaboagye@google.com> Change-Id: I257d144598c14414b3c760196af0095ba8a071c1 Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/ec/+/2686255 Reviewed-by: Diana Z <dzigterman@chromium.org> Commit-Queue: Diana Z <dzigterman@chromium.org> Tested-by: Aseda Aboagye <aaboagye@chromium.org> Auto-Submit: Aseda Aboagye <aaboagye@chromium.org>
* Dedede: Add RAA489000 output current settingDiana Z2021-01-291-0/+8
| | | | | | | | | | | | | | | | | Boards using the RAA489000 TCPC should set output current on their ports through the TCPC driver. This commit adds a board function to do this for every dedede board currently using the RAA489000. BRANCH=None BUG=b:178064507 TEST=on madoo, verify OCP occurs if more than 1.5A is drawn on a non-PD port, verify register is set to allow 3.0A for port partners requesting that current in their sink capabilities Signed-off-by: Diana Z <dzigterman@chromium.org> Change-Id: Ieb7df916c122d5de1adaa7371a58ad5cf2954ee4 Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/ec/+/2658377 Reviewed-by: Aseda Aboagye <aaboagye@chromium.org>
* Madoo: Fix main board charger can't wake from hibernateKo_Ko2021-01-221-2/+2
| | | | | | | | | | | | | | | | | | | | | | | In madoo's design, there is a protection IC between USB connector and TCPC. When EC is hibernate, the CC lines will be disconnected, which cause the result that TCPC can't detect AC power and Chromebook won't wake the system. Enalbing ADC for all modes by setting 0x4C bit 0 to 1 (to be more precise is that we don't clear bit 0 during hibernation) can prevent issue mention above. BUG=b:174971576 BRANCH=dedede TEST=flash code and make sure ac in can wake system from hibernation Signed-off-by: Ko_Ko <Ko_Ko@compal.corp-partner.google.com> Change-Id: I2a83c69e34cbc4bfdff90d760f32817a7924dc26 Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/ec/+/2626803 Reviewed-by: Aseda Aboagye <aaboagye@chromium.org> Reviewed-by: Diana Z <dzigterman@chromium.org> Reviewed-by: Ko Ko <ko_ko@compal.corp-partner.google.com> Tested-by: Ko Ko <ko_ko@compal.corp-partner.google.com> Commit-Queue: Aseda Aboagye <aaboagye@chromium.org>
* Madoo: Remove unused functionKo_Ko2021-01-121-32/+1
| | | | | | | | | | | | | | | Remove reconfigure_5v_gpio in madoo to avoid unnecessary issue BUG=None BRANCH=dedede TEST=flash on DVT and make sure DUT can be powered up Signed-off-by: Ko_Ko <Ko_Ko@compal.corp-partner.google.com> Change-Id: Ib53fcf6b262ccb79d9fa60645620ecea8b9a9cdf Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/ec/+/2620731 Reviewed-by: Diana Z <dzigterman@chromium.org> Commit-Queue: Ko Ko <ko_ko@compal.corp-partner.google.com> Tested-by: Ko Ko <ko_ko@compal.corp-partner.google.com>
* task_set_event: remove the wait argumentDawid Niedzwiecki2020-12-141-2/+2
| | | | | | | | | | | | | | | | | | | | There is an option in the task_set_event function which force the calling task to wait for an event. However, the option is never used thus remove it. This also will help in the Zephyr migration process. BUG=b:172360521 BRANCH=none TEST=make buildall Signed-off-by: Dawid Niedzwiecki <dn@semihalf.com> Change-Id: Ic152fd3d6862d487bcc0024c48d136556c0b81bc Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/ec/+/2521599 Reviewed-by: Jett Rink <jettrink@chromium.org> Reviewed-by: Tom Hughes <tomhughes@chromium.org> Reviewed-by: Jack Rosenthal <jrosenth@chromium.org> Commit-Queue: Jack Rosenthal <jrosenth@chromium.org>
* Madoo: Improve shared interrupt line behaviorKo_Ko2020-12-011-11/+69
| | | | | | | | | | | | | | | | | | | | | | When interrupts are interleaved from the TCPC and charger, we can get into a state where the interrupt line for the board ends up stuck low. Improve on this situation by setting a deferred function to check on the interrupt line after we get a signal in, and notify chips on that line there may be more to process. BRANCH=None BUG=b:173345295 TEST=on madoo, plug in powered PD hub to C1, generating interrupts from both the charger and TCPC and verify C1 interrupt line goes high once connection is ready Signed-off-by: Ko_Ko <Ko_Ko@compal.corp-partner.google.com> Change-Id: I3d29df28f94cb6c352adf05b9204ab4ff52a9726 Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/ec/+/2557758 Reviewed-by: Henry Sun <henrysun@google.com> Reviewed-by: Diana Z <dzigterman@chromium.org> Commit-Queue: Ko Ko <ko_ko@compal.corp-partner.google.com> Tested-by: Ko Ko <ko_ko@compal.corp-partner.google.com>
* dedede/raa48900 boards: Apply 4% ICL reductionAseda Aboagye2020-11-201-2/+4
| | | | | | | | | | | | | | | | | | The RAA48900 charger IC seems to over draw its contract by roughly 4%. This commit simply modifies our input current limit to account for that. BUG=b:147463641 BRANCH=dedede TEST=Build and flash waddledoo, verify that input current limit is reduced and is under the contract. Signed-off-by: Aseda Aboagye <aaboagye@google.com> Change-Id: I70ab15ea24d789a7a1696217efae784f537ca014 Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/ec/+/2548692 Reviewed-by: Diana Z <dzigterman@chromium.org> Commit-Queue: Aseda Aboagye <aaboagye@chromium.org> Tested-by: Aseda Aboagye <aaboagye@chromium.org>
* Dedede: Leave 5V on when jumping in S5Diana Z2020-10-081-1/+2
| | | | | | | | | | | | | | | | PP5000_U shouldn't be turned off until G3, so if a sysjump occurs during S5 leave this rail on. BRANCH=None BUG=b:166787955,b:167996216 TEST=on drawcia, run full resets with a forced sysjump in S5 and ensure that the DUT can get to S0 after the reset Signed-off-by: Diana Z <dzigterman@chromium.org> Change-Id: I00fb44903aa109bbc525fb512ab4035a94649c68 Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/ec/+/2458841 Reviewed-by: Aseda Aboagye <aaboagye@chromium.org> Commit-Queue: Aseda Aboagye <aaboagye@chromium.org>
* Madoo: Add thermistorsstabilize-rust-13514.B-masterKo_Ko2020-10-061-0/+15
| | | | | | | | | | | | | | | | This change adds the temperature sensors for madoo, which are hooked up to 2 of the ADCs. BUG=b:169729477 BRANCH=None TEST=build and test on madoo board. Can obtain value via ectool cmd. Signed-off-by: Ko_Ko <Ko_Ko@compal.corp-partner.google.com> Change-Id: Id57a669006db04f9a83ad3b6ebe65b2df7c80b11 Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/ec/+/2437723 Reviewed-by: Aseda Aboagye <aaboagye@chromium.org> Commit-Queue: Ko Ko <ko_ko@compal.corp-partner.google.com> Tested-by: Ko Ko <ko_ko@compal.corp-partner.google.com>
* Madoo: Remove redriver for later buildelmo_lan2020-09-291-2/+10
| | | | | | | | | | | | | | | Modify usb_mux structure, and set up by different board_id. BUG=b:162802526 BRANCH=none TEST=modify board_version and unit can project to external monitor via main board type-c. Signed-off-by: elmo_lan <elmo_lan@compal.corp-partner.google.com> Change-Id: I13b3ef4d808edf4aa667d36053897dd1369daa81 Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/ec/+/2431320 Reviewed-by: Henry Sun <henrysun@google.com> Reviewed-by: Aseda Aboagye <aaboagye@chromium.org>
* Madoo: Fix rotation matrices for base sensorKo_Ko2020-09-231-2/+2
| | | | | | | | | | | | | | | | | | This commit adds the needed rotation matrices for base sensor to place the measurements into the standard reference frame. BUG=b:167940144 BRANCH=none TEST=Build and flash madoo. Compare accel readings against released chromebooks and verify that they match in orientation and sign. Signed-off-by: Ko_Ko <Ko_Ko@compal.corp-partner.google.com> Change-Id: Ieaee61a4e9e3c5c551b250045d30c6572bb18e65 Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/ec/+/2419740 Reviewed-by: Aseda Aboagye <aaboagye@chromium.org> Tested-by: Ko Ko <ko_ko@compal.corp-partner.google.com> Commit-Queue: Ko Ko <ko_ko@compal.corp-partner.google.com>
* Dedede: Remove VSYNC sensorDiana Z2020-09-231-12/+0
| | | | | | | | | | | | | Remove VSYNC sensor, and related GPIOs and configs. BRANCH=None BUG=b:169056723 TEST=make -j buildall Signed-off-by: Diana Z <dzigterman@chromium.org> Change-Id: Ib37e648ea04b5da3ed9ce6a660fcd60f2bfe264a Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/ec/+/2424891 Reviewed-by: Aseda Aboagye <aaboagye@chromium.org>
* madoo: Support UK2 keyboardLeo-Tsai2020-09-181-0/+12
| | | | | | | | | | | | | | | This patch swaps the forwardslash-pipe key (scancode=0x56) with the right control key (scancode=0xe014) if UK2 bit in fw_config is define. BUG=b:162016093 BRANCH=none TEST=make BOARD=madoo Signed-off-by: Leo-Tsai <leocx_tsai@compal.corp-partner.google.com> Change-Id: I07be81b3ac3cafab46ac07a67f018e87166e375a Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/ec/+/2315970 Reviewed-by: Elmo Lan <elmo_lan@compal.corp-partner.google.com> Reviewed-by: Henry Sun <henrysun@google.com>
* Madoo: Add rotation matrices for sensorsKo_Ko2020-09-181-4/+10
| | | | | | | | | | | | | | | | | | This commit adds the needed rotation matrices for the sensors to place the measurements into the standard reference frame. BUG=b:167940144 BRANCH=none TEST=Build and flash madoo. Compare accel readings against released chromebooks and verify that they match in orientation and sign. Signed-off-by: Ko_Ko <Ko_Ko@compal.corp-partner.google.com> Change-Id: I2579f3e1eeb301815e8759621dea228fa888b361 Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/ec/+/2409719 Reviewed-by: Diana Z <dzigterman@chromium.org> Commit-Queue: Ko Ko <ko_ko@compal.corp-partner.google.com> Tested-by: Ko Ko <ko_ko@compal.corp-partner.google.com>
* Madoo: remove HDMI sub-board functionKo_Ko2020-09-021-79/+10
| | | | | | | | | | | | | | | | Madoo doesn't support HDMI sub-board. By removing it to prevent unwanted outcome. BRANCH=None BUG=b:167168822 TEST=on function works on madoo proto build with type C sub board. Signed-off-by: Ko_Ko <Ko_Ko@compal.corp-partner.google.com> Change-Id: I8b3e95c520c71b0e0541d5786c296375e7556cb2 Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/ec/+/2385022 Reviewed-by: Justin TerAvest <teravest@chromium.org> Tested-by: Justin TerAvest <teravest@chromium.org> Commit-Queue: Ko Ko <ko_ko@compal.corp-partner.google.com>
* madoo: add Power LED behaviorLeo-Tsai2020-08-251-12/+0
| | | | | | | | | | | | | | | | | | | | | | | | | | | | On madoo, we have a LED indicator with following: Power LED: System S0: White. System S0ix: Blinking white (1 sec on, 1 sec off) System S5/G3: Off. Battery LED: DC mode: System S0: off. System S5/G3: Off. System battery low: Blinking white (1 sec on, 1 sec off) AC mode: Charging: Amber. Full charged: White. only AC without battery: Blinking Amber (0.5 sec on, 0.5 sec off). BUG=b:163935841 BRANCH=none TEST=test on waddledoo reference board ,battery 、 Power LEDs are work. Signed-off-by: Leo-Tsai <leocx_tsai@compal.corp-partner.google.com> Change-Id: I633582dfbcf2a0050d3c30f9a70ff838f2cfcdc7 Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/ec/+/2352958 Reviewed-by: Diana Z <dzigterman@chromium.org>
* Dedede: Move PWM to board levelDiana Z2020-08-211-0/+24
| | | | | | | | | | | | | | | | Move the PWM related defines and arrays into the board level, to allow customization of what PWM channels boards use (if they choose to use the PWM at all). BRANCH=None BUG=None TEST=make -j buildall Signed-off-by: Diana Z <dzigterman@chromium.org> Change-Id: Id417a7be079511c17de9f2e5d03c729467435804 Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/ec/+/2358899 Commit-Queue: Aseda Aboagye <aaboagye@chromium.org> Reviewed-by: Aseda Aboagye <aaboagye@chromium.org>
* Project Madoo: change Gyro & Accel SensorKo_Ko2020-08-121-23/+24
| | | | | | | | | | | | | | | Change Gyro & Accel Sensor from BMI160 to LSM6DSL. BUG=b:163437341 BRANCH=none TEST=none Signed-off-by: Ko_Ko <Ko_Ko@compal.corp-partner.google.com> Change-Id: I676878b8e11ef2c8ff8b502066f2c355d720f7b1 Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/ec/+/2348736 Reviewed-by: Diana Z <dzigterman@chromium.org> Commit-Queue: Justin TerAvest <teravest@chromium.org> Tested-by: Justin TerAvest <teravest@chromium.org>
* Madoo: Add re-driver to USB port0elmo_lan2020-08-081-0/+7
| | | | | | | | | | | | | | | Add redriver to USB port0 which is in mainboard side. BUG=b:162802526 BRANCH=none TEST=none Signed-off-by: elmo_lan <elmo_lan@compal.corp-partner.google.com> Change-Id: I8d0c4f788d89b3649891745def1371dce40dcfd2 Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/ec/+/2340731 Reviewed-by: Justin TerAvest <teravest@chromium.org> Commit-Queue: Justin TerAvest <teravest@chromium.org> Tested-by: Justin TerAvest <teravest@chromium.org>
* Madoo: Add "CCSBU OVP" GPIO and functionKo_Ko2020-08-061-0/+7
| | | | | | | | | | | | | | | | Project Madoo has CCSBU OVP hardware design. Include GPIO and function into board layer. BUG=b:162470629 BRANCH=none TEST=none Signed-off-by: Ko_Ko <Ko_Ko@compal.corp-partner.google.com> Change-Id: I36469c8d5b6b6ff39ba230d98263c622e5861a57 Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/ec/+/2328945 Reviewed-by: Diana Z <dzigterman@chromium.org> Tested-by: Ko Ko <ko_ko@compal.corp-partner.google.com> Commit-Queue: Ko Ko <ko_ko@compal.corp-partner.google.com>
* Dedede: Move extpower_is_present() to baseboardDiana Z2020-07-281-10/+1
| | | | | | | | | | | | | | | | | | | | This consolidates dedede boards to use a baseboard extpower_is_present() and also adds the condition to verify that the port is sinking, instead of providing Vbus. It also converts the RAA489000 boards to use the cached Vbus presence in pd_snk_is_vbus_provided(). BRANCH=None BUG=None TEST=on waddledoo and waddledee, verify "AC on" prints when a charger or charge-through servo v4 is plugged in, verify no "AC on" prints when a dongle is plugged in Signed-off-by: Diana Z <dzigterman@chromium.org> Change-Id: I5941da789a4e810f6d8cc40cef4d32a5a03c5662 Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/ec/+/2317062 Tested-by: Devin Lu <Devin.Lu@quantatw.com> Reviewed-by: Aseda Aboagye <aaboagye@chromium.org> Commit-Queue: Aseda Aboagye <aaboagye@chromium.org>
* madoo: Initial EC imageKo_Ko2020-07-181-0/+620
Create the initial EC image for the madoo variant by copying the waddledoo reference board EC files into a new directory named for the variant. (Auto-Generated by create_initial_ec_image.sh version 1.0.3). BUG=None BRANCH=none TEST=make BOARD=madoo Signed-off-by: Ko_Ko <Ko_Ko@compal.corp-partner.google.com> Change-Id: If6bcd7af69f354973994e2e024c8c8b17d37433e Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/ec/+/2301561 Reviewed-by: Diana Z <dzigterman@chromium.org> Reviewed-by: Paul Fagerburg <pfagerburg@chromium.org> Commit-Queue: Henry Sun <henrysun@google.com> Tested-by: Henry Sun <henrysun@google.com>