diff options
author | Linus Torvalds <torvalds@g5.osdl.org> | 2006-04-23 12:44:10 -0400 |
---|---|---|
committer | Linus Torvalds <torvalds@g5.osdl.org> | 2006-04-23 12:44:10 -0400 |
commit | 6b426e785cb81e53dc2fc4dcf997661472b470ef (patch) | |
tree | 3dbde895f120e78f66b32ddd9c9cbe3d83a59637 /drivers | |
parent | cb6aef2879b769644b35cffe9844c81c63809c8e (diff) | |
parent | 223232de068593b40d267e340f24c017d31c018a (diff) |
Merge git://git.kernel.org/pub/scm/linux/kernel/git/kyle/parisc-2.6
* git://git.kernel.org/pub/scm/linux/kernel/git/kyle/parisc-2.6:
[PARISC] MAINTAINERS
[PARISC] Make ioremap default to _nocache
[PARISC] Add new entries to the syscall table
[PARISC] Further work for multiple page sizes
[PARISC] Fix up hil_kbd.c mismerge
[PARISC] defconfig updates
[PARISC] Document that we tolerate "Relaxed Ordering"
[PARISC] Misc. janitorial work
[PARISC] EISA regions must be mapped NO_CACHE
[PARISC] OSS ad1889: Match register names with ALSA driver
Diffstat (limited to 'drivers')
-rw-r--r-- | drivers/input/keyboard/hil_kbd.c | 2 | ||||
-rw-r--r-- | drivers/parisc/pdc_stable.c | 2 | ||||
-rw-r--r-- | drivers/parisc/sba_iommu.c | 45 | ||||
-rw-r--r-- | drivers/parisc/superio.c | 4 |
4 files changed, 36 insertions, 17 deletions
diff --git a/drivers/input/keyboard/hil_kbd.c b/drivers/input/keyboard/hil_kbd.c index 1dca3cf42a54..2e4abdc26367 100644 --- a/drivers/input/keyboard/hil_kbd.c +++ b/drivers/input/keyboard/hil_kbd.c | |||
@@ -350,11 +350,11 @@ static int hil_kbd_connect(struct serio *serio, struct serio_driver *drv) | |||
350 | return 0; | 350 | return 0; |
351 | bail2: | 351 | bail2: |
352 | serio_close(serio); | 352 | serio_close(serio); |
353 | serio_set_drvdata(serio, NULL); | ||
353 | bail1: | 354 | bail1: |
354 | input_free_device(kbd->dev); | 355 | input_free_device(kbd->dev); |
355 | bail0: | 356 | bail0: |
356 | kfree(kbd); | 357 | kfree(kbd); |
357 | serio_set_drvdata(serio, NULL); | ||
358 | return -EIO; | 358 | return -EIO; |
359 | } | 359 | } |
360 | 360 | ||
diff --git a/drivers/parisc/pdc_stable.c b/drivers/parisc/pdc_stable.c index 4e53be9c03ab..bbeabe3fc4c6 100644 --- a/drivers/parisc/pdc_stable.c +++ b/drivers/parisc/pdc_stable.c | |||
@@ -535,7 +535,7 @@ pdcs_auto_read(struct subsystem *entry, char *buf, int knob) | |||
535 | { | 535 | { |
536 | char *out = buf; | 536 | char *out = buf; |
537 | struct pdcspath_entry *pathentry; | 537 | struct pdcspath_entry *pathentry; |
538 | 538 | ||
539 | if (!entry || !buf) | 539 | if (!entry || !buf) |
540 | return -EINVAL; | 540 | return -EINVAL; |
541 | 541 | ||
diff --git a/drivers/parisc/sba_iommu.c b/drivers/parisc/sba_iommu.c index 42b32ff2fca6..278f325021ee 100644 --- a/drivers/parisc/sba_iommu.c +++ b/drivers/parisc/sba_iommu.c | |||
@@ -178,6 +178,11 @@ extern struct proc_dir_entry * proc_mckinley_root; | |||
178 | #define ROPE6_CTL 0x230 | 178 | #define ROPE6_CTL 0x230 |
179 | #define ROPE7_CTL 0x238 | 179 | #define ROPE7_CTL 0x238 |
180 | 180 | ||
181 | #define IOC_ROPE0_CFG 0x500 /* pluto only */ | ||
182 | #define IOC_ROPE_AO 0x10 /* Allow "Relaxed Ordering" */ | ||
183 | |||
184 | |||
185 | |||
181 | #define HF_ENABLE 0x40 | 186 | #define HF_ENABLE 0x40 |
182 | 187 | ||
183 | 188 | ||
@@ -1759,19 +1764,33 @@ printk("sba_hw_init(): mem_boot 0x%x 0x%x 0x%x 0x%x\n", PAGE0->mem_boot.hpa, | |||
1759 | 1764 | ||
1760 | sba_dev->num_ioc = num_ioc; | 1765 | sba_dev->num_ioc = num_ioc; |
1761 | for (i = 0; i < num_ioc; i++) { | 1766 | for (i = 0; i < num_ioc; i++) { |
1762 | /* | 1767 | unsigned long ioc_hpa = sba_dev->ioc[i].ioc_hpa; |
1763 | ** Make sure the box crashes if we get any errors on a rope. | 1768 | unsigned int j; |
1764 | */ | 1769 | |
1765 | WRITE_REG(HF_ENABLE, sba_dev->ioc[i].ioc_hpa + ROPE0_CTL); | 1770 | for (j=0; j < sizeof(u64) * ROPES_PER_IOC; j+=sizeof(u64)) { |
1766 | WRITE_REG(HF_ENABLE, sba_dev->ioc[i].ioc_hpa + ROPE1_CTL); | 1771 | |
1767 | WRITE_REG(HF_ENABLE, sba_dev->ioc[i].ioc_hpa + ROPE2_CTL); | 1772 | /* |
1768 | WRITE_REG(HF_ENABLE, sba_dev->ioc[i].ioc_hpa + ROPE3_CTL); | 1773 | * Clear ROPE(N)_CONFIG AO bit. |
1769 | WRITE_REG(HF_ENABLE, sba_dev->ioc[i].ioc_hpa + ROPE4_CTL); | 1774 | * Disables "NT Ordering" (~= !"Relaxed Ordering") |
1770 | WRITE_REG(HF_ENABLE, sba_dev->ioc[i].ioc_hpa + ROPE5_CTL); | 1775 | * Overrides bit 1 in DMA Hint Sets. |
1771 | WRITE_REG(HF_ENABLE, sba_dev->ioc[i].ioc_hpa + ROPE6_CTL); | 1776 | * Improves netperf UDP_STREAM by ~10% for bcm5701. |
1772 | WRITE_REG(HF_ENABLE, sba_dev->ioc[i].ioc_hpa + ROPE7_CTL); | 1777 | */ |
1773 | 1778 | if (IS_PLUTO(sba_dev->iodc)) { | |
1774 | /* flush out the writes */ | 1779 | unsigned long rope_cfg, cfg_val; |
1780 | |||
1781 | rope_cfg = ioc_hpa + IOC_ROPE0_CFG + j; | ||
1782 | cfg_val = READ_REG(rope_cfg); | ||
1783 | cfg_val &= ~IOC_ROPE_AO; | ||
1784 | WRITE_REG(cfg_val, rope_cfg); | ||
1785 | } | ||
1786 | |||
1787 | /* | ||
1788 | ** Make sure the box crashes on rope errors. | ||
1789 | */ | ||
1790 | WRITE_REG(HF_ENABLE, ioc_hpa + ROPE0_CTL + j); | ||
1791 | } | ||
1792 | |||
1793 | /* flush out the last writes */ | ||
1775 | READ_REG(sba_dev->ioc[i].ioc_hpa + ROPE7_CTL); | 1794 | READ_REG(sba_dev->ioc[i].ioc_hpa + ROPE7_CTL); |
1776 | 1795 | ||
1777 | DBG_INIT(" ioc[%d] ROPE_CFG 0x%Lx ROPE_DBG 0x%Lx\n", | 1796 | DBG_INIT(" ioc[%d] ROPE_CFG 0x%Lx ROPE_DBG 0x%Lx\n", |
diff --git a/drivers/parisc/superio.c b/drivers/parisc/superio.c index 719b863bc20e..828eb45062de 100644 --- a/drivers/parisc/superio.c +++ b/drivers/parisc/superio.c | |||
@@ -155,7 +155,7 @@ superio_init(struct pci_dev *pcidev) | |||
155 | struct pci_dev *pdev = sio->lio_pdev; | 155 | struct pci_dev *pdev = sio->lio_pdev; |
156 | u16 word; | 156 | u16 word; |
157 | 157 | ||
158 | if (sio->suckyio_irq_enabled) | 158 | if (sio->suckyio_irq_enabled) |
159 | return; | 159 | return; |
160 | 160 | ||
161 | BUG_ON(!pdev); | 161 | BUG_ON(!pdev); |
@@ -194,7 +194,7 @@ superio_init(struct pci_dev *pcidev) | |||
194 | request_region (sio->acpi_base, 0x1f, "acpi"); | 194 | request_region (sio->acpi_base, 0x1f, "acpi"); |
195 | 195 | ||
196 | /* Enable the legacy I/O function */ | 196 | /* Enable the legacy I/O function */ |
197 | pci_read_config_word (pdev, PCI_COMMAND, &word); | 197 | pci_read_config_word (pdev, PCI_COMMAND, &word); |
198 | word |= PCI_COMMAND_SERR | PCI_COMMAND_PARITY | PCI_COMMAND_IO; | 198 | word |= PCI_COMMAND_SERR | PCI_COMMAND_PARITY | PCI_COMMAND_IO; |
199 | pci_write_config_word (pdev, PCI_COMMAND, word); | 199 | pci_write_config_word (pdev, PCI_COMMAND, word); |
200 | 200 | ||