diff options
| author | Linus Torvalds <torvalds@linux-foundation.org> | 2026-02-11 08:42:10 +0300 |
|---|---|---|
| committer | Linus Torvalds <torvalds@linux-foundation.org> | 2026-02-11 08:42:10 +0300 |
| commit | 8ad8d24d962804d3c54b5b7542c4cb7cd6bacb3b (patch) | |
| tree | 679bedda07b61e292f900bc11094a6b8a3fa68bc /drivers | |
| parent | 6589b3d76db2d6adbf8f2084c303fb24252a0dc6 (diff) | |
| parent | 1651d69443c3a5fc12f1dee1229d526e7af9020a (diff) | |
| download | linux-8ad8d24d962804d3c54b5b7542c4cb7cd6bacb3b.tar.xz | |
Merge tag 'parisc-for-7.0-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/deller/parisc-linux
Pull parisc updates from Helge Deller:
- Fix device reference leak in error path
- Check if system provides a 64-bit free running platform counter
- Minor fixes in debug code
* tag 'parisc-for-7.0-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/deller/parisc-linux:
parisc: lba_pci: Add debug code to show IO and PA ranges
parisc: Detect 64-bit free running platform counter
parisc: Fix minor printk issues in iosapic debug code
parisc: Enhance debug code for PAT firmware
parisc: Add PDC PAT call to get free running 64-bit counter
parisc: Fix module path output in qemu tables
parisc: Export model name for MPE/ix
parisc: Prevent interrupts during reboot
parisc: Print hardware IDs as 4 digit hex strings
parisc: kernel: replace kfree() with put_device() in create_tree_node()
Diffstat (limited to 'drivers')
| -rw-r--r-- | drivers/parisc/iosapic.c | 21 | ||||
| -rw-r--r-- | drivers/parisc/lba_pci.c | 4 |
2 files changed, 16 insertions, 9 deletions
diff --git a/drivers/parisc/iosapic.c b/drivers/parisc/iosapic.c index a4011461189b..a42552608fe4 100644 --- a/drivers/parisc/iosapic.c +++ b/drivers/parisc/iosapic.c @@ -262,9 +262,9 @@ iosapic_load_irt(unsigned long cell_num, struct irt_entry **irt) if (is_pdc_pat()) { /* Use pat pdc routine to get interrupt routing table size */ - DBG("calling get_irt_size (cell %ld)\n", cell_num); status = pdc_pat_get_irt_size(&num_entries, cell_num); - DBG("get_irt_size: %ld\n", status); + DBG("calling get_irt_size (cell %ld) ", cell_num); + DBG("returned %ld, entries: %lu\n", status, num_entries); BUG_ON(status != PDC_OK); BUG_ON(num_entries == 0); @@ -327,7 +327,7 @@ iosapic_load_irt(unsigned long cell_num, struct irt_entry **irt) int i; printk(MODULE_NAME " Interrupt Routing Table (cell %ld)\n", cell_num); - printk(MODULE_NAME " start = 0x%p num_entries %ld entry_size %d\n", + printk(MODULE_NAME " start = 0x%px num_entries %ld entry_size %d\n", table, num_entries, (int) sizeof(struct irt_entry)); @@ -455,7 +455,7 @@ iosapic_xlate_pin(struct iosapic_info *isi, struct pci_dev *pcidev) pci_read_config_byte(pcidev, PCI_INTERRUPT_PIN, &intr_pin); DBG_IRT("iosapic_xlate_pin(%s) SLOT %d pin %d\n", - pcidev->slot_name, PCI_SLOT(pcidev->devfn), intr_pin); + pci_name(pcidev), PCI_SLOT(pcidev->devfn), intr_pin); if (intr_pin == 0) { /* The device does NOT support/use IRQ lines. */ @@ -508,7 +508,7 @@ iosapic_xlate_pin(struct iosapic_info *isi, struct pci_dev *pcidev) } else { intr_slot = PCI_SLOT(pcidev->devfn); } - DBG_IRT("iosapic_xlate_pin: bus %d slot %d pin %d\n", + DBG_IRT("iosapic_xlate_pin: bus %lld slot %d pin %d\n", pcidev->bus->busn_res.start, intr_slot, intr_pin); return irt_find_irqline(isi, intr_slot, intr_pin); @@ -733,7 +733,7 @@ int iosapic_fixup_irq(void *isi_obj, struct pci_dev *pcidev) pci_name(pcidev)); return -1; } - DBG_IRT("iosapic_fixup_irq(): irte %p %x %x %x %x %x %x %x %x\n", + DBG_IRT("iosapic_fixup_irq(): irte %px %02x %02x %02x %02x %02x %02x %02x %04llx\n", irte, irte->entry_type, irte->entry_length, @@ -742,12 +742,12 @@ int iosapic_fixup_irq(void *isi_obj, struct pci_dev *pcidev) irte->src_bus_id, irte->src_seg_id, irte->dest_iosapic_intin, - (u32) irte->dest_iosapic_addr); + irte->dest_iosapic_addr); isi_line = irte->dest_iosapic_intin; /* get vector info for this input line */ vi = isi->isi_vector + isi_line; - DBG_IRT("iosapic_fixup_irq: line %d vi 0x%p\n", isi_line, vi); + DBG_IRT("iosapic_fixup_irq: line %d vi 0x%px\n", isi_line, vi); /* If this IRQ line has already been setup, skip it */ if (vi->irte) @@ -772,6 +772,8 @@ int iosapic_fixup_irq(void *isi_obj, struct pci_dev *pcidev) /* enable_irq() will use txn_* to program IRdT */ vi->txn_addr = txn_alloc_addr(vi->txn_irq); vi->txn_data = txn_alloc_data(vi->txn_irq); + DBG_IRT("iosapic_fixup_irq() TXN: 0x%lx 0x%x\n", + vi->txn_addr, vi->txn_data); vi->eoi_addr = isi->addr + IOSAPIC_REG_EOI; vi->eoi_data = cpu_to_le32(vi->txn_data); @@ -831,7 +833,7 @@ int iosapic_serial_irq(struct parisc_device *dev) /* get vector info for this input line */ vi = isi->isi_vector + intin; - DBG_IRT("iosapic_serial_irq: line %d vi 0x%p\n", iosapic_intin, vi); + DBG_IRT("iosapic_serial_irq: line %d vi 0x%p\n", intin, vi); /* If this IRQ line has already been setup, skip it */ if (vi->irte) @@ -923,6 +925,7 @@ void *iosapic_register(unsigned long hpa, void __iomem *vaddr) isi->isi_hpa = hpa; isi->isi_version = iosapic_rd_version(isi); isi->isi_num_vectors = IOSAPIC_IRDT_MAX_ENTRY(isi->isi_version) + 1; + DBG_IRT("iosapic_register: num vectors = %d\n", isi->isi_num_vectors); vip = isi->isi_vector = kcalloc(isi->isi_num_vectors, sizeof(struct vector_info), GFP_KERNEL); diff --git a/drivers/parisc/lba_pci.c b/drivers/parisc/lba_pci.c index 3fc3765fddaa..1d29fa13650b 100644 --- a/drivers/parisc/lba_pci.c +++ b/drivers/parisc/lba_pci.c @@ -1066,6 +1066,10 @@ lba_pat_resources(struct parisc_device *pa_dev, struct lba_device *lba_dev) p = (void *) &(pa_pdc_cell->mod[2+i*3]); io = (void *) &(io_pdc_cell->mod[2+i*3]); + DBG_PAT("PA #%d : TYPE 0x%08lx, start 0x%08lx, end 0x%08lx\n", + i, p->type, p->start, p->end); + DBG_PAT("IO #%d : TYPE 0x%08lx, start 0x%08lx, end 0x%08lx\n", + i, io->type, io->start, io->end); /* Convert the PAT range data to PCI "struct resource" */ switch(p->type & 0xff) { |
