All of lore.kernel.org
 help / color / mirror / Atom feed
From: Mauro Carvalho Chehab <mchehab+samsung@kernel.org>
To: Wolfram Sang <wsa@the-dreams.de>
Cc: Akinobu Mita <akinobu.mita@gmail.com>,
	linux-media@vger.kernel.org, devicetree@vger.kernel.org,
	Jacopo Mondi <jacopo+renesas@jmondi.org>,
	Laurent Pinchart <laurent.pinchart@ideasonboard.com>,
	Hans Verkuil <hans.verkuil@cisco.com>,
	Sakari Ailus <sakari.ailus@linux.intel.com>,
	Mauro Carvalho Chehab <mchehab@s-opensource.com>
Subject: Re: [PATCH v5 03/14] media: ov772x: allow i2c controllers without I2C_FUNC_PROTOCOL_MANGLING
Date: Tue, 29 May 2018 11:32:44 -0300	[thread overview]
Message-ID: <20180529113226.720e61fc@vento.lan> (raw)
In-Reply-To: <20180529132929.zthorwdp2axxogvd@ninjato>

Em Tue, 29 May 2018 15:29:29 +0200
Wolfram Sang <wsa@the-dreams.de> escreveu:

> > It is a very bad idea to replace an i2c xfer by a pair of i2c
> > send()/recv(), as, if are there any other device at the bus managed
> > by an independent driver, you may end by mangling i2c transfers and
> > eventually cause device malfunctions.  
> 
> For I2C, this is true and a very important detail. Yet, we are talking
> not I2C but SCCB here and SCCB demands a STOP between messages. So,
> technically, to avoid what you describe one shouldn't mix I2C and SCCB
> devices. I am quite aware the reality is very different, but still...
> 
> My preference would be to stop acting as SCCB was I2C but give it its
> own set of functions so it becomes clear for everyone what protocol is
> used for what device.
> 
> > So, IMO, the best is to push the patch you proposed that adds a
> > new I2C flag:
> > 
> > 	https://patchwork.linuxtv.org/patch/49396/  
> 
> Sorry, but I don't like it. This makes the I2C core code very
> unreadable. This is why I think SCCB should be exported to its own
> realm. Which may live in i2c-core-sccb.c, no need for a seperate
> subsystem.

We actually have the same issue with pure I2C devices on media.
There are several I2C devices that don't accept repeat start.

The solution given there was hackish and varies from driver to driver.
The most common solution were to patch the I2C xfer callback 
function of the I2C master code in order to prevent them to do
I2C repeated start ops, usually checking for some specific I2C
addresses where repeated start is known to not working.

So, IMHO, a flag like that would be an improvement not only for
SCCB but also for other I2C devices. Probably there would be
other ways to do it without making the I2C core code harder to
read.

Thanks,
Mauro

  reply	other threads:[~2018-05-29 14:32 UTC|newest]

Thread overview: 28+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2018-05-06 14:19 [PATCH v5 00/14] media: ov772x: support media controller, device tree probing, etc Akinobu Mita
2018-05-06 14:19 ` [PATCH v5 01/14] media: dt-bindings: ov772x: add device tree binding Akinobu Mita
2018-05-06 14:19 ` [PATCH v5 02/14] media: ov772x: correct setting of banding filter Akinobu Mita
2018-05-06 14:19 ` [PATCH v5 03/14] media: ov772x: allow i2c controllers without I2C_FUNC_PROTOCOL_MANGLING Akinobu Mita
2018-05-29 12:59   ` Mauro Carvalho Chehab
2018-05-29 13:29     ` Wolfram Sang
2018-05-29 14:32       ` Mauro Carvalho Chehab [this message]
2018-05-06 14:19 ` [PATCH v5 04/14] media: ov772x: add checks for register read errors Akinobu Mita
2018-05-06 14:19 ` [PATCH v5 05/14] media: ov772x: add media controller support Akinobu Mita
2018-05-06 14:19 ` [PATCH v5 06/14] media: ov772x: use generic names for reset and powerdown gpios Akinobu Mita
2018-05-06 14:19 ` [PATCH v5 07/14] media: ov772x: omit consumer ID when getting clock reference Akinobu Mita
2018-05-06 14:19 ` [PATCH v5 08/14] media: ov772x: support device tree probing Akinobu Mita
2018-05-07  9:26   ` Sakari Ailus
2018-05-07 14:52     ` Akinobu Mita
2018-05-14  9:16     ` jacopo mondi
2018-05-14 11:21       ` Sakari Ailus
2018-05-06 14:19 ` [PATCH v5 09/14] media: ov772x: handle nested s_power() calls Akinobu Mita
2018-05-06 14:19 ` [PATCH v5 10/14] media: ov772x: reconstruct s_frame_interval() Akinobu Mita
2018-05-14  9:02   ` jacopo mondi
2018-05-06 14:19 ` [PATCH v5 11/14] media: ov772x: use v4l2_ctrl to get current control value Akinobu Mita
2018-05-06 14:19 ` [PATCH v5 12/14] media: ov772x: avoid accessing registers under power saving mode Akinobu Mita
2018-05-14  9:06   ` jacopo mondi
2018-05-14  9:49     ` Sakari Ailus
2018-05-14 10:03       ` jacopo mondi
2018-05-06 14:19 ` [PATCH v5 13/14] media: ov772x: make set_fmt() and s_frame_interval() return -EBUSY while streaming Akinobu Mita
2018-05-14  9:10   ` jacopo mondi
2018-05-06 14:19 ` [PATCH v5 14/14] media: ov772x: create subdevice device node Akinobu Mita
2018-05-14  9:11   ` jacopo mondi

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=20180529113226.720e61fc@vento.lan \
    --to=mchehab+samsung@kernel.org \
    --cc=akinobu.mita@gmail.com \
    --cc=devicetree@vger.kernel.org \
    --cc=hans.verkuil@cisco.com \
    --cc=jacopo+renesas@jmondi.org \
    --cc=laurent.pinchart@ideasonboard.com \
    --cc=linux-media@vger.kernel.org \
    --cc=mchehab@s-opensource.com \
    --cc=sakari.ailus@linux.intel.com \
    --cc=wsa@the-dreams.de \
    /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.