summaryrefslogtreecommitdiff
path: root/drivers
diff options
context:
space:
mode:
authorLinus Torvalds <torvalds@linux-foundation.org>2026-02-11 08:42:10 +0300
committerLinus Torvalds <torvalds@linux-foundation.org>2026-02-11 08:42:10 +0300
commit8ad8d24d962804d3c54b5b7542c4cb7cd6bacb3b (patch)
tree679bedda07b61e292f900bc11094a6b8a3fa68bc /drivers
parent6589b3d76db2d6adbf8f2084c303fb24252a0dc6 (diff)
parent1651d69443c3a5fc12f1dee1229d526e7af9020a (diff)
downloadlinux-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.c21
-rw-r--r--drivers/parisc/lba_pci.c4
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) {