[tip:x86/urgent 6/9] arch/x86/kernel/early-quirks.c:518:67: warning: missing braces around initializer

From: kbuild test robot
Date: Tue Jul 16 2019 - 18:31:28 EST


tree: https://kernel.googlesource.com/pub/scm/linux/kernel/git/tip/tip.git x86/urgent
head: 907cb11da7a725445dccc6c2ca2d428739f6cd71
commit: 080ac61bad4a3307880bb982cec48b225912b362 [6/9] x86/gpu: Add TGL stolen memory support
config: i386-defconfig (attached as .config)
compiler: gcc-7 (Debian 7.4.0-6) 7.4.0
reproduce:
git checkout 080ac61bad4a3307880bb982cec48b225912b362
# save the attached .config to linux build tree
make ARCH=i386

If you fix the issue, kindly add following tag
Reported-by: kbuild test robot <lkp@xxxxxxxxx>

All warnings (new ones prefixed by >>):

arch/x86/kernel/early-quirks.c:552:2: error: implicit declaration of function 'INTEL_TGL_12_IDS'; did you mean 'INTEL_ICL_11_IDS'? [-Werror=implicit-function-declaration]
INTEL_TGL_12_IDS(&gen11_early_ops),
^~~~~~~~~~~~~~~~
INTEL_ICL_11_IDS
arch/x86/kernel/early-quirks.c:552:2: error: initializer element is not constant
arch/x86/kernel/early-quirks.c:552:2: note: (near initialization for 'intel_early_ids[261].vendor')
>> arch/x86/kernel/early-quirks.c:518:67: warning: missing braces around initializer [-Wmissing-braces]
static const struct pci_device_id intel_early_ids[] __initconst = {
^
arch/x86/kernel/early-quirks.c:552:2:
INTEL_TGL_12_IDS(&gen11_early_ops),
{
};
}
cc1: some warnings being treated as errors

vim +518 arch/x86/kernel/early-quirks.c

