linux-media.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Mauro Carvalho Chehab <mchehab+huawei@kernel.org>
To: Sakari Ailus <sakari.ailus@linux.intel.com>
Cc: linux-media@vger.kernel.org
Subject: Re: [PATCH v2 046/106] ccs: Add support for manufacturer regs from sensor and module files
Date: Thu, 5 Nov 2020 12:34:13 +0100	[thread overview]
Message-ID: <20201105123413.07eb4a9a@coco.lan> (raw)
In-Reply-To: <20201007084557.25843-39-sakari.ailus@linux.intel.com>

Em Wed,  7 Oct 2020 11:44:59 +0300
Sakari Ailus <sakari.ailus@linux.intel.com> escreveu:

> Write manufacturer specific registers (MSRs) from file to the sensor on
> sensor power-on.
> 
> Signed-off-by: Sakari Ailus <sakari.ailus@linux.intel.com>
> ---
>  drivers/media/i2c/ccs/ccs-core.c       | 23 +++++++
>  drivers/media/i2c/ccs/ccs-reg-access.c | 94 ++++++++++++++++++++------
>  drivers/media/i2c/ccs/ccs-reg-access.h |  2 +
>  3 files changed, 97 insertions(+), 22 deletions(-)
> 
> diff --git a/drivers/media/i2c/ccs/ccs-core.c b/drivers/media/i2c/ccs/ccs-core.c
> index 5d7c5ece578d..6c2f18abc921 100644
> --- a/drivers/media/i2c/ccs/ccs-core.c
> +++ b/drivers/media/i2c/ccs/ccs-core.c
> @@ -1272,6 +1272,21 @@ static int ccs_setup_flash_strobe(struct ccs_sensor *sensor)
>   * Power management
>   */
>  
> +static int ccs_write_msr_regs(struct ccs_sensor *sensor)
> +{
> +	int rval;
> +
> +	rval = ccs_write_data_regs(sensor,
> +				   sensor->sdata.sensor_manufacturer_regs,
> +				   sensor->sdata.num_sensor_manufacturer_regs);
> +	if (rval)
> +		return rval;
> +
> +	return ccs_write_data_regs(sensor,
> +				   sensor->mdata.module_manufacturer_regs,
> +				   sensor->mdata.num_module_manufacturer_regs);
> +}
> +
>  static int ccs_power_on(struct device *dev)
>  {
>  	struct v4l2_subdev *subdev = dev_get_drvdata(dev);
> @@ -1377,6 +1392,10 @@ static int ccs_power_on(struct device *dev)
>  	if (rval < 0)
>  		goto out_cci_addr_fail;
>  
> +	rval = ccs_write_msr_regs(sensor);
> +	if (rval)
> +		goto out_cci_addr_fail;
> +
>  	rval = ccs_call_quirk(sensor, post_poweron);
>  	if (rval) {
>  		dev_err(dev, "post_poweron quirks failed\n");
> @@ -3205,6 +3224,10 @@ static int ccs_probe(struct i2c_client *client)
>  	if (rval < 0)
>  		goto out_media_entity_cleanup;
>  
> +	rval = ccs_write_msr_regs(sensor);
> +	if (rval)
> +		goto out_media_entity_cleanup;
> +
>  	pm_runtime_set_active(&client->dev);
>  	pm_runtime_get_noresume(&client->dev);
>  	pm_runtime_enable(&client->dev);
> diff --git a/drivers/media/i2c/ccs/ccs-reg-access.c b/drivers/media/i2c/ccs/ccs-reg-access.c
> index aad2727570ec..9fda16b221a7 100644
> --- a/drivers/media/i2c/ccs/ccs-reg-access.c
> +++ b/drivers/media/i2c/ccs/ccs-reg-access.c
> @@ -236,12 +236,38 @@ int ccs_read_addr_noconv(struct ccs_sensor *sensor, u32 reg, u32 *val)
>  	return ccs_read_addr_raw(sensor, reg, val, false, true, false);
>  }
>  
> +static int ccs_write_retry(struct i2c_client *client, struct i2c_msg *msg)
> +{
> +	unsigned int retries;
> +	int r;
> +
> +	for (retries = 0; retries < 5; retries++) {
> +		/*
> +		 * Due to unknown reason sensor stops responding. This
> +		 * loop is a temporaty solution until the root cause
> +		 * is found.
> +		 */
> +		r = i2c_transfer(client->adapter, msg, 1);
> +		if (r != 1) {
> +			usleep_range(2000, 2000);

Huh? Does it need to sleep precisely for 2000 us?

> +			continue;
> +		}
> +
> +		if (retries)
> +			dev_err(&client->dev,
> +				"sensor i2c stall encountered. retries: %d\n",
> +				retries);
> +		return 0;
> +	}
> +
> +	return r;
> +}
> +
>  int ccs_write_addr_no_quirk(struct ccs_sensor *sensor, u32 reg, u32 val)
>  {
>  	struct i2c_client *client = v4l2_get_subdevdata(&sensor->src->sd);
>  	struct i2c_msg msg;
>  	unsigned char data[6];
> -	unsigned int retries;
>  	unsigned int len = ccs_reg_width(reg);
>  	int r;
>  
> @@ -256,27 +282,11 @@ int ccs_write_addr_no_quirk(struct ccs_sensor *sensor, u32 reg, u32 val)
>  	put_unaligned_be16(CCS_REG_ADDR(reg), data);
>  	put_unaligned_be32(val << (8 * (sizeof(val) - len)), data + 2);
>  
> -	for (retries = 0; retries < 5; retries++) {
> -		/*
> -		 * Due to unknown reason sensor stops responding. This
> -		 * loop is a temporaty solution until the root cause
> -		 * is found.
> -		 */
> -		r = i2c_transfer(client->adapter, &msg, 1);
> -		if (r == 1) {
> -			if (retries)
> -				dev_err(&client->dev,
> -					"sensor i2c stall encountered. retries: %d\n",
> -					retries);
> -			return 0;
> -		}
> -
> -		usleep_range(2000, 2000);
> -	}
> -
> -	dev_err(&client->dev,
> -		"wrote 0x%x to offset 0x%x error %d\n", val,
> -		CCS_REG_ADDR(reg), r);
> +	r = ccs_write_retry(client, &msg);
> +	if (r)
> +		dev_err(&client->dev,
> +			"wrote 0x%x to offset 0x%x error %d\n", val,
> +			CCS_REG_ADDR(reg), r);
>  
>  	return r;
>  }
> @@ -297,3 +307,43 @@ int ccs_write_addr(struct ccs_sensor *sensor, u32 reg, u32 val)
>  
>  	return ccs_write_addr_no_quirk(sensor, reg, val);
>  }
> +
> +#define MAX_WRITE_LEN	32U
> +
> +int ccs_write_data_regs(struct ccs_sensor *sensor, struct ccs_reg *regs,
> +			size_t num_regs)
> +{
> +	struct i2c_client *client = v4l2_get_subdevdata(&sensor->src->sd);
> +	unsigned char buf[2 + MAX_WRITE_LEN];
> +	struct i2c_msg msg = {
> +		.addr = client->addr,
> +		.buf = buf,
> +	};
> +	size_t i;
> +
> +	for (i = 0; i < num_regs; i++, regs++) {
> +		unsigned char *regdata = regs->value;
> +		unsigned int j;
> +
> +		for (j = 0; j < regs->len;
> +		     j += msg.len - 2, regdata += msg.len - 2) {
> +			int rval;
> +
> +			msg.len = min(regs->len - j, MAX_WRITE_LEN);
> +
> +			put_unaligned_be16(regs->addr + j, buf);
> +			memcpy(buf + 2, regdata, msg.len);
> +			msg.len += 2;
> +
> +			rval = ccs_write_retry(client, &msg);
> +			if (rval) {
> +				dev_err(&client->dev,
> +					"error writing %u octets to address 0x%4.4x\n",
> +					msg.len, regs->addr + j);
> +				return rval;
> +			}
> +		}
> +	}
> +
> +	return 0;
> +}
> diff --git a/drivers/media/i2c/ccs/ccs-reg-access.h b/drivers/media/i2c/ccs/ccs-reg-access.h
> index cfad2e520fe2..78c43f92d99a 100644
> --- a/drivers/media/i2c/ccs/ccs-reg-access.h
> +++ b/drivers/media/i2c/ccs/ccs-reg-access.h
> @@ -27,6 +27,8 @@ int ccs_read_addr_8only(struct ccs_sensor *sensor, u32 reg, u32 *val);
>  int ccs_read_addr_noconv(struct ccs_sensor *sensor, u32 reg, u32 *val);
>  int ccs_write_addr_no_quirk(struct ccs_sensor *sensor, u32 reg, u32 val);
>  int ccs_write_addr(struct ccs_sensor *sensor, u32 reg, u32 val);
> +int ccs_write_data_regs(struct ccs_sensor *sensor, struct ccs_reg *regs,
> +			size_t num_regs);
>  
>  unsigned int ccs_reg_width(u32 reg);
>  u32 ccs_reg_conv(struct ccs_sensor *sensor, u32 reg, u32 val);



