Commit 871dda46 authored by Linus Torvalds's avatar Linus Torvalds
Browse files

Merge branch 'i2c/for-mergewindow' of git://git.kernel.org/pub/scm/linux/kernel/git/wsa/linux

Pull i2c updates from Wolfram Sang:
 "I2C has a smaller pull reuest this time:

   - new driver for I2C virtio

   - removal of PMC SMP driver because platform is already gone

   - IRQ probing and DMAENGINE API cleanups

   - add SI metric prefix definitions to units.h

   - beginning of i801 refactorization

   - a few driver improvements"

* 'i2c/for-mergewindow' of git://git.kernel.org/pub/scm/linux/kernel/git/wsa/linux: (28 commits)
  i2c: cadence: Implement save restore
  i2c: xlp9xx: fix main IRQ check
  i2c: mt65xx: fix IRQ check
  i2c: virtio: add a virtio i2c frontend driver
  i2c: hix5hd2: fix IRQ check
  i2c: s3c2410: fix IRQ check
  i2c: iop3xx: fix deferred probing
  i2c: synquacer: fix deferred probing
  i2c: sun6i-pw2i: Prefer strscpy over strlcpy
  i2c: remove dead PMC MSP TWI/SMBus/I2C driver
  i2c: dev: Use sysfs_emit() in "show" functions
  i2c: dev: Define pr_fmt() and drop duplication substrings
  i2c: designware: Fix indentation in the header
  i2c: designware: Use DIV_ROUND_CLOSEST() macro
  units: Add SI metric prefix definitions
  i2c: at91: mark PM ops as __maybe unused
  i2c: sh_mobile: : use proper DMAENGINE API for termination
  i2c: qup: : use proper DMAENGINE API for termination
  i2c: mxs: : use proper DMAENGINE API for termination
  i2c: imx: : use proper DMAENGINE API for termination
  ...