db0c8d8b031d2b5 arch/x86/kernel/early-quirks.c Paulo Zanoni 2018-05-04 517
ee0629cfd3c16c7 arch/x86/kernel/early-quirks.c Joonas Lahtinen 2016-04-22 @518 static const struct pci_device_id intel_early_ids[] __initconst = {
ee0629cfd3c16c7 arch/x86/kernel/early-quirks.c Joonas Lahtinen 2016-04-22 519 INTEL_I830_IDS(&i830_early_ops),
ee0629cfd3c16c7 arch/x86/kernel/early-quirks.c Joonas Lahtinen 2016-04-22 520 INTEL_I845G_IDS(&i845_early_ops),
ee0629cfd3c16c7 arch/x86/kernel/early-quirks.c Joonas Lahtinen 2016-04-22 521 INTEL_I85X_IDS(&i85x_early_ops),
ee0629cfd3c16c7 arch/x86/kernel/early-quirks.c Joonas Lahtinen 2016-04-22 522 INTEL_I865G_IDS(&i865_early_ops),
ee0629cfd3c16c7 arch/x86/kernel/early-quirks.c Joonas Lahtinen 2016-04-22 523 INTEL_I915G_IDS(&gen3_early_ops),
ee0629cfd3c16c7 arch/x86/kernel/early-quirks.c Joonas Lahtinen 2016-04-22 524 INTEL_I915GM_IDS(&gen3_early_ops),
ee0629cfd3c16c7 arch/x86/kernel/early-quirks.c Joonas Lahtinen 2016-04-22 525 INTEL_I945G_IDS(&gen3_early_ops),
ee0629cfd3c16c7 arch/x86/kernel/early-quirks.c Joonas Lahtinen 2016-04-22 526 INTEL_I945GM_IDS(&gen3_early_ops),
8d9c20e1d1e3833 arch/x86/kernel/early-quirks.c Carlos Santa 2016-08-17 527 INTEL_VLV_IDS(&gen6_early_ops),
86d35d4e7625f7c arch/x86/kernel/early-quirks.c Tvrtko Ursulin 2019-03-26 528 INTEL_PINEVIEW_G_IDS(&gen3_early_ops),
86d35d4e7625f7c arch/x86/kernel/early-quirks.c Tvrtko Ursulin 2019-03-26 529 INTEL_PINEVIEW_M_IDS(&gen3_early_ops),
ee0629cfd3c16c7 arch/x86/kernel/early-quirks.c Joonas Lahtinen 2016-04-22 530 INTEL_I965G_IDS(&gen3_early_ops),
ee0629cfd3c16c7 arch/x86/kernel/early-quirks.c Joonas Lahtinen 2016-04-22 531 INTEL_G33_IDS(&gen3_early_ops),
ee0629cfd3c16c7 arch/x86/kernel/early-quirks.c Joonas Lahtinen 2016-04-22 532 INTEL_I965GM_IDS(&gen3_early_ops),
ee0629cfd3c16c7 arch/x86/kernel/early-quirks.c Joonas Lahtinen 2016-04-22 533 INTEL_GM45_IDS(&gen3_early_ops),
ee0629cfd3c16c7 arch/x86/kernel/early-quirks.c Joonas Lahtinen 2016-04-22 534 INTEL_G45_IDS(&gen3_early_ops),
ee0629cfd3c16c7 arch/x86/kernel/early-quirks.c Joonas Lahtinen 2016-04-22 535 INTEL_IRONLAKE_D_IDS(&gen3_early_ops),
ee0629cfd3c16c7 arch/x86/kernel/early-quirks.c Joonas Lahtinen 2016-04-22 536 INTEL_IRONLAKE_M_IDS(&gen3_early_ops),
ee0629cfd3c16c7 arch/x86/kernel/early-quirks.c Joonas Lahtinen 2016-04-22 537 INTEL_SNB_D_IDS(&gen6_early_ops),
ee0629cfd3c16c7 arch/x86/kernel/early-quirks.c Joonas Lahtinen 2016-04-22 538 INTEL_SNB_M_IDS(&gen6_early_ops),
ee0629cfd3c16c7 arch/x86/kernel/early-quirks.c Joonas Lahtinen 2016-04-22 539 INTEL_IVB_M_IDS(&gen6_early_ops),
ee0629cfd3c16c7 arch/x86/kernel/early-quirks.c Joonas Lahtinen 2016-04-22 540 INTEL_IVB_D_IDS(&gen6_early_ops),
8d9c20e1d1e3833 arch/x86/kernel/early-quirks.c Carlos Santa 2016-08-17 541 INTEL_HSW_IDS(&gen6_early_ops),
8d9c20e1d1e3833 arch/x86/kernel/early-quirks.c Carlos Santa 2016-08-17 542 INTEL_BDW_IDS(&gen8_early_ops),
ee0629cfd3c16c7 arch/x86/kernel/early-quirks.c Joonas Lahtinen 2016-04-22 543 INTEL_CHV_IDS(&chv_early_ops),
ee0629cfd3c16c7 arch/x86/kernel/early-quirks.c Joonas Lahtinen 2016-04-22 544 INTEL_SKL_IDS(&gen9_early_ops),
ee0629cfd3c16c7 arch/x86/kernel/early-quirks.c Joonas Lahtinen 2016-04-22 545 INTEL_BXT_IDS(&gen9_early_ops),
ee0629cfd3c16c7 arch/x86/kernel/early-quirks.c Joonas Lahtinen 2016-04-22 546 INTEL_KBL_IDS(&gen9_early_ops),
33aa69ed8aacd92 arch/x86/kernel/early-quirks.c Lucas De Marchi 2017-12-13 547 INTEL_CFL_IDS(&gen9_early_ops),
bc384c77e3bb3df arch/x86/kernel/early-quirks.c Paulo Zanoni 2017-01-24 548 INTEL_GLK_IDS(&gen9_early_ops),
2e1e9d48939edad arch/x86/kernel/early-quirks.c Paulo Zanoni 2017-07-05 549 INTEL_CNL_IDS(&gen9_early_ops),
db0c8d8b031d2b5 arch/x86/kernel/early-quirks.c Paulo Zanoni 2018-05-04 550 INTEL_ICL_11_IDS(&gen11_early_ops),
d53fef0be4a5f2f arch/x86/kernel/early-quirks.c Rodrigo Vivi 2019-03-15 551 INTEL_EHL_IDS(&gen11_early_ops),
080ac61bad4a330 arch/x86/kernel/early-quirks.c Michel Thierry 2019-07-12 @552 INTEL_TGL_12_IDS(&gen11_early_ops),
814c5f1f52a4beb arch/x86/kernel/early-quirks.c Jesse Barnes 2013-07-26 553 };
814c5f1f52a4beb arch/x86/kernel/early-quirks.c Jesse Barnes 2013-07-26 554
55f56fc46020ea5 arch/x86/kernel/early-quirks.c Matthew Auld 2017-12-11 555 struct resource intel_graphics_stolen_res __ro_after_init = DEFINE_RES_MEM(0, 0);
55f56fc46020ea5 arch/x86/kernel/early-quirks.c Matthew Auld 2017-12-11 556 EXPORT_SYMBOL(intel_graphics_stolen_res);
55f56fc46020ea5 arch/x86/kernel/early-quirks.c Matthew Auld 2017-12-11 557
ee0629cfd3c16c7 arch/x86/kernel/early-quirks.c Joonas Lahtinen 2016-04-22 558 static void __init
ee0629cfd3c16c7 arch/x86/kernel/early-quirks.c Joonas Lahtinen 2016-04-22 559 intel_graphics_stolen(int num, int slot, int func,
ee0629cfd3c16c7 arch/x86/kernel/early-quirks.c Joonas Lahtinen 2016-04-22 560 const struct intel_early_ops *early_ops)
814c5f1f52a4beb arch/x86/kernel/early-quirks.c Jesse Barnes 2013-07-26 561 {
6f9fa996c9bf3d8 arch/x86/kernel/early-quirks.c Joonas Lahtinen 2017-12-11 562 resource_size_t base, size;
6f9fa996c9bf3d8 arch/x86/kernel/early-quirks.c Joonas Lahtinen 2017-12-11 563 resource_size_t end;
814c5f1f52a4beb arch/x86/kernel/early-quirks.c Jesse Barnes 2013-07-26 564
ee0629cfd3c16c7 arch/x86/kernel/early-quirks.c Joonas Lahtinen 2016-04-22 565 size = early_ops->stolen_size(num, slot, func);
ee0629cfd3c16c7 arch/x86/kernel/early-quirks.c Joonas Lahtinen 2016-04-22 566 base = early_ops->stolen_base(num, slot, func, size);
ee0629cfd3c16c7 arch/x86/kernel/early-quirks.c Joonas Lahtinen 2016-04-22 567
ee0629cfd3c16c7 arch/x86/kernel/early-quirks.c Joonas Lahtinen 2016-04-22 568 if (!size || !base)
ee0629cfd3c16c7 arch/x86/kernel/early-quirks.c Joonas Lahtinen 2016-04-22 569 return;
ee0629cfd3c16c7 arch/x86/kernel/early-quirks.c Joonas Lahtinen 2016-04-22 570
01e5d3b42e2047d arch/x86/kernel/early-quirks.c Chris Wilson 2016-05-09 571 end = base + size - 1;
55f56fc46020ea5 arch/x86/kernel/early-quirks.c Matthew Auld 2017-12-11 572
55f56fc46020ea5 arch/x86/kernel/early-quirks.c Matthew Auld 2017-12-11 573 intel_graphics_stolen_res.start = base;
55f56fc46020ea5 arch/x86/kernel/early-quirks.c Matthew Auld 2017-12-11 574 intel_graphics_stolen_res.end = end;
55f56fc46020ea5 arch/x86/kernel/early-quirks.c Matthew Auld 2017-12-11 575
55f56fc46020ea5 arch/x86/kernel/early-quirks.c Matthew Auld 2017-12-11 576 printk(KERN_INFO "Reserving Intel graphics memory at %pR\n",
55f56fc46020ea5 arch/x86/kernel/early-quirks.c Matthew Auld 2017-12-11 577 &intel_graphics_stolen_res);
ee0629cfd3c16c7 arch/x86/kernel/early-quirks.c Joonas Lahtinen 2016-04-22 578
814c5f1f52a4beb arch/x86/kernel/early-quirks.c Jesse Barnes 2013-07-26 579 /* Mark this space as reserved */
09821ff1d50a1ec arch/x86/kernel/early-quirks.c Ingo Molnar 2017-01-28 580 e820__range_add(base, size, E820_TYPE_RESERVED);
f9748fa04585104 arch/x86/kernel/early-quirks.c Ingo Molnar 2017-01-28 581 e820__update_table(e820_table);
814c5f1f52a4beb arch/x86/kernel/early-quirks.c Jesse Barnes 2013-07-26 582 }
ee0629cfd3c16c7 arch/x86/kernel/early-quirks.c Joonas Lahtinen 2016-04-22 583
ee0629cfd3c16c7 arch/x86/kernel/early-quirks.c Joonas Lahtinen 2016-04-22 584 static void __init intel_graphics_quirks(int num, int slot, int func)
ee0629cfd3c16c7 arch/x86/kernel/early-quirks.c Joonas Lahtinen 2016-04-22 585 {
ee0629cfd3c16c7 arch/x86/kernel/early-quirks.c Joonas Lahtinen 2016-04-22 586 const struct intel_early_ops *early_ops;
ee0629cfd3c16c7 arch/x86/kernel/early-quirks.c Joonas Lahtinen 2016-04-22 587 u16 device;
ee0629cfd3c16c7 arch/x86/kernel/early-quirks.c Joonas Lahtinen 2016-04-22 588 int i;
ee0629cfd3c16c7 arch/x86/kernel/early-quirks.c Joonas Lahtinen 2016-04-22 589
ee0629cfd3c16c7 arch/x86/kernel/early-quirks.c Joonas Lahtinen 2016-04-22 590 device = read_pci_config_16(num, slot, func, PCI_DEVICE_ID);
ee0629cfd3c16c7 arch/x86/kernel/early-quirks.c Joonas Lahtinen 2016-04-22 591
ee0629cfd3c16c7 arch/x86/kernel/early-quirks.c Joonas Lahtinen 2016-04-22 592 for (i = 0; i < ARRAY_SIZE(intel_early_ids); i++) {
ee0629cfd3c16c7 arch/x86/kernel/early-quirks.c Joonas Lahtinen 2016-04-22 593 kernel_ulong_t driver_data = intel_early_ids[i].driver_data;
ee0629cfd3c16c7 arch/x86/kernel/early-quirks.c Joonas Lahtinen 2016-04-22 594
ee0629cfd3c16c7 arch/x86/kernel/early-quirks.c Joonas Lahtinen 2016-04-22 595 if (intel_early_ids[i].device != device)
ee0629cfd3c16c7 arch/x86/kernel/early-quirks.c Joonas Lahtinen 2016-04-22 596 continue;
ee0629cfd3c16c7 arch/x86/kernel/early-quirks.c Joonas Lahtinen 2016-04-22 597
ee0629cfd3c16c7 arch/x86/kernel/early-quirks.c Joonas Lahtinen 2016-04-22 598 early_ops = (typeof(early_ops))driver_data;
ee0629cfd3c16c7 arch/x86/kernel/early-quirks.c Joonas Lahtinen 2016-04-22 599
ee0629cfd3c16c7 arch/x86/kernel/early-quirks.c Joonas Lahtinen 2016-04-22 600 intel_graphics_stolen(num, slot, func, early_ops);
ee0629cfd3c16c7 arch/x86/kernel/early-quirks.c Joonas Lahtinen 2016-04-22 601
814c5f1f52a4beb arch/x86/kernel/early-quirks.c Jesse Barnes 2013-07-26 602 return;
814c5f1f52a4beb arch/x86/kernel/early-quirks.c Jesse Barnes 2013-07-26 603 }
814c5f1f52a4beb arch/x86/kernel/early-quirks.c Jesse Barnes 2013-07-26 604 }
814c5f1f52a4beb arch/x86/kernel/early-quirks.c Jesse Barnes 2013-07-26 605
62187910b0fc7a7 arch/x86/kernel/early-quirks.c Feng Tang 2014-04-24 606 static void __init force_disable_hpet(int num, int slot, int func)
62187910b0fc7a7 arch/x86/kernel/early-quirks.c Feng Tang 2014-04-24 607 {
62187910b0fc7a7 arch/x86/kernel/early-quirks.c Feng Tang 2014-04-24 608 #ifdef CONFIG_HPET_TIMER
3d45ac4b35cbdf9 arch/x86/kernel/early-quirks.c Jan Beulich 2015-10-19 609 boot_hpet_disable = true;
62187910b0fc7a7 arch/x86/kernel/early-quirks.c Feng Tang 2014-04-24 610 pr_info("x86/hpet: Will disable the HPET for this platform because it's not reliable\n");
62187910b0fc7a7 arch/x86/kernel/early-quirks.c Feng Tang 2014-04-24 611 #endif
62187910b0fc7a7 arch/x86/kernel/early-quirks.c Feng Tang 2014-04-24 612 }
62187910b0fc7a7 arch/x86/kernel/early-quirks.c Feng Tang 2014-04-24 613
abb2bafd295fe96 arch/x86/kernel/early-quirks.c Lukas Wunner 2016-06-12 614 #define BCM4331_MMIO_SIZE 16384
abb2bafd295fe96 arch/x86/kernel/early-quirks.c Lukas Wunner 2016-06-12 615 #define BCM4331_PM_CAP 0x40
abb2bafd295fe96 arch/x86/kernel/early-quirks.c Lukas Wunner 2016-06-12 616 #define bcma_aread32(reg) ioread32(mmio + 1 * BCMA_CORE_SIZE + reg)
abb2bafd295fe96 arch/x86/kernel/early-quirks.c Lukas Wunner 2016-06-12 617 #define bcma_awrite32(reg, val) iowrite32(val, mmio + 1 * BCMA_CORE_SIZE + reg)
abb2bafd295fe96 arch/x86/kernel/early-quirks.c Lukas Wunner 2016-06-12 618
abb2bafd295fe96 arch/x86/kernel/early-quirks.c Lukas Wunner 2016-06-12 619 static void __init apple_airport_reset(int bus, int slot, int func)
abb2bafd295fe96 arch/x86/kernel/early-quirks.c Lukas Wunner 2016-06-12 620 {
abb2bafd295fe96 arch/x86/kernel/early-quirks.c Lukas Wunner 2016-06-12 621 void __iomem *mmio;
abb2bafd295fe96 arch/x86/kernel/early-quirks.c Lukas Wunner 2016-06-12 622 u16 pmcsr;
abb2bafd295fe96 arch/x86/kernel/early-quirks.c Lukas Wunner 2016-06-12 623 u64 addr;
abb2bafd295fe96 arch/x86/kernel/early-quirks.c Lukas Wunner 2016-06-12 624 int i;
abb2bafd295fe96 arch/x86/kernel/early-quirks.c Lukas Wunner 2016-06-12 625
630b3aff8a51c90 arch/x86/kernel/early-quirks.c Lukas Wunner 2017-08-01 626 if (!x86_apple_machine)
abb2bafd295fe96 arch/x86/kernel/early-quirks.c Lukas Wunner 2016-06-12 627 return;
abb2bafd295fe96 arch/x86/kernel/early-quirks.c Lukas Wunner 2016-06-12 628
abb2bafd295fe96 arch/x86/kernel/early-quirks.c Lukas Wunner 2016-06-12 629 /* Card may have been put into PCI_D3hot by grub quirk */
abb2bafd295fe96 arch/x86/kernel/early-quirks.c Lukas Wunner 2016-06-12 630 pmcsr = read_pci_config_16(bus, slot, func, BCM4331_PM_CAP + PCI_PM_CTRL);
abb2bafd295fe96 arch/x86/kernel/early-quirks.c Lukas Wunner 2016-06-12 631
abb2bafd295fe96 arch/x86/kernel/early-quirks.c Lukas Wunner 2016-06-12 632 if ((pmcsr & PCI_PM_CTRL_STATE_MASK) != PCI_D0) {
abb2bafd295fe96 arch/x86/kernel/early-quirks.c Lukas Wunner 2016-06-12 633 pmcsr &= ~PCI_PM_CTRL_STATE_MASK;
abb2bafd295fe96 arch/x86/kernel/early-quirks.c Lukas Wunner 2016-06-12 634 write_pci_config_16(bus, slot, func, BCM4331_PM_CAP + PCI_PM_CTRL, pmcsr);
abb2bafd295fe96 arch/x86/kernel/early-quirks.c Lukas Wunner 2016-06-12 635 mdelay(10);
abb2bafd295fe96 arch/x86/kernel/early-quirks.c Lukas Wunner 2016-06-12 636
abb2bafd295fe96 arch/x86/kernel/early-quirks.c Lukas Wunner 2016-06-12 637 pmcsr = read_pci_config_16(bus, slot, func, BCM4331_PM_CAP + PCI_PM_CTRL);
abb2bafd295fe96 arch/x86/kernel/early-quirks.c Lukas Wunner 2016-06-12 638 if ((pmcsr & PCI_PM_CTRL_STATE_MASK) != PCI_D0) {
a7a3153a98d5811 arch/x86/kernel/early-quirks.c Joe Perches 2018-05-09 639 pr_err("pci 0000:%02x:%02x.%d: Cannot power up Apple AirPort card\n",
a7a3153a98d5811 arch/x86/kernel/early-quirks.c Joe Perches 2018-05-09 640 bus, slot, func);
abb2bafd295fe96 arch/x86/kernel/early-quirks.c Lukas Wunner 2016-06-12 641 return;
abb2bafd295fe96 arch/x86/kernel/early-quirks.c Lukas Wunner 2016-06-12 642 }
abb2bafd295fe96 arch/x86/kernel/early-quirks.c Lukas Wunner 2016-06-12 643 }
abb2bafd295fe96 arch/x86/kernel/early-quirks.c Lukas Wunner 2016-06-12 644
abb2bafd295fe96 arch/x86/kernel/early-quirks.c Lukas Wunner 2016-06-12 645 addr = read_pci_config(bus, slot, func, PCI_BASE_ADDRESS_0);
abb2bafd295fe96 arch/x86/kernel/early-quirks.c Lukas Wunner 2016-06-12 646 addr |= (u64)read_pci_config(bus, slot, func, PCI_BASE_ADDRESS_1) << 32;
abb2bafd295fe96 arch/x86/kernel/early-quirks.c Lukas Wunner 2016-06-12 647 addr &= PCI_BASE_ADDRESS_MEM_MASK;
abb2bafd295fe96 arch/x86/kernel/early-quirks.c Lukas Wunner 2016-06-12 648
abb2bafd295fe96 arch/x86/kernel/early-quirks.c Lukas Wunner 2016-06-12 649 mmio = early_ioremap(addr, BCM4331_MMIO_SIZE);
abb2bafd295fe96 arch/x86/kernel/early-quirks.c Lukas Wunner 2016-06-12 650 if (!mmio) {
a7a3153a98d5811 arch/x86/kernel/early-quirks.c Joe Perches 2018-05-09 651 pr_err("pci 0000:%02x:%02x.%d: Cannot iomap Apple AirPort card\n",
a7a3153a98d5811 arch/x86/kernel/early-quirks.c Joe Perches 2018-05-09 652 bus, slot, func);
abb2bafd295fe96 arch/x86/kernel/early-quirks.c Lukas Wunner 2016-06-12 653 return;
abb2bafd295fe96 arch/x86/kernel/early-quirks.c Lukas Wunner 2016-06-12 654 }
abb2bafd295fe96 arch/x86/kernel/early-quirks.c Lukas Wunner 2016-06-12 655
abb2bafd295fe96 arch/x86/kernel/early-quirks.c Lukas Wunner 2016-06-12 656 pr_info("Resetting Apple AirPort card (left enabled by EFI)\n");
abb2bafd295fe96 arch/x86/kernel/early-quirks.c Lukas Wunner 2016-06-12 657
abb2bafd295fe96 arch/x86/kernel/early-quirks.c Lukas Wunner 2016-06-12 658 for (i = 0; bcma_aread32(BCMA_RESET_ST) && i < 30; i++)
abb2bafd295fe96 arch/x86/kernel/early-quirks.c Lukas Wunner 2016-06-12 659 udelay(10);
abb2bafd295fe96 arch/x86/kernel/early-quirks.c Lukas Wunner 2016-06-12 660
abb2bafd295fe96 arch/x86/kernel/early-quirks.c Lukas Wunner 2016-06-12 661 bcma_awrite32(BCMA_RESET_CTL, BCMA_RESET_CTL_RESET);
abb2bafd295fe96 arch/x86/kernel/early-quirks.c Lukas Wunner 2016-06-12 662 bcma_aread32(BCMA_RESET_CTL);
abb2bafd295fe96 arch/x86/kernel/early-quirks.c Lukas Wunner 2016-06-12 663 udelay(1);
abb2bafd295fe96 arch/x86/kernel/early-quirks.c Lukas Wunner 2016-06-12 664
abb2bafd295fe96 arch/x86/kernel/early-quirks.c Lukas Wunner 2016-06-12 665 bcma_awrite32(BCMA_RESET_CTL, 0);
abb2bafd295fe96 arch/x86/kernel/early-quirks.c Lukas Wunner 2016-06-12 666 bcma_aread32(BCMA_RESET_CTL);
abb2bafd295fe96 arch/x86/kernel/early-quirks.c Lukas Wunner 2016-06-12 667 udelay(10);
abb2bafd295fe96 arch/x86/kernel/early-quirks.c Lukas Wunner 2016-06-12 668
abb2bafd295fe96 arch/x86/kernel/early-quirks.c Lukas Wunner 2016-06-12 669 early_iounmap(mmio, BCM4331_MMIO_SIZE);
abb2bafd295fe96 arch/x86/kernel/early-quirks.c Lukas Wunner 2016-06-12 670 }
62187910b0fc7a7 arch/x86/kernel/early-quirks.c Feng Tang 2014-04-24 671
c6b48324325ffb6 arch/x86/kernel/early-quirks.c Neil Horman 2008-01-30 672 #define QFLAG_APPLY_ONCE 0x1
c6b48324325ffb6 arch/x86/kernel/early-quirks.c Neil Horman 2008-01-30 673 #define QFLAG_APPLIED 0x2
c6b48324325ffb6 arch/x86/kernel/early-quirks.c Neil Horman 2008-01-30 674 #define QFLAG_DONE (QFLAG_APPLY_ONCE|QFLAG_APPLIED)
dfa4698c50bf85b arch/x86_64/kernel/early-quirks.c Andi Kleen 2006-09-26 675 struct chipset {
c6b48324325ffb6 arch/x86/kernel/early-quirks.c Neil Horman 2008-01-30 676 u32 vendor;
c6b48324325ffb6 arch/x86/kernel/early-quirks.c Neil Horman 2008-01-30 677 u32 device;
c6b48324325ffb6 arch/x86/kernel/early-quirks.c Neil Horman 2008-01-30 678 u32 class;
c6b48324325ffb6 arch/x86/kernel/early-quirks.c Neil Horman 2008-01-30 679 u32 class_mask;
c6b48324325ffb6 arch/x86/kernel/early-quirks.c Neil Horman 2008-01-30 680 u32 flags;
c6b48324325ffb6 arch/x86/kernel/early-quirks.c Neil Horman 2008-01-30 681 void (*f)(int num, int slot, int func);
dfa4698c50bf85b arch/x86_64/kernel/early-quirks.c Andi Kleen 2006-09-26 682 };
dfa4698c50bf85b arch/x86_64/kernel/early-quirks.c Andi Kleen 2006-09-26 683
c993c7355df5528 arch/x86_64/kernel/early-quirks.c Andrew Morton 2007-04-08 684 static struct chipset early_qrk[] __initdata = {
c6b48324325ffb6 arch/x86/kernel/early-quirks.c Neil Horman 2008-01-30 685 { PCI_VENDOR_ID_NVIDIA, PCI_ANY_ID,
c6b48324325ffb6 arch/x86/kernel/early-quirks.c Neil Horman 2008-01-30 686 PCI_CLASS_BRIDGE_PCI, PCI_ANY_ID, QFLAG_APPLY_ONCE, nvidia_bugs },
c6b48324325ffb6 arch/x86/kernel/early-quirks.c Neil Horman 2008-01-30 687 { PCI_VENDOR_ID_VIA, PCI_ANY_ID,
c6b48324325ffb6 arch/x86/kernel/early-quirks.c Neil Horman 2008-01-30 688 PCI_CLASS_BRIDGE_PCI, PCI_ANY_ID, QFLAG_APPLY_ONCE, via_bugs },
c6b48324325ffb6 arch/x86/kernel/early-quirks.c Neil Horman 2008-01-30 689 { PCI_VENDOR_ID_AMD, PCI_DEVICE_ID_AMD_K8_NB,
c6b48324325ffb6 arch/x86/kernel/early-quirks.c Neil Horman 2008-01-30 690 PCI_CLASS_BRIDGE_HOST, PCI_ANY_ID, 0, fix_hypertransport_config },
33fb0e4eb53f16a arch/x86/kernel/early-quirks.c Andreas Herrmann 2008-10-07 691 { PCI_VENDOR_ID_ATI, PCI_DEVICE_ID_ATI_IXP400_SMBUS,
33fb0e4eb53f16a arch/x86/kernel/early-quirks.c Andreas Herrmann 2008-10-07 692 PCI_CLASS_SERIAL_SMBUS, PCI_ANY_ID, 0, ati_bugs },
26adcfbf00e0726 arch/x86/kernel/early-quirks.c Andreas Herrmann 2008-10-14 693 { PCI_VENDOR_ID_ATI, PCI_DEVICE_ID_ATI_SBX00_SMBUS,
26adcfbf00e0726 arch/x86/kernel/early-quirks.c Andreas Herrmann 2008-10-14 694 PCI_CLASS_SERIAL_SMBUS, PCI_ANY_ID, 0, ati_bugs_contd },
03bbcb2e7e29283 arch/x86/kernel/early-quirks.c Neil Horman 2013-04-16 695 { PCI_VENDOR_ID_INTEL, 0x3403, PCI_CLASS_BRIDGE_HOST,
03bbcb2e7e29283 arch/x86/kernel/early-quirks.c Neil Horman 2013-04-16 696 PCI_BASE_CLASS_BRIDGE, 0, intel_remapping_check },
803075dba31c17a arch/x86/kernel/early-quirks.c Neil Horman 2013-07-17 697 { PCI_VENDOR_ID_INTEL, 0x3405, PCI_CLASS_BRIDGE_HOST,
803075dba31c17a arch/x86/kernel/early-quirks.c Neil Horman 2013-07-17 698 PCI_BASE_CLASS_BRIDGE, 0, intel_remapping_check },
03bbcb2e7e29283 arch/x86/kernel/early-quirks.c Neil Horman 2013-04-16 699 { PCI_VENDOR_ID_INTEL, 0x3406, PCI_CLASS_BRIDGE_HOST,
03bbcb2e7e29283 arch/x86/kernel/early-quirks.c Neil Horman 2013-04-16 700 PCI_BASE_CLASS_BRIDGE, 0, intel_remapping_check },
814c5f1f52a4beb arch/x86/kernel/early-quirks.c Jesse Barnes 2013-07-26 701 { PCI_VENDOR_ID_INTEL, PCI_ANY_ID, PCI_CLASS_DISPLAY_VGA, PCI_ANY_ID,
ee0629cfd3c16c7 arch/x86/kernel/early-quirks.c Joonas Lahtinen 2016-04-22 702 QFLAG_APPLY_ONCE, intel_graphics_quirks },
62187910b0fc7a7 arch/x86/kernel/early-quirks.c Feng Tang 2014-04-24 703 /*
b58d930750135d6 arch/x86/kernel/early-quirks.c Feng Tang 2015-06-15 704 * HPET on the current version of the Baytrail platform has accuracy
b58d930750135d6 arch/x86/kernel/early-quirks.c Feng Tang 2015-06-15 705 * problems: it will halt in deep idle state - so we disable it.
b58d930750135d6 arch/x86/kernel/early-quirks.c Feng Tang 2015-06-15 706 *
b58d930750135d6 arch/x86/kernel/early-quirks.c Feng Tang 2015-06-15 707 * More details can be found in section 18.10.1.3 of the datasheet:
b58d930750135d6 arch/x86/kernel/early-quirks.c Feng Tang 2015-06-15 708 *
b58d930750135d6 arch/x86/kernel/early-quirks.c Feng Tang 2015-06-15 709 * http://www.intel.com/content/dam/www/public/us/en/documents/datasheets/atom-z8000-datasheet-vol-1.pdf
62187910b0fc7a7 arch/x86/kernel/early-quirks.c Feng Tang 2014-04-24 710 */
62187910b0fc7a7 arch/x86/kernel/early-quirks.c Feng Tang 2014-04-24 711 { PCI_VENDOR_ID_INTEL, 0x0f00,
62187910b0fc7a7 arch/x86/kernel/early-quirks.c Feng Tang 2014-04-24 712 PCI_CLASS_BRIDGE_HOST, PCI_ANY_ID, 0, force_disable_hpet},
abb2bafd295fe96 arch/x86/kernel/early-quirks.c Lukas Wunner 2016-06-12 713 { PCI_VENDOR_ID_BROADCOM, 0x4331,
abb2bafd295fe96 arch/x86/kernel/early-quirks.c Lukas Wunner 2016-06-12 714 PCI_CLASS_NETWORK_OTHER, PCI_ANY_ID, 0, apple_airport_reset},
dfa4698c50bf85b arch/x86_64/kernel/early-quirks.c Andi Kleen 2006-09-26 715 {}
dfa4698c50bf85b arch/x86_64/kernel/early-quirks.c Andi Kleen 2006-09-26 716 };
dfa4698c50bf85b arch/x86_64/kernel/early-quirks.c Andi Kleen 2006-09-26 717
850c321027c2e31 arch/x86/kernel/early-quirks.c Lukas Wunner 2016-06-12 718 static void __init early_pci_scan_bus(int bus);
850c321027c2e31 arch/x86/kernel/early-quirks.c Lukas Wunner 2016-06-12 719
15650a2f644a2f1 arch/x86/kernel/early-quirks.c Jesse Barnes 2008-06-16 720 /**
15650a2f644a2f1 arch/x86/kernel/early-quirks.c Jesse Barnes 2008-06-16 721 * check_dev_quirk - apply early quirks to a given PCI device
15650a2f644a2f1 arch/x86/kernel/early-quirks.c Jesse Barnes 2008-06-16 722 * @num: bus number
15650a2f644a2f1 arch/x86/kernel/early-quirks.c Jesse Barnes 2008-06-16 723 * @slot: slot number
15650a2f644a2f1 arch/x86/kernel/early-quirks.c Jesse Barnes 2008-06-16 724 * @func: PCI function
15650a2f644a2f1 arch/x86/kernel/early-quirks.c Jesse Barnes 2008-06-16 725 *
15650a2f644a2f1 arch/x86/kernel/early-quirks.c Jesse Barnes 2008-06-16 726 * Check the vendor & device ID against the early quirks table.
15650a2f644a2f1 arch/x86/kernel/early-quirks.c Jesse Barnes 2008-06-16 727 *
850c321027c2e31 arch/x86/kernel/early-quirks.c Lukas Wunner 2016-06-12 728 * If the device is single function, let early_pci_scan_bus() know so we don't
15650a2f644a2f1 arch/x86/kernel/early-quirks.c Jesse Barnes 2008-06-16 729 * poke at this device again.
15650a2f644a2f1 arch/x86/kernel/early-quirks.c Jesse Barnes 2008-06-16 730 */
15650a2f644a2f1 arch/x86/kernel/early-quirks.c Jesse Barnes 2008-06-16 731 static int __init check_dev_quirk(int num, int slot, int func)
dfa4698c50bf85b arch/x86_64/kernel/early-quirks.c Andi Kleen 2006-09-26 732 {
c6b48324325ffb6 arch/x86/kernel/early-quirks.c Neil Horman 2008-01-30 733 u16 class;
c6b48324325ffb6 arch/x86/kernel/early-quirks.c Neil Horman 2008-01-30 734 u16 vendor;
c6b48324325ffb6 arch/x86/kernel/early-quirks.c Neil Horman 2008-01-30 735 u16 device;
dfa4698c50bf85b arch/x86_64/kernel/early-quirks.c Andi Kleen 2006-09-26 736 u8 type;
850c321027c2e31 arch/x86/kernel/early-quirks.c Lukas Wunner 2016-06-12 737 u8 sec;
dfa4698c50bf85b arch/x86_64/kernel/early-quirks.c Andi Kleen 2006-09-26 738 int i;
c6b48324325ffb6 arch/x86/kernel/early-quirks.c Neil Horman 2008-01-30 739
7bcbc78dea92fdf arch/x86/kernel/early-quirks.c Neil Horman 2008-01-30 740 class = read_pci_config_16(num, slot, func, PCI_CLASS_DEVICE);
7bcbc78dea92fdf arch/x86/kernel/early-quirks.c Neil Horman 2008-01-30 741
c6b48324325ffb6 arch/x86/kernel/early-quirks.c Neil Horman 2008-01-30 742 if (class == 0xffff)
15650a2f644a2f1 arch/x86/kernel/early-quirks.c Jesse Barnes 2008-06-16 743 return -1; /* no class, treat as single function */
dfa4698c50bf85b arch/x86_64/kernel/early-quirks.c Andi Kleen 2006-09-26 744
7bcbc78dea92fdf arch/x86/kernel/early-quirks.c Neil Horman 2008-01-30 745 vendor = read_pci_config_16(num, slot, func, PCI_VENDOR_ID);
dfa4698c50bf85b arch/x86_64/kernel/early-quirks.c Andi Kleen 2006-09-26 746
7bcbc78dea92fdf arch/x86/kernel/early-quirks.c Neil Horman 2008-01-30 747 device = read_pci_config_16(num, slot, func, PCI_DEVICE_ID);
c6b48324325ffb6 arch/x86/kernel/early-quirks.c Neil Horman 2008-01-30 748
c6b48324325ffb6 arch/x86/kernel/early-quirks.c Neil Horman 2008-01-30 749 for (i = 0; early_qrk[i].f != NULL; i++) {
c6b48324325ffb6 arch/x86/kernel/early-quirks.c Neil Horman 2008-01-30 750 if (((early_qrk[i].vendor == PCI_ANY_ID) ||
c6b48324325ffb6 arch/x86/kernel/early-quirks.c Neil Horman 2008-01-30 751 (early_qrk[i].vendor == vendor)) &&
c6b48324325ffb6 arch/x86/kernel/early-quirks.c Neil Horman 2008-01-30 752 ((early_qrk[i].device == PCI_ANY_ID) ||
c6b48324325ffb6 arch/x86/kernel/early-quirks.c Neil Horman 2008-01-30 753 (early_qrk[i].device == device)) &&
c6b48324325ffb6 arch/x86/kernel/early-quirks.c Neil Horman 2008-01-30 754 (!((early_qrk[i].class ^ class) &
c6b48324325ffb6 arch/x86/kernel/early-quirks.c Neil Horman 2008-01-30 755 early_qrk[i].class_mask))) {
7bcbc78dea92fdf arch/x86/kernel/early-quirks.c Neil Horman 2008-01-30 756 if ((early_qrk[i].flags &
7bcbc78dea92fdf arch/x86/kernel/early-quirks.c Neil Horman 2008-01-30 757 QFLAG_DONE) != QFLAG_DONE)
c6b48324325ffb6 arch/x86/kernel/early-quirks.c Neil Horman 2008-01-30 758 early_qrk[i].f(num, slot, func);
c6b48324325ffb6 arch/x86/kernel/early-quirks.c Neil Horman 2008-01-30 759 early_qrk[i].flags |= QFLAG_APPLIED;
c6b48324325ffb6 arch/x86/kernel/early-quirks.c Neil Horman 2008-01-30 760 }
dfa4698c50bf85b arch/x86_64/kernel/early-quirks.c Andi Kleen 2006-09-26 761 }
dfa4698c50bf85b arch/x86_64/kernel/early-quirks.c Andi Kleen 2006-09-26 762
dfa4698c50bf85b arch/x86_64/kernel/early-quirks.c Andi Kleen 2006-09-26 763 type = read_pci_config_byte(num, slot, func,
dfa4698c50bf85b arch/x86_64/kernel/early-quirks.c Andi Kleen 2006-09-26 764 PCI_HEADER_TYPE);
850c321027c2e31 arch/x86/kernel/early-quirks.c Lukas Wunner 2016-06-12 765
850c321027c2e31 arch/x86/kernel/early-quirks.c Lukas Wunner 2016-06-12 766 if ((type & 0x7f) == PCI_HEADER_TYPE_BRIDGE) {
850c321027c2e31 arch/x86/kernel/early-quirks.c Lukas Wunner 2016-06-12 767 sec = read_pci_config_byte(num, slot, func, PCI_SECONDARY_BUS);
850c321027c2e31 arch/x86/kernel/early-quirks.c Lukas Wunner 2016-06-12 768 if (sec > num)
850c321027c2e31 arch/x86/kernel/early-quirks.c Lukas Wunner 2016-06-12 769 early_pci_scan_bus(sec);
850c321027c2e31 arch/x86/kernel/early-quirks.c Lukas Wunner 2016-06-12 770 }
850c321027c2e31 arch/x86/kernel/early-quirks.c Lukas Wunner 2016-06-12 771
dfa4698c50bf85b arch/x86_64/kernel/early-quirks.c Andi Kleen 2006-09-26 772 if (!(type & 0x80))
15650a2f644a2f1 arch/x86/kernel/early-quirks.c Jesse Barnes 2008-06-16 773 return -1;
15650a2f644a2f1 arch/x86/kernel/early-quirks.c Jesse Barnes 2008-06-16 774
15650a2f644a2f1 arch/x86/kernel/early-quirks.c Jesse Barnes 2008-06-16 775 return 0;
dfa4698c50bf85b arch/x86_64/kernel/early-quirks.c Andi Kleen 2006-09-26 776 }
7bcbc78dea92fdf arch/x86/kernel/early-quirks.c Neil Horman 2008-01-30 777
850c321027c2e31 arch/x86/kernel/early-quirks.c Lukas Wunner 2016-06-12 778 static void __init early_pci_scan_bus(int bus)
7bcbc78dea92fdf arch/x86/kernel/early-quirks.c Neil Horman 2008-01-30 779 {
8659c406ade32f4 arch/x86/kernel/early-quirks.c Andi Kleen 2009-01-09 780 int slot, func;
7bcbc78dea92fdf arch/x86/kernel/early-quirks.c Neil Horman 2008-01-30 781
7bcbc78dea92fdf arch/x86/kernel/early-quirks.c Neil Horman 2008-01-30 782 /* Poor man's PCI discovery */
7bcbc78dea92fdf arch/x86/kernel/early-quirks.c Neil Horman 2008-01-30 783 for (slot = 0; slot < 32; slot++)
15650a2f644a2f1 arch/x86/kernel/early-quirks.c Jesse Barnes 2008-06-16 784 for (func = 0; func < 8; func++) {
15650a2f644a2f1 arch/x86/kernel/early-quirks.c Jesse Barnes 2008-06-16 785 /* Only probe function 0 on single fn devices */
850c321027c2e31 arch/x86/kernel/early-quirks.c Lukas Wunner 2016-06-12 786 if (check_dev_quirk(bus, slot, func))
15650a2f644a2f1 arch/x86/kernel/early-quirks.c Jesse Barnes 2008-06-16 787 break;
15650a2f644a2f1 arch/x86/kernel/early-quirks.c Jesse Barnes 2008-06-16 788 }
dfa4698c50bf85b arch/x86_64/kernel/early-quirks.c Andi Kleen 2006-09-26 789 }
850c321027c2e31 arch/x86/kernel/early-quirks.c Lukas Wunner 2016-06-12 790
850c321027c2e31 arch/x86/kernel/early-quirks.c Lukas Wunner 2016-06-12 791 void __init early_quirks(void)
850c321027c2e31 arch/x86/kernel/early-quirks.c Lukas Wunner 2016-06-12 792 {
850c321027c2e31 arch/x86/kernel/early-quirks.c Lukas Wunner 2016-06-12 793 if (!early_pci_allowed())
850c321027c2e31 arch/x86/kernel/early-quirks.c Lukas Wunner 2016-06-12 794 return;
850c321027c2e31 arch/x86/kernel/early-quirks.c Lukas Wunner 2016-06-12 795
850c321027c2e31 arch/x86/kernel/early-quirks.c Lukas Wunner 2016-06-12 796 early_pci_scan_bus(0);
850c321027c2e31 arch/x86/kernel/early-quirks.c Lukas Wunner 2016-06-12 797 }

:::::: The code at line 518 was first introduced by commit
:::::: ee0629cfd3c16c716801c84e939ff5db5e23f54d drm/i915: Function per early graphics quirk

:::::: TO: Joonas Lahtinen <joonas.lahtinen@xxxxxxxxxxxxxxx>
:::::: CC: Joonas Lahtinen <joonas.lahtinen@xxxxxxxxxxxxxxx>

---
0-DAY kernel test infrastructure Open Source Technology Center
https://lists.01.org/pipermail/kbuild-all Intel Corporation

Attachment: .config.gz
Description: application/gzip