|
Prev: [PATCH 6/9] viafb: VIA Frame Buffer Device Driver
Next: [PATCH 2/9] viafb: VIA Frame Buffer Device Driver
From: Alan Cox on 7 May 2008 11:40 > + /* Indentify GFX Chip Name */ > + pdev = > + (struct pci_dev *)pci_get_device(PCI_VIA_VENDOR_ID, > + UNICHROME_CLE266_DID, NULL); > + if (pdev != NULL) > + chip_info.gfx_chip_name = UNICHROME_CLE266; > + > + pdev = > + (struct pci_dev *)pci_get_device(PCI_VIA_VENDOR_ID, > + UNICHROME_K400_DID, NULL); pci_get_device takes a reference so you need to do a pci_dev_put() on the result if you have finished with it. Alternatively you could make use of pci_dev_present() > + case UNICHROME_CLE266: > + pdev = > + (struct pci_dev *)pci_get_device(PCI_VIA_VENDOR_ID, > + UNICHROME_CLE266_DID, Similar issue here. > +void get_fb_info(unsigned int *fb_base, unsigned int *fb_len) > +{ > + struct pci_dev *pdev = NULL; > + > + switch (chip_info.gfx_chip_name) { > + case UNICHROME_CLE266: > + pdev = > + (struct pci_dev *)pci_get_device(PCI_VIA_VENDOR_ID, > + UNICHROME_CLE266_DID, > + NULL); And here So it might be better to for example use an array of types and keep the array reference in the probe function pci_device_id field (which is how a lot of stuff like libata drivers avoid doing messy lookups) -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo(a)vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/ |