parents 359f3d74 8b51a8e6
Loading
Loading
Loading
Loading
+9 −0
Original line number Diff line number Diff line
@@ -19736,6 +19736,15 @@ S: Maintained
F:	include/uapi/linux/virtio_snd.h
F:	sound/virtio/*
VIRTIO I2C DRIVER
M:	Jie Deng <jie.deng@intel.com>
M:	Viresh Kumar <viresh.kumar@linaro.org>
L:	linux-i2c@vger.kernel.org
L:	virtualization@lists.linux-foundation.org
S:	Maintained
F:	drivers/i2c/busses/i2c-virtio.c
F:	include/uapi/linux/virtio_i2c.h
VIRTUAL BOX GUEST DEVICE DRIVER
M:	Hans de Goede <hdegoede@redhat.com>
M:	Arnd Bergmann <arnd@arndb.de>
+11 −9
Original line number Diff line number Diff line
@@ -866,15 +866,6 @@ config I2C_PCA_PLATFORM
	  This driver can also be built as a module.  If so, the module
	  will be called i2c-pca-platform.

config I2C_PMCMSP
	tristate "PMC MSP I2C TWI Controller"
	depends on PMC_MSP || COMPILE_TEST
	help
	  This driver supports the PMC TWI controller on MSP devices.

	  This driver can also be built as module. If so, the module
	  will be called i2c-pmcmsp.

config I2C_PNX
	tristate "I2C bus support for Philips PNX and NXP LPC targets"
	depends on ARCH_LPC32XX || COMPILE_TEST
@@ -1402,4 +1393,15 @@ config I2C_FSI
	  This driver can also be built as a module. If so, the module will be
	  called as i2c-fsi.

config I2C_VIRTIO
        tristate "Virtio I2C Adapter"
        select VIRTIO
        help
          If you say yes to this option, support will be included for the virtio
          I2C adapter driver. The hardware can be emulated by any device model
          software according to the virtio protocol.

          This driver can also be built as a module. If so, the module
          will be called i2c-virtio.

endmenu
+1 −1
Original line number Diff line number Diff line
@@ -86,7 +86,6 @@ obj-$(CONFIG_I2C_OMAP) += i2c-omap.o
obj-$(CONFIG_I2C_OWL)		+= i2c-owl.o
obj-$(CONFIG_I2C_PASEMI)	+= i2c-pasemi.o
obj-$(CONFIG_I2C_PCA_PLATFORM)	+= i2c-pca-platform.o
obj-$(CONFIG_I2C_PMCMSP)	+= i2c-pmcmsp.o
obj-$(CONFIG_I2C_PNX)		+= i2c-pnx.o
obj-$(CONFIG_I2C_PXA)		+= i2c-pxa.o
obj-$(CONFIG_I2C_PXA_PCI)	+= i2c-pxa-pci.o
@@ -146,5 +145,6 @@ obj-$(CONFIG_I2C_SIBYTE) += i2c-sibyte.o
obj-$(CONFIG_I2C_XGENE_SLIMPRO) += i2c-xgene-slimpro.o
obj-$(CONFIG_SCx200_ACB)	+= scx200_acb.o
obj-$(CONFIG_I2C_FSI)		+= i2c-fsi.o
obj-$(CONFIG_I2C_VIRTIO)	+= i2c-virtio.o

ccflags-$(CONFIG_I2C_DEBUG_BUS) := -DDEBUG
+6 −13
Original line number Diff line number Diff line
@@ -286,9 +286,7 @@ static int at91_twi_remove(struct platform_device *pdev)
	return 0;
}

#ifdef CONFIG_PM

static int at91_twi_runtime_suspend(struct device *dev)
static int __maybe_unused at91_twi_runtime_suspend(struct device *dev)
{
	struct at91_twi_dev *twi_dev = dev_get_drvdata(dev);

@@ -299,7 +297,7 @@ static int at91_twi_runtime_suspend(struct device *dev)
	return 0;
}

static int at91_twi_runtime_resume(struct device *dev)
static int __maybe_unused at91_twi_runtime_resume(struct device *dev)
{
	struct at91_twi_dev *twi_dev = dev_get_drvdata(dev);

@@ -308,7 +306,7 @@ static int at91_twi_runtime_resume(struct device *dev)
	return clk_prepare_enable(twi_dev->clk);
}

static int at91_twi_suspend_noirq(struct device *dev)
static int __maybe_unused at91_twi_suspend_noirq(struct device *dev)
{
	if (!pm_runtime_status_suspended(dev))
		at91_twi_runtime_suspend(dev);
@@ -316,7 +314,7 @@ static int at91_twi_suspend_noirq(struct device *dev)
	return 0;
}

static int at91_twi_resume_noirq(struct device *dev)
static int __maybe_unused at91_twi_resume_noirq(struct device *dev)
{
	struct at91_twi_dev *twi_dev = dev_get_drvdata(dev);
	int ret;
@@ -335,18 +333,13 @@ static int at91_twi_resume_noirq(struct device *dev)
	return 0;
}

static const struct dev_pm_ops at91_twi_pm = {
static const struct dev_pm_ops __maybe_unused at91_twi_pm = {
	.suspend_noirq	= at91_twi_suspend_noirq,
	.resume_noirq	= at91_twi_resume_noirq,
	.runtime_suspend	= at91_twi_runtime_suspend,
	.runtime_resume		= at91_twi_runtime_resume,
};

#define at91_twi_pm_ops (&at91_twi_pm)
#else
#define at91_twi_pm_ops NULL
#endif

static struct platform_driver at91_twi_driver = {
	.probe		= at91_twi_probe,
	.remove		= at91_twi_remove,
@@ -354,7 +347,7 @@ static struct platform_driver at91_twi_driver = {
	.driver		= {
		.name	= "at91_i2c",
		.of_match_table = of_match_ptr(atmel_twi_dt_ids),
		.pm	= at91_twi_pm_ops,
		.pm	= pm_ptr(&at91_twi_pm),
	},
};

+2 −2
Original line number Diff line number Diff line
@@ -138,9 +138,9 @@ static void at91_twi_dma_cleanup(struct at91_twi_dev *dev)

	if (dma->xfer_in_progress) {
		if (dma->direction == DMA_FROM_DEVICE)
			dmaengine_terminate_all(dma->chan_rx);
			dmaengine_terminate_sync(dma->chan_rx);
		else
			dmaengine_terminate_all(dma->chan_tx);
			dmaengine_terminate_sync(dma->chan_tx);
		dma->xfer_in_progress = false;
	}
	if (dma->buf_mapped) {
Loading