Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit a06f2109 authored by Hauke Mehrtens's avatar Hauke Mehrtens Committed by John W. Linville
Browse files

brcmsmac: read PCI vendor and device id only for PCI devices



If brcmsmac is used on non PCI(s) devices it should not try to access
bus->host_pci.

Signed-off-by: default avatarHauke Mehrtens <hauke@hauke-m.de>
Tested-by: default avatarArend van Spriel <arend@broadcom.com>
Signed-off-by: default avatarJohn W. Linville <linville@tuxdriver.com>
parent 00bcda40
Loading
Loading
Loading
Loading
+17 −6
Original line number Diff line number Diff line
@@ -4434,9 +4434,14 @@ static int brcms_b_attach(struct brcms_c_info *wlc, struct bcma_device *core,
	struct pci_dev *pcidev = core->bus->host_pci;
	struct ssb_sprom *sprom = &core->bus->sprom;

	if (core->bus->hosttype == BCMA_HOSTTYPE_PCI)
		BCMMSG(wlc->wiphy, "wl%d: vendor 0x%x device 0x%x\n", unit,
		       pcidev->vendor,
		       pcidev->device);
	else
		BCMMSG(wlc->wiphy, "wl%d: vendor 0x%x device 0x%x\n", unit,
		       core->bus->boardinfo.vendor,
		       core->bus->boardinfo.type);

	wme = true;

@@ -4462,7 +4467,8 @@ static int brcms_b_attach(struct brcms_c_info *wlc, struct bcma_device *core,
	}

	/* verify again the device is supported */
	if (!brcms_c_chipmatch(pcidev->vendor, pcidev->device)) {
	if (core->bus->hosttype == BCMA_HOSTTYPE_PCI &&
	    !brcms_c_chipmatch(pcidev->vendor, pcidev->device)) {
		wiphy_err(wiphy, "wl%d: brcms_b_attach: Unsupported "
			"vendor/device (0x%x/0x%x)\n",
			 unit, pcidev->vendor, pcidev->device);
@@ -4470,8 +4476,13 @@ static int brcms_b_attach(struct brcms_c_info *wlc, struct bcma_device *core,
		goto fail;
	}

	if (core->bus->hosttype == BCMA_HOSTTYPE_PCI) {
		wlc_hw->vendorid = pcidev->vendor;
		wlc_hw->deviceid = pcidev->device;
	} else {
		wlc_hw->vendorid = core->bus->boardinfo.vendor;
		wlc_hw->deviceid = core->bus->boardinfo.type;
	}

	wlc_hw->d11core = core;
	wlc_hw->corerev = core->id.rev;