here is what I i got it work with:
--------
static int ali_close_multi_channels(void)
{
        char temp = 0;
        struct pci_dev *pci_dev = NULL;
        pci_dev 
=pci_find_device(PCI_VENDOR_ID_AL,PCI_DEVICE_ID_AL_M1533,
                pci_dev);
        if (pci_dev == NULL)
                return -1;
-       temp = 0x80;
+       pci_read_config_byte(pci_dev, 0x59, &temp);
+      temp &= ~0x80;
-       pci_write_config_byte(pci_dev, 0x59, ~temp);
+       pci_write_config_byte(pci_dev, 0x59, temp);
        pci_dev = pci_find_device(PCI_VENDOR_ID_AL,
                PCI_DEVICE_ID_AL_M7101, pci_dev);
        if (pci_dev == NULL)
                return -1;
-       temp = 0x20;
+       pci_read_config_byte(pci_dev, 0xB8, &temp);
+       temp &= ~0x20
-       pci_write_config_byte(pci_dev, 0xB8, ~temp);  // the line I 
+       pci_write_config_byte(pci_dev, 0xB8, temp);  //commented out
        return 0;
}
---------------------
almost as I posted before, just passing pointers to the read method.
It works, but the question as to what is this supposed to affect 
remains...
should similar changes be made elsewhere in this driver? I better not 
change blindly what I do not quite understand...
Fedor
-
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/