Subject: linux-next: manual merge of the pm tree with the i2c tree

From: Stephen Rothwell <[email-masked]>
Date: Mon, 29 Oct 2018 13:09:25 +1100

Hi Rafael,

Today's linux-next merge of the pm tree got conflicts in:

  drivers/i2c/busses/i2c-designware-baytrail.c
  drivers/i2c/busses/i2c-designware-core.h

between commit:

  9cbeeca05049 ("i2c: designware: Remove Cherry Trail PMIC I2C bus pm_disabled workaround")

from the i2c tree and commit:

  8afb46804dfa ("i2c: designware: Cleanup bus lock handling")

from the pm tree.

I fixed it up (see below) and can carry the fix as necessary. This
is now fixed as far as linux-next is concerned, but any non trivial
conflicts should be mentioned to your upstream maintainer when your tree
is submitted for merging.  You may also want to consider cooperating
with the maintainer of the conflicting tree to minimise any particularly
complex conflicts.

-- 
Cheers,
Stephen Rothwell

diff --cc drivers/i2c/busses/i2c-designware-baytrail.c
index 9ca1feaba98f,971b5cde7a93..000000000000
--- a/drivers/i2c/busses/i2c-designware-baytrail.c
+++ b/drivers/i2c/busses/i2c-designware-baytrail.c
@@@ -162,18 -36,9 +36,9 @@@ int i2c_dw_probe_lock_support(struct dw
  		return -EPROBE_DEFER;
  
  	dev_info(dev->dev, "I2C bus managed by PUNIT\n");
- 	dev->acquire_lock = baytrail_i2c_acquire;
- 	dev->release_lock = baytrail_i2c_release;
+ 	dev->acquire_lock = iosf_mbi_block_punit_i2c_access;
+ 	dev->release_lock = iosf_mbi_unblock_punit_i2c_access;
 -	dev->pm_disabled = true;
 +	dev->shared_with_punit = true;
  
- 	pm_qos_add_request(&dev->pm_qos, PM_QOS_CPU_DMA_LATENCY,
- 			   PM_QOS_DEFAULT_VALUE);
- 
  	return 0;
  }
- 
- void i2c_dw_remove_lock_support(struct dw_i2c_dev *dev)
- {
- 	if (dev->acquire_lock)
- 		pm_qos_remove_request(&dev->pm_qos);
- }
diff --cc drivers/i2c/busses/i2c-designware-core.h
index 9ec8394f4787,152bf56d8404..000000000000
--- a/drivers/i2c/busses/i2c-designware-core.h
+++ b/drivers/i2c/busses/i2c-designware-core.h
@@@ -209,10 -208,9 +208,9 @@@
   * @fp_lcnt: fast plus LCNT value
   * @hs_hcnt: high speed HCNT value
   * @hs_lcnt: high speed LCNT value
-  * @pm_qos: pm_qos_request used while holding a hardware lock on the bus
   * @acquire_lock: function to acquire a hardware lock on the bus
   * @release_lock: function to release a hardware lock on the bus
 - * @pm_disabled: true if power-management should be disabled for this i2c-bus
 + * @shared_with_punit: true if this bus is shared with the SoCs PUNIT
   * @disable: function to disable the controller
   * @disable_int: function to disable all interrupts
   * @init: function to initialize the I2C hardware
@@@ -263,10 -260,9 +261,9 @@@ struct dw_i2c_dev 
  	u16			fp_lcnt;
  	u16			hs_hcnt;
  	u16			hs_lcnt;
- 	struct pm_qos_request	pm_qos;
- 	int			(*acquire_lock)(struct dw_i2c_dev *dev);
- 	void			(*release_lock)(struct dw_i2c_dev *dev);
+ 	int			(*acquire_lock)(void);
+ 	void			(*release_lock)(void);
 -	bool			pm_disabled;
 +	bool			shared_with_punit;
  	void			(*disable)(struct dw_i2c_dev *dev);
  	void			(*disable_int)(struct dw_i2c_dev *dev);
  	int			(*init)(struct dw_i2c_dev *dev);