mirror of
https://review.coreboot.org/flashrom.git
synced 2025-07-02 22:43:17 +02:00
pcidev: Move scandev_inclass logic from internal to pcidev
BUG=b:220950271 TEST=```sudo ./flashrom -p internal -r /tmp/bios <snip> Found Programmer flash chip "Opaque flash chip" (16384 kB, Programmer-specific) mapped at physical address 0x0000000000000000. Reading flash... done. ``` Change-Id: I1978e178fb73485f1c5c7e732853522847267cee Signed-off-by: Edward O'Callaghan <quasisec@google.com> Reviewed-on: https://review.coreboot.org/c/flashrom/+/59277 Tested-by: build bot (Jenkins) <no-reply@coreboot.org> Reviewed-by: Anastasia Klimchuk <aklm@chromium.org>
This commit is contained in:

committed by
Edward O'Callaghan

parent
bc2e3b6b79
commit
6289508c5b
19
pcidev.c
19
pcidev.c
@ -170,6 +170,25 @@ struct pci_dev *pcidev_getdevfn(struct pci_dev *dev, const int func)
|
||||
#endif
|
||||
}
|
||||
|
||||
struct pci_dev *pcidev_find_vendorclass(uint16_t vendor, uint16_t devclass)
|
||||
{
|
||||
struct pci_dev *temp = NULL;
|
||||
struct pci_filter filter;
|
||||
uint16_t tmp2;
|
||||
|
||||
pci_filter_init(NULL, &filter);
|
||||
filter.vendor = vendor;
|
||||
|
||||
while ((temp = pcidev_scandev(&filter, temp))) {
|
||||
/* Read PCI class */
|
||||
tmp2 = pci_read_word(temp, PCI_CLASS_DEVICE);
|
||||
if (tmp2 == devclass)
|
||||
return temp;
|
||||
}
|
||||
|
||||
return NULL;
|
||||
}
|
||||
|
||||
static int pcidev_shutdown(void *data)
|
||||
{
|
||||
if (pacc == NULL) {
|
||||
|
Reference in New Issue
Block a user