[PATCH 1/7] pci: export PCI BAR size-reading functions
Christian König
ckoenig.leichtzumerken at gmail.com
Fri Dec 11 09:07:48 UTC 2020
Am 11.12.20 um 01:55 schrieb Darren Salt:
> This is to assist driver modules which do BAR resizing.
>
> Signed-off-by: Darren Salt <devspam at moreofthesa.me.uk>
> ---
> drivers/pci/pci.c | 2 ++
> drivers/pci/pci.h | 2 --
> include/linux/pci.h | 4 ++++
> 3 files changed, 6 insertions(+), 2 deletions(-)
>
> diff --git a/drivers/pci/pci.c b/drivers/pci/pci.c
> index e578d34095e9..3f6042d9ad83 100644
> --- a/drivers/pci/pci.c
> +++ b/drivers/pci/pci.c
> @@ -3579,6 +3579,7 @@ u32 pci_rebar_get_possible_sizes(struct pci_dev *pdev, int bar)
> pci_read_config_dword(pdev, pos + PCI_REBAR_CAP, &cap);
> return (cap & PCI_REBAR_CAP_SIZES) >> 4;
> }
> +EXPORT_SYMBOL(pci_rebar_get_possible_sizes);
>
> /**
> * pci_rebar_get_current_size - get the current size of a BAR
> @@ -3600,6 +3601,7 @@ int pci_rebar_get_current_size(struct pci_dev *pdev, int bar)
> pci_read_config_dword(pdev, pos + PCI_REBAR_CTRL, &ctrl);
> return (ctrl & PCI_REBAR_CTRL_BAR_SIZE) >> PCI_REBAR_CTRL_BAR_SHIFT;
> }
> +EXPORT_SYMBOL(pci_rebar_get_current_size);
This is unnecessary. You can just look at the resource size instead
which is also more defensive regarding problems/errors.
Christian.
>
> /**
> * pci_rebar_set_size - set a new size for a BAR
> diff --git a/drivers/pci/pci.h b/drivers/pci/pci.h
> index f86cae9aa1f4..8373d94414e9 100644
> --- a/drivers/pci/pci.h
> +++ b/drivers/pci/pci.h
> @@ -608,8 +608,6 @@ int acpi_get_rc_resources(struct device *dev, const char *hid, u16 segment,
> struct resource *res);
> #endif
>
> -u32 pci_rebar_get_possible_sizes(struct pci_dev *pdev, int bar);
> -int pci_rebar_get_current_size(struct pci_dev *pdev, int bar);
> int pci_rebar_set_size(struct pci_dev *pdev, int bar, int size);
> static inline u64 pci_rebar_size_to_bytes(int size)
> {
> diff --git a/include/linux/pci.h b/include/linux/pci.h
> index 22207a79762c..5aa035622741 100644
> --- a/include/linux/pci.h
> +++ b/include/linux/pci.h
> @@ -1226,7 +1226,11 @@ void pci_update_resource(struct pci_dev *dev, int resno);
> int __must_check pci_assign_resource(struct pci_dev *dev, int i);
> int __must_check pci_reassign_resource(struct pci_dev *dev, int i, resource_size_t add_size, resource_size_t align);
> void pci_release_resource(struct pci_dev *dev, int resno);
> +
> +u32 pci_rebar_get_possible_sizes(struct pci_dev *pdev, int bar);
> +int pci_rebar_get_current_size(struct pci_dev *pdev, int bar);
> int __must_check pci_resize_resource(struct pci_dev *dev, int i, int size);
> +
> int pci_select_bars(struct pci_dev *dev, unsigned long flags);
> bool pci_device_is_present(struct pci_dev *pdev);
> void pci_ignore_hotplug(struct pci_dev *dev);
More information about the amd-gfx
mailing list