linux-kernel.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Tomi Valkeinen <tomi.valkeinen@ideasonboard.com>
To: Andy Shevchenko <andriy.shevchenko@intel.com>
Cc: "Laurent Pinchart" <laurent.pinchart@ideasonboard.com>,
	linux-media@vger.kernel.org, devicetree@vger.kernel.org,
	linux-kernel@vger.kernel.org, linux-i2c@vger.kernel.org,
	"Rob Herring" <robh+dt@kernel.org>,
	"Krzysztof Kozlowski" <krzysztof.kozlowski+dt@linaro.org>,
	"Wolfram Sang" <wsa@kernel.org>,
	"Luca Ceresoli" <luca.ceresoli@bootlin.com>,
	"Matti Vaittinen" <Matti.Vaittinen@fi.rohmeurope.com>,
	"Mauro Carvalho Chehab" <mchehab@kernel.org>,
	"Peter Rosin" <peda@axentia.se>,
	"Liam Girdwood" <lgirdwood@gmail.com>,
	"Mark Brown" <broonie@kernel.org>,
	"Sakari Ailus" <sakari.ailus@linux.intel.com>,
	"Michael Tretter" <m.tretter@pengutronix.de>,
	"Hans Verkuil" <hverkuil@xs4all.nl>,
	"Mike Pagano" <mpagano@gentoo.org>,
	"Krzysztof Hałasa" <khalasa@piap.pl>,
	"Marek Vasut" <marex@denx.de>
Subject: Re: [PATCH v7 5/7] media: i2c: add DS90UB960 driver
Date: Wed, 8 Feb 2023 17:10:05 +0200	[thread overview]
Message-ID: <2501ffcc-82ff-c0bc-366a-33b62bf28e76@ideasonboard.com> (raw)
In-Reply-To: <Y9OWFSxs9ev9hfp2@smile.fi.intel.com>

On 27/01/2023 11:15, Andy Shevchenko wrote:
> On Fri, Jan 27, 2023 at 10:24:04AM +0200, Tomi Valkeinen wrote:
>> On 26/01/2023 12:51, Laurent Pinchart wrote:
>>> On Thu, Jan 26, 2023 at 12:21:06PM +0200, Andy Shevchenko wrote:
>>>> On Thu, Jan 26, 2023 at 10:41:47AM +0200, Tomi Valkeinen wrote:
>>>>> On 25/01/2023 17:27, Andy Shevchenko wrote:
> 
> ...
> 
>>>>>> But I probably don't understand the ATR structure and what exactly we need to
>>>>>> pass to it, perhaps it also can be replaced with properties (note, that we have
>>>>>> some interesting ones that called references, which is an alternative to DT
>>>>>> phandle).
>>>>>
>>>>> Well, maybe this needs a Linux bus implementation. I'm not that familiar
>>>>> with implementing a bus, but I think that would make it easier to share data
>>>>> between the deserializer and the serializer. A bus sounds a bit like an
>>>>> overkill for a 1-to-1 connection, used by a few drivers, but maybe it
>>>>> wouldn't be too much code.
>>>>
>>>> Have you looked at auxiliary bus (appeared a few releases ago in kernel)?
>>>
>>> As far as I understand, the auxiliary bus infrastructure is meant for
>>> use cases where a single hardware device needs to be split into multiple
>>> logical devices (as in struct device). Platform devices were
>>> historically (ab)used for this, and the auxiliary bus is meant as a
>>> cleaner solution. I'm not sure if it would be a good match here, or if
>>> it would be considered an abuse of the auxiliary bus API.
>>
>> The aux bus docs say "A key requirement for utilizing the auxiliary bus is
>> that there is no dependency on a physical bus, device, register accesses or
>> regmap support. These individual devices split from the core cannot live on
>> the platform bus as they are not physical devices that are controlled by
>> DT/ACPI.", which doesn't sound like a good fit.
> 
> Thanks for checking!
> 
>> The deserializer and serializers are currently independent devices and
>> drivers (the pdata is the only shared thing), but I think we may need
>> something better here. The devices are more tightly tied together than
>> "normal" video devices, in my opinion, as the serializer is fully controlled
>> by the deserializer (including power).
>>
>> And if we ever want to implement something like power management, we
>> probably need something more than what we have now. Although I don't know
>> how that would be done, as all the peripherals behind the serializer would
>> also lose power...
> 
> I believe you have to create a power domain for them and when such device
> is added, the power domain of it should belong to the serialized.

I was testing this, and got something working.

I have the deserializer introducing a separate power-domain for each RX 
port, and the serializer and the sensor both refer to their port's 
domain. I can see that the deserializer gets power on/off callbacks 
correctly when either serializer or sensor resumes.

The problem I have now is that while the power comes from the 
deserializer and is thus covered with the power domain, the sensor uses 
services from the serializer (gpios, clocks, i2c bus), and the 
serializer is not woken up when the sensor does runtime-pm resume (the 
power domain is powered up correctly when the sensor resumes).

The serializer creates the i2c adapter to which the sensor is added, so, 
afaics, there should be a child-parent relationship there. But maybe I 
have something wrong there, or it just doesn't work as I imagine it 
would work.

  Tomi


  reply	other threads:[~2023-02-08 15:10 UTC|newest]

