Re: [PATCH] ahci: remove duplicated PCI device IDs

From: Damien Le Moal
Date: Fri Sep 17 2021 - 07:21:17 EST


On 2021/09/17 19:24, Krzysztof Kozlowski wrote:
> Intel devices 0x2822, 0x2823, 0x2826 and 0x2827 are already on the list
> as Lewisburg AHCI/RAID. They use same configuration except 0x2822 which
> has board_ahci_nosntf (for ICH8).
>
> Signed-off-by: Krzysztof Kozlowski <krzysztof.kozlowski@xxxxxxxxxxxxx>
>
> ---
>
> Not tested.

I cannot test this either. I do not have this hardware. No chance of getting
this tested by someone ?

Changes for 0x2823, 0x2826 and 0x2827 seem OK, but 0x2822 is weird.
Since it is replicated, I think that the second entry was in fact never used as
the first one would be a hit before the second. So shouldn't we keep the first
entry with board_ahci_nosntf and remove the second one with board_ahci ?

> ---
> drivers/ata/ahci.c | 10 +++-------
> 1 file changed, 3 insertions(+), 7 deletions(-)
>
> diff --git a/drivers/ata/ahci.c b/drivers/ata/ahci.c
> index 186cbf90c8ea..5f257064fcd8 100644
> --- a/drivers/ata/ahci.c
> +++ b/drivers/ata/ahci.c
> @@ -258,7 +258,6 @@ static const struct pci_device_id ahci_pci_tbl[] = {
> { PCI_VDEVICE(INTEL, 0x2683), board_ahci }, /* ESB2 */
> { PCI_VDEVICE(INTEL, 0x27c6), board_ahci }, /* ICH7-M DH */
> { PCI_VDEVICE(INTEL, 0x2821), board_ahci }, /* ICH8 */
> - { PCI_VDEVICE(INTEL, 0x2822), board_ahci_nosntf }, /* ICH8 */
> { PCI_VDEVICE(INTEL, 0x2824), board_ahci }, /* ICH8 */
> { PCI_VDEVICE(INTEL, 0x2829), board_ahci }, /* ICH8M */
> { PCI_VDEVICE(INTEL, 0x282a), board_ahci }, /* ICH8M */
> @@ -316,7 +315,6 @@ static const struct pci_device_id ahci_pci_tbl[] = {
> { PCI_VDEVICE(INTEL, 0x1d02), board_ahci }, /* PBG AHCI */
> { PCI_VDEVICE(INTEL, 0x1d04), board_ahci }, /* PBG RAID */
> { PCI_VDEVICE(INTEL, 0x1d06), board_ahci }, /* PBG RAID */
> - { PCI_VDEVICE(INTEL, 0x2826), board_ahci }, /* PBG RAID */
> { PCI_VDEVICE(INTEL, 0x2323), board_ahci }, /* DH89xxCC AHCI */
> { PCI_VDEVICE(INTEL, 0x1e02), board_ahci }, /* Panther Point AHCI */
> { PCI_VDEVICE(INTEL, 0x1e03), board_ahci_mobile }, /* Panther M AHCI */
> @@ -358,8 +356,6 @@ static const struct pci_device_id ahci_pci_tbl[] = {
> { PCI_VDEVICE(INTEL, 0x1f37), board_ahci_avn }, /* Avoton RAID */
> { PCI_VDEVICE(INTEL, 0x1f3e), board_ahci_avn }, /* Avoton RAID */
> { PCI_VDEVICE(INTEL, 0x1f3f), board_ahci_avn }, /* Avoton RAID */
> - { PCI_VDEVICE(INTEL, 0x2823), board_ahci }, /* Wellsburg RAID */
> - { PCI_VDEVICE(INTEL, 0x2827), board_ahci }, /* Wellsburg RAID */
> { PCI_VDEVICE(INTEL, 0x43d4), board_ahci }, /* Rocket Lake PCH-H RAID */
> { PCI_VDEVICE(INTEL, 0x43d5), board_ahci }, /* Rocket Lake PCH-H RAID */
> { PCI_VDEVICE(INTEL, 0x43d6), board_ahci }, /* Rocket Lake PCH-H RAID */
> @@ -395,9 +391,9 @@ static const struct pci_device_id ahci_pci_tbl[] = {
> { PCI_VDEVICE(INTEL, 0xa107), board_ahci_mobile }, /* Sunrise M RAID */
> { PCI_VDEVICE(INTEL, 0xa10f), board_ahci }, /* Sunrise Point-H RAID */
> { PCI_VDEVICE(INTEL, 0x2822), board_ahci }, /* Lewisburg RAID*/
> - { PCI_VDEVICE(INTEL, 0x2823), board_ahci }, /* Lewisburg AHCI*/
> - { PCI_VDEVICE(INTEL, 0x2826), board_ahci }, /* Lewisburg RAID*/
> - { PCI_VDEVICE(INTEL, 0x2827), board_ahci }, /* Lewisburg RAID*/
> + { PCI_VDEVICE(INTEL, 0x2823), board_ahci }, /* Wellsburg/Lewisburg AHCI*/
> + { PCI_VDEVICE(INTEL, 0x2826), board_ahci }, /* PBG/Lewisburg RAID*/
> + { PCI_VDEVICE(INTEL, 0x2827), board_ahci }, /* Wellsburg/Lewisburg RAID*/
> { PCI_VDEVICE(INTEL, 0xa182), board_ahci }, /* Lewisburg AHCI*/
> { PCI_VDEVICE(INTEL, 0xa186), board_ahci }, /* Lewisburg RAID*/
> { PCI_VDEVICE(INTEL, 0xa1d2), board_ahci }, /* Lewisburg RAID*/
>


--
Damien Le Moal
Western Digital Research