mirror of
https://github.com/hardkernel/linux.git
synced 2026-06-06 02:50:49 +09:00
p2sb: Factor out p2sb_read_from_cache()
[ Upstream commit 9244524d60ddea55f4df54c51200e8fef2032447 ] 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: Shin'ichiro Kawasaki <shinichiro.kawasaki@wdc.com> Reviewed-by: Hans de Goede <hdegoede@redhat.com> Link: https://lore.kernel.org/r/20241128002836.373745-2-shinichiro.kawasaki@wdc.com Reviewed-by: Ilpo Järvinen <ilpo.jarvinen@linux.intel.com> Signed-off-by: Ilpo Järvinen <ilpo.jarvinen@linux.intel.com> Stable-dep-of: 360c400d0f56 ("p2sb: Do not scan and remove the P2SB device when it is unhidden") Signed-off-by: Sasha Levin <sashal@kernel.org>
This commit is contained in:
committed by
Greg Kroah-Hartman
parent
1e41911ab2
commit
da3d454cd5
@@ -171,6 +171,22 @@ static int p2sb_cache_resources(void)
|
|||||||
return ret;
|
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
|
* p2sb_bar - Get Primary to Sideband (P2SB) bridge device BAR
|
||||||
* @bus: PCI bus to communicate with
|
* @bus: PCI bus to communicate with
|
||||||
@@ -187,8 +203,6 @@ static int p2sb_cache_resources(void)
|
|||||||
*/
|
*/
|
||||||
int p2sb_bar(struct pci_bus *bus, unsigned int devfn, struct resource *mem)
|
int p2sb_bar(struct pci_bus *bus, unsigned int devfn, struct resource *mem)
|
||||||
{
|
{
|
||||||
struct p2sb_res_cache *cache;
|
|
||||||
|
|
||||||
bus = p2sb_get_bus(bus);
|
bus = p2sb_get_bus(bus);
|
||||||
if (!bus)
|
if (!bus)
|
||||||
return -ENODEV;
|
return -ENODEV;
|
||||||
@@ -196,15 +210,7 @@ int p2sb_bar(struct pci_bus *bus, unsigned int devfn, struct resource *mem)
|
|||||||
if (!devfn)
|
if (!devfn)
|
||||||
p2sb_get_devfn(&devfn);
|
p2sb_get_devfn(&devfn);
|
||||||
|
|
||||||
cache = &p2sb_resources[PCI_FUNC(devfn)];
|
return p2sb_read_from_cache(bus, devfn, mem);
|
||||||
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;
|
|
||||||
}
|
}
|
||||||
EXPORT_SYMBOL_GPL(p2sb_bar);
|
EXPORT_SYMBOL_GPL(p2sb_bar);
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user