From: Damien Le Moal <dlemoal@kernel.org>
To: Geert Uytterhoeven <geert@linux-m68k.org>
Cc: linux-ide@vger.kernel.org, linux-renesas-soc@vger.kernel.org,
Niklas Cassel <cassel@kernel.org>
Subject: Re: [PATCH v6 04/11] ata: libata: Print quirks applied to devices
Date: Wed, 31 Jul 2024 08:39:41 +0900 [thread overview]
Message-ID: <5ee6820d-8253-4208-8b99-dee78acb0f71@kernel.org> (raw)
In-Reply-To: <df29e7c5-778e-ec11-3276-a6c87da2ec2f@linux-m68k.org>
On 7/30/24 19:09, Geert Uytterhoeven wrote:
> Hi Damien,
>
> On Fri, 26 Jul 2024, Damien Le Moal wrote:
>> Introduce the function ata_dev_print_quirks() to print the quirk flags
>> that will be applied to a scanned device. This new function is called
>> from ata_dev_quirks() when a match on a device model or device model
>> and revision is found for a device in the __ata_dev_quirks array.
>>
>> To implement this function, the ATA_QUIRK_ flags are redefined using
>> the new enum ata_quirk which defines the bit shift for each quirk
>> flag. The array of strings ata_quirk_names is used to define the name
>> of each flag, which are printed by ata_dev_print_quirks().
>>
>> Example output for a device listed in the __ata_dev_quirks array and
>> which has the ATA_QUIRK_DISABLE flag applied:
>>
>> [10193.461270] ata1: SATA link up 6.0 Gbps (SStatus 133 SControl 300)
>> [10193.469190] ata1.00: Model 'ASMT109x- Config', rev '2143 5', applying quirks: disable
>> [10193.469195] ata1.00: unsupported device, disabling
>> [10193.481564] ata1.00: disable device
>>
>> enum ata_quirk also defines the __ATA_QUIRK_MAX value as one plus the
>> last quirk flag defined. This value is used in ata_dev_quirks() to add a
>> build time check that all quirk flags fit within the unsigned int
>> (32-bits) quirks field of struct ata_device.
>>
>> Signed-off-by: Damien Le Moal <dlemoal@kernel.org>
>> Reviewed-by: Igor Pylypiv <ipylypiv@google.com>
>
> Thanks for your patch, which is now commit 58157d607aecb4e0 ("ata:
> libata: Print quirks applied to devices") in libata/for-next.
>
>> --- a/drivers/ata/libata-core.c
>> +++ b/drivers/ata/libata-core.c
>> @@ -4273,15 +4336,18 @@ static unsigned int ata_dev_quirks(const struct ata_device *dev)
>> unsigned char model_rev[ATA_ID_FW_REV_LEN + 1];
>> const struct ata_dev_quirks_entry *ad = __ata_dev_quirks;
>>
>> + /* dev->quirks is an unsigned int. */
>> + BUILD_BUG_ON(__ATA_QUIRK_MAX > 32);
>> +
>> ata_id_c_string(dev->id, model_num, ATA_ID_PROD, sizeof(model_num));
>> ata_id_c_string(dev->id, model_rev, ATA_ID_FW_REV, sizeof(model_rev));
>>
>> while (ad->model_num) {
>> - if (glob_match(ad->model_num, model_num)) {
>> - if (ad->model_rev == NULL)
>> - return ad->quirks;
>> - if (glob_match(ad->model_rev, model_rev))
>> - return ad->quirks;
>> + if (glob_match(ad->model_num, model_num) &&
>> + (!ad->model_rev || glob_match(ad->model_rev, model_rev))) {
>> + ata_dev_print_quirks(dev, model_num, model_rev,
>> + ad->quirks);
>> + return ad->quirks;
>> }
>> ad++;
>> }
>
> During boot-up on Salvator-XS (using rcar-sata), the quirk info is
> printed not once, but four times. Is that intentional?
Not at all. I tested on x86 with AHCI and see this message only once. So it
could be that different drivers may need some tweaks to avoid this spamming.
Though it is strange that the initialization or resume path takes this path 4
times, meaning that the quirks are applied 4 times. Need to look into that.
What is the driver for rcar-sata ? Compatible string for it would be fine.
>
> ata1: link resume succeeded after 1 retries
> +rcar-du feb00000.display: [drm] fb0: rcar-dudrmfb frame buffer device
> input: keys as /devices/platform/keys/input/input0
> ata1: SATA link up 1.5 Gbps (SStatus 113 SControl 300)
> +ata1.00: Model 'Maxtor 6L160M0', rev 'BANC1G10', applying quirks: noncq
> ata1.00: ATA-7: Maxtor 6L160M0, BANC1G10, max UDMA/133
> ata1.00: 320173056 sectors, multi 0: LBA48 NCQ (not used)
> +ata1.00: Model 'Maxtor 6L160M0', rev 'BANC1G10', applying quirks: noncq
> +ata1.00: Model 'Maxtor 6L160M0', rev 'BANC1G10', applying quirks: noncq
> +ata1.00: Model 'Maxtor 6L160M0', rev 'BANC1G10', applying quirks: noncq
> ata1.00: configured for UDMA/133
> scsi 0:0:0:0: Direct-Access ATA Maxtor 6L160M0 1G10 PQ: 0 ANSI: 5
> sd 0:0:0:0: [sda] 320173056 512-byte logical blocks: (164 GB/153 GiB)
> sd 0:0:0:0: [sda] Write Protect is off
> sd 0:0:0:0: [sda] Mode Sense: 00 3a 00 00
> sd 0:0:0:0: [sda] Write cache: enabled, read cache: enabled, doesn't support DPO or FUA
> sd 0:0:0:0: [sda] Preferred minimum I/O size 512 bytes
> sda: sda1
> sd 0:0:0:0: [sda] Attached SCSI disk
>
> During resume from s2idle or s2ram, the same info is printed again,
> fourfold:
>
> ata1: link resume succeeded after 1 retries
> ata1: SATA link up 1.5 Gbps (SStatus 113 SControl 300)
> +ata1.00: Model 'Maxtor 6L160M0', rev 'BANC1G10', applying quirks: noncq
> +ata1.00: Model 'Maxtor 6L160M0', rev 'BANC1G10', applying quirks: noncq
> +ata1.00: Model 'Maxtor 6L160M0', rev 'BANC1G10', applying quirks: noncq
> +ata1.00: Model 'Maxtor 6L160M0', rev 'BANC1G10', applying quirks: noncq
> ata1.00: configured for UDMA/133
> ata1.00: Entering active power mode
>
> Thanks!
>
> Gr{oetje,eeting}s,
>
> Geert
>
> --
> Geert Uytterhoeven -- There's lots of Linux beyond ia32 -- geert@linux-m68k.org
>
> In personal conversations with technical people, I call myself a hacker. But
> when I'm talking to journalists I just say "programmer" or something like that.
> -- Linus Torvalds
--
Damien Le Moal
Western Digital Research
next prev parent reply other threads:[~2024-07-30 23:39 UTC|newest]
Thread overview: 39+ messages / expand[flat|nested] mbox.gz Atom feed top
2024-07-26 3:19 [PATCH v6 0/4] Some cleanup, renaming and horkage improvements Damien Le Moal
2024-07-26 3:19 ` [PATCH v6 01/11] ata: libata: Change ata_dev_knobble() to return a bool Damien Le Moal
2024-07-26 3:19 ` [PATCH v6 02/11] ata: libata: Rename ata_dma_blacklisted() Damien Le Moal
2024-07-26 3:19 ` [PATCH v6 03/11] ata: libata: Use QUIRK instead of HORKAGE Damien Le Moal
2024-07-26 10:27 ` Niklas Cassel
2024-07-29 18:41 ` Igor Pylypiv
2024-07-26 3:19 ` [PATCH v6 04/11] ata: libata: Print quirks applied to devices Damien Le Moal
2024-07-26 10:47 ` Niklas Cassel
2024-07-30 10:09 ` Geert Uytterhoeven
2024-07-30 23:39 ` Damien Le Moal [this message]
2024-07-31 7:27 ` Geert Uytterhoeven
2024-07-31 9:08 ` Damien Le Moal
2024-08-01 9:07 ` Geert Uytterhoeven
2024-08-01 9:25 ` Damien Le Moal
2024-08-01 10:05 ` Geert Uytterhoeven
2024-08-01 10:08 ` Damien Le Moal
2024-08-01 10:42 ` Damien Le Moal
2024-08-01 15:04 ` Geert Uytterhoeven
2024-07-26 3:19 ` [PATCH v6 05/11] ata: pata_serverworks: Do not use the term blacklist Damien Le Moal
2024-07-26 11:12 ` Niklas Cassel
2024-07-29 18:43 ` Igor Pylypiv
2024-07-26 3:19 ` [PATCH v6 06/11] ata: ahci: Rephrase comment to " Damien Le Moal
2024-07-26 10:57 ` Niklas Cassel
2024-07-29 18:43 ` Igor Pylypiv
2024-07-26 3:19 ` [PATCH v6 07/11] ata: sata_sil: Rename sil_blacklist to sil_quirks Damien Le Moal
2024-07-26 11:13 ` Niklas Cassel
2024-07-29 18:44 ` Igor Pylypiv
2024-07-26 3:19 ` [PATCH v6 08/11] ata: ata_piix: Remove useless comment in piix_init_sidpr() Damien Le Moal
2024-07-26 11:13 ` Niklas Cassel
2024-07-29 18:45 ` Igor Pylypiv
2024-07-26 3:19 ` [PATCH v6 09/11] ata: pata_cs5520: Rephrase file header comment Damien Le Moal
2024-07-26 11:13 ` Niklas Cassel
2024-07-29 18:45 ` Igor Pylypiv
2024-07-26 3:19 ` [PATCH v6 10/11] ata: pata_hpt366: Rename hpt_dma_blacklisted() Damien Le Moal
2024-07-26 11:13 ` Niklas Cassel
2024-07-29 18:46 ` Igor Pylypiv
2024-07-26 3:19 ` [PATCH v6 11/11] ata: pata_hpt37x: " Damien Le Moal
2024-07-26 11:13 ` Niklas Cassel
2024-07-29 18:47 ` Igor Pylypiv
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=5ee6820d-8253-4208-8b99-dee78acb0f71@kernel.org \
--to=dlemoal@kernel.org \
--cc=cassel@kernel.org \
--cc=geert@linux-m68k.org \
--cc=linux-ide@vger.kernel.org \
--cc=linux-renesas-soc@vger.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).