Thread overview: 56+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2023-01-18 12:40 [PATCH v7 0/7] i2c-atr and FPDLink Tomi Valkeinen
2023-01-18 12:40 ` [PATCH v7 1/7] i2c: add I2C Address Translator (ATR) support Tomi Valkeinen
2023-01-18 14:23   ` Andy Shevchenko
2023-01-18 17:17     ` Luca Ceresoli
2023-01-18 17:39       ` Andy Shevchenko
2023-01-19  8:21         ` Luca Ceresoli
2023-01-19 10:09           ` Tomi Valkeinen
2023-01-19 11:35             ` Luca Ceresoli
2023-01-19 12:22               ` Tomi Valkeinen
2023-01-19 13:00                 ` Luca Ceresoli
2023-01-20  9:55                   ` Laurent Pinchart
2023-01-20 13:58                     ` Luca Ceresoli
2023-01-19 12:39           ` Tomi Valkeinen
2023-01-19 13:08             ` Luca Ceresoli
2023-01-19 10:01     ` Tomi Valkeinen
2023-01-20 15:58       ` Andy Shevchenko
2023-01-20 16:00         ` Tomi Valkeinen
2023-01-18 12:40 ` [PATCH v7 2/7] dt-bindings: media: add TI DS90UB913 FPD-Link III Serializer Tomi Valkeinen
2023-01-18 12:40 ` [PATCH v7 3/7] dt-bindings: media: add TI DS90UB953 " Tomi Valkeinen
2023-01-18 12:40 ` [PATCH v7 4/7] dt-bindings: media: add TI DS90UB960 FPD-Link III Deserializer Tomi Valkeinen
2023-01-19 23:24   ` Laurent Pinchart
2023-01-18 12:40 ` [PATCH v7 5/7] media: i2c: add DS90UB960 driver Tomi Valkeinen
2023-01-18 15:48   ` Andy Shevchenko
2023-01-19 16:27     ` Tomi Valkeinen
2023-01-19 23:19       ` Laurent Pinchart
2023-01-20 16:47       ` Andy Shevchenko
2023-01-25 11:15         ` Tomi Valkeinen
2023-01-25 12:10           ` Andy Shevchenko
2023-01-25 13:33             ` Tomi Valkeinen
2023-01-25 14:49               ` Andy Shevchenko
2023-01-25 15:14                 ` Tomi Valkeinen
2023-01-25 15:27                   ` Andy Shevchenko
2023-01-26  8:41                     ` Tomi Valkeinen
2023-01-26 10:21                       ` Andy Shevchenko
2023-01-26 10:51                         ` Laurent Pinchart
2023-01-27  8:24                           ` Tomi Valkeinen
2023-01-27  9:15                             ` Andy Shevchenko
2023-02-08 15:10                               ` Tomi Valkeinen [this message]
2023-02-09 10:54                                 ` Laurent Pinchart
2023-01-18 12:40 ` [PATCH v7 6/7] media: i2c: add DS90UB913 driver Tomi Valkeinen
2023-01-20  0:03   ` Laurent Pinchart
2023-01-20  7:04     ` Tomi Valkeinen
2023-01-20  9:06       ` Laurent Pinchart
2023-01-18 12:40 ` [PATCH v7 7/7] media: i2c: add DS90UB953 driver Tomi Valkeinen
2023-01-20  0:34   ` Laurent Pinchart
2023-01-20  8:13     ` Tomi Valkeinen
2023-01-20  9:23       ` Laurent Pinchart
2023-01-18 16:01 ` [PATCH v7 0/7] i2c-atr and FPDLink Andy Shevchenko
2023-01-18 17:28   ` Tomi Valkeinen
2023-01-18 17:43     ` Andy Shevchenko
2023-01-19  8:43       ` Luca Ceresoli
2023-01-19 12:40         ` Tomi Valkeinen
2023-01-19 13:19           ` Luca Ceresoli
2023-01-20 16:00         ` Andy Shevchenko
2023-01-20 16:17           ` Luca Ceresoli
2023-01-20 16:20             ` Tomi Valkeinen

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=2501ffcc-82ff-c0bc-366a-33b62bf28e76@ideasonboard.com \
    --to=tomi.valkeinen@ideasonboard.com \
    --cc=Matti.Vaittinen@fi.rohmeurope.com \
    --cc=andriy.shevchenko@intel.com \
    --cc=broonie@kernel.org \
    --cc=devicetree@vger.kernel.org \
    --cc=hverkuil@xs4all.nl \
    --cc=khalasa@piap.pl \
    --cc=krzysztof.kozlowski+dt@linaro.org \
    --cc=laurent.pinchart@ideasonboard.com \
    --cc=lgirdwood@gmail.com \
    --cc=linux-i2c@vger.kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-media@vger.kernel.org \
    --cc=luca.ceresoli@bootlin.com \
    --cc=m.tretter@pengutronix.de \
    --cc=marex@denx.de \
    --cc=mchehab@kernel.org \
    --cc=mpagano@gentoo.org \
    --cc=peda@axentia.se \
    --cc=robh+dt@kernel.org \
    --cc=sakari.ailus@linux.intel.com \
    --cc=wsa@kernel.org \
    /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).