All of lore.kernel.org
 help / color / mirror / Atom feed
From: <Kumaravel.Thiagarajan@microchip.com>
To: <ilpo.jarvinen@linux.intel.com>
Cc: <gregkh@linuxfoundation.org>, <jirislaby@kernel.org>,
	<andy.shevchenko@gmail.com>, <u.kleine-koenig@pengutronix.de>,
	<johan@kernel.org>, <wander@redhat.com>,
	<etremblay@distech-controls.com>, <macro@orcam.me.uk>,
	<geert+renesas@glider.be>, <jk@ozlabs.org>,
	<phil.edworthy@renesas.com>, <lukas@wunner.de>,
	<linux-kernel@vger.kernel.org>, <linux-serial@vger.kernel.org>,
	<UNGLinuxDriver@microchip.com>
Subject: RE: [PATCH v1 tty-next 2/2] 8250: microchip: pci1xxxx: Add power management functions to pci1xxxx's  quad-uart driver.
Date: Fri, 2 Sep 2022 02:20:18 +0000	[thread overview]
Message-ID: <BN8PR11MB3668D24337821FDE00FE7BB2E97A9@BN8PR11MB3668.namprd11.prod.outlook.com> (raw)
In-Reply-To: <8a47735-82d-809c-9b8c-a8d9d9a8d5c5@linux.intel.com>

> -----Original Message-----
> From: Ilpo Järvinen <ilpo.jarvinen@linux.intel.com>
> Sent: Wednesday, August 31, 2022 3:24 PM
> To: Kumaravel Thiagarajan - I21417 <Kumaravel.Thiagarajan@microchip.com>
> Cc: Greg Kroah-Hartman <gregkh@linuxfoundation.org>; Jiri Slaby
> <jirislaby@kernel.org>; andy.shevchenko@gmail.com; u.kleine-
> koenig@pengutronix.de; johan@kernel.org; wander@redhat.com;
> etremblay@distech-controls.com; macro@orcam.me.uk;
> geert+renesas@glider.be; jk@ozlabs.org; phil.edworthy@renesas.com;
> Lukas Wunner <lukas@wunner.de>; LKML <linux-kernel@vger.kernel.org>;
> linux-serial <linux-serial@vger.kernel.org>; UNGLinuxDriver
> <UNGLinuxDriver@microchip.com>
> Subject: Re: [PATCH v1 tty-next 2/2] 8250: microchip: pci1xxxx: Add power
> management functions to pci1xxxx's quad-uart driver.
> 
> 
> On Tue, 30 Aug 2022, Kumaravel Thiagarajan wrote:
> 
> > pci1xxxx's quad-uart function has the capability to wake up the host
> > from suspend state. Enable wakeup before entering into suspend and
> > disable wakeup upon resume.
> >
> > Signed-off-by: Kumaravel Thiagarajan
> > <kumaravel.thiagarajan@microchip.com>
> > ---
> >  drivers/tty/serial/8250/8250_pci1xxxx.c | 122
> > ++++++++++++++++++++++++
> >  1 file changed, 122 insertions(+)
> >
> > diff --git a/drivers/tty/serial/8250/8250_pci1xxxx.c
> > b/drivers/tty/serial/8250/8250_pci1xxxx.c
> > index 56852ae0585e..38c2a6a9e5d5 100644
> > --- a/drivers/tty/serial/8250/8250_pci1xxxx.c
> > +++ b/drivers/tty/serial/8250/8250_pci1xxxx.c
> > @@ -70,6 +70,7 @@
> >
> >  #define UART_PCI_CTRL_REG            0x80
> >  #define UART_PCI_CTRL_SET_MULTIPLE_MSI       BIT(4)
> > +#define UART_PCI_CTRL_D3_CLK_ENABLE  BIT(0)
> 
> Reorder.
I have ordered this like - Register offset followed by individual bits from MSB to LSB.
Should I reorder this based on some other criteria?

> 
> > +static char pci1xxxx_port_suspend(int line)
> 
> Why char???
I will modify this to bool.