Thanks,
Mauro

  reply	other threads:[~2020-11-05 11:34 UTC|newest]

Thread overview: 146+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2020-10-07  8:44 [PATCH v2 000/106] CCS driver Sakari Ailus
2020-10-07  8:44 ` [PATCH v2 001/106] smiapp: Generate CCS register definitions and limits Sakari Ailus
2020-10-07  8:44   ` [PATCH v2 002/106] smiapp: Use CCS register flags Sakari Ailus
2020-10-07  8:44   ` [PATCH v2 003/106] smiapp: Calculate CCS limit offsets and limit buffer size Sakari Ailus
2020-11-05  7:43     ` Mauro Carvalho Chehab
2020-11-05  7:58       ` Mauro Carvalho Chehab
2020-11-05  8:01         ` Sakari Ailus
2020-10-07  8:44   ` [PATCH v2 004/106] smiapp: Remove macros for defining registers, merge definitions Sakari Ailus
2020-10-07  8:44   ` [PATCH v2 005/106] smiapp: Add macros for accessing CCS registers Sakari Ailus
2020-10-07  8:44   ` [PATCH v2 006/106] smiapp: Use MIPI CCS version and manufacturer ID information Sakari Ailus
2020-10-07  8:44   ` [PATCH v2 007/106] smiapp: Read CCS limit values Sakari Ailus
2020-10-07  8:44   ` [PATCH v2 008/106] smiapp: Switch to CCS limits Sakari Ailus
2020-10-07  8:44   ` [PATCH v2 009/106] smiapp: Obtain frame descriptor from " Sakari Ailus
2020-10-07  8:44   ` [PATCH v2 010/106] smiapp: Use CCS limits in reading data format descriptors Sakari Ailus
2020-10-07  8:44   ` [PATCH v2 011/106] smiapp: Use CCS limits in reading binning capabilities Sakari Ailus
2020-10-07  8:44   ` [PATCH v2 012/106] smiapp: Use CCS registers Sakari Ailus
2020-10-07  8:44   ` [PATCH v2 013/106] smiapp: Remove quirk function for writing a single 8-bit register Sakari Ailus
2020-10-07  8:44   ` [PATCH v2 014/106] smiapp: Rename register access functions Sakari Ailus
2020-10-07  8:44   ` [PATCH v2 015/106] smiapp: Internal rename to CCS Sakari Ailus
2020-10-07  8:44   ` [PATCH v2 016/106] smiapp: Differentiate CCS sensors from SMIA in subdev naming Sakari Ailus
2020-10-07  8:44   ` [PATCH v2 017/106] smiapp: Rename as "ccs" Sakari Ailus
2020-10-07  8:44   ` [PATCH v2 018/106] ccs: Remove profile concept Sakari Ailus
2020-10-07  8:44   ` [PATCH v2 019/106] ccs: Give all subdevs a function Sakari Ailus
2020-10-07  8:44   ` [PATCH v2 027/106] ccs: Request for "reset" GPIO Sakari Ailus
2020-10-07  8:44   ` [PATCH v2 028/106] ccs: Add MIPI CCS compatible strings Sakari Ailus
2020-10-07  8:44   ` [PATCH v2 029/106] ccs: Remove the I²C ID table Sakari Ailus
2020-11-05  9:34     ` Mauro Carvalho Chehab
2020-11-18 22:15       ` Sakari Ailus
2020-10-07  8:44   ` [PATCH v2 030/106] ccs: Remove remaining support for platform data Sakari Ailus
2020-10-07  8:44   ` [PATCH v2 031/106] ccs: Make hwcfg part of the device specific struct Sakari Ailus
2020-10-07  8:44   ` [PATCH v2 032/106] ccs: Fix obtaining bus information from firmware Sakari Ailus
2020-10-07  8:44   ` [PATCH v2 033/106] ccs: Add CCS static data parser library Sakari Ailus
2020-11-05 10:50     ` Mauro Carvalho Chehab
2020-11-05 11:18       ` Sakari Ailus
2020-11-05 12:53         ` Mauro Carvalho Chehab
2020-11-16 12:05           ` Sakari Ailus
2020-10-07  8:44   ` [PATCH v2 034/106] ccs: Combine revision number major and minor into one Sakari Ailus
2020-10-07  8:44   ` [PATCH v2 035/106] ccs: Read CCS static data from firmware binaries Sakari Ailus
2020-11-05 10:56     ` Mauro Carvalho Chehab
2020-10-07  8:44   ` [PATCH v2 036/106] ccs: Stop reading arrays after the first zero Sakari Ailus
2020-10-07  8:44   ` [PATCH v2 037/106] ccs: The functions to get compose or crop rectangle never return NULL Sakari Ailus
2020-10-07  8:44   ` [PATCH v2 038/106] ccs: Replace somewhat harsh internal checks based on BUG with WARN_ON Sakari Ailus
2020-10-07  8:44   ` [PATCH v2 039/106] ccs: Refactor register reading a little Sakari Ailus
2020-10-07  8:44   ` [PATCH v2 040/106] ccs: Make real to integer number conversion optional Sakari Ailus
2020-10-07  8:44   ` [PATCH v2 041/106] ccs: Move limit value real to integer conversion from read to access time Sakari Ailus
2020-10-07  8:44   ` [PATCH v2 042/106] ccs: Read ireal numbers correctly Sakari Ailus
2020-10-07  8:44   ` [PATCH v2 043/106] smiapp-pll: Rename as ccs-pll Sakari Ailus
2020-10-07  8:44   ` [PATCH v2 044/106] ccs-pll: Fix MODULE_LICENSE Sakari Ailus
2020-10-07  8:44   ` [PATCH v2 045/106] ccs: Change my e-mail address Sakari Ailus
2020-10-07  8:44   ` [PATCH v2 046/106] ccs: Add support for manufacturer regs from sensor and module files Sakari Ailus
2020-11-05 11:34     ` Mauro Carvalho Chehab [this message]
2020-11-05 11:56       ` Sakari Ailus
2020-11-05 12:46         ` Mauro Carvalho Chehab
2020-10-07  8:45   ` [PATCH v2 047/106] ccs: Use static data read-only registers Sakari Ailus
2020-10-07  8:45   ` [PATCH v2 048/106] ccs: Clean up runtime PM usage Sakari Ailus
2020-10-07  8:45   ` [PATCH v2 049/106] ccs: Wrap long lines, unwrap short ones Sakari Ailus
2020-10-07  8:45   ` [PATCH v2 050/106] ccs: Add device compatible identifiers for telling SMIA and CCS apart Sakari Ailus
2020-10-07  8:45   ` [PATCH v2 051/106] ccs: Use longer pre-I²C sleep for CCS compliant devices Sakari Ailus
2020-10-07  8:45   ` [PATCH v2 052/106] ccs: Remove unnecessary delays from power-up sequence Sakari Ailus
2020-10-07  8:45   ` [PATCH v2 055/106] ccs: Use all regulators Sakari Ailus
2020-10-07  8:45   ` [PATCH v2 056/106] ccs-pll: Don't use div_u64 to divide a 32-bit number Sakari Ailus
2020-10-07  8:45   ` [PATCH v2 057/106] ccs-pll: Split limits and PLL configuration into front and back parts Sakari Ailus
2020-10-07  8:45   ` [PATCH v2 058/106] ccs-pll: Use correct VT divisor for calculating VT SYS divisor Sakari Ailus
2020-10-07  8:45   ` [PATCH v2 059/106] ccs-pll: End search if there are no better values available Sakari Ailus
2020-10-07  8:45   ` [PATCH v2 060/106] ccs-pll: Remove parallel bus support Sakari Ailus
2020-10-07  8:45   ` [PATCH v2 061/106] ccs-pll: Differentiate between CSI-2 D-PHY and C-PHY Sakari Ailus
2020-10-07  8:45   ` [PATCH v2 062/106] ccs-pll: Move the flags field down, away from 8-bit fields Sakari Ailus
2020-10-07  8:45   ` [PATCH v2 063/106] ccs-pll: Document the structs in the header as well as the function Sakari Ailus
2020-11-05 12:18     ` Mauro Carvalho Chehab
2020-12-02 18:02       ` Sakari Ailus
2020-10-07  8:45   ` [PATCH v2 064/106] ccs-pll: Use the BIT macro Sakari Ailus
2020-10-07  8:45   ` [PATCH v2 065/106] ccs-pll: Begin calculation from OP system clock frequency Sakari Ailus
2020-10-07  8:45   ` [PATCH v2 066/106] ccs-pll: Fix condition for pre-PLL divider lower bound Sakari Ailus
2020-10-07  8:45   ` [PATCH v2 067/106] ccs-pll: Avoid overflow in pre-PLL divisor lower bound search Sakari Ailus
2020-10-07  8:45   ` [PATCH v2 068/106] ccs-pll: Fix comment on check against maximum PLL multiplier Sakari Ailus
2020-10-07  8:45   ` [PATCH v2 069/106] ccs-pll: Fix check for PLL multiplier upper bound Sakari Ailus
2020-10-07  8:45   ` [PATCH v2 070/106] ccs-pll: Use explicit 32-bit unsigned type Sakari Ailus
2020-10-07  8:45   ` [PATCH v2 071/106] ccs-pll: Add support for lane speed model Sakari Ailus
2020-10-07  8:45   ` [PATCH v2 072/106] ccs: " Sakari Ailus
2020-10-07  8:45   ` [PATCH v2 073/106] ccs-pll: Add support for decoupled OP domain calculation Sakari Ailus
2020-10-07  8:45   ` [PATCH v2 074/106] ccs-pll: Add support for extended input PLL clock divider Sakari Ailus
2020-10-07  8:45   ` [PATCH v2 075/106] ccs-pll: Support two cycles per pixel on OP domain Sakari Ailus
2020-10-07  8:45   ` [PATCH v2 076/106] ccs-pll: Add support flexible OP PLL pixel clock divider Sakari Ailus
2020-10-07  8:45   ` [PATCH v2 077/106] ccs-pll: Add sanity checks Sakari Ailus
2020-10-07  8:45   ` [PATCH v2 078/106] ccs-pll: Add C-PHY support Sakari Ailus
2020-10-07  8:45   ` [PATCH v2 079/106] ccs-pll: Split off VT subtree calculation Sakari Ailus
2020-10-07  8:45   ` [PATCH v2 080/106] ccs-pll: Check for derating and overrating, support non-derating sensors Sakari Ailus
2020-10-07  8:45   ` [PATCH v2 081/106] ccs-pll: Better separate OP and VT sub-tree calculation Sakari Ailus
2020-10-07  8:45   ` [PATCH v2 082/106] ccs-pll: Print relevant information on PLL tree Sakari Ailus
2020-10-07  8:45   ` [PATCH v2 083/106] ccs-pll: Rework bounds checks Sakari Ailus
2020-10-07  8:45   ` [PATCH v2 084/106] ccs-pll: Make VT divisors 16-bit Sakari Ailus
2020-10-07  8:45   ` [PATCH v2 085/106] ccs-pll: Fix VT post-PLL divisor calculation Sakari Ailus
2020-10-07  8:45   ` [PATCH v2 086/106] ccs-pll: Separate VT divisor limit calculation from the rest Sakari Ailus
2020-10-07  8:45   ` [PATCH v2 087/106] ccs-pll: Add trivial dual PLL support Sakari Ailus
2020-10-07  8:45   ` [PATCH v2 088/106] ccs: Dual " Sakari Ailus
2020-10-07  8:45   ` [PATCH v2 089/106] ccs-pll: Add support for DDR OP system and pixel clocks Sakari Ailus
2020-10-07  8:45   ` [PATCH v2 090/106] ccs: Add support for DDR OP SYS and OP PIX clocks Sakari Ailus
2020-10-07  8:45   ` [PATCH v2 091/106] ccs: Print written register values Sakari Ailus
2020-10-07  8:45   ` [PATCH v2 092/106] ccs-pll: Print pixel rates Sakari Ailus
2020-10-07  8:45   ` [PATCH v2 093/106] ccs: Add support for obtaining C-PHY configuration from firmware Sakari Ailus
2020-10-07  8:45   ` [PATCH v2 094/106] ccs: Add digital gain support Sakari Ailus
2020-10-07  8:45   ` [PATCH v2 095/106] ccs: Add support for old-style SMIA digital gain Sakari Ailus
2020-10-07  8:45   ` [PATCH v2 096/106] ccs: Remove analogue gain field Sakari Ailus
2020-10-07  8:45   ` [PATCH v2 097/106] ccs: Only add analogue gain control if the device supports it Sakari Ailus
2020-10-07  8:45   ` [PATCH v2 098/106] v4l: uapi: Add user control base for CCS controls Sakari Ailus
2020-10-07  8:45   ` [PATCH v2 099/106] v4l: uapi: ccs: Add controls for analogue gain constants Sakari Ailus
2020-11-05 12:41     ` Hans Verkuil
2020-11-05 12:47       ` Sakari Ailus
2020-11-05 12:56     ` Hans Verkuil
2020-11-05 12:58       ` Sakari Ailus
2020-10-07  8:45   ` [PATCH v2 100/106] ccs: Add support for analogue gain coefficient controls Sakari Ailus
2020-11-05 12:46     ` Hans Verkuil
2020-11-05 12:50       ` Hans Verkuil
2020-11-05 12:55       ` Sakari Ailus
2020-10-07  8:45   ` [PATCH v2 101/106] v4l: uapi: ccs: Add controls for CCS alternative analogue gain Sakari Ailus
2020-10-07  8:45   ` [PATCH v2 102/106] ccs: Add support for alternate analogue global gain Sakari Ailus
2020-10-07  8:45   ` [PATCH v2 103/106] ccs: Add debug prints for MSR registers Sakari Ailus
2020-10-07  8:45   ` [PATCH v2 104/106] v4l: uapi: ccs: Add CCS controls for shading correction Sakari Ailus
2020-10-07  8:45   ` [PATCH v2 105/106] ccs: Add shading correction and luminance correction level controls Sakari Ailus
2020-11-05 12:42     ` Mauro Carvalho Chehab
2020-11-05 16:29       ` Sakari Ailus
2020-11-05 13:03     ` Hans Verkuil
2020-11-16 13:50       ` Sakari Ailus
2020-10-07  8:45   ` [PATCH v2 106/106] ccs: Add CCS ACPI device ID Sakari Ailus
2020-11-05 12:44     ` Mauro Carvalho Chehab
2020-11-05  7:19   ` [PATCH v2 001/106] smiapp: Generate CCS register definitions and limits Mauro Carvalho Chehab
2020-11-05  8:01     ` Sakari Ailus
2020-11-05  9:04       ` Mauro Carvalho Chehab
2020-10-07  8:44 ` [PATCH v2 020/106] dt-bindings: nokia,smia: Fix link-frequencies documentation Sakari Ailus
2020-10-07  8:44 ` [PATCH v2 021/106] dt-bindings: nokia,smia: Make vana-supply optional Sakari Ailus
2020-10-07  8:44 ` [PATCH v2 022/106] dt-bindings: nokia,smia: Remove nokia,nvm-size property Sakari Ailus
2020-10-07 16:04   ` Rob Herring
2020-10-07  8:45 ` [PATCH v2 023/106] dt-bindings: nokia,smia: Convert to YAML Sakari Ailus
2020-10-07 16:06   ` Rob Herring
2020-10-07  8:45 ` [PATCH v2 024/106] dt-bindings: nokia,smia: Use better active polarity for reset Sakari Ailus
2020-10-07  8:45 ` [PATCH v2 025/106] dt-bindings: nokia,smia: Amend SMIA bindings with MIPI CCS support Sakari Ailus
2020-10-07 16:07   ` Rob Herring
2020-10-07  8:45 ` [PATCH v2 026/106] dt-bindings: mipi-ccs: Add bus-type for C-PHY support Sakari Ailus
2020-10-07 13:52   ` Rob Herring
2020-10-07 14:46     ` Sakari Ailus
2020-10-07 14:49     ` [PATCH v3 " Sakari Ailus
2020-10-07 16:24       ` Rob Herring
2020-10-07  8:45 ` [PATCH v2 053/106] dt-bindings: mipi,ccs: Don't mention vana voltage Sakari Ailus
2020-10-07 16:07   ` Rob Herring
2020-10-07  8:45 ` [PATCH v2 054/106] dt-bindings: mipi,ccs: Add vcore and vio supplies Sakari Ailus
2020-10-07 16:08   ` Rob Herring

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20201105123413.07eb4a9a@coco.lan \
    --to=mchehab+huawei@kernel.org \
    --cc=linux-media@vger.kernel.org \
    --cc=sakari.ailus@linux.intel.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).