Skip to content

Commit

Permalink
ALSA: oxygen: add XIO2001 initialization
Browse files Browse the repository at this point in the history
Configure the XIO2001 bridge on PCI Express cards so that it does less
needless prefetching.

Signed-off-by: Clemens Ladisch <[email protected]>
Signed-off-by: Takashi Iwai <[email protected]>
  • Loading branch information
cladisch authored and tiwai committed Jan 16, 2015
1 parent 0902fbb commit a5a3353
Showing 1 changed file with 10 additions and 1 deletion.
11 changes: 10 additions & 1 deletion sound/pci/oxygen/oxygen_lib.c
Original file line number Diff line number Diff line change
Expand Up @@ -319,11 +319,12 @@ static void oxygen_restore_eeprom(struct oxygen *chip,

static void configure_pcie_bridge(struct pci_dev *pci)
{
enum { PEX811X, PI7C9X110 };
enum { PEX811X, PI7C9X110, XIO2001 };
static const struct pci_device_id bridge_ids[] = {
{ PCI_VDEVICE(PLX, 0x8111), .driver_data = PEX811X },
{ PCI_VDEVICE(PLX, 0x8112), .driver_data = PEX811X },
{ PCI_DEVICE(0x12d8, 0xe110), .driver_data = PI7C9X110 },
{ PCI_VDEVICE(TI, 0x8240), .driver_data = XIO2001 },
{ }
};
struct pci_dev *bridge;
Expand Down Expand Up @@ -357,6 +358,14 @@ static void configure_pcie_bridge(struct pci_dev *pci)
tmp |= 1; /* park the PCI arbiter to the sound chip */
pci_write_config_dword(bridge, 0x40, tmp);
break;

case XIO2001: /* Texas Instruments XIO2001 PCIe/PCI bridge */
pci_read_config_dword(bridge, 0xe8, &tmp);
tmp &= ~0xf; /* request length limit: 64 bytes */
tmp &= ~(0xf << 8);
tmp |= 1 << 8; /* request count limit: one buffer */
pci_write_config_dword(bridge, 0xe8, tmp);
break;
}
}

Expand Down

0 comments on commit a5a3353

Please sign in to comment.