[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <5767b9100612191913p29675249v18803c65f536bda4@mail.gmail.com>
Date: Wed, 20 Dec 2006 11:13:02 +0800
From: "Conke Hu" <conke.hu@...il.com>
To: "Jeff Garzik" <jeff@...zik.org>, Alan <alan@...rguk.ukuu.org.uk>,
"Andrew Morton" <akpm@...l.org>
Cc: "Linux kernel mailing list" <linux-kernel@...r.kernel.org>
Subject: Re: [PATCH] Add pci class code for SATA
On 12/20/06, Jeff Garzik <jeff@...zik.org> wrote:
> Conke Hu wrote:
> > Add pci class code 0x0106 for SATA to pci_ids.h
> >
> > signed-off-by: conke.hu@...il.com
> > --------------------
> > --- linux-2.6.20-rc1/include/linux/pci_ids.h.orig 2006-12-20
> > 01:58:30.000000000 +0800
> > +++ linux-2.6.20-rc1/include/linux/pci_ids.h 2006-12-20
> > 01:59:07.000000000 +0800
> > @@ -15,6 +15,7 @@
> > #define PCI_CLASS_STORAGE_FLOPPY 0x0102
> > #define PCI_CLASS_STORAGE_IPI 0x0103
> > #define PCI_CLASS_STORAGE_RAID 0x0104
> > +#define PCI_CLASS_STORAGE_SATA 0x0106
> > #define PCI_CLASS_STORAGE_SAS 0x0107
> > #define PCI_CLASS_STORAGE_OTHER 0x0180
>
> Two comments:
>
> 1) I think "_SATA" is an inaccurate description. It should be _AHCI AFAICS.
>
> 2) Typically we don't add constants unless they are used somewhere...
>
> Jeff
>
Hi Jeff,
According to PCI spec 3.0, 0x0106 means SATA controller, 0x010601
means AHCI and 0x010600 means vendor specific SATA controller. Pls see
the following table (PCI spec 3.0 P296):
Base Class Sub-Class Interface Meaning
--------------------------------------------------------
00h 00h SCSI bus controller
------------------------------------------------
01h xxh IDE controller
-----------------------------------------------
02h 00h Floppy disk controller
-----------------------------------------------------
03h 00h IPI bus controller
--------------------------------------------------
04h 00h RAID controller
01h ------------------------------------------------
20h ATA controller with ADMA interface
05h ---------------------------------------------------
30h ATA controller with ADMA interface
-------------------------------------------------------------------
00h Serial ATA controller–vendor specific interface
06h -----------------------------------------------------------------
01h Serial ATA controller–AHCI 1.0 interface
-------------------------------------------------------------------------
07h 00h Serial Attached SCSI (SAS) controller
---------------------------------------------------------------------
80h 00h Other mass storage controller
------------------------------------------------------------------------------
So, I think, the following macro is correct:
#define PCI_CLASS_STORAGE_SATA 0x0106
If you would define AHCI class code, it should be 0x010601, not 0x0106:
#define PCI_CLASS_STORAGE_SATA_AHCI 0x010601
And, I think that PCI_CLASS_STORAGE_SATA had better be added to
pci_ids.h since the class code 0x0106 is used more than once. e.g.
ahci.c uses the magic number 0x0106 twice, and it might be used more
in future.
Best regards,
Conke
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@...r.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/
Powered by blists - more mailing lists