All of lore.kernel.org
 help / color / mirror / Atom feed
From: Steve Longerbeam <slongerbeam@gmail.com>
To: Sakari Ailus <sakari.ailus@iki.fi>
Cc: robh+dt@kernel.org, mark.rutland@arm.com, shawnguo@kernel.org,
	kernel@pengutronix.de, fabio.estevam@nxp.com,
	linux@armlinux.org.uk, mchehab@kernel.org, hverkuil@xs4all.nl,
	nick@shmanahar.org, markus.heiser@darmarIT.de,
	p.zabel@pengutronix.de,
	laurent.pinchart+renesas@ideasonboard.com, bparrot@ti.com,
	geert@linux-m68k.org, arnd@arndb.de, sudipm.mukherjee@gmail.com,
	minghsiu.tsai@mediatek.com, tiffany.lin@mediatek.com,
	jean-christophe.trotin@st.com, horms+renesas@verge.net.au,
	niklas.soderlund+renesas@ragnatech.se, robert.jarzmik@free.fr,
	songjun.wu@microchip.com, andrew-ct.chen@mediatek.com,
	gregkh@linuxfoundation.org, shuah@kernel.org,
	sakari.ailus@linux.intel.com, pavel@ucw.cz,
	devicetree@vger.kernel.org, linux-kernel@vger.kernel.org,
	linux-arm-kernel@lists.infradead.org,
	linux-media@vger.kernel.org, devel@driverdev.osuosl.org,
	Steve Longerbeam <steve_longerbeam@mentor.com>
Subject: Re: [PATCH v7 16/34] [media] add Omnivision OV5640 sensor driver
Date: Mon, 29 May 2017 14:49:17 -0700	[thread overview]
Message-ID: <1d145bb7-c1f9-e551-f7f3-da330d12ed71@gmail.com> (raw)
In-Reply-To: <20170529155511.GI29527@valkosipuli.retiisi.org.uk>

