All of lore.kernel.org
 help / color / mirror / Atom feed
From: Greg KH <gregkh@linuxfoundation.org>
To: Hugo Villeneuve <hugo@hugovil.com>
Cc: robh+dt@kernel.org, krzysztof.kozlowski+dt@linaro.org,
	conor+dt@kernel.org, jirislaby@kernel.org, jringle@gridpoint.com,
	isaac.true@canonical.com, jesse.sung@canonical.com,
	l.perczak@camlintechnologies.com, tomasz.mon@camlingroup.com,
	linux-serial@vger.kernel.org, devicetree@vger.kernel.org,
	linux-kernel@vger.kernel.org, linux-gpio@vger.kernel.org,
	Hugo Villeneuve <hvilleneuve@dimonoff.com>,
	stable@vger.kernel.org,
	Lech Perczak <lech.perczak@camlingroup.com>
Subject: Re: [PATCH v9 04/10] serial: sc16is7xx: refactor GPIO controller registration
Date: Fri, 4 Aug 2023 15:14:18 +0200	[thread overview]
Message-ID: <2023080415-kinetic-repurpose-030a@gregkh> (raw)
In-Reply-To: <20230803121449.bcf74899e062ca39dfb073a3@hugovil.com>

On Thu, Aug 03, 2023 at 12:14:49PM -0400, Hugo Villeneuve wrote:
> On Mon, 31 Jul 2023 17:55:42 +0200
> Greg KH <gregkh@linuxfoundation.org> wrote:
> 
> > On Tue, Jul 25, 2023 at 10:23:36AM -0400, Hugo Villeneuve wrote:
> > > From: Hugo Villeneuve <hvilleneuve@dimonoff.com>
> > > 
> > > In preparation for upcoming patch "fix regression with GPIO
> > > configuration". To facilitate review and make code more modular.
> > 
> > I would much rather the issue be fixed _before_ the code is refactored,
> > unless it is impossible to fix it without the refactor?
> 
> Hi Greg,
> normally I would agree, but the refactor in this case helps a lot to
> address some issues raised by you and Andy in V7 of this series.
> 
> Maybe I could merge it with the actual patch "fix regression with GPIO
> configuration"?

Sure.

