Skip to content

Commit

Permalink
p2sb: Introduce the global flag p2sb_hidden_by_bios
Browse files Browse the repository at this point in the history
To prepare for the following fix, introduce the global flag
p2sb_hidden_by_bios. Check if the BIOS hides the P2SB device and store
the result in the flag. This allows to refer to the check result across
functions.

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-3-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>
  • Loading branch information
kawasaki authored and ij-intel committed Dec 10, 2024
1 parent 9244524 commit ae3e6eb
Showing 1 changed file with 4 additions and 2 deletions.
6 changes: 4 additions & 2 deletions drivers/platform/x86/p2sb.c
Original file line number Diff line number Diff line change
Expand Up @@ -43,6 +43,7 @@ struct p2sb_res_cache {
};

static struct p2sb_res_cache p2sb_resources[NR_P2SB_RES_CACHE];
static bool p2sb_hidden_by_bios;

static void p2sb_get_devfn(unsigned int *devfn)
{
Expand Down Expand Up @@ -158,13 +159,14 @@ static int p2sb_cache_resources(void)
* Unhide the P2SB device here, if needed.
*/
pci_bus_read_config_dword(bus, devfn_p2sb, P2SBC, &value);
if (value & P2SBC_HIDE)
p2sb_hidden_by_bios = value & P2SBC_HIDE;
if (p2sb_hidden_by_bios)
pci_bus_write_config_dword(bus, devfn_p2sb, P2SBC, 0);

ret = p2sb_scan_and_cache(bus, devfn_p2sb);

/* Hide the P2SB device, if it was hidden */
if (value & P2SBC_HIDE)
if (p2sb_hidden_by_bios)
pci_bus_write_config_dword(bus, devfn_p2sb, P2SBC, P2SBC_HIDE);

pci_unlock_rescan_remove();
Expand Down

0 comments on commit ae3e6eb

Please sign in to comment.