Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

MIPS: Malta: Let PIIX4 respond to PCI special cycles

This patch enables the PIIX4 to respond to special cycles on the PCI
bus. One such special cycle must be used in order to enter a suspend
state, and if response to it is not enabled then the suspend state will
never be entered.

Signed-off-by: Paul Burton <paul.burton@imgtec.com>
Cc: linux-mips@linux-mips.org
Patchwork: https://patchwork.linux-mips.org/patch/6904/
Signed-off-by: Ralf Baechle <ralf@linux-mips.org>

authored by

Paul Burton and committed by
Ralf Baechle
9e53481e b6911bba

+6
+6
arch/mips/pci/fixup-malta.c
··· 68 68 { 69 69 unsigned char reg_val; 70 70 u32 reg_val32; 71 + u16 reg_val16; 71 72 /* PIIX PIRQC[A:D] irq mappings */ 72 73 static int piixirqmap[PIIX4_FUNC0_PIRQRC_IRQ_ROUTING_MAX] = { 73 74 0, 0, 0, 3, ··· 108 107 pci_read_config_byte(pdev, PIIX4_FUNC0_SERIRQC, &reg_val); 109 108 reg_val |= PIIX4_FUNC0_SERIRQC_EN | PIIX4_FUNC0_SERIRQC_CONT; 110 109 pci_write_config_byte(pdev, PIIX4_FUNC0_SERIRQC, reg_val); 110 + 111 + /* Enable response to special cycles */ 112 + pci_read_config_word(pdev, PCI_COMMAND, &reg_val16); 113 + pci_write_config_word(pdev, PCI_COMMAND, 114 + reg_val16 | PCI_COMMAND_SPECIAL); 111 115 } 112 116 113 117 DECLARE_PCI_FIXUP_HEADER(PCI_VENDOR_ID_INTEL, PCI_DEVICE_ID_INTEL_82371AB_0,