summaryrefslogtreecommitdiffstats
path: root/arch
Commit message (Collapse)AuthorAgeFilesLines
* ARM: dts: imx6ul: specify proper clocks for GPT nodeLothar Waßmann2016-02-291-2/+2
| | | | | | | | The i.MX6UL GPT unit requires real clocks. Define the appropriate clocks to make it work. Signed-off-by: Lothar Waßmann <LW@KARO-electronics.de> Signed-off-by: Shawn Guo <shawnguo@kernel.org>
* ARM: dts: imx6ul: move dt-bindings/input/input.h include to dtsi fileLothar Waßmann2016-02-292-1/+1
| | | | | | | | | imx6ul.dtsi references the macro 'KEY_POWER' from dt-bindings/input/input.h. Thus, move the include statement for this file from imx6ul-14x14-evk.dts to imx6ul.dtsi itself. Signed-off-by: Lothar Waßmann <LW@KARO-electronics.de> Signed-off-by: Shawn Guo <shawnguo@kernel.org>
* ARM: dts: imx6ul: move tsc node to appropriate place in the DTBLothar Waßmann2016-02-291-11/+11
| | | | | | | | Move the tsc node to keep the nodes sorted in ascending order by unit address. Signed-off-by: Lothar Waßmann <LW@KARO-electronics.de> Signed-off-by: Shawn Guo <shawnguo@kernel.org>
* ARM: dts: imx51: remove bogus pin definitionLothar Waßmann2016-02-291-1/+0
| | | | | | | | | Pad DISPB2_SER_RS has no function DISP1_EXT_CLK. The definition is obviusly a copy/paste error from MX51_PAD_DISPB2_SER_RS__DISP1_PIN16. Signed-off-by: Lothar Waßmann <LW@KARO-electronics.de> Signed-off-by: Shawn Guo <shawnguo@kernel.org>
* ARM: dts: imx6ul: add missing input_sel config for various pinsLothar Waßmann2016-02-291-45/+45
| | | | | | | Various pads are missing the input_sel offset and value. Fix this. Signed-off-by: Lothar Waßmann <LW@KARO-electronics.de> Signed-off-by: Shawn Guo <shawnguo@kernel.org>
* ARM: dts: imx6ul: whitespace cleanup; no functional changeLothar Waßmann2016-02-291-918/+918
| | | | | | | | Remove whitespace before TAB in indentation and reduce indentation level to improve readability. Signed-off-by: Lothar Waßmann <LW@KARO-electronics.de> Signed-off-by: Shawn Guo <shawnguo@kernel.org>
* ARM: dts: colibri-vf: Add pinmux for UART_0 aka UART_A RTS/CTS pinsBhuvanchandra DV2016-02-291-0/+2
| | | | | | | | Add pinmux for UART_A RTS, CTS pin's. Signed-off-by: Bhuvanchandra DV <bhuvanchandra.dv@toradex.com> Acked-by: Stefan Agner <stefan@agner.ch> Signed-off-by: Shawn Guo <shawnguo@kernel.org>
* ARM: dts: vf610: add performance monitoring unitStefan Agner2016-02-291-0/+9
| | | | | | | | | All Freescale Vybrid SoC include a Cortex-A5 core which supports ARM's standard PMU (performance monitoring unit). Include the monitoring unit into the Cortex-A5 base device tree vf500.dtsi. Signed-off-by: Stefan Agner <stefan@agner.ch> Signed-off-by: Shawn Guo <shawnguo@kernel.org>
* ARM: dts: vf-colibri: disable write-protection for SD-cardStefan Agner2016-02-291-0/+1
| | | | | | | | | The Colibri standard does not define a pin for SD-Card write- protection. Use the disable-wp property to indicate that there is no physical WP line present. Signed-off-by: Stefan Agner <stefan@agner.ch> Signed-off-by: Shawn Guo <shawnguo@kernel.org>
* ARM: dts: imx6: Use correct SDMA script for SPI coresSascha Hauer2016-02-291-4/+4
| | | | | | | | | | | | | According to the reference manual the shp_2_mcu / mcu_2_shp scripts must be used for devices connected through the SPBA. This fixes an issue we saw with DMA transfers from SPI NOR Flashes. Sometimes the SPI controller RX FIFO was not empty after a DMA transfer and the driver got stuck in the next PIO transfer when it read one word more than expected. Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de> Signed-off-by: Shawn Guo <shawnguo@kernel.org>
* ARM: dts: vf-colibri: add carrier boards 3.3V supplyStefan Agner2016-02-291-0/+12
| | | | | | | | Add the carrier boards 3.3V supply as fixed regulator. This allows to specify the power supply for nodes like backlight. Signed-off-by: Stefan Agner <stefan@agner.ch> Signed-off-by: Shawn Guo <shawnguo@kernel.org>
* ARM: dts: vf-colibri: add basic supply regulatorsStefan Agner2016-02-291-0/+17
| | | | | | | | | | | | Colibri modules need to be powered using the power pins 3V3 and AVDD_AUDIO. Add fixed regulators which represent this power rails. Potentially, those power rails could be switched on a carrier board. A carrier board device tree could add a own regulator with a GPIO, and reference that regulator in a vin-supply property of those new module level system regulators. Signed-off-by: Stefan Agner <stefan@agner.ch> Signed-off-by: Shawn Guo <shawnguo@kernel.org>
* ARM: dts: vf-colibri: remove regulator container nodeStefan Agner2016-02-291-26/+16
| | | | | | | | | | | Drop the fake simple-bus container 'regulators' and put the regulators directly under the root node. This also makes the artificial 'reg' properties superfluous. While at it, remove the unnecessary regulator-always-on property and name the regulators according to schematics. Signed-off-by: Stefan Agner <stefan@agner.ch> Signed-off-by: Shawn Guo <shawnguo@kernel.org>
* ARM: dts: vf-colibri: assign Ethernet clock explicitlyStefan Agner2016-02-291-0/+7
| | | | | | | | | | | | | Assign Ethernet clock parents explicitly. The Colibri VF61 uses the 50MHz Ethernet clock provided by PLL5. The Vybrid SoC has two ethernet interfaces (fec0 and fec1) which use the same clock source (VF610_CLK_ENET). Therefore this parent configuration affects multiple consumer devices and need to be specified in the clock provider node. Signed-off-by: Stefan Agner <stefan@agner.ch> Signed-off-by: Shawn Guo <shawnguo@kernel.org>
* ARM: dts: vf610twr: assign Ethernet clock explicitlyStefan Agner2016-02-291-0/+4
| | | | | | | | | | | | | | Assign Ethernet clock parents explicitly. The VF610 Tower Board uses the external Ethernet clock input which is connected to a 50MHz clock. The Vybrid SoC has two ethernet interfaces (fec0 and fec1) which use the same clock source (VF610_CLK_ENET). Therefore this parent configuration affects multiple consumer devices and need to be specified in the clock provider node. Signed-off-by: Stefan Agner <stefan@agner.ch> Signed-off-by: Shawn Guo <shawnguo@kernel.org>
* ARM: dts: imx6q-tbs2910: remove artificial simple-bus for regulatorsSoeren Moch2016-02-291-26/+17
| | | | | Signed-off-by: Soeren Moch <smoch@web.de> Signed-off-by: Shawn Guo <shawnguo@kernel.org>
* ARM: dts: imx6q-tbs2910: remove unnecessary iomuxc container nodesSoeren Moch2016-02-291-134/+128
| | | | | | | | | | | | Remove the following unnecessary iomuxc container nodes: imx6q-tbs2910 gpio_fan gpio_leds Sort the pinctrl nodes alphabetically. Signed-off-by: Soeren Moch <smoch@web.de> Signed-off-by: Shawn Guo <shawnguo@kernel.org>
* ARM: dts: imx6q-tbs2910: avoid sdhci boot warningsSoeren Moch2016-02-291-0/+9
| | | | | | | | | | | Avoid the following warnings (example for usdhc2): /soc/aips-bus@02100000/usdhc@02194000: voltage-ranges unspecified sdhci-esdhc-imx 2194000.usdhc: could not get ultra high speed state, work on normal mode sdhci-esdhc-imx 2194000.usdhc: No vqmmc regulator found Signed-off-by: Soeren Moch <smoch@web.de> Signed-off-by: Shawn Guo <shawnguo@kernel.org>
* ARM: dts: imx6q-tbs2910: add SATA PHY configurationSoeren Moch2016-02-291-0/+4
| | | | | | | | | | | Configure SATA PHY transmit level, boost, attenuation and equalizer parameters for long wire connections. TBS2910 contains a standard SATA connector, so devices are typically connected with (longer) SATA cables. And explicitly configuring these parameters avoids complaints about "not specified" values in boot messages. Signed-off-by: Soeren Moch <smoch@web.de> Signed-off-by: Shawn Guo <shawnguo@kernel.org>
* ARM: dts: imx6dlq-wandboard-revb1.dts: use unique model idHeinrich Schuchardt2016-02-292-2/+2
| | | | | | | | | | | | | | | | | | | | | | | | | Downstream packages like Debian flash-kernel use /proc/device-tree/model to determine which dtb file to install. Hence each dts in the Linux kernel should provide a unique model identifier. Commit 8536239e371f ("ARM: dts: Restructure imx6qdl-wandboard.dtsi for new rev C1 board.")' created new files imx6dl-wandboard-revb1.dts and imx6q-wandboard-revb1.dts but used the same model identifier as in imx6dl-wandboard.dts and imx6q-wandboard.dts. This patch provides unique model identifiers for revision B1 of the Wandboard Dual and Wandbaord Quad. The patch leaves imx6dl-wandboard.dts and imx6q-wandboard.dts unchanged because it is not foreseeable if the same dts will valid for future board revisions or not. Furthermore we should avoid unnecessary changes. Signed-off-by: Heinrich Schuchardt <xypron.glpk@gmx.de> Signed-off-by: Shawn Guo <shawnguo@kernel.org>
* ARM: dts: imx6: Add support for Toradex Ixora carrier boardPetr Štetiar2016-02-292-0/+273
| | | | | | | Signed-off-by: Marcel Ziswiler <marcel.ziswiler@toradex.com> Signed-off-by: Petr Štetiar <ynezz@true.cz> Reviewed-by: Stefan Agner <stefan@agner.ch> Signed-off-by: Shawn Guo <shawnguo@kernel.org>
* ARM: dts: imx6: Add support for Toradex Apalis iMX6Q/D SoMPetr Štetiar2016-02-291-0/+984
| | | | | | | Signed-off-by: Marcel Ziswiler <marcel.ziswiler@toradex.com> Signed-off-by: Petr Štetiar <ynezz@true.cz> Reviewed-by: Stefan Agner <stefan@agner.ch> Signed-off-by: Shawn Guo <shawnguo@kernel.org>
* ARM: dts: Add dts for Uniwest eviJoshua Clayton2016-02-292-0/+503
| | | | | | | | Uniwest evi is a portable electrical eddy current non-destructive testing device. Signed-off-by: Joshua Clayton <stillcompiling@gmail.com> Signed-off-by: Shawn Guo <shawnguo@kernel.org>
* ARM: dts: imx: Add basic dts support for imx6qp-sabresdBai Ping2016-02-292-1/+95
| | | | | | | This patch adds dts file for imx6qp-sabresd board. Signed-off-by: Bai Ping <ping.bai@nxp.com> Signed-off-by: Shawn Guo <shawnguo@kernel.org>
* ARM: dts: imx: Add basic dts support for imx6qp-sabreautoBai Ping2016-02-292-1/+95
| | | | | | | This patch adds basic dts file for i.MX6QP-Sbreauto board. Signed-off-by: Bai Ping <ping.bai@nxp.com> Signed-off-by: Shawn Guo <shawnguo@kernel.org>
* ARM: dts: imx: Add basic dts support for imx6qp SOCBai Ping2016-02-293-1/+88
| | | | | | | | | | | | | | The i.MX6Quad Plus processor is an high performance SOC of i.MX6 family. It has enhanced graphics performance and increased overall memory bandwidth compared to i.MX6Q. Most of the design are same as i.MX6Quad/Dual, so code for i.MX6Quad can be resued by this chip. The revision number is identied as i.MX6Q Rev2.0, but actually it is a new chip, as we did many change to the overall architecture. This patch adds basic dtsi file support for the new i.MX6Quad Plus processor. Signed-off-by: Bai Ping <ping.bai@nxp.com> Signed-off-by: Shawn Guo <shawnguo@kernel.org>
* ARM: dts: imx25: Add TSC and ADC supportDenis Carikli2016-02-291-3/+26
| | | | | | Signed-off-by: Denis Carikli <denis@eukrea.com> Signed-off-by: Markus Pargmann <mpa@pengutronix.de> Signed-off-by: Shawn Guo <shawnguo@kernel.org>
* ARM: dts: vf610-twr: relicense vf610-twr.dts under GPLv2/X11Stefan Agner2016-02-291-4/+36
| | | | | | | | | | | | | | | | | | | | | | | | GPLv2-only devicetrees make reuse difficult for software components licensed under a different license. The consensus is that a GPL/X11 dual-license should allow all necessary uses, so relicense the vf610-twr.dts file to this combination. CCs were acquired using (updated some email addresses, commented out bouncing email addresses with --): git shortlog -sne --no-merges arch/arm/boot/dts/vf610-twr.dts --CC: Chao Fu <B44548@freescale.com> CC: Cosmin Stoica <cosminstefan.stoica@freescale.com> --CC: Fugang Duan <B38611@freescale.com> --CC: Jingchang Lu <b35083@freescale.com> --CC: Xiubo Li <Li.Xiubo@freescale.com> Acked-by: Shawn Guo <shawnguo@kernel.org> Acked-by: Bill Pringlemeir <bpringle@sympatico.ca> Acked-by: Cory Tusar <cory.tusar@pid1solutions.com> Acked-by: Yuan Yao <yao.yuan@freescale.com> Signed-off-by: Stefan Agner <stefan@agner.ch> Signed-off-by: Shawn Guo <shawnguo@kernel.org>
* ARM: dts: vf610-colibri: relicense vf*colibri* under GPLv2/X11Stefan Agner2016-02-296-25/+217
| | | | | | | | | | | | | | | | | GPLv2-only devicetrees make reuse difficult for software components licensed under a different license. The consensus is that a GPL/X11 dual-license should allow all necessary uses, so relicense the vf*colibri* files to this combination. CCs were acquired using: git shortlog -sne --no-merges arch/arm/boot/dts/vf*colibri* Acked-by: Cory Tusar <cory.tusar@pid1solutions.com> Acked-by: Sanchayan Maity <maitysanchayan@gmail.com> Acked-by: Bhuvanchandra DV <bhuvanchandra.dv@toradex.com> Signed-off-by: Stefan Agner <stefan@agner.ch> Signed-off-by: Shawn Guo <shawnguo@kernel.org>
* ARM: dts: vf610: relicense vf???.dtsi under GPLv2/X11Stefan Agner2016-02-293-12/+108
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | GPLv2-only devicetrees make reuse difficult for software components licensed under a different license. The consensus is that a GPL/X11 dual-license should allow all necessary uses, so relicense the vfxxx.dtsi, vf500.dtsi and vf610.dtsi files to this combination. CCs were acquired using (updated some email addresses, commented out bouncing email addresses with --): git shortlog -sne --no-merges arch/arm/boot/dts/vf???.dtsi --CC: Chao Fu <B44548@freescale.com> CC: Cosmin Stoica <cosminstefan.stoica@freescale.com> CC: Frank Li <Frank.Li@freescale.com> CC: Fugang Duan <B38611@freescale.com> --CC: Huang Shijie <b32955@freescale.com> --CC: Jingchang Lu <jingchang.lu@freescale.com> --CC: Xiubo Li <Li.Xiubo@freescale.com> Acked-by: Shawn Guo <shawnguo@kernel.org> Acked-by: Lucas Stach <l.stach@pengutronix.de> Acked-by: Stephen Warren <swarren@nvidia.com> Acked-by: Cory Tusar <cory.tusar@pid1solutions.com> Acked-by: Sanchayan Maity <maitysanchayan@gmail.com> Acked-by: Bhuvanchandra DV <bhuvanchandra.dv@toradex.com> Acked-by: Yuan Yao <yao.yuan@freescale.com> Signed-off-by: Stefan Agner <stefan@agner.ch> Signed-off-by: Shawn Guo <shawnguo@kernel.org>
* ARM: dts: ls1021a: add PCIe dts nodeMinghuan Lian2016-02-291-0/+44
| | | | | | | | LS1021a contains two PCIe controllers. The patch adds their node to dts file. Signed-off-by: Minghuan Lian <Minghuan.Lian@nxp.com> Signed-off-by: Shawn Guo <shawnguo@kernel.org>
* ARM: dts: imx6qdl-udoo: add sound supportMaciej S. Szmigiero2016-02-291-0/+57
| | | | | | | Add sound support in UDOO board DT file. Signed-off-by: Maciej S. Szmigiero <mail@maciej.szmigiero.name> Signed-off-by: Shawn Guo <shawnguo@kernel.org>
* ARM: dts: vf610: Add alias for ethernet controllerStefan Agner2016-02-291-0/+2
| | | | | | | | Add alias for FEC ethernet on Vybrid to allow bootloaders (like U-Boot) patch-in the MAC address using this alias. Signed-off-by: Stefan Agner <stefan@agner.ch> Signed-off-by: Shawn Guo <shawnguo@kernel.org>
* ARM: dts: imx6*-hummingboard: fix pcie reset GPIO specificationRussell King2016-02-291-1/+1
| | | | | | | | | | | PCIe reset signals are active low, and our GPIO for this is directly connected to the PCIe reset. However, as the PCIe driver was not using the flag, the specification of '0' flags (which means active high) had not been noticed. Correct this oversight, and switch to using the GPIO flag definitions instead. Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk> Signed-off-by: Shawn Guo <shawnguo@kernel.org>
* ARM: dts: imx6*-hummingboard: use proper gpio flags definitionsRussell King2016-02-291-3/+3
| | | | | | | | Use proper gpio flag definitions for GPIOs rather than using opaque uninformative numbers. Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk> Signed-off-by: Shawn Guo <shawnguo@kernel.org>
* ARM: dts: imx6qdl-microsom.dtsi: avoid boot-time UHS warningRussell King2016-02-291-0/+1
| | | | | | | | | | | | Avoid the following warning: sdhci-esdhc-imx 2190000.usdhc: could not get ultra high speed state, work on normal mode which occurs regularly at boot each time the SDHCI interface for the Broadcom WiFi is probed at boot. Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk> Signed-off-by: Shawn Guo <shawnguo@kernel.org>
* ARM: dts: imx53-tx53: set correct mclk frequencyLothar Waßmann2016-02-291-1/+1
| | | | | | | | | The reference clock for the SGTL5000 is generated by a 26MHz crystal oscillator on the Ka-Ro electronics STK5 eval kits. Use the correct frequency setting in DTB. Signed-off-by: Lothar Waßmann <LW@KARO-electronics.de> Signed-off-by: Shawn Guo <shawnguo@kernel.org>
* ARM: dts: imx53: add display timing for NL12880BC20Lothar Waßmann2016-02-291-2/+18
| | | | | Signed-off-by: Lothar Waßmann <LW@KARO-electronics.de> Signed-off-by: Shawn Guo <shawnguo@kernel.org>
* ARM: dts: imx53: fix LVDS data-mapping and data-widthLothar Waßmann2016-02-291-8/+10
| | | | | Signed-off-by: Lothar Waßmann <LW@KARO-electronics.de> Signed-off-by: Shawn Guo <shawnguo@kernel.org>
* ARM: dts: imx6qdl-tx6: add ENET_OUT clock to fec nodeLothar Waßmann2016-02-291-0/+5
| | | | | | | | | ENET_OUT is used as reference clock for the ethernet PHY on the Ka-Ro TX6 modules. Specify this clock in DTB to let it be managed correctly by the driver. Signed-off-by: Lothar Waßmann <LW@KARO-electronics.de> Signed-off-by: Shawn Guo <shawnguo@kernel.org>
* ARM: dts: imx6: use correct mclk frequency for audio codecLothar Waßmann2016-02-291-1/+1
| | | | | | | | | The reference clock for the SGTL5000 is generated by a 26MHz crystal oscillator on the Ka-Ro electronics STK5 eval kits. Use the correct frequency setting in DTB. Signed-off-by: Lothar Waßmann <LW@KARO-electronics.de> Signed-off-by: Shawn Guo <shawnguo@kernel.org>
* ARM: dts: imx28-tx28: use correct mclk frequencyLothar Waßmann2016-02-291-1/+1
| | | | | | | | | The reference clock for the SGTL5000 is generated by a 26MHz crystal oscillator on the Ka-Ro electronics STK5 eval kits. Use the correct frequency setting in DTB. Signed-off-by: Lothar Waßmann <LW@KARO-electronics.de> Signed-off-by: Shawn Guo <shawnguo@kernel.org>
* ARM: dts: imx6sx-sdb: add i2c3 nodeChristoph Fritz2016-02-291-0/+14
| | | | | | | | This patch adds node i2c bus 3 to get the appropriate userland device file. So for prototyping it's possible to experiment within userland. Signed-off-by: Christoph Fritz <chf.fritz@googlemail.com> Signed-off-by: Shawn Guo <shawnguo@kernel.org>
* ARM: dts: vf-colibri-eval-v3: Use enable-gpios for BL_ONBhuvanchandra DV2016-02-291-0/+9
| | | | | | | | | Use pwm-backlight driver 'enable-gpios' property for backlight on/off control. Signed-off-by: Bhuvanchandra DV <bhuvanchandra.dv@toradex.com> Acked-by: Stefan Agner <stefan@agner.ch> Signed-off-by: Shawn Guo <shawnguo@kernel.org>
* ARM: dts: imx6q-icore-rqs: Add Engicam IMX6 Q7 initial supportMichael Trimarchi2016-02-293-0/+490
| | | | | | | www.engicam.com/en/products/embedded/som/standard/i-core-rqs-m6s-dl-d-q Signed-off-by: Michael Trimarchi <michael@amarulasolutions.com> Signed-off-by: Shawn Guo <shawnguo@kernel.org>
* ARM: dts: imx: ventana: add alternate PWM4 pinmux for GW54xxTim Harvey2016-02-291-3/+12
| | | | | | | | | | The GW54xx can provide PWM4 out either the off-board backlight connector or the off-board digital I/O connector. By default the pinmux routes it to the backlight connector but this pinctl alternate provides documentation for those who may want to change it. Signed-off-by: Tim Harvey <tharvey@gateworks.com> Signed-off-by: Shawn Guo <shawnguo@kernel.org>
* ARM: dts: imx: ventana: fix PWM pinmux for Ventana boardsTim Harvey2016-02-294-5/+5
| | | | | | | Fix some invalid pwm pinmux configurations. Signed-off-by: Tim Harvey <tharvey@gateworks.com> Signed-off-by: Shawn Guo <shawnguo@kernel.org>
* ARM: dts: imx7d: add arch timerFrank Li2016-02-291-0/+9
| | | | | | | | | | | Since uboot v2016.01-rc2, which supported basic psci for i.mx7d. So imx7d's second core can be enabled by psci. Without arch timer, every timer event will be boardcasted to each core. arch timer has local timer irq for each core. Signed-off-by: Frank Li <Frank.Li@freescale.com> Signed-off-by: Shawn Guo <shawnguo@kernel.org>
* ARM: dts: imx: replace legacy wakeup property with 'wakeup-source'Sudeep Holla2016-02-2928-39/+39
| | | | | | | | | | | | | | | Though the keyboard and other driver will continue to support the legacy "gpio-key,wakeup", "linux,wakeup" and "enable-sdio-wakeup" boolean property to enable the wakeup source, "wakeup-source" is the new standard binding. This patch replaces all the legacy wakeup properties with the unified "wakeup-source" property in order to avoid any futher copy-paste duplication. Cc: Sascha Hauer <kernel@pengutronix.de> Signed-off-by: Sudeep Holla <sudeep.holla@arm.com> Signed-off-by: Shawn Guo <shawnguo@kernel.org>
* ARM: dts: vf610: add remaining SAI instacesStefan Agner2016-02-291-0/+42
| | | | | | | | | | | This adds the remaining SAI instances SAI0, SAI1 and SAI3. All instances are very similar, except that the DMA channel of SAI3 is available on MUX1 (compared to MUX0 for SAI0-SAI2). Also, SAI3 has a slightly different memory map due to a deeper FIFO, however in practice the current driver works for SAI3 fine. Signed-off-by: Stefan Agner <stefan@agner.ch> Signed-off-by: Shawn Guo <shawnguo@kernel.org>