> 
> > +{
> > +     struct uart_8250_port *up = serial8250_get_port(line);
> > +     struct uart_port *port = &up->port;
> > +     unsigned long flags;
> > +     u8 wakeup_mask;
> > +     char ret = 0;
> > +
> > +     if (port->suspended == 0 && port->dev) {
> > +             wakeup_mask = readb(up->port.membase +
> > + UART_WAKE_MASK_REG);
> > +
> > +             spin_lock_irqsave(&port->lock, flags);
> > +             port->mctrl &= ~TIOCM_OUT2;
> > +             port->ops->set_mctrl(port, port->mctrl);
> > +             spin_unlock_irqrestore(&port->lock, flags);
> > +
> > +             if ((wakeup_mask & UART_WAKE_SRCS) != UART_WAKE_SRCS)
> > +                     ret = 0x01;
> > +             else
> > +                     ret = 0x00;
> 
> Is it a bool or should you name these it with a #define?
bool is the correct data type. I will fix this.

> 
> > +     }
> > +
> > +     writeb(UART_WAKE_SRCS, port->membase + UART_WAKE_REG);
> > +
> > +     return ret;
> > +}
> > +
> > +void pci1xxxx_port_resume(int line)
> > +{
> > +     struct uart_8250_port *up = serial8250_get_port(line);
> > +     struct uart_port *port = &up->port;
> > +     unsigned long flags;
> > +
> > +     writeb(UART_WAKE_SRCS, port->membase + UART_WAKE_REG);
> > +
> > +     if (port->suspended == 0) {
> > +             spin_lock_irqsave(&port->lock, flags);
> > +             port->mctrl |= TIOCM_OUT2;
> > +             port->ops->set_mctrl(port, port->mctrl);
> > +             spin_unlock_irqrestore(&port->lock, flags);
> > +     }
> > +}
> > +
> > +static int pci1xxxx_suspend(struct device *dev) {
> > +     struct pci1xxxx_8250 *priv = dev_get_drvdata(dev);
> > +     struct pci_dev *pcidev = to_pci_dev(dev);
> > +     unsigned int data;
> > +     void __iomem *p;
> > +     char wakeup = 0;
> > +     int i;
> > +
> > +     for (i = 0; i < priv->nr; i++) {
> > +             if (priv->line[i] >= 0) {
> > +                     serial8250_suspend_port(priv->line[i]);
> > +                     wakeup |= pci1xxxx_port_suspend(priv->line[i]);
> > +             }
> > +     }
> > +
> > +     p = pci_ioremap_bar(pcidev, 0);
> > +     if (!p) {
> > +             dev_err(dev, "remapping of bar 0 memory failed");
> > +             return -ENOMEM;
> > +     }
> > +
> > +     data = readl(p + UART_RESET_REG);
> > +     writel(data | UART_RESET_D3_RESET_DISABLE, p + UART_RESET_REG);
> > +
> > +     if (wakeup)
> 
> It looks you'd want bool instead of char here.
Yes. I will modify this to bool.

Thank You.

Regards,
Kumaravel

      reply	other threads:[~2022-09-02  2:24 UTC|newest]

Thread overview: 21+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2022-08-30 18:00 [PATCH v1 tty-next 0/2] 8250: microchip: pci1xxxx: Add driver for the pci1xxxx's quad-uart function Kumaravel Thiagarajan
2022-08-30 18:00 ` [PATCH v1 tty-next 1/2] 8250: microchip: pci1xxxx: Add driver for the quad-uart function in the multi-function endpoint of pci1xxxx device Kumaravel Thiagarajan
2022-08-30 19:53   ` Andy Shevchenko
2022-09-01 13:33     ` Kumaravel.Thiagarajan
2022-09-01 13:41       ` Ilpo Järvinen
2022-09-02 11:57         ` Kumaravel.Thiagarajan
2022-09-02 15:02           ` Andy Shevchenko
2022-09-05 12:01             ` Kumaravel.Thiagarajan
2022-08-30 19:58   ` Geert Uytterhoeven
2022-09-01 14:09     ` Kumaravel.Thiagarajan
2022-08-30 22:18   ` kernel test robot
2022-08-30 22:29   ` kernel test robot
2022-08-31  9:42   ` Ilpo Järvinen
2022-09-01 14:21     ` Kumaravel.Thiagarajan
2022-08-30 18:00 ` [PATCH v1 tty-next 2/2] 8250: microchip: pci1xxxx: Add power management functions to pci1xxxx's quad-uart driver Kumaravel Thiagarajan
2022-08-30 19:56   ` Andy Shevchenko
2022-09-01 13:49     ` Kumaravel.Thiagarajan
2022-09-29  9:34       ` Kumaravel.Thiagarajan
2022-08-30 23:00   ` kernel test robot
2022-08-31  9:53   ` Ilpo Järvinen
2022-09-02  2:20     ` Kumaravel.Thiagarajan [this message]

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=BN8PR11MB3668D24337821FDE00FE7BB2E97A9@BN8PR11MB3668.namprd11.prod.outlook.com \
    --to=kumaravel.thiagarajan@microchip.com \
    --cc=UNGLinuxDriver@microchip.com \
    --cc=andy.shevchenko@gmail.com \
    --cc=etremblay@distech-controls.com \
    --cc=geert+renesas@glider.be \
    --cc=gregkh@linuxfoundation.org \
    --cc=ilpo.jarvinen@linux.intel.com \
    --cc=jirislaby@kernel.org \
    --cc=jk@ozlabs.org \
    --cc=johan@kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-serial@vger.kernel.org \
    --cc=lukas@wunner.de \
    --cc=macro@orcam.me.uk \
    --cc=phil.edworthy@renesas.com \
    --cc=u.kleine-koenig@pengutronix.de \
    --cc=wander@redhat.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.