> Signed-off-by: Crane Cai <[email protected]>
> Acked-by: Jeff Garzik <[email protected]>
> Signed-off-by: Greg Kroah-Hartman <[email protected]>
Vomitted-upon-by: Alan Cox <[email protected]>
> - if ((pdev->class >> 8) == PCI_CLASS_STORAGE_IDE) {
> - u8 tmp;
> + /* set sb600/sb700/sb800 sata to ahci mode */
> + u8 tmp;
>
> + pci_read_config_byte(pdev, PCI_CLASS_DEVICE, &tmp);
> + if (tmp == 0x01) {
CLASS_DEVICE is cached in pdev->class so why not simply do:
if (pdev->class & (1 << 8))
On Fri, 22 Feb 2008 09:48:28 +0000
Alan Cox <[email protected]> wrote:
> > Signed-off-by: Crane Cai <[email protected]>
> > Acked-by: Jeff Garzik <[email protected]>
> > Signed-off-by: Greg Kroah-Hartman <[email protected]>
>
> Vomitted-upon-by: Alan Cox <[email protected]>
>
> > - if ((pdev->class >> 8) == PCI_CLASS_STORAGE_IDE) {
> > - u8 tmp;
> > + /* set sb600/sb700/sb800 sata to ahci mode */
> > + u8 tmp;
> >
> > + pci_read_config_byte(pdev, PCI_CLASS_DEVICE, &tmp);
> > + if (tmp == 0x01) {
>
> CLASS_DEVICE is cached in pdev->class so why not simply do:
>
> if (pdev->class & (1 << 8))
or better yet
((pdev->class & 0xFF00) == 0x0100)
;)
--
Gnome #3319
On 02/22/2008 11:02 AM, Alan Cox wrote:
> On Fri, 22 Feb 2008 09:48:28 +0000
> Alan Cox <[email protected]> wrote:
>
>>> Signed-off-by: Crane Cai <[email protected]>
>>> Acked-by: Jeff Garzik <[email protected]>
>>> Signed-off-by: Greg Kroah-Hartman <[email protected]>
>> Vomitted-upon-by: Alan Cox <[email protected]>
>>
>>> - if ((pdev->class >> 8) == PCI_CLASS_STORAGE_IDE) {
>>> - u8 tmp;
>>> + /* set sb600/sb700/sb800 sata to ahci mode */
>>> + u8 tmp;
>>>
>>> + pci_read_config_byte(pdev, PCI_CLASS_DEVICE, &tmp);
>>> + if (tmp == 0x01) {
>> CLASS_DEVICE is cached in pdev->class so why not simply do:
>>
>> if (pdev->class & (1 << 8))
>
> or better yet
>
> ((pdev->class & 0xFF00) == 0x0100)
Isn't it what was there before the change:
>>> - if ((pdev->class >> 8) == PCI_CLASS_STORAGE_IDE) {
>>> - u8 tmp;
and there was some reason to change it?
Alan Cox wrote:
>> Signed-off-by: Crane Cai <[email protected]>
>> Acked-by: Jeff Garzik <[email protected]>
>> Signed-off-by: Greg Kroah-Hartman <[email protected]>
>
> Vomitted-upon-by: Alan Cox <[email protected]>
>
>> - if ((pdev->class >> 8) == PCI_CLASS_STORAGE_IDE) {
>> - u8 tmp;
>> + /* set sb600/sb700/sb800 sata to ahci mode */
>> + u8 tmp;
>>
>> + pci_read_config_byte(pdev, PCI_CLASS_DEVICE, &tmp);
>> + if (tmp == 0x01) {
>
> CLASS_DEVICE is cached in pdev->class so why not simply do:
>
> if (pdev->class & (1 << 8))
I agree. I [obviously] missed this when I ack'd, mainly ack'ing the
overall change.
BIOS certainly may modify that PCI config register, but that's before
the kernel boots. So, using pdev->class is fine.
Jeff
在 2008-02-26Tue的 06:53 +0800,Jeff Garzik写道:
> Alan Cox wrote:
> >> Signed-off-by: Crane Cai <[email protected]>
> >> Acked-by: Jeff Garzik <[email protected]>
> >> Signed-off-by: Greg Kroah-Hartman <[email protected]>
> >
> > Vomitted-upon-by: Alan Cox <[email protected]>
> >
> >> - if ((pdev->class >> 8) == PCI_CLASS_STORAGE_IDE) {
> >> - u8 tmp;
> >> + /* set sb600/sb700/sb800 sata to ahci mode */
> >> + u8 tmp;
> >>
> >> + pci_read_config_byte(pdev, PCI_CLASS_DEVICE, &tmp);
> >> + if (tmp == 0x01) {
> >
> > CLASS_DEVICE is cached in pdev->class so why not simply do:
> >
> > if (pdev->class & (1 << 8))
>
> I agree. I [obviously] missed this when I ack'd, mainly ack'ing the
> overall change.
>
> BIOS certainly may modify that PCI config register, but that's before
> the kernel boots. So, using pdev->class is fine.
>
> Jeff
pdev->class is also quirked when resume. We need to reread PCI
configuation on resume.
> I agree. I [obviously] missed this when I ack'd, mainly ack'ing the
> overall change.
>
> BIOS certainly may modify that PCI config register, but that's before
> the kernel boots. So, using pdev->class is fine.
I don't think the resume quirk is needed either as the core PCI
save/restore code rewrites the PCI registers so should be rewriting the
class back on resume as well.