T: git git://git.infradead.org/users/hch/dma-mapping.git
W: http://git.infradead.org/users/hch/dma-mapping.git
S: Supported
---- F: lib/dma-debug.c
---- F: lib/dma-direct.c
- -- F: lib/dma-noncoherent.c
---- F: lib/dma-virt.c
---- F: drivers/base/dma-mapping.c
---- F: drivers/base/dma-coherent.c
++++ F: kernel/dma/
F: include/asm-generic/dma-mapping.h
F: include/linux/dma-direct.h
F: include/linux/dma-mapping.h
F: Documentation/media/v4l-drivers/qcom_camss.rst
F: drivers/media/platform/qcom/camss-8x16/
+ QUALCOMM CPUFREQ DRIVER MSM8996/APQ8096
+ M: Ilia Lin <ilia.lin@gmail.com>
+ L: linux-pm@vger.kernel.org
+ S: Maintained
+ F: Documentation/devicetree/bindings/opp/kryo-cpufreq.txt
+ F: drivers/cpufreq/qcom-cpufreq-kryo.c
+
QUALCOMM EMAC GIGABIT ETHERNET DRIVER
---- M: Timur Tabi <timur@codeaurora.org>
++++ M: Timur Tabi <timur@kernel.org>
L: netdev@vger.kernel.org
---- S: Supported
++++ S: Maintained
F: drivers/net/ethernet/qualcomm/emac/
QUALCOMM HEXAGON ARCHITECTURE
obj-$(CONFIG_MFD_BCM590XX) += bcm590xx.o
obj-$(CONFIG_MFD_BD9571MWV) += bd9571mwv.o
cros_ec_core-objs := cros_ec.o
- cros_ec_core-$(CONFIG_ACPI) += cros_ec_acpi_gpe.o
obj-$(CONFIG_MFD_CROS_EC) += cros_ec_core.o
---- obj-$(CONFIG_MFD_CROS_EC_I2C) += cros_ec_i2c.o
---- obj-$(CONFIG_MFD_CROS_EC_SPI) += cros_ec_spi.o
obj-$(CONFIG_MFD_CROS_EC_CHARDEV) += cros_ec_dev.o
obj-$(CONFIG_MFD_EXYNOS_LPASS) += exynos-lpass.o
kfree(msg);
}
++ ++static const struct mfd_cell cros_ec_cec_cells[] = {
++ ++ { .name = "cros-ec-cec" }
++ ++};
++ ++
+ static const struct mfd_cell cros_ec_rtc_cells[] = {
+ { .name = "cros-ec-rtc" }
+ };
+
++++static const struct mfd_cell cros_usbpd_charger_cells[] = {
++++ { .name = "cros-usbpd-charger" }
++++};
++++
static int ec_device_probe(struct platform_device *pdev)
{
int retval = -ENOMEM;
if (cros_ec_check_features(ec, EC_FEATURE_MOTION_SENSE))
cros_ec_sensors_register(ec);
++ ++ /* Check whether this EC instance has CEC host command support */
++ ++ if (cros_ec_check_features(ec, EC_FEATURE_CEC)) {
++ ++ retval = mfd_add_devices(ec->dev, PLATFORM_DEVID_AUTO,
++ ++ cros_ec_cec_cells,
++ ++ ARRAY_SIZE(cros_ec_cec_cells),
++ ++ NULL, 0, NULL);
++ ++ if (retval)
++ ++ dev_err(ec->dev,
++ ++ "failed to add cros-ec-cec device: %d\n",
++ ++ retval);
++ ++ }
++ ++
+ /* Check whether this EC instance has RTC host command support */
+ if (cros_ec_check_features(ec, EC_FEATURE_RTC)) {
+ retval = mfd_add_devices(ec->dev, PLATFORM_DEVID_AUTO,
+ cros_ec_rtc_cells,
+ ARRAY_SIZE(cros_ec_rtc_cells),
+ NULL, 0, NULL);
+ if (retval)
+ dev_err(ec->dev,
+ "failed to add cros-ec-rtc device: %d\n",
+ retval);
+ }
+
++++ /* Check whether this EC instance has the PD charge manager */
++++ if (cros_ec_check_features(ec, EC_FEATURE_USB_PD)) {
++++ retval = mfd_add_devices(ec->dev, PLATFORM_DEVID_AUTO,
++++ cros_usbpd_charger_cells,
++++ ARRAY_SIZE(cros_usbpd_charger_cells),
++++ NULL, 0, NULL);
++++ if (retval)
++++ dev_err(ec->dev,
++++ "failed to add cros-usbpd-charger device: %d\n",
++++ retval);
++++ }
++++
/* Take control of the lightbar from the EC. */
lb_manual_suspend_ctrl(ec, 1);