From: Damien Le Moal <damien.lemoal@opensource.wdc.com>
To: Sergey Shtylyov <s.shtylyov@omp.ru>, linux-ide@vger.kernel.org
Subject: Re: [PATCH v2 1/2] ata: libata-sff: refactor ata_sff_set_devctl()
Date: Mon, 14 Feb 2022 08:25:12 +0900 [thread overview]
Message-ID: <82f8b8fd-56c8-b6ed-9658-822643e0e0c9@opensource.wdc.com> (raw)
In-Reply-To: <20220213151032.4694-2-s.shtylyov@omp.ru>
On 2022/02/14 0:10, Sergey Shtylyov wrote:
> Commit 41dec29bcb05 ("libata: introduce sff_set_devctl() method") left some
> clumsy checks surrounding calls to ata_sff_set_devctl() which Jeff Garzik
> suggested to factor out... and I never followed up. :-(
>
> At last, refactor ata_sff_set_devctl() to include the repetitive checks and
> return a 'bool' result indicating if the device control register exists or
> not.
>
> While at it, further update the 'kernel-doc' comment -- the device control
> register has never been a part of the taskfile, despite what Jeff and co.
> think! :-)
>
> Signed-off-by: Sergey Shtylyov <s.shtylyov@omp.ru>
This patch has "v2"... I do not recall seeing a v1 and the cover letter has no
changelog (and no v2 tag)... Is this a new series ?
> ---
> drivers/ata/libata-sff.c | 30 +++++++++++++++---------------
> 1 file changed, 15 insertions(+), 15 deletions(-)
>
> diff --git a/drivers/ata/libata-sff.c b/drivers/ata/libata-sff.c
> index 546b1f73ede5..3fb5bd4de50c 100644
> --- a/drivers/ata/libata-sff.c
> +++ b/drivers/ata/libata-sff.c
> @@ -265,20 +265,26 @@ EXPORT_SYMBOL_GPL(ata_sff_wait_ready);
> * @ap: port where the device is
> * @ctl: value to write
> *
> - * Writes ATA taskfile device control register.
> + * Writes ATA device control register.
> *
> - * Note: may NOT be used as the sff_set_devctl() entry in
> - * ata_port_operations.
> + * RETURN:
> + * true if the register exists, false if not.
> *
> * LOCKING:
> * Inherited from caller.
> */
> -static void ata_sff_set_devctl(struct ata_port *ap, u8 ctl)
> +static bool ata_sff_set_devctl(struct ata_port *ap, u8 ctl)
> {
> - if (ap->ops->sff_set_devctl)
> + if (ap->ops->sff_set_devctl) {
> ap->ops->sff_set_devctl(ap, ctl);
> - else
> + return true;
> + }
> + if (ap->ioaddr.ctl_addr) {
> iowrite8(ctl, ap->ioaddr.ctl_addr);
> + return true;
> + }
> +
> + return false;
> }
>
> /**
> @@ -357,8 +363,6 @@ static void ata_dev_select(struct ata_port *ap, unsigned int device,
> */
> void ata_sff_irq_on(struct ata_port *ap)
> {
> - struct ata_ioports *ioaddr = &ap->ioaddr;
> -
> if (ap->ops->sff_irq_on) {
> ap->ops->sff_irq_on(ap);
> return;
> @@ -367,8 +371,7 @@ void ata_sff_irq_on(struct ata_port *ap)
> ap->ctl &= ~ATA_NIEN;
> ap->last_ctl = ap->ctl;
>
> - if (ap->ops->sff_set_devctl || ioaddr->ctl_addr)
> - ata_sff_set_devctl(ap, ap->ctl);
> + ata_sff_set_devctl(ap, ap->ctl);
> ata_wait_idle(ap);
>
> if (ap->ops->sff_irq_clear)
> @@ -1662,8 +1665,7 @@ void ata_sff_freeze(struct ata_port *ap)
> ap->ctl |= ATA_NIEN;
> ap->last_ctl = ap->ctl;
>
> - if (ap->ops->sff_set_devctl || ap->ioaddr.ctl_addr)
> - ata_sff_set_devctl(ap, ap->ctl);
> + ata_sff_set_devctl(ap, ap->ctl);
>
> /* Under certain circumstances, some controllers raise IRQ on
> * ATA_NIEN manipulation. Also, many controllers fail to mask
> @@ -2061,10 +2063,8 @@ void ata_sff_postreset(struct ata_link *link, unsigned int *classes)
> return;
>
> /* set up device control */
> - if (ap->ops->sff_set_devctl || ap->ioaddr.ctl_addr) {
> - ata_sff_set_devctl(ap, ap->ctl);
> + if (ata_sff_set_devctl(ap, ap->ctl))
> ap->last_ctl = ap->ctl;
> - }
> }
> EXPORT_SYMBOL_GPL(ata_sff_postreset);
>
--
Damien Le Moal
Western Digital Research
next prev parent reply other threads:[~2022-02-13 23:25 UTC|newest]
Thread overview: 10+ messages / expand[flat|nested] mbox.gz Atom feed top
2022-02-13 15:10 [PATCH 0/2] Refactor the accessors for the ATA device control and alternate status registers Sergey Shtylyov
2022-02-13 15:10 ` [PATCH v2 1/2] ata: libata-sff: refactor ata_sff_set_devctl() Sergey Shtylyov
2022-02-13 23:25 ` Damien Le Moal [this message]
2022-02-14 8:37 ` Sergey Shtylyov
2022-02-13 15:10 ` [PATCH v2 2/2] ata: libata-sff: refactor ata_sff_altstatus() Sergey Shtylyov
2022-02-17 12:12 ` Dan Carpenter
2022-02-17 16:02 ` Sergey Shtylyov
2022-02-18 22:58 ` Damien Le Moal
2022-02-18 22:59 ` Damien Le Moal
2022-02-16 7:20 ` [PATCH 0/2] Refactor the accessors for the ATA device control and alternate status registers Damien Le Moal
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=82f8b8fd-56c8-b6ed-9658-822643e0e0c9@opensource.wdc.com \
--to=damien.lemoal@opensource.wdc.com \
--cc=linux-ide@vger.kernel.org \
--cc=s.shtylyov@omp.ru \
/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