> > > Cc: <stable@vger.kernel.org> # 6.1.x
> > 
> > What commit id does this fix?
> 
> It doesn't fix anything, but I tought that I needed this tag since
> this patch is a prerequisite for the next patch in the series, which
> would be applied to stable kernels. I will remove this tag (assuming
> the patch stays as it is, depending on your answer to the above
> question).
> 
>  
> > > Signed-off-by: Hugo Villeneuve <hvilleneuve@dimonoff.com>
> > > Reviewed-by: Lech Perczak <lech.perczak@camlingroup.com>
> > > Tested-by: Lech Perczak <lech.perczak@camlingroup.com>
> > > ---
> > >  drivers/tty/serial/sc16is7xx.c | 40 ++++++++++++++++++++--------------
> > >  1 file changed, 24 insertions(+), 16 deletions(-)
> > > 
> > > diff --git a/drivers/tty/serial/sc16is7xx.c b/drivers/tty/serial/sc16is7xx.c
> > > index 32d43d00a583..5b0aeef9d534 100644
> > > --- a/drivers/tty/serial/sc16is7xx.c
> > > +++ b/drivers/tty/serial/sc16is7xx.c
> > > @@ -332,6 +332,7 @@ struct sc16is7xx_one {
> > >  
> > >  struct sc16is7xx_port {
> > >  	const struct sc16is7xx_devtype	*devtype;
> > > +	struct device			*dev;
> > 
> > Why is this pointer needed?
> > 
> > Why is it grabbed and yet the reference count is never incremented?  Who
> > owns the reference count and when will it go away?
> > 
> > And what device is this?  The parent?  Current device?  What type of
> > device is it?  And why is it needed?
> > 
> > Using "raw" devices is almost never something a driver should do, they
> > are only passed into functions by the driver core, but then the driver
> > should instantly turn them into the "real" structure.
> 
> We already discussed that a lot in previous versions (v7)... I am
> trying my best to modify the code to address your concerns, but I am
> not fully understanding what you mean about raw devices, and you didn't
> answer some of my previous questions/interrogations in v7 about that.

I don't have time to answer all questions, sorry.

Please help review submitted patches to reduce my load and allow me to
answer other stuff :)

> So, in the new function that I
> need to implement, sc16is7xx_setup_gpio_chip(), I absolutely need to use
> a raw device to read a device tree property and to set
> s->gpio.parent:
> 
>     count = device_property_count_u32(dev, ...
>     ...
>     s->gpio.parent = dev;
> 
> Do we agree on that?

Yes, but what type of parent is that?

> Then, how do I pass this raw device to the 
> device_property_count_u32() function and to the s->gpio.parent
> assignment?
> 
> Should I modify sc16is7xx_setup_gpio_chip() like so:
> 
>     static int sc16is7xx_setup_gpio_chip(struct sc16is7xx_port *s)
>     {
> 	struct device *dev = &s->p[0].port.dev;
> 
>         count = device_property_count_u32(dev, ...
>         ...
>         s->gpio.parent = dev;

Again, what is the real type of that parent?  It's a port, right, so
pass in the port to this function and then do the "take the struct
device of the port" at that point in time.

thanks,

greg k-h

  reply	other threads:[~2023-08-04 13:15 UTC|newest]

Thread overview: 37+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2023-07-25 14:23 [PATCH v9 00/10] serial: sc16is7xx: fix GPIO regression and rs485 improvements Hugo Villeneuve
2023-07-25 14:23 ` [PATCH v9 01/10] serial: sc16is7xx: fix broken port 0 uart init Hugo Villeneuve
2023-07-31 15:52   ` Greg KH
2023-08-01 17:16     ` Hugo Villeneuve
2023-08-03  7:54       ` Greg KH
2023-08-03 13:04         ` Hugo Villeneuve
2023-07-25 14:23 ` [PATCH v9 02/10] serial: sc16is7xx: mark IOCONTROL register as volatile Hugo Villeneuve
2023-07-31 15:50   ` Greg KH
2023-07-31 16:22     ` Hugo Villeneuve
2023-07-25 14:23 ` [PATCH v9 03/10] serial: sc16is7xx: remove obsolete out_thread label Hugo Villeneuve
2023-07-31 15:53   ` Greg KH
2023-08-01 17:29     ` Hugo Villeneuve
2023-08-03  7:55       ` Greg KH
2023-07-25 14:23 ` [PATCH v9 04/10] serial: sc16is7xx: refactor GPIO controller registration Hugo Villeneuve
2023-07-31 15:55   ` Greg KH
2023-08-03 16:14     ` Hugo Villeneuve
2023-08-04 13:14       ` Greg KH [this message]
2023-08-04 14:15         ` Hugo Villeneuve
2023-08-04 15:09           ` Greg KH
2023-08-07 14:57             ` Hugo Villeneuve
2023-07-25 14:23 ` [PATCH v9 05/10] dt-bindings: sc16is7xx: Add property to change GPIO function Hugo Villeneuve
2023-07-25 14:23 ` [PATCH v9 06/10] serial: sc16is7xx: fix regression with GPIO configuration Hugo Villeneuve
2023-07-31 15:58   ` Greg KH
2023-08-03 14:18     ` Hugo Villeneuve
2023-08-03 21:04       ` Andy Shevchenko
2023-08-04  4:53         ` Greg KH
2023-07-25 14:23 ` [PATCH v9 07/10] serial: sc16is7xx: fix bug when first setting GPIO direction Hugo Villeneuve
2023-07-25 14:23 ` [PATCH v9 08/10] serial: sc16is7xx: add call to get rs485 DT flags and properties Hugo Villeneuve
2023-07-31 15:59   ` Greg KH
2023-08-03 14:38     ` Hugo Villeneuve
2023-08-04 13:14       ` Greg KH
2023-07-25 14:23 ` [PATCH v9 09/10] serial: sc16is7xx: add post reset delay Hugo Villeneuve
2023-07-31 15:57   ` Greg KH
2023-07-31 17:00     ` Hugo Villeneuve
2023-07-25 14:23 ` [PATCH v9 10/10] serial: sc16is7xx: improve comments about variants Hugo Villeneuve
2023-07-31 15:56   ` Greg KH
2023-08-03 13:28     ` Hugo Villeneuve

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=2023080415-kinetic-repurpose-030a@gregkh \
    --to=gregkh@linuxfoundation.org \
    --cc=conor+dt@kernel.org \
    --cc=devicetree@vger.kernel.org \
    --cc=hugo@hugovil.com \
    --cc=hvilleneuve@dimonoff.com \
    --cc=isaac.true@canonical.com \
    --cc=jesse.sung@canonical.com \
    --cc=jirislaby@kernel.org \
    --cc=jringle@gridpoint.com \
    --cc=krzysztof.kozlowski+dt@linaro.org \
    --cc=l.perczak@camlintechnologies.com \
    --cc=lech.perczak@camlingroup.com \
    --cc=linux-gpio@vger.kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-serial@vger.kernel.org \
    --cc=robh+dt@kernel.org \
    --cc=stable@vger.kernel.org \
    --cc=tomasz.mon@camlingroup.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.