소스 검색

x86: Ignore function number when writing PIRQ routing table

In fill_irq_info() pci device's function number is written into
the table, however this is not really necessary. The function
number can be anything as OS doesn't care about this field,
neither does the PIRQ routing specification. Change to always
writing 0 as the function number.

Signed-off-by: Bin Meng <bmeng.cn@gmail.com>
Acked-by: Simon Glass <sjg@chromium.org>
Bin Meng 10 년 전
부모
커밋
8c38e4d0b8
1개의 변경된 파일3개의 추가작업 그리고 4개의 파일을 삭제
  1. 3 4
      arch/x86/cpu/irq.c

+ 3 - 4
arch/x86/cpu/irq.c

@@ -59,12 +59,12 @@ void pirq_assign_irq(int link, u8 irq)
 }
 
 static inline void fill_irq_info(struct irq_info **slotp, int *entries, u8 bus,
-				 u8 device, u8 func, u8 pin, u8 pirq)
+				 u8 device, u8 pin, u8 pirq)
 {
 	struct irq_info *slot = *slotp;
 
 	slot->bus = bus;
-	slot->devfn = (device << 3) | func;
+	slot->devfn = (device << 3) | 0;
 	slot->irq[pin - 1].link = LINK_N2V(pirq, irq_router.link_base);
 	slot->irq[pin - 1].bitmap = irq_router.irq_mask;
 	(*entries)++;
@@ -182,8 +182,7 @@ static int create_pirq_routing_table(void)
 		      PCI_FUNC(pr.bdf), 'A' + pr.pin - 1,
 		      'A' + pr.pirq);
 		fill_irq_info(&slot, &irq_entries, PCI_BUS(pr.bdf),
-			      PCI_DEV(pr.bdf), PCI_FUNC(pr.bdf),
-			      pr.pin, pr.pirq);
+			      PCI_DEV(pr.bdf), pr.pin, pr.pirq);
 		cell += sizeof(struct pirq_routing) / sizeof(u32);
 	}