lkml.org 
[lkml]   [2006]   [Dec]   [19]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
/
Date
From
SubjectRe: [PATCH] Add pci class code for SATA
On 12/20/06, Jeff Garzik <jeff@garzik.org> wrote:
> Conke Hu wrote:
> > Add pci class code 0x0106 for SATA to pci_ids.h
> >
> > signed-off-by: conke.hu@gmail.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@vger.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/

\
 
 \ /
  Last update: 2006-12-20 04:15    [W:0.059 / U:0.924 seconds]
©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site