Unverified Commit 9244524d authored by Shin'ichiro Kawasaki's avatar Shin'ichiro Kawasaki Committed by Ilpo Järvinen
Browse files

p2sb: Factor out p2sb_read_from_cache()



To prepare for the following fix, factor out the code to read the P2SB
resource from the cache to the new function p2sb_read_from_cache().

Signed-off-by: default avatarShin'ichiro Kawasaki <shinichiro.kawasaki@wdc.com>
Reviewed-by: default avatarHans de Goede <hdegoede@redhat.com>
Link: https://lore.kernel.org/r/20241128002836.373745-2-shinichiro.kawasaki@wdc.com


Reviewed-by: default avatarIlpo Järvinen <ilpo.jarvinen@linux.intel.com>
Signed-off-by: default avatarIlpo Järvinen <ilpo.jarvinen@linux.intel.com>
parent 54a8cada
Loading
Loading
Loading
Loading
+17 −11
Original line number Diff line number Diff line
@@ -172,6 +172,22 @@ static int p2sb_cache_resources(void)
	return ret;
}

static int p2sb_read_from_cache(struct pci_bus *bus, unsigned int devfn,
				struct resource *mem)
{
	struct p2sb_res_cache *cache = &p2sb_resources[PCI_FUNC(devfn)];

	if (cache->bus_dev_id != bus->dev.id)
		return -ENODEV;

	if (!p2sb_valid_resource(&cache->res))
		return -ENOENT;

	memcpy(mem, &cache->res, sizeof(*mem));

	return 0;
}

/**
 * p2sb_bar - Get Primary to Sideband (P2SB) bridge device BAR
 * @bus: PCI bus to communicate with
@@ -188,8 +204,6 @@ static int p2sb_cache_resources(void)
 */
int p2sb_bar(struct pci_bus *bus, unsigned int devfn, struct resource *mem)
{
	struct p2sb_res_cache *cache;

	bus = p2sb_get_bus(bus);
	if (!bus)
		return -ENODEV;
@@ -197,15 +211,7 @@ int p2sb_bar(struct pci_bus *bus, unsigned int devfn, struct resource *mem)
	if (!devfn)
		p2sb_get_devfn(&devfn);

	cache = &p2sb_resources[PCI_FUNC(devfn)];
	if (cache->bus_dev_id != bus->dev.id)
		return -ENODEV;

	if (!p2sb_valid_resource(&cache->res))
		return -ENOENT;

	memcpy(mem, &cache->res, sizeof(*mem));
	return 0;
	return p2sb_read_from_cache(bus, devfn, mem);
}
EXPORT_SYMBOL_GPL(p2sb_bar);