[-- Attachment #1: Type: text/plain, Size: 7190 bytes --]

Hi Sakari,


On 05/29/2017 08:55 AM, Sakari Ailus wrote:
> Hi Steve,
>
> A few comments below.
>
> On Wed, May 24, 2017 at 05:29:31PM -0700, Steve Longerbeam wrote:
>> This driver is based on ov5640_mipi.c from Freescale imx_3.10.17_1.0.0_beta
>> branch, modified heavily to bring forward to latest interfaces and code
>> cleanup.
>>
>> Signed-off-by: Steve Longerbeam<steve_longerbeam@mentor.com>
>> ---
>>   drivers/media/i2c/Kconfig  |    9 +
>>   drivers/media/i2c/Makefile |    1 +
>>   drivers/media/i2c/ov5640.c | 2224 ++++++++++++++++++++++++++++++++++++++++++++
>>   3 files changed, 2234 insertions(+)
>>   create mode 100644 drivers/media/i2c/ov5640.c
>>
>> diff --git a/drivers/media/i2c/Kconfig b/drivers/media/i2c/Kconfig
>> index fd181c9..ff082a7 100644
>> --- a/drivers/media/i2c/Kconfig
>> +++ b/drivers/media/i2c/Kconfig
>> @@ -539,6 +539,15 @@ config VIDEO_OV2659
>>   	  To compile this driver as a module, choose M here: the
>>   	  module will be called ov2659.
>>   
>> +config VIDEO_OV5640
>> +	tristate "OmniVision OV5640 sensor support"
>> +	depends on OF
>> +	depends on GPIOLIB && VIDEO_V4L2 && I2C && VIDEO_V4L2_SUBDEV_API
>> +	depends on MEDIA_CAMERA_SUPPORT
>> +	---help---
>> +	  This is a Video4Linux2 sensor-level driver for the Omnivision
>> +	  OV5640 camera sensor with a MIPI CSI-2 interface.
>> +
>>   config VIDEO_OV5645
>>   	tristate "OmniVision OV5645 sensor support"
>>   	depends on OF
>> diff --git a/drivers/media/i2c/Makefile b/drivers/media/i2c/Makefile
>> index 62323ec..dc6b0c4 100644
>> --- a/drivers/media/i2c/Makefile
>> +++ b/drivers/media/i2c/Makefile
>> @@ -58,6 +58,7 @@ obj-$(CONFIG_VIDEO_SONY_BTF_MPX) += sony-btf-mpx.o
>>   obj-$(CONFIG_VIDEO_UPD64031A) += upd64031a.o
>>   obj-$(CONFIG_VIDEO_UPD64083) += upd64083.o
>>   obj-$(CONFIG_VIDEO_OV2640) += ov2640.o
>> +obj-$(CONFIG_VIDEO_OV5640) += ov5640.o
>>   obj-$(CONFIG_VIDEO_OV5645) += ov5645.o
>>   obj-$(CONFIG_VIDEO_OV5647) += ov5647.o
>>   obj-$(CONFIG_VIDEO_OV7640) += ov7640.o
>> diff --git a/drivers/media/i2c/ov5640.c b/drivers/media/i2c/ov5640.c
>> new file mode 100644
>> index 0000000..2a032bc
>> --- /dev/null
>> +++ b/drivers/media/i2c/ov5640.c
>> @@ -0,0 +1,2224 @@
>> +/*
>> + * Copyright (C) 2011-2013 Freescale Semiconductor, Inc. All Rights Reserved.
>> + * Copyright (C) 2014-2017 Mentor Graphics Inc.
>> + *
>> + * This program is free software; you can redistribute it and/or modify
>> + * it under the terms of the GNU General Public License as published by
>> + * the Free Software Foundation; either version 2 of the License, or
>> + * (at your option) any later version.
>> + */
>> +
>> +#include <linux/clk.h>
>> +#include <linux/clk-provider.h>
>> +#include <linux/clkdev.h>
>> +#include <linux/ctype.h>
>> +#include <linux/delay.h>
>> +#include <linux/device.h>
>> +#include <linux/i2c.h>
>> +#include <linux/init.h>
>> +#include <linux/module.h>
>> +#include <linux/of_device.h>
>> +#include <linux/slab.h>
>> +#include <linux/types.h>
>> +#include <linux/gpio/consumer.h>
>> +#include <linux/regulator/consumer.h>
>> +#include <media/v4l2-async.h>
>> +#include <media/v4l2-ctrls.h>
>> +#include <media/v4l2-device.h>
>> +#include <media/v4l2-of.h>
> Could you rebase this on the V4L2 fwnode patchset here, please?
>
> <URL:https://git.linuxtv.org/sailus/media_tree.git/log/?h=v4l2-acpi>

Once the fwnode patchset hits mediatree, then yes it can be
converted along with all the others under media/i2c.

> <snip>
>
>> +
>> +static int ov5640_write_reg16(struct ov5640_dev *sensor, u16 reg, u16 val)
>> +{
>> +	int ret;
>> +
>> +	ret = ov5640_write_reg(sensor, reg, val >> 8);
>> +	if (ret)
>> +		return ret;
>> +
>> +	return ov5640_write_reg(sensor, reg + 1, val & 0xff);
> Does the sensor datasheet suggest doing this?

Why would the datasheet suggest or not suggest such things?
Coding details like this don't belong in the datasheet.

>   Making the write in two
> transactions will make it non-atomic that could be an issue in some corner
> cases.

It's called everywhere under the same device mutex.


> <snip>
>> +
>> +static int ov5640_set_gain(struct ov5640_dev *sensor, int auto_gain)
>> +{
>> +	struct ov5640_ctrls *ctrls = &sensor->ctrls;
>> +
>> +	if (ctrls->auto_gain->is_new) {
>> +		ov5640_mod_reg(sensor, OV5640_REG_AEC_PK_MANUAL,
>> +			       BIT(1), ctrls->auto_gain->val ? 0 : BIT(1));
> You're generally silently ignoring all I²C access errors. Is that
> intentional?

Yeah, this driver is much cleaned up from the original, but there are
still some issues like this. The register access errors are really only
being paid attention to during s_power() when loading the initial
register set, which is enough at least to catch a non-existent chip
or basic i2c bus or other hardware issues. But I should work on
catching all access errors. This is something I did in an earlier rev
but I used a questionable short-cut to make it easier to implement.
I'll just have to catch every case one by one.


> <snip>
>
>> +
>> +static int ov5640_s_ctrl(struct v4l2_ctrl *ctrl)
>> +{
>> +	struct v4l2_subdev *sd = ctrl_to_sd(ctrl);
>> +	struct ov5640_dev *sensor = to_ov5640_dev(sd);
>> +	int ret = 0;
>> +
>> +	mutex_lock(&sensor->lock);
> Could you use the same lock for the controls as you use for the rest? Just
> setting handler->lock after handler init does the trick.

Can you please rephrase, I don't follow. "same lock for the controls as
you use for the rest" - there's only one device lock owned by this driver
and I am already using that same lock.


> <snip>
>> +
>> +static int ov5640_s_stream(struct v4l2_subdev *sd, int enable)
>> +{
>> +	struct ov5640_dev *sensor = to_ov5640_dev(sd);
>> +	int ret = 0;
>> +
>> +	mutex_lock(&sensor->lock);
>> +
>> +#if defined(CONFIG_MEDIA_CONTROLLER)
>> +	if (sd->entity.stream_count > 1)
> The entity stream_count isn't connected to the number of times s_stream(sd,
> true) is called. Please remove the check.

It's incremented by media_pipeline_start(), even if the entity is already
a member of the given pipeline.

I added this check because in imx-media, the ov5640 can be streaming
concurrently to multiple video capture devices, and each capture device 
calls
media_pipeline_start() at stream on, which increments the entity stream 
count.

So if one capture device issues a stream off while others are still 
streaming,
ov5640 should remain at stream on. So the entity stream count is being
used as a streaming usage counter. Is there a better way to do this? Should
I use a private stream use counter instead?



> <snip>
>
>> +
>> +free_ctrls:
>> +	v4l2_ctrl_handler_free(&sensor->ctrls.handler);
>> +entity_cleanup:
>> +	mutex_destroy(&sensor->lock);
>> +	media_entity_cleanup(&sensor->sd.entity);
>> +	regulator_bulk_disable(OV5640_NUM_SUPPLIES, sensor->supplies);
> Should this still be here?
>
>> +	return ret;
>> +}
>> +
>> +static int ov5640_remove(struct i2c_client *client)
>> +{
>> +	struct v4l2_subdev *sd = i2c_get_clientdata(client);
>> +	struct ov5640_dev *sensor = to_ov5640_dev(sd);
>> +
>> +	regulator_bulk_disable(OV5640_NUM_SUPPLIES, sensor->supplies);
> Ditto.

I don't understand. regulator_bulk_disable() is still needed, am I missing
something?

Steve




[-- Attachment #2: Type: text/html, Size: 9583 bytes --]

  reply	other threads:[~2017-05-29 21:49 UTC|newest]

Thread overview: 196+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2017-05-25  0:29 [PATCH v7 00/34] i.MX Media Driver Steve Longerbeam
2017-05-25  0:29 ` Steve Longerbeam
2017-05-25  0:29 ` Steve Longerbeam
2017-05-25  0:29 ` [PATCH v7 01/34] dt-bindings: Add bindings for video-multiplexer device Steve Longerbeam
2017-05-25  0:29   ` Steve Longerbeam
2017-05-25  0:29   ` Steve Longerbeam
2017-05-25  0:29 ` [PATCH v7 02/34] [media] dt-bindings: Add bindings for i.MX media driver Steve Longerbeam
2017-05-25  0:29   ` Steve Longerbeam
2017-05-25  0:29   ` Steve Longerbeam
2017-05-25  0:29 ` [PATCH v7 03/34] [media] dt/bindings: Add bindings for OV5640 Steve Longerbeam
2017-05-25  0:29   ` Steve Longerbeam
2017-05-25  0:29   ` Steve Longerbeam
2017-05-25  0:29 ` [PATCH v7 04/34] ARM: dts: imx6qdl: add multiplexer controls Steve Longerbeam
2017-05-25  0:29   ` Steve Longerbeam
2017-05-25  0:29   ` Steve Longerbeam
2017-05-25  0:29 ` [PATCH v7 05/34] ARM: dts: imx6qdl: Add compatible, clocks, irqs to MIPI CSI-2 node Steve Longerbeam
2017-05-25  0:29   ` Steve Longerbeam
2017-05-25  0:29   ` Steve Longerbeam
2017-05-25  0:29 ` [PATCH v7 06/34] ARM: dts: imx6qdl: Add video multiplexers, mipi_csi, and their connections Steve Longerbeam
2017-05-25  0:29   ` Steve Longerbeam
2017-05-25  0:29   ` Steve Longerbeam
2017-05-25  0:29 ` [PATCH v7 07/34] ARM: dts: imx6qdl: add capture-subsystem device Steve Longerbeam
2017-05-25  0:29   ` Steve Longerbeam
2017-05-25  0:29   ` Steve Longerbeam
2017-05-25  0:29 ` [PATCH v7 08/34] ARM: dts: imx6qdl-sabrelite: remove erratum ERR006687 workaround Steve Longerbeam
2017-05-25  0:29   ` Steve Longerbeam
2017-05-25  0:29   ` Steve Longerbeam
2017-05-25  0:29 ` [PATCH v7 09/34] ARM: dts: imx6-sabrelite: add OV5642 and OV5640 camera sensors Steve Longerbeam
2017-05-25  0:29   ` Steve Longerbeam
2017-05-25  0:29   ` Steve Longerbeam
2017-05-25  0:29 ` [PATCH v7 10/34] ARM: dts: imx6-sabresd: " Steve Longerbeam
2017-05-25  0:29   ` Steve Longerbeam
2017-05-25  0:29   ` Steve Longerbeam
2017-05-25  0:29 ` [PATCH v7 11/34] ARM: dts: imx6-sabreauto: create i2cmux for i2c3 Steve Longerbeam
2017-05-25  0:29   ` Steve Longerbeam
2017-05-25  0:29   ` Steve Longerbeam
2017-05-25  0:29 ` [PATCH v7 12/34] ARM: dts: imx6-sabreauto: add reset-gpios property for max7310_b Steve Longerbeam
2017-05-25  0:29   ` Steve Longerbeam
2017-05-25  0:29   ` Steve Longerbeam
2017-05-25  0:29 ` [PATCH v7 13/34] ARM: dts: imx6-sabreauto: add pinctrl for gpt input capture Steve Longerbeam
2017-05-25  0:29   ` Steve Longerbeam
2017-05-25  0:29   ` Steve Longerbeam
2017-05-25  0:29 ` [PATCH v7 14/34] ARM: dts: imx6-sabreauto: add the ADV7180 video decoder Steve Longerbeam
2017-05-25  0:29   ` Steve Longerbeam
2017-05-25  0:29   ` Steve Longerbeam
2017-05-25  0:29 ` [PATCH v7 15/34] add mux and video interface bridge entity functions Steve Longerbeam
2017-05-25  0:29   ` Steve Longerbeam
2017-05-25  0:29   ` Steve Longerbeam
2017-05-29 13:37   ` Hans Verkuil
2017-05-29 13:37     ` Hans Verkuil
2017-05-29 13:37     ` Hans Verkuil
2017-05-29 13:51     ` Philipp Zabel
2017-05-29 13:51       ` Philipp Zabel
2017-05-29 13:51       ` Philipp Zabel
2017-05-29 13:52       ` Hans Verkuil
2017-05-29 13:52         ` Hans Verkuil
2017-05-29 13:52         ` Hans Verkuil
2017-05-25  0:29 ` [PATCH v7 16/34] [media] add Omnivision OV5640 sensor driver Steve Longerbeam
2017-05-25  0:29   ` Steve Longerbeam
2017-05-25  0:29   ` Steve Longerbeam
2017-05-29 13:39   ` Hans Verkuil
2017-05-29 13:39     ` Hans Verkuil
2017-05-29 15:55   ` Sakari Ailus
2017-05-29 15:55     ` Sakari Ailus
2017-05-29 15:55     ` Sakari Ailus
2017-05-29 21:49     ` Steve Longerbeam [this message]
2017-05-29 21:50     ` Steve Longerbeam
2017-05-29 21:50       ` Steve Longerbeam
2017-05-29 21:50       ` Steve Longerbeam
2017-05-30  6:56       ` Sakari Ailus
2017-05-30  6:56         ` Sakari Ailus
2017-05-30  6:56         ` Sakari Ailus
2017-06-03 18:02         ` Steve Longerbeam
2017-06-03 18:02           ` Steve Longerbeam
2017-06-03 18:02           ` Steve Longerbeam
2017-06-04 18:00           ` Steve Longerbeam
2017-06-04 18:00             ` Steve Longerbeam
2017-06-04 18:00             ` Steve Longerbeam
2017-06-07 12:31             ` Sakari Ailus
2017-06-07 12:31               ` Sakari Ailus
2017-06-07 12:31               ` Sakari Ailus
2017-05-31 19:58   ` Pavel Machek
2017-05-31 19:58     ` Pavel Machek
2017-05-31 19:58     ` Pavel Machek
2017-06-01  8:26     ` Sakari Ailus
2017-06-01  8:26       ` Sakari Ailus
2017-06-01  8:26       ` Sakari Ailus
2017-06-01  8:43       ` exposure vs. exposure_absolute was " Pavel Machek
2017-06-01  8:43         ` Pavel Machek
2017-06-01  8:43         ` Pavel Machek
2017-06-03 19:38       ` Steve Longerbeam
2017-06-03 19:38         ` Steve Longerbeam
2017-06-03 19:38         ` Steve Longerbeam
2017-06-03 19:51         ` Pavel Machek
2017-06-03 19:51           ` Pavel Machek
2017-06-03 19:51           ` Pavel Machek
2017-06-03 21:57           ` Sakari Ailus
2017-06-03 21:57             ` Sakari Ailus
2017-06-03 21:57             ` Sakari Ailus
2017-06-03 22:17             ` Pavel Machek
2017-06-03 22:17               ` Pavel Machek
2017-06-03 22:17               ` Pavel Machek
2017-06-04  4:46             ` Steve Longerbeam
2017-06-04  4:46               ` Steve Longerbeam
2017-06-04  4:46               ` Steve Longerbeam
2017-06-07 12:31               ` Sakari Ailus
2017-06-07 12:31                 ` Sakari Ailus
2017-06-07 12:31                 ` Sakari Ailus
2017-05-25  0:29 ` [PATCH v7 17/34] platform: add video-multiplexer subdevice driver Steve Longerbeam
2017-05-25  0:29   ` Steve Longerbeam
2017-05-25  0:29   ` Steve Longerbeam
2017-05-25  0:29 ` [PATCH v7 18/34] platform: video-mux: include temporary mmio-mux support Steve Longerbeam
2017-05-25  0:29   ` Steve Longerbeam
2017-05-25  0:29   ` Steve Longerbeam
2017-05-25  7:51   ` [PATCH] platform: video-mux: fix ptr_ret.cocci warnings kbuild test robot
2017-05-25  7:51     ` kbuild test robot
2017-05-25  7:51     ` kbuild test robot
2017-05-25  7:51   ` [PATCH v7 18/34] platform: video-mux: include temporary mmio-mux support kbuild test robot
2017-05-25  7:51     ` kbuild test robot
2017-05-25  7:51     ` kbuild test robot
2017-05-25  0:29 ` [PATCH v7 19/34] media: Add userspace header file for i.MX Steve Longerbeam
2017-05-25  0:29   ` Steve Longerbeam
2017-05-25  0:29 ` [PATCH v7 20/34] media: Add i.MX media core driver Steve Longerbeam
2017-05-25  0:29   ` Steve Longerbeam
2017-05-25  0:29 ` [PATCH v7 21/34] media: imx: Add Capture Device Interface Steve Longerbeam
2017-05-25  0:29   ` Steve Longerbeam
2017-05-25  0:29   ` Steve Longerbeam
2017-05-25  0:29 ` [PATCH v7 22/34] media: imx: Add CSI subdev driver Steve Longerbeam
2017-05-25  0:29   ` Steve Longerbeam
2017-05-25  0:29   ` Steve Longerbeam
2017-05-25  0:29 ` [PATCH v7 23/34] media: imx: Add VDIC " Steve Longerbeam
2017-05-25  0:29   ` Steve Longerbeam
2017-05-25  0:29   ` Steve Longerbeam
2017-05-25  0:29 ` [PATCH v7 24/34] media: imx: Add IC subdev drivers Steve Longerbeam
2017-05-25  0:29   ` Steve Longerbeam
2017-05-25  0:29   ` Steve Longerbeam
2017-05-25  0:29 ` [PATCH v7 25/34] media: imx: Add MIPI CSI-2 Receiver subdev driver Steve Longerbeam
2017-05-25  0:29   ` Steve Longerbeam
2017-05-25  0:29 ` [PATCH v7 26/34] ARM: imx_v6_v7_defconfig: Enable staging video4linux drivers Steve Longerbeam
2017-05-25  0:29   ` Steve Longerbeam
2017-05-25  0:29   ` Steve Longerbeam
2017-05-25  0:29 ` [PATCH v7 27/34] media: imx: csi: add support for bayer formats Steve Longerbeam
2017-05-25  0:29   ` Steve Longerbeam
2017-05-25  0:29 ` [PATCH v7 28/34] media: imx: csi: increase burst size for YUV formats Steve Longerbeam
2017-05-25  0:29   ` Steve Longerbeam
2017-05-25  0:29   ` Steve Longerbeam
2017-05-25  0:29 ` [PATCH v7 29/34] media: imx: csi: add frame skipping support Steve Longerbeam
2017-05-25  0:29   ` Steve Longerbeam
2017-05-25  0:29 ` [PATCH v7 30/34] media: imx: csi: add sink selection rectangles Steve Longerbeam
2017-05-25  0:29   ` Steve Longerbeam
2017-05-25  0:29 ` [PATCH v7 31/34] media: imx: csi: add frame size/interval enumeration Steve Longerbeam
2017-05-25  0:29   ` Steve Longerbeam
2017-05-25  0:29   ` Steve Longerbeam
2017-05-25  0:29 ` [PATCH v7 32/34] media: imx: capture: add frame sizes/interval enumeration Steve Longerbeam
2017-05-25  0:29   ` Steve Longerbeam
2017-05-25  0:29   ` Steve Longerbeam
2017-05-25  0:29 ` [PATCH v7 33/34] media: imx: set and propagate default field, colorimetry Steve Longerbeam
2017-05-25  0:29   ` Steve Longerbeam
2017-05-25  0:29 ` [PATCH v7 34/34] media: imx: Drop warning upon multiple S_STREAM disable calls Steve Longerbeam
2017-05-25  0:29   ` Steve Longerbeam
2017-05-29 13:46 ` [PATCH v7 00/34] i.MX Media Driver Hans Verkuil
2017-05-29 13:46   ` Hans Verkuil
2017-05-29 13:46   ` Hans Verkuil
2017-05-29 14:15   ` Philipp Zabel
2017-05-29 14:15     ` Philipp Zabel
2017-05-29 14:15     ` Philipp Zabel
2017-05-29 14:21     ` Hans Verkuil
2017-05-29 14:21       ` Hans Verkuil
2017-05-29 14:21       ` Hans Verkuil
2017-05-29 15:24       ` Hans Verkuil
2017-05-29 15:24         ` Hans Verkuil
2017-05-29 15:24         ` Hans Verkuil
2017-05-29 15:36   ` Sakari Ailus
2017-05-29 15:36     ` Sakari Ailus
2017-05-29 15:36     ` Sakari Ailus
2017-05-29 16:29     ` Hans Verkuil
2017-05-29 16:29       ` Hans Verkuil
2017-05-29 16:29       ` Hans Verkuil
2017-05-29 18:12     ` Steve Longerbeam
2017-05-29 18:12       ` Steve Longerbeam
2017-05-29 18:12       ` Steve Longerbeam
2017-05-31 20:11       ` Pavel Machek
2017-05-31 20:11         ` Pavel Machek
2017-05-31 20:11         ` Pavel Machek
2017-05-29 17:23   ` Steve Longerbeam
2017-05-29 17:23     ` Steve Longerbeam
2017-05-29 17:23     ` Steve Longerbeam
2017-05-29 17:29     ` Hans Verkuil
2017-05-29 17:29       ` Hans Verkuil
2017-05-29 17:29       ` Hans Verkuil
2017-06-02  0:25 ` Tim Harvey
2017-06-02  0:25   ` Tim Harvey
2017-06-02  0:25   ` Tim Harvey
2017-06-02  0:43   ` Steve Longerbeam
2017-06-02  0:43     ` Steve Longerbeam
2017-06-02  0:43     ` Steve Longerbeam

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=1d145bb7-c1f9-e551-f7f3-da330d12ed71@gmail.com \
    --to=slongerbeam@gmail.com \
    --cc=andrew-ct.chen@mediatek.com \
    --cc=arnd@arndb.de \
    --cc=bparrot@ti.com \
    --cc=devel@driverdev.osuosl.org \
    --cc=devicetree@vger.kernel.org \
    --cc=fabio.estevam@nxp.com \
    --cc=geert@linux-m68k.org \
    --cc=gregkh@linuxfoundation.org \
    --cc=horms+renesas@verge.net.au \
    --cc=hverkuil@xs4all.nl \
    --cc=jean-christophe.trotin@st.com \
    --cc=kernel@pengutronix.de \
    --cc=laurent.pinchart+renesas@ideasonboard.com \
    --cc=linux-arm-kernel@lists.infradead.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-media@vger.kernel.org \
    --cc=linux@armlinux.org.uk \
    --cc=mark.rutland@arm.com \
    --cc=markus.heiser@darmarIT.de \
    --cc=mchehab@kernel.org \
    --cc=minghsiu.tsai@mediatek.com \
    --cc=nick@shmanahar.org \
    --cc=niklas.soderlund+renesas@ragnatech.se \
    --cc=p.zabel@pengutronix.de \
    --cc=pavel@ucw.cz \
    --cc=robert.jarzmik@free.fr \
    --cc=robh+dt@kernel.org \
    --cc=sakari.ailus@iki.fi \
    --cc=sakari.ailus@linux.intel.com \
    --cc=shawnguo@kernel.org \
    --cc=shuah@kernel.org \
    --cc=songjun.wu@microchip.com \
    --cc=steve_longerbeam@mentor.com \
    --cc=sudipm.mukherjee@gmail.com \
    --cc=tiffany.lin@mediatek.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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.