diff options
-rw-r--r-- | arch/arm/mach-at91/board-ek.c | 9 | ||||
-rw-r--r-- | arch/arm/mach-pxa/pxa25x.c | 13 | ||||
-rw-r--r-- | arch/mips/Kconfig | 4 | ||||
-rw-r--r-- | arch/mips/au1000/common/pci.c | 8 | ||||
-rw-r--r-- | arch/mips/kernel/head.S | 3 | ||||
-rw-r--r-- | arch/mips/kernel/time.c | 4 | ||||
-rw-r--r-- | arch/mips/pci/ops-au1000.c | 53 | ||||
-rw-r--r-- | arch/mips/pci/ops-mace.c | 7 | ||||
-rw-r--r-- | arch/mips/pci/pci-ip32.c | 4 | ||||
-rw-r--r-- | arch/mips/sgi-ip32/ip32-irq.c | 1 | ||||
-rw-r--r-- | arch/mips/sgi-ip32/ip32-platform.c | 20 | ||||
-rw-r--r-- | drivers/media/video/bt8xx/bttv-driver.c | 4 | ||||
-rw-r--r-- | drivers/media/video/ivtv/ivtv-driver.c | 4 | ||||
-rw-r--r-- | drivers/media/video/ivtv/ivtv-i2c.c | 5 | ||||
-rw-r--r-- | fs/binfmt_elf.c | 4 | ||||
-rw-r--r-- | kernel/acct.c | 2 | ||||
-rw-r--r-- | sound/pci/hda/hda_intel.c | 3 |
17 files changed, 88 insertions, 60 deletions
diff --git a/arch/arm/mach-at91/board-ek.c b/arch/arm/mach-at91/board-ek.c index d05b1b2be9fb..53a5ef9e72ee 100644 --- a/arch/arm/mach-at91/board-ek.c +++ b/arch/arm/mach-at91/board-ek.c | |||
@@ -109,6 +109,15 @@ static struct spi_board_info ek_spi_devices[] = { | |||
109 | #endif | 109 | #endif |
110 | }; | 110 | }; |
111 | 111 | ||
112 | static struct i2c_board_info __initdata ek_i2c_devices[] = { | ||
113 | { | ||
114 | I2C_BOARD_INFO("ics1523", 0x26), | ||
115 | }, | ||
116 | { | ||
117 | I2C_BOARD_INFO("dac3550", 0x4d), | ||
118 | } | ||
119 | }; | ||
120 | |||
112 | #define EK_FLASH_BASE AT91_CHIPSELECT_0 | 121 | #define EK_FLASH_BASE AT91_CHIPSELECT_0 |
113 | #define EK_FLASH_SIZE 0x200000 | 122 | #define EK_FLASH_SIZE 0x200000 |
114 | 123 | ||
diff --git a/arch/arm/mach-pxa/pxa25x.c b/arch/arm/mach-pxa/pxa25x.c index dcd81f8d0833..9732d5d9466b 100644 --- a/arch/arm/mach-pxa/pxa25x.c +++ b/arch/arm/mach-pxa/pxa25x.c | |||
@@ -178,13 +178,19 @@ static void pxa25x_cpu_pm_save(unsigned long *sleep_save) | |||
178 | SAVE(GAFR1_L); SAVE(GAFR1_U); | 178 | SAVE(GAFR1_L); SAVE(GAFR1_U); |
179 | SAVE(GAFR2_L); SAVE(GAFR2_U); | 179 | SAVE(GAFR2_L); SAVE(GAFR2_U); |
180 | 180 | ||
181 | SAVE(ICMR); | 181 | SAVE(ICMR); ICMR = 0; |
182 | SAVE(CKEN); | 182 | SAVE(CKEN); |
183 | SAVE(PSTR); | 183 | SAVE(PSTR); |
184 | |||
185 | /* Clear GPIO transition detect bits */ | ||
186 | GEDR0 = GEDR0; GEDR1 = GEDR1; GEDR2 = GEDR2; | ||
184 | } | 187 | } |
185 | 188 | ||
186 | static void pxa25x_cpu_pm_restore(unsigned long *sleep_save) | 189 | static void pxa25x_cpu_pm_restore(unsigned long *sleep_save) |
187 | { | 190 | { |
191 | /* ensure not to come back here if it wasn't intended */ | ||
192 | PSPR = 0; | ||
193 | |||
188 | /* restore registers */ | 194 | /* restore registers */ |
189 | RESTORE_GPLEVEL(0); RESTORE_GPLEVEL(1); RESTORE_GPLEVEL(2); | 195 | RESTORE_GPLEVEL(0); RESTORE_GPLEVEL(1); RESTORE_GPLEVEL(2); |
190 | RESTORE(GPDR0); RESTORE(GPDR1); RESTORE(GPDR2); | 196 | RESTORE(GPDR0); RESTORE(GPDR1); RESTORE(GPDR2); |
@@ -195,7 +201,12 @@ static void pxa25x_cpu_pm_restore(unsigned long *sleep_save) | |||
195 | RESTORE(GFER0); RESTORE(GFER1); RESTORE(GFER2); | 201 | RESTORE(GFER0); RESTORE(GFER1); RESTORE(GFER2); |
196 | RESTORE(PGSR0); RESTORE(PGSR1); RESTORE(PGSR2); | 202 | RESTORE(PGSR0); RESTORE(PGSR1); RESTORE(PGSR2); |
197 | 203 | ||
204 | PSSR = PSSR_RDH | PSSR_PH; | ||
205 | |||
198 | RESTORE(CKEN); | 206 | RESTORE(CKEN); |
207 | |||
208 | ICLR = 0; | ||
209 | ICCR = 1; | ||
199 | RESTORE(ICMR); | 210 | RESTORE(ICMR); |
200 | RESTORE(PSTR); | 211 | RESTORE(PSTR); |
201 | } | 212 | } |
diff --git a/arch/mips/Kconfig b/arch/mips/Kconfig index c6fc405a6c8e..291d368ffd28 100644 --- a/arch/mips/Kconfig +++ b/arch/mips/Kconfig | |||
@@ -992,8 +992,6 @@ config BOOT_ELF64 | |||
992 | 992 | ||
993 | menu "CPU selection" | 993 | menu "CPU selection" |
994 | 994 | ||
995 | source "kernel/time/Kconfig" | ||
996 | |||
997 | choice | 995 | choice |
998 | prompt "CPU type" | 996 | prompt "CPU type" |
999 | default CPU_R4X00 | 997 | default CPU_R4X00 |
@@ -1768,6 +1766,8 @@ config NR_CPUS | |||
1768 | performance should round up your number of processors to the next | 1766 | performance should round up your number of processors to the next |
1769 | power of two. | 1767 | power of two. |
1770 | 1768 | ||
1769 | source "kernel/time/Kconfig" | ||
1770 | |||
1771 | # | 1771 | # |
1772 | # Timer Interrupt Frequency Configuration | 1772 | # Timer Interrupt Frequency Configuration |
1773 | # | 1773 | # |
diff --git a/arch/mips/au1000/common/pci.c b/arch/mips/au1000/common/pci.c index 6fa70a36a250..ce771487567d 100644 --- a/arch/mips/au1000/common/pci.c +++ b/arch/mips/au1000/common/pci.c | |||
@@ -1,8 +1,8 @@ | |||
1 | /* | 1 | /* |
2 | * BRIEF MODULE DESCRIPTION | 2 | * BRIEF MODULE DESCRIPTION |
3 | * Alchemy/AMD Au1x00 pci support. | 3 | * Alchemy/AMD Au1x00 PCI support. |
4 | * | 4 | * |
5 | * Copyright 2001,2002,2003 MontaVista Software Inc. | 5 | * Copyright 2001-2003, 2007 MontaVista Software Inc. |
6 | * Author: MontaVista Software, Inc. | 6 | * Author: MontaVista Software, Inc. |
7 | * ppopov@mvista.com or source@mvista.com | 7 | * ppopov@mvista.com or source@mvista.com |
8 | * | 8 | * |
@@ -66,6 +66,8 @@ static unsigned long virt_io_addr; | |||
66 | 66 | ||
67 | static int __init au1x_pci_setup(void) | 67 | static int __init au1x_pci_setup(void) |
68 | { | 68 | { |
69 | extern void au1x_pci_cfg_init(void); | ||
70 | |||
69 | #if defined(CONFIG_SOC_AU1500) || defined(CONFIG_SOC_AU1550) | 71 | #if defined(CONFIG_SOC_AU1500) || defined(CONFIG_SOC_AU1550) |
70 | virt_io_addr = (unsigned long)ioremap(Au1500_PCI_IO_START, | 72 | virt_io_addr = (unsigned long)ioremap(Au1500_PCI_IO_START, |
71 | Au1500_PCI_IO_END - Au1500_PCI_IO_START + 1); | 73 | Au1500_PCI_IO_END - Au1500_PCI_IO_START + 1); |
@@ -94,6 +96,8 @@ static int __init au1x_pci_setup(void) | |||
94 | set_io_port_base(virt_io_addr); | 96 | set_io_port_base(virt_io_addr); |
95 | #endif | 97 | #endif |
96 | 98 | ||
99 | au1x_pci_cfg_init(); | ||
100 | |||
97 | register_pci_controller(&au1x_controller); | 101 | register_pci_controller(&au1x_controller); |
98 | return 0; | 102 | return 0; |
99 | } | 103 | } |
diff --git a/arch/mips/kernel/head.S b/arch/mips/kernel/head.S index 236768731063..50be56c9e9ef 100644 --- a/arch/mips/kernel/head.S +++ b/arch/mips/kernel/head.S | |||
@@ -136,7 +136,8 @@ EXPORT(_stext) | |||
136 | * kernel load address. This is needed because this platform does | 136 | * kernel load address. This is needed because this platform does |
137 | * not have a ELF loader yet. | 137 | * not have a ELF loader yet. |
138 | */ | 138 | */ |
139 | __INIT | 139 | FEXPORT(__kernel_entry) |
140 | j kernel_entry | ||
140 | #endif | 141 | #endif |
141 | 142 | ||
142 | __INIT_REFOK | 143 | __INIT_REFOK |
diff --git a/arch/mips/kernel/time.c b/arch/mips/kernel/time.c index 1ecfbb7eba6c..2995be1ab3ca 100644 --- a/arch/mips/kernel/time.c +++ b/arch/mips/kernel/time.c | |||
@@ -147,9 +147,9 @@ static __init int cpu_has_mfc0_count_bug(void) | |||
147 | return 1; | 147 | return 1; |
148 | 148 | ||
149 | /* | 149 | /* |
150 | * I don't have erratas for newer R4400 so be paranoid. | 150 | * we assume newer revisions are ok |
151 | */ | 151 | */ |
152 | return 1; | 152 | return 0; |
153 | } | 153 | } |
154 | 154 | ||
155 | return 0; | 155 | return 0; |
diff --git a/arch/mips/pci/ops-au1000.c b/arch/mips/pci/ops-au1000.c index 6b29904acf45..1314bd58f036 100644 --- a/arch/mips/pci/ops-au1000.c +++ b/arch/mips/pci/ops-au1000.c | |||
@@ -1,8 +1,8 @@ | |||
1 | /* | 1 | /* |
2 | * BRIEF MODULE DESCRIPTION | 2 | * BRIEF MODULE DESCRIPTION |
3 | * Alchemy/AMD Au1x00 pci support. | 3 | * Alchemy/AMD Au1x00 PCI support. |
4 | * | 4 | * |
5 | * Copyright 2001,2002,2003 MontaVista Software Inc. | 5 | * Copyright 2001-2003, 2007 MontaVista Software Inc. |
6 | * Author: MontaVista Software, Inc. | 6 | * Author: MontaVista Software, Inc. |
7 | * ppopov@mvista.com or source@mvista.com | 7 | * ppopov@mvista.com or source@mvista.com |
8 | * | 8 | * |
@@ -69,10 +69,27 @@ void mod_wired_entry(int entry, unsigned long entrylo0, | |||
69 | write_c0_pagemask(old_pagemask); | 69 | write_c0_pagemask(old_pagemask); |
70 | } | 70 | } |
71 | 71 | ||
72 | struct vm_struct *pci_cfg_vm; | 72 | static struct vm_struct *pci_cfg_vm; |
73 | static int pci_cfg_wired_entry; | 73 | static int pci_cfg_wired_entry; |
74 | static int first_cfg = 1; | 74 | static unsigned long last_entryLo0, last_entryLo1; |
75 | unsigned long last_entryLo0, last_entryLo1; | 75 | |
76 | /* | ||
77 | * We can't ioremap the entire pci config space because it's too large. | ||
78 | * Nor can we call ioremap dynamically because some device drivers use | ||
79 | * the PCI config routines from within interrupt handlers and that | ||
80 | * becomes a problem in get_vm_area(). We use one wired TLB to handle | ||
81 | * all config accesses for all busses. | ||
82 | */ | ||
83 | void __init au1x_pci_cfg_init(void) | ||
84 | { | ||
85 | /* Reserve a wired entry for PCI config accesses */ | ||
86 | pci_cfg_vm = get_vm_area(0x2000, VM_IOREMAP); | ||
87 | if (!pci_cfg_vm) | ||
88 | panic(KERN_ERR "PCI unable to get vm area\n"); | ||
89 | pci_cfg_wired_entry = read_c0_wired(); | ||
90 | add_wired_entry(0, 0, (unsigned long)pci_cfg_vm->addr, PM_4K); | ||
91 | last_entryLo0 = last_entryLo1 = 0xffffffff; | ||
92 | } | ||
76 | 93 | ||
77 | static int config_access(unsigned char access_type, struct pci_bus *bus, | 94 | static int config_access(unsigned char access_type, struct pci_bus *bus, |
78 | unsigned int dev_fn, unsigned char where, | 95 | unsigned int dev_fn, unsigned char where, |
@@ -97,27 +114,6 @@ static int config_access(unsigned char access_type, struct pci_bus *bus, | |||
97 | Au1500_PCI_STATCMD); | 114 | Au1500_PCI_STATCMD); |
98 | au_sync_udelay(1); | 115 | au_sync_udelay(1); |
99 | 116 | ||
100 | /* | ||
101 | * We can't ioremap the entire pci config space because it's | ||
102 | * too large. Nor can we call ioremap dynamically because some | ||
103 | * device drivers use the pci config routines from within | ||
104 | * interrupt handlers and that becomes a problem in get_vm_area(). | ||
105 | * We use one wired tlb to handle all config accesses for all | ||
106 | * busses. To improve performance, if the current device | ||
107 | * is the same as the last device accessed, we don't touch the | ||
108 | * tlb. | ||
109 | */ | ||
110 | if (first_cfg) { | ||
111 | /* reserve a wired entry for pci config accesses */ | ||
112 | first_cfg = 0; | ||
113 | pci_cfg_vm = get_vm_area(0x2000, VM_IOREMAP); | ||
114 | if (!pci_cfg_vm) | ||
115 | panic(KERN_ERR "PCI unable to get vm area\n"); | ||
116 | pci_cfg_wired_entry = read_c0_wired(); | ||
117 | add_wired_entry(0, 0, (unsigned long)pci_cfg_vm->addr, PM_4K); | ||
118 | last_entryLo0 = last_entryLo1 = 0xffffffff; | ||
119 | } | ||
120 | |||
121 | /* Allow board vendors to implement their own off-chip idsel. | 117 | /* Allow board vendors to implement their own off-chip idsel. |
122 | * If it doesn't succeed, may as well bail out at this point. | 118 | * If it doesn't succeed, may as well bail out at this point. |
123 | */ | 119 | */ |
@@ -144,9 +140,12 @@ static int config_access(unsigned char access_type, struct pci_bus *bus, | |||
144 | /* page boundary */ | 140 | /* page boundary */ |
145 | cfg_base = cfg_base & PAGE_MASK; | 141 | cfg_base = cfg_base & PAGE_MASK; |
146 | 142 | ||
143 | /* | ||
144 | * To improve performance, if the current device is the same as | ||
145 | * the last device accessed, we don't touch the TLB. | ||
146 | */ | ||
147 | entryLo0 = (6 << 26) | (cfg_base >> 6) | (2 << 3) | 7; | 147 | entryLo0 = (6 << 26) | (cfg_base >> 6) | (2 << 3) | 7; |
148 | entryLo1 = (6 << 26) | (cfg_base >> 6) | (0x1000 >> 6) | (2 << 3) | 7; | 148 | entryLo1 = (6 << 26) | (cfg_base >> 6) | (0x1000 >> 6) | (2 << 3) | 7; |
149 | |||
150 | if ((entryLo0 != last_entryLo0) || (entryLo1 != last_entryLo1)) { | 149 | if ((entryLo0 != last_entryLo0) || (entryLo1 != last_entryLo1)) { |
151 | mod_wired_entry(pci_cfg_wired_entry, entryLo0, entryLo1, | 150 | mod_wired_entry(pci_cfg_wired_entry, entryLo0, entryLo1, |
152 | (unsigned long)pci_cfg_vm->addr, PM_4K); | 151 | (unsigned long)pci_cfg_vm->addr, PM_4K); |
diff --git a/arch/mips/pci/ops-mace.c b/arch/mips/pci/ops-mace.c index fe5451449304..e95881897ec9 100644 --- a/arch/mips/pci/ops-mace.c +++ b/arch/mips/pci/ops-mace.c | |||
@@ -42,6 +42,10 @@ static int | |||
42 | mace_pci_read_config(struct pci_bus *bus, unsigned int devfn, | 42 | mace_pci_read_config(struct pci_bus *bus, unsigned int devfn, |
43 | int reg, int size, u32 *val) | 43 | int reg, int size, u32 *val) |
44 | { | 44 | { |
45 | u32 control = mace->pci.control; | ||
46 | |||
47 | /* disable master aborts interrupts during config read */ | ||
48 | mace->pci.control = control & ~MACEPCI_CONTROL_MAR_INT; | ||
45 | mace->pci.config_addr = mkaddr(bus, devfn, reg); | 49 | mace->pci.config_addr = mkaddr(bus, devfn, reg); |
46 | switch (size) { | 50 | switch (size) { |
47 | case 1: | 51 | case 1: |
@@ -54,6 +58,9 @@ mace_pci_read_config(struct pci_bus *bus, unsigned int devfn, | |||
54 | *val = mace->pci.config_data.l; | 58 | *val = mace->pci.config_data.l; |
55 | break; | 59 | break; |
56 | } | 60 | } |
61 | /* ack possible master abort */ | ||
62 | mace->pci.error &= ~MACEPCI_ERROR_MASTER_ABORT; | ||
63 | mace->pci.control = control; | ||
57 | 64 | ||
58 | DPRINTK("read%d: reg=%08x,val=%02x\n", size * 8, reg, *val); | 65 | DPRINTK("read%d: reg=%08x,val=%02x\n", size * 8, reg, *val); |
59 | 66 | ||
diff --git a/arch/mips/pci/pci-ip32.c b/arch/mips/pci/pci-ip32.c index 618ea7dbc474..532b561b4442 100644 --- a/arch/mips/pci/pci-ip32.c +++ b/arch/mips/pci/pci-ip32.c | |||
@@ -119,6 +119,7 @@ static struct pci_controller mace_pci_controller = { | |||
119 | .iommu = 0, | 119 | .iommu = 0, |
120 | .mem_offset = MACE_PCI_MEM_OFFSET, | 120 | .mem_offset = MACE_PCI_MEM_OFFSET, |
121 | .io_offset = 0, | 121 | .io_offset = 0, |
122 | .io_map_base = CKSEG1ADDR(MACEPCI_LOW_IO), | ||
122 | }; | 123 | }; |
123 | 124 | ||
124 | static int __init mace_init(void) | 125 | static int __init mace_init(void) |
@@ -135,7 +136,8 @@ static int __init mace_init(void) | |||
135 | BUG_ON(request_irq(MACE_PCI_BRIDGE_IRQ, macepci_error, 0, | 136 | BUG_ON(request_irq(MACE_PCI_BRIDGE_IRQ, macepci_error, 0, |
136 | "MACE PCI error", NULL)); | 137 | "MACE PCI error", NULL)); |
137 | 138 | ||
138 | iomem_resource = mace_pci_mem_resource; | 139 | /* extend memory resources */ |
140 | iomem_resource.end = mace_pci_mem_resource.end; | ||
139 | ioport_resource = mace_pci_io_resource; | 141 | ioport_resource = mace_pci_io_resource; |
140 | 142 | ||
141 | register_pci_controller(&mace_pci_controller); | 143 | register_pci_controller(&mace_pci_controller); |
diff --git a/arch/mips/sgi-ip32/ip32-irq.c b/arch/mips/sgi-ip32/ip32-irq.c index cab7cc22ab67..b0ea0e43ba48 100644 --- a/arch/mips/sgi-ip32/ip32-irq.c +++ b/arch/mips/sgi-ip32/ip32-irq.c | |||
@@ -426,7 +426,6 @@ static void ip32_irq0(void) | |||
426 | 426 | ||
427 | crime_int = crime->istat & crime_mask; | 427 | crime_int = crime->istat & crime_mask; |
428 | irq = MACE_VID_IN1_IRQ + __ffs(crime_int); | 428 | irq = MACE_VID_IN1_IRQ + __ffs(crime_int); |
429 | crime_int = 1 << irq; | ||
430 | 429 | ||
431 | if (crime_int & CRIME_MACEISA_INT_MASK) { | 430 | if (crime_int & CRIME_MACEISA_INT_MASK) { |
432 | unsigned long mace_int = mace->perif.ctrl.istat; | 431 | unsigned long mace_int = mace->perif.ctrl.istat; |
diff --git a/arch/mips/sgi-ip32/ip32-platform.c b/arch/mips/sgi-ip32/ip32-platform.c index 77febd68fcd4..89a71f49b692 100644 --- a/arch/mips/sgi-ip32/ip32-platform.c +++ b/arch/mips/sgi-ip32/ip32-platform.c | |||
@@ -13,21 +13,22 @@ | |||
13 | #include <asm/ip32/mace.h> | 13 | #include <asm/ip32/mace.h> |
14 | #include <asm/ip32/ip32_ints.h> | 14 | #include <asm/ip32/ip32_ints.h> |
15 | 15 | ||
16 | /* | 16 | #define MACEISA_SERIAL1_OFFS offsetof(struct sgi_mace, isa.serial1) |
17 | * .iobase isn't a constant (in the sense of C) so we fill it in at runtime. | 17 | #define MACEISA_SERIAL2_OFFS offsetof(struct sgi_mace, isa.serial2) |
18 | */ | 18 | |
19 | #define MACE_PORT(int) \ | 19 | #define MACE_PORT(offset,_irq) \ |
20 | { \ | 20 | { \ |
21 | .irq = int, \ | 21 | .mapbase = MACE_BASE + offset, \ |
22 | .irq = _irq, \ | ||
22 | .uartclk = 1843200, \ | 23 | .uartclk = 1843200, \ |
23 | .iotype = UPIO_MEM, \ | 24 | .iotype = UPIO_MEM, \ |
24 | .flags = UPF_SKIP_TEST, \ | 25 | .flags = UPF_SKIP_TEST|UPF_IOREMAP, \ |
25 | .regshift = 8, \ | 26 | .regshift = 8, \ |
26 | } | 27 | } |
27 | 28 | ||
28 | static struct plat_serial8250_port uart8250_data[] = { | 29 | static struct plat_serial8250_port uart8250_data[] = { |
29 | MACE_PORT(MACEISA_SERIAL1_IRQ), | 30 | MACE_PORT(MACEISA_SERIAL1_OFFS, MACEISA_SERIAL1_IRQ), |
30 | MACE_PORT(MACEISA_SERIAL2_IRQ), | 31 | MACE_PORT(MACEISA_SERIAL2_OFFS, MACEISA_SERIAL2_IRQ), |
31 | { }, | 32 | { }, |
32 | }; | 33 | }; |
33 | 34 | ||
@@ -41,9 +42,6 @@ static struct platform_device uart8250_device = { | |||
41 | 42 | ||
42 | static int __init uart8250_init(void) | 43 | static int __init uart8250_init(void) |
43 | { | 44 | { |
44 | uart8250_data[0].membase = (void __iomem *) &mace->isa.serial1; | ||
45 | uart8250_data[1].membase = (void __iomem *) &mace->isa.serial2; | ||
46 | |||
47 | return platform_device_register(&uart8250_device); | 45 | return platform_device_register(&uart8250_device); |
48 | } | 46 | } |
49 | 47 | ||
diff --git a/drivers/media/video/bt8xx/bttv-driver.c b/drivers/media/video/bt8xx/bttv-driver.c index c02d92deacd2..581a3c955739 100644 --- a/drivers/media/video/bt8xx/bttv-driver.c +++ b/drivers/media/video/bt8xx/bttv-driver.c | |||
@@ -3063,11 +3063,10 @@ static int bttv_do_ioctl(struct inode *inode, struct file *file, | |||
3063 | struct video_mbuf *mbuf = arg; | 3063 | struct video_mbuf *mbuf = arg; |
3064 | unsigned int i; | 3064 | unsigned int i; |
3065 | 3065 | ||
3066 | mutex_lock(&fh->cap.lock); | ||
3067 | retval = videobuf_mmap_setup(&fh->cap,gbuffers,gbufsize, | 3066 | retval = videobuf_mmap_setup(&fh->cap,gbuffers,gbufsize, |
3068 | V4L2_MEMORY_MMAP); | 3067 | V4L2_MEMORY_MMAP); |
3069 | if (retval < 0) | 3068 | if (retval < 0) |
3070 | goto fh_unlock_and_return; | 3069 | return retval; |
3071 | 3070 | ||
3072 | gbuffers = retval; | 3071 | gbuffers = retval; |
3073 | memset(mbuf,0,sizeof(*mbuf)); | 3072 | memset(mbuf,0,sizeof(*mbuf)); |
@@ -3075,7 +3074,6 @@ static int bttv_do_ioctl(struct inode *inode, struct file *file, | |||
3075 | mbuf->size = gbuffers * gbufsize; | 3074 | mbuf->size = gbuffers * gbufsize; |
3076 | for (i = 0; i < gbuffers; i++) | 3075 | for (i = 0; i < gbuffers; i++) |
3077 | mbuf->offsets[i] = i * gbufsize; | 3076 | mbuf->offsets[i] = i * gbufsize; |
3078 | mutex_unlock(&fh->cap.lock); | ||
3079 | return 0; | 3077 | return 0; |
3080 | } | 3078 | } |
3081 | case VIDIOCMCAPTURE: | 3079 | case VIDIOCMCAPTURE: |
diff --git a/drivers/media/video/ivtv/ivtv-driver.c b/drivers/media/video/ivtv/ivtv-driver.c index 6d2dd8764f81..10d6faf8ccda 100644 --- a/drivers/media/video/ivtv/ivtv-driver.c +++ b/drivers/media/video/ivtv/ivtv-driver.c | |||
@@ -1076,6 +1076,10 @@ static int __devinit ivtv_probe(struct pci_dev *dev, | |||
1076 | ivtv_process_eeprom(itv); | 1076 | ivtv_process_eeprom(itv); |
1077 | } | 1077 | } |
1078 | 1078 | ||
1079 | /* The mspx4xx chips need a longer delay for some reason */ | ||
1080 | if (!(itv->hw_flags & IVTV_HW_MSP34XX)) | ||
1081 | itv->i2c_algo.udelay = 5; | ||
1082 | |||
1079 | if (itv->std == 0) { | 1083 | if (itv->std == 0) { |
1080 | itv->std = V4L2_STD_NTSC_M; | 1084 | itv->std = V4L2_STD_NTSC_M; |
1081 | } | 1085 | } |
diff --git a/drivers/media/video/ivtv/ivtv-i2c.c b/drivers/media/video/ivtv/ivtv-i2c.c index 44678fe27a04..36e54f78aa2a 100644 --- a/drivers/media/video/ivtv/ivtv-i2c.c +++ b/drivers/media/video/ivtv/ivtv-i2c.c | |||
@@ -541,7 +541,7 @@ static const struct i2c_algo_bit_data ivtv_i2c_algo_template = { | |||
541 | .setscl = ivtv_setscl_old, | 541 | .setscl = ivtv_setscl_old, |
542 | .getsda = ivtv_getsda_old, | 542 | .getsda = ivtv_getsda_old, |
543 | .getscl = ivtv_getscl_old, | 543 | .getscl = ivtv_getscl_old, |
544 | .udelay = 5, | 544 | .udelay = 10, |
545 | .timeout = 200, | 545 | .timeout = 200, |
546 | }; | 546 | }; |
547 | 547 | ||
@@ -718,9 +718,6 @@ int init_ivtv_i2c(struct ivtv *itv) | |||
718 | sizeof(struct i2c_adapter)); | 718 | sizeof(struct i2c_adapter)); |
719 | memcpy(&itv->i2c_algo, &ivtv_i2c_algo_template, | 719 | memcpy(&itv->i2c_algo, &ivtv_i2c_algo_template, |
720 | sizeof(struct i2c_algo_bit_data)); | 720 | sizeof(struct i2c_algo_bit_data)); |
721 | /* The mspx4xx chips need a longer delay for some reason */ | ||
722 | if (itv->hw_flags & IVTV_HW_MSP34XX) | ||
723 | itv->i2c_algo.udelay = 10; | ||
724 | itv->i2c_algo.data = itv; | 721 | itv->i2c_algo.data = itv; |
725 | itv->i2c_adap.algo_data = &itv->i2c_algo; | 722 | itv->i2c_adap.algo_data = &itv->i2c_algo; |
726 | } | 723 | } |
diff --git a/fs/binfmt_elf.c b/fs/binfmt_elf.c index ba8de7ca260b..f0b3171842f2 100644 --- a/fs/binfmt_elf.c +++ b/fs/binfmt_elf.c | |||
@@ -1384,7 +1384,7 @@ static void fill_prstatus(struct elf_prstatus *prstatus, | |||
1384 | prstatus->pr_sigpend = p->pending.signal.sig[0]; | 1384 | prstatus->pr_sigpend = p->pending.signal.sig[0]; |
1385 | prstatus->pr_sighold = p->blocked.sig[0]; | 1385 | prstatus->pr_sighold = p->blocked.sig[0]; |
1386 | prstatus->pr_pid = task_pid_vnr(p); | 1386 | prstatus->pr_pid = task_pid_vnr(p); |
1387 | prstatus->pr_ppid = task_pid_vnr(p->parent); | 1387 | prstatus->pr_ppid = task_pid_vnr(p->real_parent); |
1388 | prstatus->pr_pgrp = task_pgrp_vnr(p); | 1388 | prstatus->pr_pgrp = task_pgrp_vnr(p); |
1389 | prstatus->pr_sid = task_session_vnr(p); | 1389 | prstatus->pr_sid = task_session_vnr(p); |
1390 | if (thread_group_leader(p)) { | 1390 | if (thread_group_leader(p)) { |
@@ -1430,7 +1430,7 @@ static int fill_psinfo(struct elf_prpsinfo *psinfo, struct task_struct *p, | |||
1430 | psinfo->pr_psargs[len] = 0; | 1430 | psinfo->pr_psargs[len] = 0; |
1431 | 1431 | ||
1432 | psinfo->pr_pid = task_pid_vnr(p); | 1432 | psinfo->pr_pid = task_pid_vnr(p); |
1433 | psinfo->pr_ppid = task_pid_vnr(p->parent); | 1433 | psinfo->pr_ppid = task_pid_vnr(p->real_parent); |
1434 | psinfo->pr_pgrp = task_pgrp_vnr(p); | 1434 | psinfo->pr_pgrp = task_pgrp_vnr(p); |
1435 | psinfo->pr_sid = task_session_vnr(p); | 1435 | psinfo->pr_sid = task_session_vnr(p); |
1436 | 1436 | ||
diff --git a/kernel/acct.c b/kernel/acct.c index cf19547cc9e4..521dfa53cb99 100644 --- a/kernel/acct.c +++ b/kernel/acct.c | |||
@@ -482,7 +482,7 @@ static void do_acct_process(struct file *file) | |||
482 | #endif | 482 | #endif |
483 | #if ACCT_VERSION==3 | 483 | #if ACCT_VERSION==3 |
484 | ac.ac_pid = current->tgid; | 484 | ac.ac_pid = current->tgid; |
485 | ac.ac_ppid = current->parent->tgid; | 485 | ac.ac_ppid = current->real_parent->tgid; |
486 | #endif | 486 | #endif |
487 | 487 | ||
488 | spin_lock_irq(¤t->sighand->siglock); | 488 | spin_lock_irq(¤t->sighand->siglock); |
diff --git a/sound/pci/hda/hda_intel.c b/sound/pci/hda/hda_intel.c index 62b9fb386903..3fa0f9704909 100644 --- a/sound/pci/hda/hda_intel.c +++ b/sound/pci/hda/hda_intel.c | |||
@@ -555,8 +555,7 @@ static unsigned int azx_rirb_get_response(struct hda_codec *codec) | |||
555 | } | 555 | } |
556 | if (!chip->rirb.cmds) | 556 | if (!chip->rirb.cmds) |
557 | return chip->rirb.res; /* the last value */ | 557 | return chip->rirb.res; /* the last value */ |
558 | udelay(10); | 558 | schedule_timeout_uninterruptible(1); |
559 | cond_resched(); | ||
560 | } while (time_after_eq(timeout, jiffies)); | 559 | } while (time_after_eq(timeout, jiffies)); |
561 | 560 | ||
562 | if (chip->msi) { | 561 | if (chip->msi) { |