[PATCH 1/4] PCI: add resizeable BAR infrastructure v3
kbuild test robot
lkp at intel.com
Tue Mar 14 13:09:31 UTC 2017
Hi Christian,
[auto build test WARNING on pci/next]
[also build test WARNING on v4.11-rc2 next-20170310]
[if your patch is applied to the wrong git tree, please drop us a note to help improve the system]
url: https://github.com/0day-ci/linux/commits/Christian-K-nig/PCI-add-resizeable-BAR-infrastructure-v3/20170314-163334
base: https://git.kernel.org/pub/scm/linux/kernel/git/helgaas/pci.git next
reproduce: make htmldocs
All warnings (new ones prefixed by >>):
lib/crc32.c:148: warning: No description found for parameter 'tab)[256]'
lib/crc32.c:148: warning: Excess function parameter 'tab' description in 'crc32_le_generic'
lib/crc32.c:293: warning: No description found for parameter 'tab)[256]'
lib/crc32.c:293: warning: Excess function parameter 'tab' description in 'crc32_be_generic'
lib/crc32.c:1: warning: no structured comments found
>> drivers/pci/pci.c:2951: warning: No description found for parameter 'pdev'
>> drivers/pci/pci.c:2951: warning: Excess function parameter 'dev' description in 'pci_rbar_get_possible_sizes'
drivers/pci/pci.c:2989: warning: No description found for parameter 'pdev'
>> drivers/pci/pci.c:2989: warning: Excess function parameter 'dev' description in 'pci_rbar_get_current_size'
drivers/pci/pci.c:3027: warning: No description found for parameter 'pdev'
>> drivers/pci/pci.c:3027: warning: Excess function parameter 'dev' description in 'pci_rbar_set_size'
vim +/pdev +2951 drivers/pci/pci.c
2945 * @bar: BAR to query
2946 *
2947 * Get the possible sizes of a resizeable BAR as bitmask defined in the spec
2948 * (bit 0=1MB, bit 19=512GB). Returns 0 if BAR isn't resizeable.
2949 */
2950 u32 pci_rbar_get_possible_sizes(struct pci_dev *pdev, int bar)
> 2951 {
2952 unsigned pos, nbars;
2953 u32 ctrl, cap;
2954 unsigned i;
2955
2956 pos = pci_find_ext_capability(pdev, PCI_EXT_CAP_ID_REBAR);
2957 if (!pos)
2958 return 0;
2959
2960 pci_read_config_dword(pdev, pos + PCI_REBAR_CTRL, &ctrl);
2961 nbars = (ctrl & PCI_REBAR_CTRL_NBAR_MASK) >> PCI_REBAR_CTRL_NBAR_SHIFT;
2962
2963 for (i = 0; i < nbars; ++i, pos += 8) {
2964 int bar_idx;
2965
2966 pci_read_config_dword(pdev, pos + PCI_REBAR_CTRL, &ctrl);
2967 bar_idx = (ctrl & PCI_REBAR_CTRL_BAR_IDX_MASK) >>
2968 PCI_REBAR_CTRL_BAR_IDX_SHIFT;
2969 if (bar_idx != bar)
2970 continue;
2971
2972 pci_read_config_dword(pdev, pos + PCI_REBAR_CAP, &cap);
2973 return (cap & PCI_REBAR_CTRL_SIZES_MASK) >>
2974 PCI_REBAR_CTRL_SIZES_SHIFT;
2975 }
2976
2977 return 0;
2978 }
2979
2980 /**
2981 * pci_rbar_get_current_size - get the current size of a BAR
2982 * @dev: PCI device
2983 * @bar: BAR to set size to
2984 *
2985 * Read the size of a BAR from the resizeable BAR config.
2986 * Returns size if found or negativ error code.
2987 */
2988 int pci_rbar_get_current_size(struct pci_dev *pdev, int bar)
> 2989 {
2990 unsigned pos, nbars;
2991 u32 ctrl;
2992 unsigned i;
2993
2994 pos = pci_find_ext_capability(pdev, PCI_EXT_CAP_ID_REBAR);
2995 if (!pos)
2996 return -ENOTSUPP;
2997
2998 pci_read_config_dword(pdev, pos + PCI_REBAR_CTRL, &ctrl);
2999 nbars = (ctrl & PCI_REBAR_CTRL_NBAR_MASK) >> PCI_REBAR_CTRL_NBAR_SHIFT;
3000
3001 for (i = 0; i < nbars; ++i, pos += 8) {
3002 int bar_idx;
3003
3004 pci_read_config_dword(pdev, pos + PCI_REBAR_CTRL, &ctrl);
3005 bar_idx = (ctrl & PCI_REBAR_CTRL_BAR_IDX_MASK) >>
3006 PCI_REBAR_CTRL_BAR_IDX_SHIFT;
3007 if (bar_idx != bar)
3008 continue;
3009
3010 return (ctrl & PCI_REBAR_CTRL_BAR_SIZE_MASK) >>
3011 PCI_REBAR_CTRL_BAR_SIZE_SHIFT;
3012 }
3013
3014 return -ENOENT;
3015 }
3016
3017 /**
3018 * pci_rbar_set_size - set a new size for a BAR
3019 * @dev: PCI device
3020 * @bar: BAR to set size to
3021 * @size: new size as defined in the spec (log2(size in bytes) - 20)
3022 *
3023 * Set the new size of a BAR as defined in the spec (0=1MB, 19=512GB).
3024 * Returns true if resizing was successful, false otherwise.
3025 */
3026 int pci_rbar_set_size(struct pci_dev *pdev, int bar, int size)
> 3027 {
3028 unsigned pos, nbars;
3029 u32 ctrl;
3030 unsigned i;
---
0-DAY kernel test infrastructure Open Source Technology Center
https://lists.01.org/pipermail/kbuild-all Intel Corporation
-------------- next part --------------
A non-text attachment was scrubbed...
Name: .config.gz
Type: application/gzip
Size: 6576 bytes
Desc: not available
URL: <https://lists.freedesktop.org/archives/amd-gfx/attachments/20170314/8bc9c44e/attachment.gz>
More information about the amd-gfx
mailing list