diff options
Diffstat (limited to 'include')
69 files changed, 1647 insertions, 237 deletions
diff --git a/include/asm-arm/arch-at91rm9200/gpio.h b/include/asm-arm/arch-at91rm9200/gpio.h index a011d27876a2..e09d6528fadf 100644 --- a/include/asm-arm/arch-at91rm9200/gpio.h +++ b/include/asm-arm/arch-at91rm9200/gpio.h | |||
@@ -179,6 +179,7 @@ | |||
179 | 179 | ||
180 | #ifndef __ASSEMBLY__ | 180 | #ifndef __ASSEMBLY__ |
181 | /* setup setup routines, called from board init or driver probe() */ | 181 | /* setup setup routines, called from board init or driver probe() */ |
182 | extern int __init_or_module at91_set_GPIO_periph(unsigned pin, int use_pullup); | ||
182 | extern int __init_or_module at91_set_A_periph(unsigned pin, int use_pullup); | 183 | extern int __init_or_module at91_set_A_periph(unsigned pin, int use_pullup); |
183 | extern int __init_or_module at91_set_B_periph(unsigned pin, int use_pullup); | 184 | extern int __init_or_module at91_set_B_periph(unsigned pin, int use_pullup); |
184 | extern int __init_or_module at91_set_gpio_input(unsigned pin, int use_pullup); | 185 | extern int __init_or_module at91_set_gpio_input(unsigned pin, int use_pullup); |
@@ -193,7 +194,50 @@ extern int at91_get_gpio_value(unsigned pin); | |||
193 | /* callable only from core power-management code */ | 194 | /* callable only from core power-management code */ |
194 | extern void at91_gpio_suspend(void); | 195 | extern void at91_gpio_suspend(void); |
195 | extern void at91_gpio_resume(void); | 196 | extern void at91_gpio_resume(void); |
196 | #endif | ||
197 | 197 | ||
198 | #endif | 198 | /*-------------------------------------------------------------------------*/ |
199 | |||
200 | /* wrappers for "new style" GPIO calls. the old AT91-specfic ones should | ||
201 | * eventually be removed (along with this errno.h inclusion), and the | ||
202 | * gpio request/free calls should probably be implemented. | ||
203 | */ | ||
204 | |||
205 | #include <asm/errno.h> | ||
206 | |||
207 | static inline int gpio_request(unsigned gpio, const char *label) | ||
208 | { | ||
209 | return 0; | ||
210 | } | ||
211 | |||
212 | static inline void gpio_free(unsigned gpio) | ||
213 | { | ||
214 | } | ||
215 | |||
216 | extern int gpio_direction_input(unsigned gpio); | ||
217 | extern int gpio_direction_output(unsigned gpio); | ||
199 | 218 | ||
219 | static inline int gpio_get_value(unsigned gpio) | ||
220 | { | ||
221 | return at91_get_gpio_value(gpio); | ||
222 | } | ||
223 | |||
224 | static inline void gpio_set_value(unsigned gpio, int value) | ||
225 | { | ||
226 | at91_set_gpio_value(gpio, value); | ||
227 | } | ||
228 | |||
229 | #include <asm-generic/gpio.h> /* cansleep wrappers */ | ||
230 | |||
231 | static inline int gpio_to_irq(unsigned gpio) | ||
232 | { | ||
233 | return gpio; | ||
234 | } | ||
235 | |||
236 | static inline int irq_to_gpio(unsigned irq) | ||
237 | { | ||
238 | return irq; | ||
239 | } | ||
240 | |||
241 | #endif /* __ASSEMBLY__ */ | ||
242 | |||
243 | #endif | ||
diff --git a/include/asm-arm/arch-imx/spi_imx.h b/include/asm-arm/arch-imx/spi_imx.h new file mode 100644 index 000000000000..2165449e976e --- /dev/null +++ b/include/asm-arm/arch-imx/spi_imx.h | |||
@@ -0,0 +1,72 @@ | |||
1 | /* | ||
2 | * include/asm-arm/arch-imx/spi_imx.h | ||
3 | * | ||
4 | * Copyright (C) 2006 SWAPP | ||
5 | * Andrea Paterniani <a.paterniani@swapp-eng.it> | ||
6 | * | ||
7 | * Initial version inspired by: | ||
8 | * linux-2.6.17-rc3-mm1/include/asm-arm/arch-pxa/pxa2xx_spi.h | ||
9 | * | ||
10 | * This program is free software; you can redistribute it and/or modify | ||
11 | * it under the terms of the GNU General Public License as published by | ||
12 | * the Free Software Foundation; either version 2 of the License, or | ||
13 | * (at your option) any later version. | ||
14 | * | ||
15 | * This program is distributed in the hope that it will be useful, | ||
16 | * but WITHOUT ANY WARRANTY; without even the implied warranty of | ||
17 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | ||
18 | * GNU General Public License for more details. | ||
19 | * | ||
20 | * You should have received a copy of the GNU General Public License | ||
21 | * along with this program; if not, write to the Free Software | ||
22 | * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. | ||
23 | */ | ||
24 | |||
25 | #ifndef SPI_IMX_H_ | ||
26 | #define SPI_IMX_H_ | ||
27 | |||
28 | |||
29 | /*-------------------------------------------------------------------------*/ | ||
30 | /** | ||
31 | * struct spi_imx_master - device.platform_data for SPI controller devices. | ||
32 | * @num_chipselect: chipselects are used to distinguish individual | ||
33 | * SPI slaves, and are numbered from zero to num_chipselects - 1. | ||
34 | * each slave has a chipselect signal, but it's common that not | ||
35 | * every chipselect is connected to a slave. | ||
36 | * @enable_dma: if true enables DMA driven transfers. | ||
37 | */ | ||
38 | struct spi_imx_master { | ||
39 | u8 num_chipselect; | ||
40 | u8 enable_dma:1; | ||
41 | }; | ||
42 | /*-------------------------------------------------------------------------*/ | ||
43 | |||
44 | |||
45 | /*-------------------------------------------------------------------------*/ | ||
46 | /** | ||
47 | * struct spi_imx_chip - spi_board_info.controller_data for SPI | ||
48 | * slave devices, copied to spi_device.controller_data. | ||
49 | * @enable_loopback : used for test purpouse to internally connect RX and TX | ||
50 | * sections. | ||
51 | * @enable_dma : enables dma transfer (provided that controller driver has | ||
52 | * dma enabled too). | ||
53 | * @ins_ss_pulse : enable /SS pulse insertion between SPI burst. | ||
54 | * @bclk_wait : number of bclk waits between each bits_per_word SPI burst. | ||
55 | * @cs_control : function pointer to board-specific function to assert/deassert | ||
56 | * I/O port to control HW generation of devices chip-select. | ||
57 | */ | ||
58 | struct spi_imx_chip { | ||
59 | u8 enable_loopback:1; | ||
60 | u8 enable_dma:1; | ||
61 | u8 ins_ss_pulse:1; | ||
62 | u16 bclk_wait:15; | ||
63 | void (*cs_control)(u32 control); | ||
64 | }; | ||
65 | |||
66 | /* Chip-select state */ | ||
67 | #define SPI_CS_ASSERT (1 << 0) | ||
68 | #define SPI_CS_DEASSERT (1 << 1) | ||
69 | /*-------------------------------------------------------------------------*/ | ||
70 | |||
71 | |||
72 | #endif /* SPI_IMX_H_*/ | ||
diff --git a/include/asm-arm/arch-omap/gpio.h b/include/asm-arm/arch-omap/gpio.h index f486b72070ea..3762a6ae6a7f 100644 --- a/include/asm-arm/arch-omap/gpio.h +++ b/include/asm-arm/arch-omap/gpio.h | |||
@@ -76,4 +76,70 @@ extern void omap_set_gpio_direction(int gpio, int is_input); | |||
76 | extern void omap_set_gpio_dataout(int gpio, int enable); | 76 | extern void omap_set_gpio_dataout(int gpio, int enable); |
77 | extern int omap_get_gpio_datain(int gpio); | 77 | extern int omap_get_gpio_datain(int gpio); |
78 | 78 | ||
79 | /*-------------------------------------------------------------------------*/ | ||
80 | |||
81 | /* wrappers for "new style" GPIO calls. the old OMAP-specfic ones should | ||
82 | * eventually be removed (along with this errno.h inclusion), and maybe | ||
83 | * gpios should put MPUIOs last too. | ||
84 | */ | ||
85 | |||
86 | #include <asm/errno.h> | ||
87 | |||
88 | static inline int gpio_request(unsigned gpio, const char *label) | ||
89 | { | ||
90 | return omap_request_gpio(gpio); | ||
91 | } | ||
92 | |||
93 | static inline void gpio_free(unsigned gpio) | ||
94 | { | ||
95 | omap_free_gpio(gpio); | ||
96 | } | ||
97 | |||
98 | static inline int __gpio_set_direction(unsigned gpio, int is_input) | ||
99 | { | ||
100 | if (cpu_class_is_omap2()) { | ||
101 | if (gpio > OMAP_MAX_GPIO_LINES) | ||
102 | return -EINVAL; | ||
103 | } else { | ||
104 | if (gpio > (OMAP_MAX_GPIO_LINES + 16 /* MPUIO */)) | ||
105 | return -EINVAL; | ||
106 | } | ||
107 | omap_set_gpio_direction(gpio, is_input); | ||
108 | return 0; | ||
109 | } | ||
110 | |||
111 | static inline int gpio_direction_input(unsigned gpio) | ||
112 | { | ||
113 | return __gpio_set_direction(gpio, 1); | ||
114 | } | ||
115 | |||
116 | static inline int gpio_direction_output(unsigned gpio) | ||
117 | { | ||
118 | return __gpio_set_direction(gpio, 0); | ||
119 | } | ||
120 | |||
121 | static inline int gpio_get_value(unsigned gpio) | ||
122 | { | ||
123 | return omap_get_gpio_datain(gpio); | ||
124 | } | ||
125 | |||
126 | static inline void gpio_set_value(unsigned gpio, int value) | ||
127 | { | ||
128 | omap_set_gpio_dataout(gpio, value); | ||
129 | } | ||
130 | |||
131 | #include <asm-generic/gpio.h> /* cansleep wrappers */ | ||
132 | |||
133 | static inline int gpio_to_irq(unsigned gpio) | ||
134 | { | ||
135 | return OMAP_GPIO_IRQ(gpio); | ||
136 | } | ||
137 | |||
138 | static inline int irq_to_gpio(unsigned irq) | ||
139 | { | ||
140 | if (cpu_class_is_omap1() && (irq < (IH_MPUIO_BASE + 16))) | ||
141 | return (irq - IH_MPUIO_BASE) + OMAP_MAX_GPIO_LINES; | ||
142 | return irq - IH_GPIO_BASE; | ||
143 | } | ||
144 | |||
79 | #endif | 145 | #endif |
diff --git a/include/asm-arm/arch-pxa/gpio.h b/include/asm-arm/arch-pxa/gpio.h new file mode 100644 index 000000000000..e67c23821017 --- /dev/null +++ b/include/asm-arm/arch-pxa/gpio.h | |||
@@ -0,0 +1,72 @@ | |||
1 | /* | ||
2 | * linux/include/asm-arm/arch-pxa/gpio.h | ||
3 | * | ||
4 | * PXA GPIO wrappers for arch-neutral GPIO calls | ||
5 | * | ||
6 | * Written by Philipp Zabel <philipp.zabel@gmail.com> | ||
7 | * | ||
8 | * This program is free software; you can redistribute it and/or modify | ||
9 | * it under the terms of the GNU General Public License as published by | ||
10 | * the Free Software Foundation; either version 2 of the License, or | ||
11 | * (at your option) any later version. | ||
12 | * | ||
13 | * This program is distributed in the hope that it will be useful, | ||
14 | * but WITHOUT ANY WARRANTY; without even the implied warranty of | ||
15 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | ||
16 | * GNU General Public License for more details. | ||
17 | * | ||
18 | * You should have received a copy of the GNU General Public License | ||
19 | * along with this program; if not, write to the Free Software | ||
20 | * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA | ||
21 | * | ||
22 | */ | ||
23 | |||
24 | #ifndef __ASM_ARCH_PXA_GPIO_H | ||
25 | #define __ASM_ARCH_PXA_GPIO_H | ||
26 | |||
27 | #include <asm/arch/pxa-regs.h> | ||
28 | #include <asm/arch/irqs.h> | ||
29 | #include <asm/arch/hardware.h> | ||
30 | |||
31 | #include <asm/errno.h> | ||
32 | |||
33 | static inline int gpio_request(unsigned gpio, const char *label) | ||
34 | { | ||
35 | return 0; | ||
36 | } | ||
37 | |||
38 | static inline void gpio_free(unsigned gpio) | ||
39 | { | ||
40 | return; | ||
41 | } | ||
42 | |||
43 | static inline int gpio_direction_input(unsigned gpio) | ||
44 | { | ||
45 | if (gpio > PXA_LAST_GPIO) | ||
46 | return -EINVAL; | ||
47 | pxa_gpio_mode(gpio | GPIO_IN); | ||
48 | } | ||
49 | |||
50 | static inline int gpio_direction_output(unsigned gpio) | ||
51 | { | ||
52 | if (gpio > PXA_LAST_GPIO) | ||
53 | return -EINVAL; | ||
54 | pxa_gpio_mode(gpio | GPIO_OUT); | ||
55 | } | ||
56 | |||
57 | /* REVISIT these macros are correct, but suffer code explosion | ||
58 | * for non-constant parameters. Provide out-line versions too. | ||
59 | */ | ||
60 | #define gpio_get_value(gpio) \ | ||
61 | (GPLR(gpio) & GPIO_bit(gpio)) | ||
62 | |||
63 | #define gpio_set_value(gpio,value) \ | ||
64 | ((value) ? (GPSR(gpio) = GPIO_bit(gpio)):(GPCR(gpio) = GPIO_bit(gpio))) | ||
65 | |||
66 | #include <asm-generic/gpio.h> /* cansleep wrappers */ | ||
67 | |||
68 | #define gpio_to_irq(gpio) IRQ_GPIO(gpio) | ||
69 | #define irq_to_gpio(irq) IRQ_TO_GPIO(irq) | ||
70 | |||
71 | |||
72 | #endif | ||
diff --git a/include/asm-arm/arch-s3c2410/gpio.h b/include/asm-arm/arch-s3c2410/gpio.h new file mode 100644 index 000000000000..67b8b9ab22e9 --- /dev/null +++ b/include/asm-arm/arch-s3c2410/gpio.h | |||
@@ -0,0 +1,65 @@ | |||
1 | /* | ||
2 | * linux/include/asm-arm/arch-pxa/gpio.h | ||
3 | * | ||
4 | * S3C2400 GPIO wrappers for arch-neutral GPIO calls | ||
5 | * | ||
6 | * Written by Philipp Zabel <philipp.zabel@gmail.com> | ||
7 | * | ||
8 | * This program is free software; you can redistribute it and/or modify | ||
9 | * it under the terms of the GNU General Public License as published by | ||
10 | * the Free Software Foundation; either version 2 of the License, or | ||
11 | * (at your option) any later version. | ||
12 | * | ||
13 | * This program is distributed in the hope that it will be useful, | ||
14 | * but WITHOUT ANY WARRANTY; without even the implied warranty of | ||
15 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | ||
16 | * GNU General Public License for more details. | ||
17 | * | ||
18 | * You should have received a copy of the GNU General Public License | ||
19 | * along with this program; if not, write to the Free Software | ||
20 | * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA | ||
21 | * | ||
22 | */ | ||
23 | |||
24 | #ifndef __ASM_ARCH_PXA_GPIO_H | ||
25 | #define __ASM_ARCH_PXA_GPIO_H | ||
26 | |||
27 | #include <asm/arch/pxa-regs.h> | ||
28 | #include <asm/arch/irqs.h> | ||
29 | #include <asm/arch/hardware.h> | ||
30 | |||
31 | #include <asm/errno.h> | ||
32 | |||
33 | static inline int gpio_request(unsigned gpio, const char *label) | ||
34 | { | ||
35 | return 0; | ||
36 | } | ||
37 | |||
38 | static inline void gpio_free(unsigned gpio) | ||
39 | { | ||
40 | return; | ||
41 | } | ||
42 | |||
43 | static inline int gpio_direction_input(unsigned gpio) | ||
44 | { | ||
45 | s3c2410_gpio_cfgpin(gpio, S3C2410_GPIO_INPUT); | ||
46 | return 0; | ||
47 | } | ||
48 | |||
49 | static inline int gpio_direction_output(unsigned gpio) | ||
50 | { | ||
51 | s3c2410_gpio_cfgpin(gpio, S3C2410_GPIO_OUTPUT); | ||
52 | return 0; | ||
53 | } | ||
54 | |||
55 | #define gpio_get_value(gpio) s3c2410_gpio_getpin(gpio) | ||
56 | #define gpio_set_value(gpio,value) s3c2410_gpio_setpin(gpio, value) | ||
57 | |||
58 | #include <asm-generic/gpio.h> /* cansleep wrappers */ | ||
59 | |||
60 | /* FIXME or maybe s3c2400_gpio_getirq() ... */ | ||
61 | #define gpio_to_irq(gpio) s3c2410_gpio_getirq(gpio) | ||
62 | |||
63 | /* FIXME implement irq_to_gpio() */ | ||
64 | |||
65 | #endif | ||
diff --git a/include/asm-arm/arch-sa1100/gpio.h b/include/asm-arm/arch-sa1100/gpio.h new file mode 100644 index 000000000000..a331fe3f6e48 --- /dev/null +++ b/include/asm-arm/arch-sa1100/gpio.h | |||
@@ -0,0 +1,81 @@ | |||
1 | /* | ||
2 | * linux/include/asm-arm/arch-pxa/gpio.h | ||
3 | * | ||
4 | * SA1100 GPIO wrappers for arch-neutral GPIO calls | ||
5 | * | ||
6 | * Written by Philipp Zabel <philipp.zabel@gmail.com> | ||
7 | * | ||
8 | * This program is free software; you can redistribute it and/or modify | ||
9 | * it under the terms of the GNU General Public License as published by | ||
10 | * the Free Software Foundation; either version 2 of the License, or | ||
11 | * (at your option) any later version. | ||
12 | * | ||
13 | * This program is distributed in the hope that it will be useful, | ||
14 | * but WITHOUT ANY WARRANTY; without even the implied warranty of | ||
15 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | ||
16 | * GNU General Public License for more details. | ||
17 | * | ||
18 | * You should have received a copy of the GNU General Public License | ||
19 | * along with this program; if not, write to the Free Software | ||
20 | * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA | ||
21 | * | ||
22 | */ | ||
23 | |||
24 | #ifndef __ASM_ARCH_SA1100_GPIO_H | ||
25 | #define __ASM_ARCH_SA1100_GPIO_H | ||
26 | |||
27 | #include <asm/arch/SA-1100.h> | ||
28 | #include <asm/arch/irqs.h> | ||
29 | #include <asm/arch/hardware.h> | ||
30 | |||
31 | #include <asm/errno.h> | ||
32 | |||
33 | static inline int gpio_request(unsigned gpio, const char *label) | ||
34 | { | ||
35 | return 0; | ||
36 | } | ||
37 | |||
38 | static inline void gpio_free(unsigned gpio) | ||
39 | { | ||
40 | return; | ||
41 | } | ||
42 | |||
43 | static inline int gpio_direction_input(unsigned gpio) | ||
44 | { | ||
45 | if (gpio > GPIO_MAX) | ||
46 | return -EINVAL; | ||
47 | GPDR = (GPDR_In << gpio) 0 | ||
48 | } | ||
49 | |||
50 | static inline int gpio_direction_output(unsigned gpio) | ||
51 | { | ||
52 | if (gpio > GPIO_MAX) | ||
53 | return -EINVAL; | ||
54 | GPDR = (GPDR_Out << gpio) 0 | ||
55 | } | ||
56 | |||
57 | #define gpio_get_value(gpio) \ | ||
58 | (GPLR & GPIO_GPIO(gpio)) | ||
59 | |||
60 | #define gpio_set_value(gpio,value) \ | ||
61 | ((value) ? (GPSR = GPIO_GPIO(gpio)) : (GPCR(gpio) = GPIO_GPIO(gpio))) | ||
62 | |||
63 | #include <asm-generic/gpio.h> /* cansleep wrappers */ | ||
64 | |||
65 | static inline unsigned gpio_to_irq(unsigned gpio) | ||
66 | { | ||
67 | if (gpio < 11) | ||
68 | return IRQ_GPIO0 + gpio; | ||
69 | else | ||
70 | return IRQ_GPIO11 - 11 + gpio; | ||
71 | } | ||
72 | |||
73 | static inline unsigned irq_to_gpio(unsigned irq) | ||
74 | { | ||
75 | if (irq < IRQ_GPIO11_27) | ||
76 | return irq - IRQ_GPIO0; | ||
77 | else | ||
78 | return irq - IRQ_GPIO11 + 11; | ||
79 | } | ||
80 | |||
81 | #endif | ||
diff --git a/include/asm-arm/gpio.h b/include/asm-arm/gpio.h new file mode 100644 index 000000000000..fff4f800ee42 --- /dev/null +++ b/include/asm-arm/gpio.h | |||
@@ -0,0 +1,7 @@ | |||
1 | #ifndef _ARCH_ARM_GPIO_H | ||
2 | #define _ARCH_ARM_GPIO_H | ||
3 | |||
4 | /* not all ARM platforms necessarily support this API ... */ | ||
5 | #include <asm/arch/gpio.h> | ||
6 | |||
7 | #endif /* _ARCH_ARM_GPIO_H */ | ||
diff --git a/include/asm-generic/gpio.h b/include/asm-generic/gpio.h new file mode 100644 index 000000000000..2d0aab1d8611 --- /dev/null +++ b/include/asm-generic/gpio.h | |||
@@ -0,0 +1,25 @@ | |||
1 | #ifndef _ASM_GENERIC_GPIO_H | ||
2 | #define _ASM_GENERIC_GPIO_H | ||
3 | |||
4 | /* platforms that don't directly support access to GPIOs through I2C, SPI, | ||
5 | * or other blocking infrastructure can use these wrappers. | ||
6 | */ | ||
7 | |||
8 | static inline int gpio_cansleep(unsigned gpio) | ||
9 | { | ||
10 | return 0; | ||
11 | } | ||
12 | |||
13 | static inline int gpio_get_value_cansleep(unsigned gpio) | ||
14 | { | ||
15 | might_sleep(); | ||
16 | return gpio_get_value(gpio); | ||
17 | } | ||
18 | |||
19 | static inline void gpio_set_value_cansleep(unsigned gpio, int value) | ||
20 | { | ||
21 | might_sleep(); | ||
22 | gpio_set_value(gpio, value); | ||
23 | } | ||
24 | |||
25 | #endif /* _ASM_GENERIC_GPIO_H */ | ||
diff --git a/include/asm-i386/setup.h b/include/asm-i386/setup.h index 67659dbaf120..76316275d6f9 100644 --- a/include/asm-i386/setup.h +++ b/include/asm-i386/setup.h | |||
@@ -6,7 +6,7 @@ | |||
6 | #ifndef _i386_SETUP_H | 6 | #ifndef _i386_SETUP_H |
7 | #define _i386_SETUP_H | 7 | #define _i386_SETUP_H |
8 | 8 | ||
9 | #define COMMAND_LINE_SIZE 256 | 9 | #define COMMAND_LINE_SIZE 2048 |
10 | 10 | ||
11 | #ifdef __KERNEL__ | 11 | #ifdef __KERNEL__ |
12 | #include <linux/pfn.h> | 12 | #include <linux/pfn.h> |
diff --git a/include/asm-ia64/setup.h b/include/asm-ia64/setup.h index ea29b57affcb..4399a44355b3 100644 --- a/include/asm-ia64/setup.h +++ b/include/asm-ia64/setup.h | |||
@@ -1,6 +1,6 @@ | |||
1 | #ifndef __IA64_SETUP_H | 1 | #ifndef __IA64_SETUP_H |
2 | #define __IA64_SETUP_H | 2 | #define __IA64_SETUP_H |
3 | 3 | ||
4 | #define COMMAND_LINE_SIZE 512 | 4 | #define COMMAND_LINE_SIZE 2048 |
5 | 5 | ||
6 | #endif | 6 | #endif |
diff --git a/include/asm-powerpc/Kbuild b/include/asm-powerpc/Kbuild index 703970fb0ec0..4869513b872f 100644 --- a/include/asm-powerpc/Kbuild +++ b/include/asm-powerpc/Kbuild | |||
@@ -23,6 +23,7 @@ header-y += linkage.h | |||
23 | header-y += resource.h | 23 | header-y += resource.h |
24 | header-y += sigcontext.h | 24 | header-y += sigcontext.h |
25 | header-y += statfs.h | 25 | header-y += statfs.h |
26 | header-y += ps3fb.h | ||
26 | 27 | ||
27 | unifdef-y += a.out.h | 28 | unifdef-y += a.out.h |
28 | unifdef-y += asm-compat.h | 29 | unifdef-y += asm-compat.h |
diff --git a/include/asm-powerpc/ps3.h b/include/asm-powerpc/ps3.h index 4f5a1e01fdac..e5982ad46576 100644 --- a/include/asm-powerpc/ps3.h +++ b/include/asm-powerpc/ps3.h | |||
@@ -388,4 +388,13 @@ struct ps3_vuart_port_device { | |||
388 | 388 | ||
389 | int ps3_vuart_port_device_register(struct ps3_vuart_port_device *dev); | 389 | int ps3_vuart_port_device_register(struct ps3_vuart_port_device *dev); |
390 | 390 | ||
391 | struct ps3_prealloc { | ||
392 | const char *name; | ||
393 | void *address; | ||
394 | unsigned long size; | ||
395 | unsigned long align; | ||
396 | }; | ||
397 | |||
398 | extern struct ps3_prealloc ps3fb_videomemory; | ||
399 | |||
391 | #endif | 400 | #endif |
diff --git a/include/asm-powerpc/ps3av.h b/include/asm-powerpc/ps3av.h new file mode 100644 index 000000000000..43e90ea96136 --- /dev/null +++ b/include/asm-powerpc/ps3av.h | |||
@@ -0,0 +1,738 @@ | |||
1 | /* | ||
2 | * Copyright (C) 2006 Sony Computer Entertainment Inc. | ||
3 | * Copyright 2006, 2007 Sony Corporation | ||
4 | * | ||
5 | * This program is free software; you can redistribute it and/or modify it | ||
6 | * under the terms of the GNU General Public License as published | ||
7 | * by the Free Software Foundation; version 2 of the License. | ||
8 | * | ||
9 | * This program is distributed in the hope that it will be useful, but | ||
10 | * WITHOUT ANY WARRANTY; without even the implied warranty of | ||
11 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU | ||
12 | * General Public License for more details. | ||
13 | * | ||
14 | * You should have received a copy of the GNU General Public License along | ||
15 | * with this program; if not, write to the Free Software Foundation, Inc., | ||
16 | * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. | ||
17 | */ | ||
18 | #ifndef _ASM_POWERPC_PS3AV_H_ | ||
19 | #define _ASM_POWERPC_PS3AV_H_ | ||
20 | |||
21 | #include <linux/mutex.h> | ||
22 | |||
23 | /** command for ioctl() **/ | ||
24 | #define PS3AV_VERSION 0x205 /* version of ps3av command */ | ||
25 | |||
26 | #define PS3AV_CID_AV_INIT 0x00000001 | ||
27 | #define PS3AV_CID_AV_FIN 0x00000002 | ||
28 | #define PS3AV_CID_AV_GET_HW_CONF 0x00000003 | ||
29 | #define PS3AV_CID_AV_GET_MONITOR_INFO 0x00000004 | ||
30 | #define PS3AV_CID_AV_ENABLE_EVENT 0x00000006 | ||
31 | #define PS3AV_CID_AV_DISABLE_EVENT 0x00000007 | ||
32 | #define PS3AV_CID_AV_TV_MUTE 0x0000000a | ||
33 | |||
34 | #define PS3AV_CID_AV_VIDEO_CS 0x00010001 | ||
35 | #define PS3AV_CID_AV_VIDEO_MUTE 0x00010002 | ||
36 | #define PS3AV_CID_AV_VIDEO_DISABLE_SIG 0x00010003 | ||
37 | #define PS3AV_CID_AV_AUDIO_PARAM 0x00020001 | ||
38 | #define PS3AV_CID_AV_AUDIO_MUTE 0x00020002 | ||
39 | #define PS3AV_CID_AV_HDMI_MODE 0x00040001 | ||
40 | |||
41 | #define PS3AV_CID_VIDEO_INIT 0x01000001 | ||
42 | #define PS3AV_CID_VIDEO_MODE 0x01000002 | ||
43 | #define PS3AV_CID_VIDEO_FORMAT 0x01000004 | ||
44 | #define PS3AV_CID_VIDEO_PITCH 0x01000005 | ||
45 | |||
46 | #define PS3AV_CID_AUDIO_INIT 0x02000001 | ||
47 | #define PS3AV_CID_AUDIO_MODE 0x02000002 | ||
48 | #define PS3AV_CID_AUDIO_MUTE 0x02000003 | ||
49 | #define PS3AV_CID_AUDIO_ACTIVE 0x02000004 | ||
50 | #define PS3AV_CID_AUDIO_INACTIVE 0x02000005 | ||
51 | #define PS3AV_CID_AUDIO_SPDIF_BIT 0x02000006 | ||
52 | #define PS3AV_CID_AUDIO_CTRL 0x02000007 | ||
53 | |||
54 | #define PS3AV_CID_EVENT_UNPLUGGED 0x10000001 | ||
55 | #define PS3AV_CID_EVENT_PLUGGED 0x10000002 | ||
56 | #define PS3AV_CID_EVENT_HDCP_DONE 0x10000003 | ||
57 | #define PS3AV_CID_EVENT_HDCP_FAIL 0x10000004 | ||
58 | #define PS3AV_CID_EVENT_HDCP_AUTH 0x10000005 | ||
59 | #define PS3AV_CID_EVENT_HDCP_ERROR 0x10000006 | ||
60 | |||
61 | #define PS3AV_CID_AVB_PARAM 0x04000001 | ||
62 | |||
63 | /* max backend ports */ | ||
64 | #define PS3AV_HDMI_MAX 2 /* HDMI_0 HDMI_1 */ | ||
65 | #define PS3AV_AVMULTI_MAX 1 /* AVMULTI_0 */ | ||
66 | #define PS3AV_AV_PORT_MAX (PS3AV_HDMI_MAX + PS3AV_AVMULTI_MAX) | ||
67 | #define PS3AV_OPT_PORT_MAX 1 /* SPDIF0 */ | ||
68 | #define PS3AV_HEAD_MAX 2 /* HEAD_A HEAD_B */ | ||
69 | |||
70 | /* num of pkt for PS3AV_CID_AVB_PARAM */ | ||
71 | #define PS3AV_AVB_NUM_VIDEO PS3AV_HEAD_MAX | ||
72 | #define PS3AV_AVB_NUM_AUDIO 0 /* not supported */ | ||
73 | #define PS3AV_AVB_NUM_AV_VIDEO PS3AV_AV_PORT_MAX | ||
74 | #define PS3AV_AVB_NUM_AV_AUDIO PS3AV_HDMI_MAX | ||
75 | |||
76 | #define PS3AV_MUTE_PORT_MAX 1 /* num of ports in mute pkt */ | ||
77 | |||
78 | /* event_bit */ | ||
79 | #define PS3AV_CMD_EVENT_BIT_UNPLUGGED (1 << 0) | ||
80 | #define PS3AV_CMD_EVENT_BIT_PLUGGED (1 << 1) | ||
81 | #define PS3AV_CMD_EVENT_BIT_HDCP_DONE (1 << 2) | ||
82 | #define PS3AV_CMD_EVENT_BIT_HDCP_FAIL (1 << 3) | ||
83 | #define PS3AV_CMD_EVENT_BIT_HDCP_REAUTH (1 << 4) | ||
84 | #define PS3AV_CMD_EVENT_BIT_HDCP_TOPOLOGY (1 << 5) | ||
85 | |||
86 | /* common params */ | ||
87 | /* mute */ | ||
88 | #define PS3AV_CMD_MUTE_OFF 0x0000 | ||
89 | #define PS3AV_CMD_MUTE_ON 0x0001 | ||
90 | /* avport */ | ||
91 | #define PS3AV_CMD_AVPORT_HDMI_0 0x0000 | ||
92 | #define PS3AV_CMD_AVPORT_HDMI_1 0x0001 | ||
93 | #define PS3AV_CMD_AVPORT_AVMULTI_0 0x0010 | ||
94 | #define PS3AV_CMD_AVPORT_SPDIF_0 0x0020 | ||
95 | #define PS3AV_CMD_AVPORT_SPDIF_1 0x0021 | ||
96 | |||
97 | /* for av backend */ | ||
98 | /* av_mclk */ | ||
99 | #define PS3AV_CMD_AV_MCLK_128 0x0000 | ||
100 | #define PS3AV_CMD_AV_MCLK_256 0x0001 | ||
101 | #define PS3AV_CMD_AV_MCLK_512 0x0003 | ||
102 | /* av_inputlen */ | ||
103 | #define PS3AV_CMD_AV_INPUTLEN_16 0x02 | ||
104 | #define PS3AV_CMD_AV_INPUTLEN_20 0x0a | ||
105 | #define PS3AV_CMD_AV_INPUTLEN_24 0x0b | ||
106 | /* alayout */ | ||
107 | #define PS3AV_CMD_AV_LAYOUT_32 (1 << 0) | ||
108 | #define PS3AV_CMD_AV_LAYOUT_44 (1 << 1) | ||
109 | #define PS3AV_CMD_AV_LAYOUT_48 (1 << 2) | ||
110 | #define PS3AV_CMD_AV_LAYOUT_88 (1 << 3) | ||
111 | #define PS3AV_CMD_AV_LAYOUT_96 (1 << 4) | ||
112 | #define PS3AV_CMD_AV_LAYOUT_176 (1 << 5) | ||
113 | #define PS3AV_CMD_AV_LAYOUT_192 (1 << 6) | ||
114 | /* hdmi_mode */ | ||
115 | #define PS3AV_CMD_AV_HDMI_MODE_NORMAL 0xff | ||
116 | #define PS3AV_CMD_AV_HDMI_HDCP_OFF 0x01 | ||
117 | #define PS3AV_CMD_AV_HDMI_EDID_PASS 0x80 | ||
118 | #define PS3AV_CMD_AV_HDMI_DVI 0x40 | ||
119 | |||
120 | /* for video module */ | ||
121 | /* video_head */ | ||
122 | #define PS3AV_CMD_VIDEO_HEAD_A 0x0000 | ||
123 | #define PS3AV_CMD_VIDEO_HEAD_B 0x0001 | ||
124 | /* video_cs_out video_cs_in */ | ||
125 | #define PS3AV_CMD_VIDEO_CS_NONE 0x0000 | ||
126 | #define PS3AV_CMD_VIDEO_CS_RGB_8 0x0001 | ||
127 | #define PS3AV_CMD_VIDEO_CS_YUV444_8 0x0002 | ||
128 | #define PS3AV_CMD_VIDEO_CS_YUV422_8 0x0003 | ||
129 | #define PS3AV_CMD_VIDEO_CS_XVYCC_8 0x0004 | ||
130 | #define PS3AV_CMD_VIDEO_CS_RGB_10 0x0005 | ||
131 | #define PS3AV_CMD_VIDEO_CS_YUV444_10 0x0006 | ||
132 | #define PS3AV_CMD_VIDEO_CS_YUV422_10 0x0007 | ||
133 | #define PS3AV_CMD_VIDEO_CS_XVYCC_10 0x0008 | ||
134 | #define PS3AV_CMD_VIDEO_CS_RGB_12 0x0009 | ||
135 | #define PS3AV_CMD_VIDEO_CS_YUV444_12 0x000a | ||
136 | #define PS3AV_CMD_VIDEO_CS_YUV422_12 0x000b | ||
137 | #define PS3AV_CMD_VIDEO_CS_XVYCC_12 0x000c | ||
138 | /* video_vid */ | ||
139 | #define PS3AV_CMD_VIDEO_VID_NONE 0x0000 | ||
140 | #define PS3AV_CMD_VIDEO_VID_480I 0x0001 | ||
141 | #define PS3AV_CMD_VIDEO_VID_576I 0x0003 | ||
142 | #define PS3AV_CMD_VIDEO_VID_480P 0x0005 | ||
143 | #define PS3AV_CMD_VIDEO_VID_576P 0x0006 | ||
144 | #define PS3AV_CMD_VIDEO_VID_1080I_60HZ 0x0007 | ||
145 | #define PS3AV_CMD_VIDEO_VID_1080I_50HZ 0x0008 | ||
146 | #define PS3AV_CMD_VIDEO_VID_720P_60HZ 0x0009 | ||
147 | #define PS3AV_CMD_VIDEO_VID_720P_50HZ 0x000a | ||
148 | #define PS3AV_CMD_VIDEO_VID_1080P_60HZ 0x000b | ||
149 | #define PS3AV_CMD_VIDEO_VID_1080P_50HZ 0x000c | ||
150 | #define PS3AV_CMD_VIDEO_VID_WXGA 0x000d | ||
151 | #define PS3AV_CMD_VIDEO_VID_SXGA 0x000e | ||
152 | #define PS3AV_CMD_VIDEO_VID_WUXGA 0x000f | ||
153 | #define PS3AV_CMD_VIDEO_VID_480I_A 0x0010 | ||
154 | /* video_format */ | ||
155 | #define PS3AV_CMD_VIDEO_FORMAT_BLACK 0x0000 | ||
156 | #define PS3AV_CMD_VIDEO_FORMAT_ARGB_8BIT 0x0007 | ||
157 | /* video_order */ | ||
158 | #define PS3AV_CMD_VIDEO_ORDER_RGB 0x0000 | ||
159 | #define PS3AV_CMD_VIDEO_ORDER_BGR 0x0001 | ||
160 | /* video_fmt */ | ||
161 | #define PS3AV_CMD_VIDEO_FMT_X8R8G8B8 0x0000 | ||
162 | /* video_out_format */ | ||
163 | #define PS3AV_CMD_VIDEO_OUT_FORMAT_RGB_12BIT 0x0000 | ||
164 | /* video_sync */ | ||
165 | #define PS3AV_CMD_VIDEO_SYNC_VSYNC 0x0001 | ||
166 | #define PS3AV_CMD_VIDEO_SYNC_CSYNC 0x0004 | ||
167 | #define PS3AV_CMD_VIDEO_SYNC_HSYNC 0x0010 | ||
168 | |||
169 | /* for audio module */ | ||
170 | /* num_of_ch */ | ||
171 | #define PS3AV_CMD_AUDIO_NUM_OF_CH_2 0x0000 | ||
172 | #define PS3AV_CMD_AUDIO_NUM_OF_CH_3 0x0001 | ||
173 | #define PS3AV_CMD_AUDIO_NUM_OF_CH_4 0x0002 | ||
174 | #define PS3AV_CMD_AUDIO_NUM_OF_CH_5 0x0003 | ||
175 | #define PS3AV_CMD_AUDIO_NUM_OF_CH_6 0x0004 | ||
176 | #define PS3AV_CMD_AUDIO_NUM_OF_CH_7 0x0005 | ||
177 | #define PS3AV_CMD_AUDIO_NUM_OF_CH_8 0x0006 | ||
178 | /* audio_fs */ | ||
179 | #define PS3AV_CMD_AUDIO_FS_32K 0x0001 | ||
180 | #define PS3AV_CMD_AUDIO_FS_44K 0x0002 | ||
181 | #define PS3AV_CMD_AUDIO_FS_48K 0x0003 | ||
182 | #define PS3AV_CMD_AUDIO_FS_88K 0x0004 | ||
183 | #define PS3AV_CMD_AUDIO_FS_96K 0x0005 | ||
184 | #define PS3AV_CMD_AUDIO_FS_176K 0x0006 | ||
185 | #define PS3AV_CMD_AUDIO_FS_192K 0x0007 | ||
186 | /* audio_word_bits */ | ||
187 | #define PS3AV_CMD_AUDIO_WORD_BITS_16 0x0001 | ||
188 | #define PS3AV_CMD_AUDIO_WORD_BITS_20 0x0002 | ||
189 | #define PS3AV_CMD_AUDIO_WORD_BITS_24 0x0003 | ||
190 | /* audio_format */ | ||
191 | #define PS3AV_CMD_AUDIO_FORMAT_PCM 0x0001 | ||
192 | #define PS3AV_CMD_AUDIO_FORMAT_BITSTREAM 0x00ff | ||
193 | /* audio_source */ | ||
194 | #define PS3AV_CMD_AUDIO_SOURCE_SERIAL 0x0000 | ||
195 | #define PS3AV_CMD_AUDIO_SOURCE_SPDIF 0x0001 | ||
196 | /* audio_swap */ | ||
197 | #define PS3AV_CMD_AUDIO_SWAP_0 0x0000 | ||
198 | #define PS3AV_CMD_AUDIO_SWAP_1 0x0000 | ||
199 | /* audio_map */ | ||
200 | #define PS3AV_CMD_AUDIO_MAP_OUTPUT_0 0x0000 | ||
201 | #define PS3AV_CMD_AUDIO_MAP_OUTPUT_1 0x0001 | ||
202 | #define PS3AV_CMD_AUDIO_MAP_OUTPUT_2 0x0002 | ||
203 | #define PS3AV_CMD_AUDIO_MAP_OUTPUT_3 0x0003 | ||
204 | /* audio_layout */ | ||
205 | #define PS3AV_CMD_AUDIO_LAYOUT_2CH 0x0000 | ||
206 | #define PS3AV_CMD_AUDIO_LAYOUT_6CH 0x000b /* LREClr */ | ||
207 | #define PS3AV_CMD_AUDIO_LAYOUT_8CH 0x001f /* LREClrXY */ | ||
208 | /* audio_downmix */ | ||
209 | #define PS3AV_CMD_AUDIO_DOWNMIX_PERMITTED 0x0000 | ||
210 | #define PS3AV_CMD_AUDIO_DOWNMIX_PROHIBITED 0x0001 | ||
211 | |||
212 | /* audio_port */ | ||
213 | #define PS3AV_CMD_AUDIO_PORT_HDMI_0 ( 1 << 0 ) | ||
214 | #define PS3AV_CMD_AUDIO_PORT_HDMI_1 ( 1 << 1 ) | ||
215 | #define PS3AV_CMD_AUDIO_PORT_AVMULTI_0 ( 1 << 10 ) | ||
216 | #define PS3AV_CMD_AUDIO_PORT_SPDIF_0 ( 1 << 20 ) | ||
217 | #define PS3AV_CMD_AUDIO_PORT_SPDIF_1 ( 1 << 21 ) | ||
218 | |||
219 | /* audio_ctrl_id */ | ||
220 | #define PS3AV_CMD_AUDIO_CTRL_ID_DAC_RESET 0x0000 | ||
221 | #define PS3AV_CMD_AUDIO_CTRL_ID_DAC_DE_EMPHASIS 0x0001 | ||
222 | #define PS3AV_CMD_AUDIO_CTRL_ID_AVCLK 0x0002 | ||
223 | /* audio_ctrl_data[0] reset */ | ||
224 | #define PS3AV_CMD_AUDIO_CTRL_RESET_NEGATE 0x0000 | ||
225 | #define PS3AV_CMD_AUDIO_CTRL_RESET_ASSERT 0x0001 | ||
226 | /* audio_ctrl_data[0] de-emphasis */ | ||
227 | #define PS3AV_CMD_AUDIO_CTRL_DE_EMPHASIS_OFF 0x0000 | ||
228 | #define PS3AV_CMD_AUDIO_CTRL_DE_EMPHASIS_ON 0x0001 | ||
229 | /* audio_ctrl_data[0] avclk */ | ||
230 | #define PS3AV_CMD_AUDIO_CTRL_AVCLK_22 0x0000 | ||
231 | #define PS3AV_CMD_AUDIO_CTRL_AVCLK_18 0x0001 | ||
232 | |||
233 | /* av_vid */ | ||
234 | /* do not use these params directly, use vid_video2av */ | ||
235 | #define PS3AV_CMD_AV_VID_480I 0x0000 | ||
236 | #define PS3AV_CMD_AV_VID_480P 0x0001 | ||
237 | #define PS3AV_CMD_AV_VID_720P_60HZ 0x0002 | ||
238 | #define PS3AV_CMD_AV_VID_1080I_60HZ 0x0003 | ||
239 | #define PS3AV_CMD_AV_VID_1080P_60HZ 0x0004 | ||
240 | #define PS3AV_CMD_AV_VID_576I 0x0005 | ||
241 | #define PS3AV_CMD_AV_VID_576P 0x0006 | ||
242 | #define PS3AV_CMD_AV_VID_720P_50HZ 0x0007 | ||
243 | #define PS3AV_CMD_AV_VID_1080I_50HZ 0x0008 | ||
244 | #define PS3AV_CMD_AV_VID_1080P_50HZ 0x0009 | ||
245 | #define PS3AV_CMD_AV_VID_WXGA 0x000a | ||
246 | #define PS3AV_CMD_AV_VID_SXGA 0x000b | ||
247 | #define PS3AV_CMD_AV_VID_WUXGA 0x000c | ||
248 | /* av_cs_out av_cs_in */ | ||
249 | /* use cs_video2av() */ | ||
250 | #define PS3AV_CMD_AV_CS_RGB_8 0x0000 | ||
251 | #define PS3AV_CMD_AV_CS_YUV444_8 0x0001 | ||
252 | #define PS3AV_CMD_AV_CS_YUV422_8 0x0002 | ||
253 | #define PS3AV_CMD_AV_CS_XVYCC_8 0x0003 | ||
254 | #define PS3AV_CMD_AV_CS_RGB_10 0x0004 | ||
255 | #define PS3AV_CMD_AV_CS_YUV444_10 0x0005 | ||
256 | #define PS3AV_CMD_AV_CS_YUV422_10 0x0006 | ||
257 | #define PS3AV_CMD_AV_CS_XVYCC_10 0x0007 | ||
258 | #define PS3AV_CMD_AV_CS_RGB_12 0x0008 | ||
259 | #define PS3AV_CMD_AV_CS_YUV444_12 0x0009 | ||
260 | #define PS3AV_CMD_AV_CS_YUV422_12 0x000a | ||
261 | #define PS3AV_CMD_AV_CS_XVYCC_12 0x000b | ||
262 | #define PS3AV_CMD_AV_CS_8 0x0000 | ||
263 | #define PS3AV_CMD_AV_CS_10 0x0001 | ||
264 | #define PS3AV_CMD_AV_CS_12 0x0002 | ||
265 | /* dither */ | ||
266 | #define PS3AV_CMD_AV_DITHER_OFF 0x0000 | ||
267 | #define PS3AV_CMD_AV_DITHER_ON 0x0001 | ||
268 | #define PS3AV_CMD_AV_DITHER_8BIT 0x0000 | ||
269 | #define PS3AV_CMD_AV_DITHER_10BIT 0x0002 | ||
270 | #define PS3AV_CMD_AV_DITHER_12BIT 0x0004 | ||
271 | /* super_white */ | ||
272 | #define PS3AV_CMD_AV_SUPER_WHITE_OFF 0x0000 | ||
273 | #define PS3AV_CMD_AV_SUPER_WHITE_ON 0x0001 | ||
274 | /* aspect */ | ||
275 | #define PS3AV_CMD_AV_ASPECT_16_9 0x0000 | ||
276 | #define PS3AV_CMD_AV_ASPECT_4_3 0x0001 | ||
277 | /* video_cs_cnv() */ | ||
278 | #define PS3AV_CMD_VIDEO_CS_RGB 0x0001 | ||
279 | #define PS3AV_CMD_VIDEO_CS_YUV422 0x0002 | ||
280 | #define PS3AV_CMD_VIDEO_CS_YUV444 0x0003 | ||
281 | |||
282 | /* for automode */ | ||
283 | #define PS3AV_RESBIT_720x480P 0x0003 /* 0x0001 | 0x0002 */ | ||
284 | #define PS3AV_RESBIT_720x576P 0x0003 /* 0x0001 | 0x0002 */ | ||
285 | #define PS3AV_RESBIT_1280x720P 0x0004 | ||
286 | #define PS3AV_RESBIT_1920x1080I 0x0008 | ||
287 | #define PS3AV_RESBIT_1920x1080P 0x4000 | ||
288 | #define PS3AV_RES_MASK_60 (PS3AV_RESBIT_720x480P \ | ||
289 | | PS3AV_RESBIT_1280x720P \ | ||
290 | | PS3AV_RESBIT_1920x1080I \ | ||
291 | | PS3AV_RESBIT_1920x1080P) | ||
292 | #define PS3AV_RES_MASK_50 (PS3AV_RESBIT_720x576P \ | ||
293 | | PS3AV_RESBIT_1280x720P \ | ||
294 | | PS3AV_RESBIT_1920x1080I \ | ||
295 | | PS3AV_RESBIT_1920x1080P) | ||
296 | |||
297 | #define PS3AV_MONITOR_TYPE_HDMI 1 /* HDMI */ | ||
298 | #define PS3AV_MONITOR_TYPE_DVI 2 /* DVI */ | ||
299 | #define PS3AV_DEFAULT_HDMI_VID_REG_60 PS3AV_CMD_VIDEO_VID_480P | ||
300 | #define PS3AV_DEFAULT_AVMULTI_VID_REG_60 PS3AV_CMD_VIDEO_VID_480I | ||
301 | #define PS3AV_DEFAULT_HDMI_VID_REG_50 PS3AV_CMD_VIDEO_VID_576P | ||
302 | #define PS3AV_DEFAULT_AVMULTI_VID_REG_50 PS3AV_CMD_VIDEO_VID_576I | ||
303 | #define PS3AV_DEFAULT_DVI_VID PS3AV_CMD_VIDEO_VID_480P | ||
304 | |||
305 | #define PS3AV_REGION_60 0x01 | ||
306 | #define PS3AV_REGION_50 0x02 | ||
307 | #define PS3AV_REGION_RGB 0x10 | ||
308 | |||
309 | #define get_status(buf) (((__u32 *)buf)[2]) | ||
310 | #define PS3AV_HDR_SIZE 4 /* version + size */ | ||
311 | |||
312 | /* for video mode */ | ||
313 | #define PS3AV_MODE_MASK 0x000F | ||
314 | #define PS3AV_MODE_HDCP_OFF 0x1000 /* Retail PS3 product doesn't support this */ | ||
315 | #define PS3AV_MODE_DITHER 0x0800 | ||
316 | #define PS3AV_MODE_FULL 0x0080 | ||
317 | #define PS3AV_MODE_DVI 0x0040 | ||
318 | #define PS3AV_MODE_RGB 0x0020 | ||
319 | |||
320 | |||
321 | /** command packet structure **/ | ||
322 | struct ps3av_send_hdr { | ||
323 | u16 version; | ||
324 | u16 size; /* size of command packet */ | ||
325 | u32 cid; /* command id */ | ||
326 | }; | ||
327 | |||
328 | struct ps3av_reply_hdr { | ||
329 | u16 version; | ||
330 | u16 size; | ||
331 | u32 cid; | ||
332 | u32 status; | ||
333 | }; | ||
334 | |||
335 | /* backend: initialization */ | ||
336 | struct ps3av_pkt_av_init { | ||
337 | struct ps3av_send_hdr send_hdr; | ||
338 | u32 event_bit; | ||
339 | }; | ||
340 | |||
341 | /* backend: finalize */ | ||
342 | struct ps3av_pkt_av_fin { | ||
343 | struct ps3av_send_hdr send_hdr; | ||
344 | /* recv */ | ||
345 | u32 reserved; | ||
346 | }; | ||
347 | |||
348 | /* backend: get port */ | ||
349 | struct ps3av_pkt_av_get_hw_conf { | ||
350 | struct ps3av_send_hdr send_hdr; | ||
351 | /* recv */ | ||
352 | u32 status; | ||
353 | u16 num_of_hdmi; /* out: number of hdmi */ | ||
354 | u16 num_of_avmulti; /* out: number of avmulti */ | ||
355 | u16 num_of_spdif; /* out: number of hdmi */ | ||
356 | u16 reserved; | ||
357 | }; | ||
358 | |||
359 | /* backend: get monitor info */ | ||
360 | struct ps3av_info_resolution { | ||
361 | u32 res_bits; | ||
362 | u32 native; | ||
363 | }; | ||
364 | |||
365 | struct ps3av_info_cs { | ||
366 | u8 rgb; | ||
367 | u8 yuv444; | ||
368 | u8 yuv422; | ||
369 | u8 reserved; | ||
370 | }; | ||
371 | |||
372 | struct ps3av_info_color { | ||
373 | u16 red_x; | ||
374 | u16 red_y; | ||
375 | u16 green_x; | ||
376 | u16 green_y; | ||
377 | u16 blue_x; | ||
378 | u16 blue_y; | ||
379 | u16 white_x; | ||
380 | u16 white_y; | ||
381 | u32 gamma; | ||
382 | }; | ||
383 | |||
384 | struct ps3av_info_audio { | ||
385 | u8 type; | ||
386 | u8 max_num_of_ch; | ||
387 | u8 fs; | ||
388 | u8 sbit; | ||
389 | }; | ||
390 | |||
391 | struct ps3av_info_monitor { | ||
392 | u8 avport; | ||
393 | u8 monitor_id[10]; | ||
394 | u8 monitor_type; | ||
395 | u8 monitor_name[16]; | ||
396 | struct ps3av_info_resolution res_60; | ||
397 | struct ps3av_info_resolution res_50; | ||
398 | struct ps3av_info_resolution res_other; | ||
399 | struct ps3av_info_resolution res_vesa; | ||
400 | struct ps3av_info_cs cs; | ||
401 | struct ps3av_info_color color; | ||
402 | u8 supported_ai; | ||
403 | u8 speaker_info; | ||
404 | u8 num_of_audio_block; | ||
405 | struct ps3av_info_audio audio[0]; /* 0 or more audio blocks */ | ||
406 | u8 reserved[169]; | ||
407 | } __attribute__ ((packed)); | ||
408 | |||
409 | struct ps3av_pkt_av_get_monitor_info { | ||
410 | struct ps3av_send_hdr send_hdr; | ||
411 | u16 avport; /* in: avport */ | ||
412 | u16 reserved; | ||
413 | /* recv */ | ||
414 | struct ps3av_info_monitor info; /* out: monitor info */ | ||
415 | }; | ||
416 | |||
417 | /* backend: enable/disable event */ | ||
418 | struct ps3av_pkt_av_event { | ||
419 | struct ps3av_send_hdr send_hdr; | ||
420 | u32 event_bit; /* in */ | ||
421 | }; | ||
422 | |||
423 | /* backend: video cs param */ | ||
424 | struct ps3av_pkt_av_video_cs { | ||
425 | struct ps3av_send_hdr send_hdr; | ||
426 | u16 avport; /* in: avport */ | ||
427 | u16 av_vid; /* in: video resolution */ | ||
428 | u16 av_cs_out; /* in: output color space */ | ||
429 | u16 av_cs_in; /* in: input color space */ | ||
430 | u8 dither; /* in: dither bit length */ | ||
431 | u8 bitlen_out; /* in: bit length */ | ||
432 | u8 super_white; /* in: super white */ | ||
433 | u8 aspect; /* in: aspect ratio */ | ||
434 | }; | ||
435 | |||
436 | /* backend: video mute */ | ||
437 | struct ps3av_av_mute { | ||
438 | u16 avport; /* in: avport */ | ||
439 | u16 mute; /* in: mute on/off */ | ||
440 | }; | ||
441 | |||
442 | struct ps3av_pkt_av_video_mute { | ||
443 | struct ps3av_send_hdr send_hdr; | ||
444 | struct ps3av_av_mute mute[PS3AV_MUTE_PORT_MAX]; | ||
445 | }; | ||
446 | |||
447 | /* backend: video disable signal */ | ||
448 | struct ps3av_pkt_av_video_disable_sig { | ||
449 | struct ps3av_send_hdr send_hdr; | ||
450 | u16 avport; /* in: avport */ | ||
451 | u16 reserved; | ||
452 | }; | ||
453 | |||
454 | /* backend: audio param */ | ||
455 | struct ps3av_audio_info_frame { | ||
456 | struct pb1_bit { | ||
457 | u8 ct:4; | ||
458 | u8 rsv:1; | ||
459 | u8 cc:3; | ||
460 | } pb1; | ||
461 | struct pb2_bit { | ||
462 | u8 rsv:3; | ||
463 | u8 sf:3; | ||
464 | u8 ss:2; | ||
465 | } pb2; | ||
466 | u8 pb3; | ||
467 | u8 pb4; | ||
468 | struct pb5_bit { | ||
469 | u8 dm:1; | ||
470 | u8 lsv:4; | ||
471 | u8 rsv:3; | ||
472 | } pb5; | ||
473 | }; | ||
474 | |||
475 | struct ps3av_pkt_av_audio_param { | ||
476 | struct ps3av_send_hdr send_hdr; | ||
477 | u16 avport; /* in: avport */ | ||
478 | u16 reserved; | ||
479 | u8 mclk; /* in: audio mclk */ | ||
480 | u8 ns[3]; /* in: audio ns val */ | ||
481 | u8 enable; /* in: audio enable */ | ||
482 | u8 swaplr; /* in: audio swap */ | ||
483 | u8 fifomap; /* in: audio fifomap */ | ||
484 | u8 inputctrl; /* in: audio input ctrl */ | ||
485 | u8 inputlen; /* in: sample bit size */ | ||
486 | u8 layout; /* in: speaker layout param */ | ||
487 | struct ps3av_audio_info_frame info; /* in: info */ | ||
488 | u8 chstat[5]; /* in: ch stat */ | ||
489 | }; | ||
490 | |||
491 | /* backend: audio_mute */ | ||
492 | struct ps3av_pkt_av_audio_mute { | ||
493 | struct ps3av_send_hdr send_hdr; | ||
494 | struct ps3av_av_mute mute[PS3AV_MUTE_PORT_MAX]; | ||
495 | }; | ||
496 | |||
497 | /* backend: hdmi_mode */ | ||
498 | struct ps3av_pkt_av_hdmi_mode { | ||
499 | struct ps3av_send_hdr send_hdr; | ||
500 | u8 mode; /* in: hdmi_mode */ | ||
501 | u8 reserved0; | ||
502 | u8 reserved1; | ||
503 | u8 reserved2; | ||
504 | }; | ||
505 | |||
506 | /* backend: tv_mute */ | ||
507 | struct ps3av_pkt_av_tv_mute { | ||
508 | struct ps3av_send_hdr send_hdr; | ||
509 | u16 avport; /* in: avport HDMI only */ | ||
510 | u16 mute; /* in: mute */ | ||
511 | }; | ||
512 | |||
513 | /* video: initialize */ | ||
514 | struct ps3av_pkt_video_init { | ||
515 | struct ps3av_send_hdr send_hdr; | ||
516 | /* recv */ | ||
517 | u32 reserved; | ||
518 | }; | ||
519 | |||
520 | /* video: mode setting */ | ||
521 | struct ps3av_pkt_video_mode { | ||
522 | struct ps3av_send_hdr send_hdr; | ||
523 | u32 video_head; /* in: head */ | ||
524 | u32 reserved; | ||
525 | u32 video_vid; /* in: video resolution */ | ||
526 | u16 reserved1; | ||
527 | u16 width; /* in: width in pixel */ | ||
528 | u16 reserved2; | ||
529 | u16 height; /* in: height in pixel */ | ||
530 | u32 pitch; /* in: line size in byte */ | ||
531 | u32 video_out_format; /* in: out format */ | ||
532 | u32 video_format; /* in: input frame buffer format */ | ||
533 | u8 reserved3; | ||
534 | u8 reserved4; | ||
535 | u16 video_order; /* in: input RGB order */ | ||
536 | u32 reserved5; | ||
537 | }; | ||
538 | |||
539 | /* video: format */ | ||
540 | struct ps3av_pkt_video_format { | ||
541 | struct ps3av_send_hdr send_hdr; | ||
542 | u32 video_head; /* in: head */ | ||
543 | u32 video_format; /* in: frame buffer format */ | ||
544 | u16 reserved; | ||
545 | u16 video_order; /* in: input RGB order */ | ||
546 | }; | ||
547 | |||
548 | /* video: pitch */ | ||
549 | struct ps3av_pkt_video_pitch { | ||
550 | u16 version; | ||
551 | u16 size; /* size of command packet */ | ||
552 | u32 cid; /* command id */ | ||
553 | u32 video_head; /* in: head */ | ||
554 | u32 pitch; /* in: line size in byte */ | ||
555 | }; | ||
556 | |||
557 | /* audio: initialize */ | ||
558 | struct ps3av_pkt_audio_init { | ||
559 | struct ps3av_send_hdr send_hdr; | ||
560 | /* recv */ | ||
561 | u32 reserved; | ||
562 | }; | ||
563 | |||
564 | /* audio: mode setting */ | ||
565 | struct ps3av_pkt_audio_mode { | ||
566 | struct ps3av_send_hdr send_hdr; | ||
567 | u8 avport; /* in: avport */ | ||
568 | u8 reserved0[3]; | ||
569 | u32 mask; /* in: mask */ | ||
570 | u32 audio_num_of_ch; /* in: number of ch */ | ||
571 | u32 audio_fs; /* in: sampling freq */ | ||
572 | u32 audio_word_bits; /* in: sample bit size */ | ||
573 | u32 audio_format; /* in: audio output format */ | ||
574 | u32 audio_source; /* in: audio source */ | ||
575 | u8 audio_enable[4]; /* in: audio enable */ | ||
576 | u8 audio_swap[4]; /* in: audio swap */ | ||
577 | u8 audio_map[4]; /* in: audio map */ | ||
578 | u32 audio_layout; /* in: speaker layout */ | ||
579 | u32 audio_downmix; /* in: audio downmix permission */ | ||
580 | u32 audio_downmix_level; | ||
581 | u8 audio_cs_info[8]; /* in: IEC channel status */ | ||
582 | }; | ||
583 | |||
584 | /* audio: mute */ | ||
585 | struct ps3av_audio_mute { | ||
586 | u8 avport; /* in: opt_port optical */ | ||
587 | u8 reserved[3]; | ||
588 | u32 mute; /* in: mute */ | ||
589 | }; | ||
590 | |||
591 | struct ps3av_pkt_audio_mute { | ||
592 | struct ps3av_send_hdr send_hdr; | ||
593 | struct ps3av_audio_mute mute[PS3AV_OPT_PORT_MAX]; | ||
594 | }; | ||
595 | |||
596 | /* audio: active/inactive */ | ||
597 | struct ps3av_pkt_audio_active { | ||
598 | struct ps3av_send_hdr send_hdr; | ||
599 | u32 audio_port; /* in: audio active/inactive port */ | ||
600 | }; | ||
601 | |||
602 | /* audio: SPDIF user bit */ | ||
603 | struct ps3av_pkt_audio_spdif_bit { | ||
604 | u16 version; | ||
605 | u16 size; /* size of command packet */ | ||
606 | u32 cid; /* command id */ | ||
607 | u8 avport; /* in: avport SPDIF only */ | ||
608 | u8 reserved[3]; | ||
609 | u32 audio_port; /* in: SPDIF only */ | ||
610 | u32 spdif_bit_data[12]; /* in: user bit data */ | ||
611 | }; | ||
612 | |||
613 | /* audio: audio control */ | ||
614 | struct ps3av_pkt_audio_ctrl { | ||
615 | u16 version; | ||
616 | u16 size; /* size of command packet */ | ||
617 | u32 cid; /* command id */ | ||
618 | u32 audio_ctrl_id; /* in: control id */ | ||
619 | u32 audio_ctrl_data[4]; /* in: control data */ | ||
620 | }; | ||
621 | |||
622 | /* avb:param */ | ||
623 | #define PS3AV_PKT_AVB_PARAM_MAX_BUF_SIZE \ | ||
624 | (PS3AV_AVB_NUM_VIDEO*sizeof(struct ps3av_pkt_video_mode) + \ | ||
625 | PS3AV_AVB_NUM_AUDIO*sizeof(struct ps3av_pkt_audio_mode) + \ | ||
626 | PS3AV_AVB_NUM_AV_VIDEO*sizeof(struct ps3av_pkt_av_video_cs) + \ | ||
627 | PS3AV_AVB_NUM_AV_AUDIO*sizeof(struct ps3av_pkt_av_audio_param)) | ||
628 | |||
629 | struct ps3av_pkt_avb_param { | ||
630 | struct ps3av_send_hdr send_hdr; | ||
631 | u16 num_of_video_pkt; | ||
632 | u16 num_of_audio_pkt; | ||
633 | u16 num_of_av_video_pkt; | ||
634 | u16 num_of_av_audio_pkt; | ||
635 | /* | ||
636 | * The actual buffer layout depends on the fields above: | ||
637 | * | ||
638 | * struct ps3av_pkt_video_mode video[num_of_video_pkt]; | ||
639 | * struct ps3av_pkt_audio_mode audio[num_of_audio_pkt]; | ||
640 | * struct ps3av_pkt_av_video_cs av_video[num_of_av_video_pkt]; | ||
641 | * struct ps3av_pkt_av_audio_param av_audio[num_of_av_audio_pkt]; | ||
642 | */ | ||
643 | u8 buf[PS3AV_PKT_AVB_PARAM_MAX_BUF_SIZE]; | ||
644 | }; | ||
645 | |||
646 | struct ps3av { | ||
647 | int available; | ||
648 | struct semaphore sem; | ||
649 | struct semaphore ping; | ||
650 | struct semaphore pong; | ||
651 | struct mutex mutex; | ||
652 | int open_count; | ||
653 | struct ps3_vuart_port_device *dev; | ||
654 | |||
655 | int region; | ||
656 | struct ps3av_pkt_av_get_hw_conf av_hw_conf; | ||
657 | u32 av_port[PS3AV_AV_PORT_MAX + PS3AV_OPT_PORT_MAX]; | ||
658 | u32 opt_port[PS3AV_OPT_PORT_MAX]; | ||
659 | u32 head[PS3AV_HEAD_MAX]; | ||
660 | u32 audio_port; | ||
661 | int ps3av_mode; | ||
662 | int ps3av_mode_old; | ||
663 | }; | ||
664 | |||
665 | /** command status **/ | ||
666 | #define PS3AV_STATUS_SUCCESS 0x0000 /* success */ | ||
667 | #define PS3AV_STATUS_RECEIVE_VUART_ERROR 0x0001 /* receive vuart error */ | ||
668 | #define PS3AV_STATUS_SYSCON_COMMUNICATE_FAIL 0x0002 /* syscon communication error */ | ||
669 | #define PS3AV_STATUS_INVALID_COMMAND 0x0003 /* obsolete invalid CID */ | ||
670 | #define PS3AV_STATUS_INVALID_PORT 0x0004 /* invalid port number */ | ||
671 | #define PS3AV_STATUS_INVALID_VID 0x0005 /* invalid video format */ | ||
672 | #define PS3AV_STATUS_INVALID_COLOR_SPACE 0x0006 /* invalid video colose space */ | ||
673 | #define PS3AV_STATUS_INVALID_FS 0x0007 /* invalid audio sampling freq */ | ||
674 | #define PS3AV_STATUS_INVALID_AUDIO_CH 0x0008 /* invalid audio channel number */ | ||
675 | #define PS3AV_STATUS_UNSUPPORTED_VERSION 0x0009 /* version mismatch */ | ||
676 | #define PS3AV_STATUS_INVALID_SAMPLE_SIZE 0x000a /* invalid audio sample bit size */ | ||
677 | #define PS3AV_STATUS_FAILURE 0x000b /* other failures */ | ||
678 | #define PS3AV_STATUS_UNSUPPORTED_COMMAND 0x000c /* unsupported cid */ | ||
679 | #define PS3AV_STATUS_BUFFER_OVERFLOW 0x000d /* write buffer overflow */ | ||
680 | #define PS3AV_STATUS_INVALID_VIDEO_PARAM 0x000e /* invalid video param */ | ||
681 | #define PS3AV_STATUS_NO_SEL 0x000f /* not exist selector */ | ||
682 | #define PS3AV_STATUS_INVALID_AV_PARAM 0x0010 /* invalid backend param */ | ||
683 | #define PS3AV_STATUS_INVALID_AUDIO_PARAM 0x0011 /* invalid audio param */ | ||
684 | #define PS3AV_STATUS_UNSUPPORTED_HDMI_MODE 0x0012 /* unsupported hdmi mode */ | ||
685 | #define PS3AV_STATUS_NO_SYNC_HEAD 0x0013 /* sync head failed */ | ||
686 | |||
687 | extern void ps3av_set_hdr(u32, u16, struct ps3av_send_hdr *); | ||
688 | extern int ps3av_do_pkt(u32, u16, size_t, struct ps3av_send_hdr *); | ||
689 | |||
690 | extern int ps3av_cmd_init(void); | ||
691 | extern int ps3av_cmd_fin(void); | ||
692 | extern int ps3av_cmd_av_video_mute(int, u32 *, u32); | ||
693 | extern int ps3av_cmd_av_video_disable_sig(u32); | ||
694 | extern int ps3av_cmd_av_tv_mute(u32, u32); | ||
695 | extern int ps3av_cmd_enable_event(void); | ||
696 | extern int ps3av_cmd_av_hdmi_mode(u8); | ||
697 | extern u32 ps3av_cmd_set_av_video_cs(void *, u32, int, int, int, u32); | ||
698 | extern u32 ps3av_cmd_set_video_mode(void *, u32, int, int, u32); | ||
699 | extern int ps3av_cmd_video_format_black(u32, u32, u32); | ||
700 | extern int ps3av_cmd_av_audio_mute(int, u32 *, u32); | ||
701 | extern u32 ps3av_cmd_set_av_audio_param(void *, u32, | ||
702 | const struct ps3av_pkt_audio_mode *, | ||
703 | u32); | ||
704 | extern void ps3av_cmd_set_audio_mode(struct ps3av_pkt_audio_mode *, u32, u32, | ||
705 | u32, u32, u32, u32); | ||
706 | extern int ps3av_cmd_audio_mode(struct ps3av_pkt_audio_mode *); | ||
707 | extern int ps3av_cmd_audio_mute(int, u32 *, u32); | ||
708 | extern int ps3av_cmd_audio_active(int, u32); | ||
709 | extern int ps3av_cmd_avb_param(struct ps3av_pkt_avb_param *, u32); | ||
710 | extern int ps3av_cmd_av_get_hw_conf(struct ps3av_pkt_av_get_hw_conf *); | ||
711 | #ifdef PS3AV_DEBUG | ||
712 | extern void ps3av_cmd_av_hw_conf_dump(const struct ps3av_pkt_av_get_hw_conf *); | ||
713 | extern void ps3av_cmd_av_monitor_info_dump(const struct ps3av_pkt_av_get_monitor_info *); | ||
714 | #else | ||
715 | static inline void ps3av_cmd_av_hw_conf_dump(const struct ps3av_pkt_av_get_hw_conf *hw_conf) {} | ||
716 | static inline void ps3av_cmd_av_monitor_info_dump(const struct ps3av_pkt_av_get_monitor_info *monitor_info) {} | ||
717 | #endif | ||
718 | extern int ps3av_cmd_video_get_monitor_info(struct ps3av_pkt_av_get_monitor_info *, | ||
719 | u32); | ||
720 | |||
721 | extern int ps3av_vuart_write(struct ps3_vuart_port_device *dev, | ||
722 | const void *buf, unsigned long size); | ||
723 | extern int ps3av_vuart_read(struct ps3_vuart_port_device *dev, void *buf, | ||
724 | unsigned long size, int timeout); | ||
725 | |||
726 | extern int ps3av_set_video_mode(u32, int); | ||
727 | extern int ps3av_set_audio_mode(u32, u32, u32, u32, u32); | ||
728 | extern int ps3av_set_mode(u32, int); | ||
729 | extern int ps3av_get_mode(void); | ||
730 | extern int ps3av_get_scanmode(int); | ||
731 | extern int ps3av_get_refresh_rate(int); | ||
732 | extern int ps3av_video_mode2res(u32, u32 *, u32 *); | ||
733 | extern int ps3av_video_mute(int); | ||
734 | extern int ps3av_audio_mute(int); | ||
735 | extern int ps3av_dev_open(void); | ||
736 | extern int ps3av_dev_close(void); | ||
737 | |||
738 | #endif /* _ASM_POWERPC_PS3AV_H_ */ | ||
diff --git a/include/asm-powerpc/ps3fb.h b/include/asm-powerpc/ps3fb.h new file mode 100644 index 000000000000..ad81cf431964 --- /dev/null +++ b/include/asm-powerpc/ps3fb.h | |||
@@ -0,0 +1,56 @@ | |||
1 | /* | ||
2 | * Copyright (C) 2006 Sony Computer Entertainment Inc. | ||
3 | * Copyright 2006, 2007 Sony Corporation | ||
4 | * | ||
5 | * This program is free software; you can redistribute it and/or modify it | ||
6 | * under the terms of the GNU General Public License as published | ||
7 | * by the Free Software Foundation; version 2 of the License. | ||
8 | * | ||
9 | * This program is distributed in the hope that it will be useful, but | ||
10 | * WITHOUT ANY WARRANTY; without even the implied warranty of | ||
11 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU | ||
12 | * General Public License for more details. | ||
13 | * | ||
14 | * You should have received a copy of the GNU General Public License along | ||
15 | * with this program; if not, write to the Free Software Foundation, Inc., | ||
16 | * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. | ||
17 | */ | ||
18 | |||
19 | #ifndef _ASM_POWERPC_PS3FB_H_ | ||
20 | #define _ASM_POWERPC_PS3FB_H_ | ||
21 | |||
22 | #include <linux/ioctl.h> | ||
23 | |||
24 | /* ioctl */ | ||
25 | #define PS3FB_IOCTL_SETMODE _IOW('r', 1, int) /* set video mode */ | ||
26 | #define PS3FB_IOCTL_GETMODE _IOR('r', 2, int) /* get video mode */ | ||
27 | #define PS3FB_IOCTL_SCREENINFO _IOR('r', 3, int) /* get screen info */ | ||
28 | #define PS3FB_IOCTL_ON _IO('r', 4) /* use IOCTL_FSEL */ | ||
29 | #define PS3FB_IOCTL_OFF _IO('r', 5) /* return to normal-flip */ | ||
30 | #define PS3FB_IOCTL_FSEL _IOW('r', 6, int) /* blit and flip request */ | ||
31 | |||
32 | #ifndef FBIO_WAITFORVSYNC | ||
33 | #define FBIO_WAITFORVSYNC _IOW('F', 0x20, __u32) /* wait for vsync */ | ||
34 | #endif | ||
35 | |||
36 | struct ps3fb_ioctl_res { | ||
37 | __u32 xres; /* frame buffer x_size */ | ||
38 | __u32 yres; /* frame buffer y_size */ | ||
39 | __u32 xoff; /* margine x */ | ||
40 | __u32 yoff; /* margine y */ | ||
41 | __u32 num_frames; /* num of frame buffers */ | ||
42 | }; | ||
43 | |||
44 | #ifdef __KERNEL__ | ||
45 | |||
46 | #ifdef CONFIG_FB_PS3 | ||
47 | extern void ps3fb_flip_ctl(int on); | ||
48 | extern void ps3fb_cleanup(void); | ||
49 | #else | ||
50 | static inline void ps3fb_flip_ctl(int on) {} | ||
51 | static inline void ps3fb_cleanup(void) {} | ||
52 | #endif | ||
53 | |||
54 | #endif /* __KERNEL__ */ | ||
55 | |||
56 | #endif /* _ASM_POWERPC_PS3FB_H_ */ | ||
diff --git a/include/asm-x86_64/bootsetup.h b/include/asm-x86_64/bootsetup.h index b829f7b534be..7b1c3ad155fd 100644 --- a/include/asm-x86_64/bootsetup.h +++ b/include/asm-x86_64/bootsetup.h | |||
@@ -31,7 +31,7 @@ extern char x86_boot_params[BOOT_PARAM_SIZE]; | |||
31 | #define EDD_MBR_SIG_NR (*(unsigned char *) (PARAM+EDD_MBR_SIG_NR_BUF)) | 31 | #define EDD_MBR_SIG_NR (*(unsigned char *) (PARAM+EDD_MBR_SIG_NR_BUF)) |
32 | #define EDD_MBR_SIGNATURE ((unsigned int *) (PARAM+EDD_MBR_SIG_BUF)) | 32 | #define EDD_MBR_SIGNATURE ((unsigned int *) (PARAM+EDD_MBR_SIG_BUF)) |
33 | #define EDD_BUF ((struct edd_info *) (PARAM+EDDBUF)) | 33 | #define EDD_BUF ((struct edd_info *) (PARAM+EDDBUF)) |
34 | #define COMMAND_LINE saved_command_line | 34 | #define COMMAND_LINE boot_command_line |
35 | 35 | ||
36 | #define RAMDISK_IMAGE_START_MASK 0x07FF | 36 | #define RAMDISK_IMAGE_START_MASK 0x07FF |
37 | #define RAMDISK_PROMPT_FLAG 0x8000 | 37 | #define RAMDISK_PROMPT_FLAG 0x8000 |
diff --git a/include/asm-x86_64/setup.h b/include/asm-x86_64/setup.h index 985d4e3c79da..eaeff73d6c10 100644 --- a/include/asm-x86_64/setup.h +++ b/include/asm-x86_64/setup.h | |||
@@ -1,6 +1,6 @@ | |||
1 | #ifndef _x8664_SETUP_H | 1 | #ifndef _x8664_SETUP_H |
2 | #define _x8664_SETUP_H | 2 | #define _x8664_SETUP_H |
3 | 3 | ||
4 | #define COMMAND_LINE_SIZE 256 | 4 | #define COMMAND_LINE_SIZE 2048 |
5 | 5 | ||
6 | #endif | 6 | #endif |
diff --git a/include/linux/Kbuild b/include/linux/Kbuild index bb881c3219fa..e81e301a4d71 100644 --- a/include/linux/Kbuild +++ b/include/linux/Kbuild | |||
@@ -323,6 +323,7 @@ unifdef-y += tty.h | |||
323 | unifdef-y += types.h | 323 | unifdef-y += types.h |
324 | unifdef-y += udf_fs_i.h | 324 | unifdef-y += udf_fs_i.h |
325 | unifdef-y += udp.h | 325 | unifdef-y += udp.h |
326 | unifdef-y += ufs_fs.h | ||
326 | unifdef-y += uinput.h | 327 | unifdef-y += uinput.h |
327 | unifdef-y += uio.h | 328 | unifdef-y += uio.h |
328 | unifdef-y += unistd.h | 329 | unifdef-y += unistd.h |
diff --git a/include/linux/atalk.h b/include/linux/atalk.h index 75b8baca08f3..d12984ddaa9f 100644 --- a/include/linux/atalk.h +++ b/include/linux/atalk.h | |||
@@ -182,7 +182,7 @@ extern rwlock_t atalk_interfaces_lock; | |||
182 | 182 | ||
183 | extern struct atalk_route atrtr_default; | 183 | extern struct atalk_route atrtr_default; |
184 | 184 | ||
185 | extern struct file_operations atalk_seq_arp_fops; | 185 | extern const struct file_operations atalk_seq_arp_fops; |
186 | 186 | ||
187 | extern int sysctl_aarp_expiry_time; | 187 | extern int sysctl_aarp_expiry_time; |
188 | extern int sysctl_aarp_tick_time; | 188 | extern int sysctl_aarp_tick_time; |
diff --git a/include/linux/buffer_head.h b/include/linux/buffer_head.h index 5d9fb0e94156..dd27b1c7227f 100644 --- a/include/linux/buffer_head.h +++ b/include/linux/buffer_head.h | |||
@@ -34,6 +34,7 @@ enum bh_state_bits { | |||
34 | BH_Write_EIO, /* I/O error on write */ | 34 | BH_Write_EIO, /* I/O error on write */ |
35 | BH_Ordered, /* ordered write */ | 35 | BH_Ordered, /* ordered write */ |
36 | BH_Eopnotsupp, /* operation not supported (barrier) */ | 36 | BH_Eopnotsupp, /* operation not supported (barrier) */ |
37 | BH_Unwritten, /* Buffer is allocated on disk but not written */ | ||
37 | 38 | ||
38 | BH_PrivateStart,/* not a state bit, but the first bit available | 39 | BH_PrivateStart,/* not a state bit, but the first bit available |
39 | * for private allocation by other entities | 40 | * for private allocation by other entities |
@@ -126,6 +127,7 @@ BUFFER_FNS(Boundary, boundary) | |||
126 | BUFFER_FNS(Write_EIO, write_io_error) | 127 | BUFFER_FNS(Write_EIO, write_io_error) |
127 | BUFFER_FNS(Ordered, ordered) | 128 | BUFFER_FNS(Ordered, ordered) |
128 | BUFFER_FNS(Eopnotsupp, eopnotsupp) | 129 | BUFFER_FNS(Eopnotsupp, eopnotsupp) |
130 | BUFFER_FNS(Unwritten, unwritten) | ||
129 | 131 | ||
130 | #define bh_offset(bh) ((unsigned long)(bh)->b_data & ~PAGE_MASK) | 132 | #define bh_offset(bh) ((unsigned long)(bh)->b_data & ~PAGE_MASK) |
131 | #define touch_buffer(bh) mark_page_accessed(bh->b_page) | 133 | #define touch_buffer(bh) mark_page_accessed(bh->b_page) |
@@ -172,12 +174,14 @@ struct super_block *freeze_bdev(struct block_device *); | |||
172 | void thaw_bdev(struct block_device *, struct super_block *); | 174 | void thaw_bdev(struct block_device *, struct super_block *); |
173 | int fsync_super(struct super_block *); | 175 | int fsync_super(struct super_block *); |
174 | int fsync_no_super(struct block_device *); | 176 | int fsync_no_super(struct block_device *); |
175 | struct buffer_head *__find_get_block(struct block_device *, sector_t, int); | 177 | struct buffer_head *__find_get_block(struct block_device *bdev, sector_t block, |
176 | struct buffer_head * __getblk(struct block_device *, sector_t, int); | 178 | unsigned size); |
179 | struct buffer_head *__getblk(struct block_device *bdev, sector_t block, | ||
180 | unsigned size); | ||
177 | void __brelse(struct buffer_head *); | 181 | void __brelse(struct buffer_head *); |
178 | void __bforget(struct buffer_head *); | 182 | void __bforget(struct buffer_head *); |
179 | void __breadahead(struct block_device *, sector_t block, int size); | 183 | void __breadahead(struct block_device *, sector_t block, unsigned int size); |
180 | struct buffer_head *__bread(struct block_device *, sector_t block, int size); | 184 | struct buffer_head *__bread(struct block_device *, sector_t block, unsigned size); |
181 | struct buffer_head *alloc_buffer_head(gfp_t gfp_flags); | 185 | struct buffer_head *alloc_buffer_head(gfp_t gfp_flags); |
182 | void free_buffer_head(struct buffer_head * bh); | 186 | void free_buffer_head(struct buffer_head * bh); |
183 | void FASTCALL(unlock_buffer(struct buffer_head *bh)); | 187 | void FASTCALL(unlock_buffer(struct buffer_head *bh)); |
diff --git a/include/linux/coda_linux.h b/include/linux/coda_linux.h index 4c2632a8d31b..e4ac016ad272 100644 --- a/include/linux/coda_linux.h +++ b/include/linux/coda_linux.h | |||
@@ -23,9 +23,9 @@ | |||
23 | #include <linux/coda_fs_i.h> | 23 | #include <linux/coda_fs_i.h> |
24 | 24 | ||
25 | /* operations */ | 25 | /* operations */ |
26 | extern struct inode_operations coda_dir_inode_operations; | 26 | extern const struct inode_operations coda_dir_inode_operations; |
27 | extern struct inode_operations coda_file_inode_operations; | 27 | extern const struct inode_operations coda_file_inode_operations; |
28 | extern struct inode_operations coda_ioctl_inode_operations; | 28 | extern const struct inode_operations coda_ioctl_inode_operations; |
29 | 29 | ||
30 | extern const struct address_space_operations coda_file_aops; | 30 | extern const struct address_space_operations coda_file_aops; |
31 | extern const struct address_space_operations coda_symlink_aops; | 31 | extern const struct address_space_operations coda_symlink_aops; |
diff --git a/include/linux/cpu.h b/include/linux/cpu.h index bfb520212d71..769ddc6df492 100644 --- a/include/linux/cpu.h +++ b/include/linux/cpu.h | |||
@@ -49,10 +49,20 @@ struct notifier_block; | |||
49 | 49 | ||
50 | #ifdef CONFIG_SMP | 50 | #ifdef CONFIG_SMP |
51 | /* Need to know about CPUs going up/down? */ | 51 | /* Need to know about CPUs going up/down? */ |
52 | extern int register_cpu_notifier(struct notifier_block *nb); | ||
53 | #ifdef CONFIG_HOTPLUG_CPU | 52 | #ifdef CONFIG_HOTPLUG_CPU |
53 | extern int register_cpu_notifier(struct notifier_block *nb); | ||
54 | extern void unregister_cpu_notifier(struct notifier_block *nb); | 54 | extern void unregister_cpu_notifier(struct notifier_block *nb); |
55 | #else | 55 | #else |
56 | |||
57 | #ifndef MODULE | ||
58 | extern int register_cpu_notifier(struct notifier_block *nb); | ||
59 | #else | ||
60 | static inline int register_cpu_notifier(struct notifier_block *nb) | ||
61 | { | ||
62 | return 0; | ||
63 | } | ||
64 | #endif | ||
65 | |||
56 | static inline void unregister_cpu_notifier(struct notifier_block *nb) | 66 | static inline void unregister_cpu_notifier(struct notifier_block *nb) |
57 | { | 67 | { |
58 | } | 68 | } |
diff --git a/include/linux/cpuset.h b/include/linux/cpuset.h index fd404416f31c..826b15e914e2 100644 --- a/include/linux/cpuset.h +++ b/include/linux/cpuset.h | |||
@@ -55,7 +55,7 @@ extern int cpuset_excl_nodes_overlap(const struct task_struct *p); | |||
55 | extern int cpuset_memory_pressure_enabled; | 55 | extern int cpuset_memory_pressure_enabled; |
56 | extern void __cpuset_memory_pressure_bump(void); | 56 | extern void __cpuset_memory_pressure_bump(void); |
57 | 57 | ||
58 | extern struct file_operations proc_cpuset_operations; | 58 | extern const struct file_operations proc_cpuset_operations; |
59 | extern char *cpuset_task_status_allowed(struct task_struct *task, char *buffer); | 59 | extern char *cpuset_task_status_allowed(struct task_struct *task, char *buffer); |
60 | 60 | ||
61 | extern void cpuset_lock(void); | 61 | extern void cpuset_lock(void); |
diff --git a/include/linux/efs_fs.h b/include/linux/efs_fs.h index 278ef4495819..dfed8009ebff 100644 --- a/include/linux/efs_fs.h +++ b/include/linux/efs_fs.h | |||
@@ -36,7 +36,7 @@ static inline struct efs_sb_info *SUPER_INFO(struct super_block *sb) | |||
36 | 36 | ||
37 | struct statfs; | 37 | struct statfs; |
38 | 38 | ||
39 | extern struct inode_operations efs_dir_inode_operations; | 39 | extern const struct inode_operations efs_dir_inode_operations; |
40 | extern const struct file_operations efs_dir_operations; | 40 | extern const struct file_operations efs_dir_operations; |
41 | extern const struct address_space_operations efs_symlink_aops; | 41 | extern const struct address_space_operations efs_symlink_aops; |
42 | 42 | ||
diff --git a/include/linux/ext3_fs.h b/include/linux/ext3_fs.h index 11cca1bdc0c7..4eb18ac510ae 100644 --- a/include/linux/ext3_fs.h +++ b/include/linux/ext3_fs.h | |||
@@ -868,16 +868,16 @@ do { \ | |||
868 | extern const struct file_operations ext3_dir_operations; | 868 | extern const struct file_operations ext3_dir_operations; |
869 | 869 | ||
870 | /* file.c */ | 870 | /* file.c */ |
871 | extern struct inode_operations ext3_file_inode_operations; | 871 | extern const struct inode_operations ext3_file_inode_operations; |
872 | extern const struct file_operations ext3_file_operations; | 872 | extern const struct file_operations ext3_file_operations; |
873 | 873 | ||
874 | /* namei.c */ | 874 | /* namei.c */ |
875 | extern struct inode_operations ext3_dir_inode_operations; | 875 | extern const struct inode_operations ext3_dir_inode_operations; |
876 | extern struct inode_operations ext3_special_inode_operations; | 876 | extern const struct inode_operations ext3_special_inode_operations; |
877 | 877 | ||
878 | /* symlink.c */ | 878 | /* symlink.c */ |
879 | extern struct inode_operations ext3_symlink_inode_operations; | 879 | extern const struct inode_operations ext3_symlink_inode_operations; |
880 | extern struct inode_operations ext3_fast_symlink_inode_operations; | 880 | extern const struct inode_operations ext3_fast_symlink_inode_operations; |
881 | 881 | ||
882 | 882 | ||
883 | #endif /* __KERNEL__ */ | 883 | #endif /* __KERNEL__ */ |
diff --git a/include/linux/ext4_fs.h b/include/linux/ext4_fs.h index 498503ee613d..54c576d414c3 100644 --- a/include/linux/ext4_fs.h +++ b/include/linux/ext4_fs.h | |||
@@ -955,16 +955,16 @@ do { \ | |||
955 | extern const struct file_operations ext4_dir_operations; | 955 | extern const struct file_operations ext4_dir_operations; |
956 | 956 | ||
957 | /* file.c */ | 957 | /* file.c */ |
958 | extern struct inode_operations ext4_file_inode_operations; | 958 | extern const struct inode_operations ext4_file_inode_operations; |
959 | extern const struct file_operations ext4_file_operations; | 959 | extern const struct file_operations ext4_file_operations; |
960 | 960 | ||
961 | /* namei.c */ | 961 | /* namei.c */ |
962 | extern struct inode_operations ext4_dir_inode_operations; | 962 | extern const struct inode_operations ext4_dir_inode_operations; |
963 | extern struct inode_operations ext4_special_inode_operations; | 963 | extern const struct inode_operations ext4_special_inode_operations; |
964 | 964 | ||
965 | /* symlink.c */ | 965 | /* symlink.c */ |
966 | extern struct inode_operations ext4_symlink_inode_operations; | 966 | extern const struct inode_operations ext4_symlink_inode_operations; |
967 | extern struct inode_operations ext4_fast_symlink_inode_operations; | 967 | extern const struct inode_operations ext4_fast_symlink_inode_operations; |
968 | 968 | ||
969 | /* extents.c */ | 969 | /* extents.c */ |
970 | extern int ext4_ext_tree_init(handle_t *handle, struct inode *); | 970 | extern int ext4_ext_tree_init(handle_t *handle, struct inode *); |
diff --git a/include/linux/fb.h b/include/linux/fb.h index 64177ec9a019..a78e25683f82 100644 --- a/include/linux/fb.h +++ b/include/linux/fb.h | |||
@@ -49,6 +49,13 @@ | |||
49 | #define FB_AUX_TEXT_S3_MMIO 2 /* S3 MMIO fasttext */ | 49 | #define FB_AUX_TEXT_S3_MMIO 2 /* S3 MMIO fasttext */ |
50 | #define FB_AUX_TEXT_MGA_STEP16 3 /* MGA Millenium I: text, attr, 14 reserved bytes */ | 50 | #define FB_AUX_TEXT_MGA_STEP16 3 /* MGA Millenium I: text, attr, 14 reserved bytes */ |
51 | #define FB_AUX_TEXT_MGA_STEP8 4 /* other MGAs: text, attr, 6 reserved bytes */ | 51 | #define FB_AUX_TEXT_MGA_STEP8 4 /* other MGAs: text, attr, 6 reserved bytes */ |
52 | #define FB_AUX_TEXT_SVGA_GROUP 8 /* 8-15: SVGA tileblit compatible modes */ | ||
53 | #define FB_AUX_TEXT_SVGA_MASK 7 /* lower three bits says step */ | ||
54 | #define FB_AUX_TEXT_SVGA_STEP2 8 /* SVGA text mode: text, attr */ | ||
55 | #define FB_AUX_TEXT_SVGA_STEP4 9 /* SVGA text mode: text, attr, 2 reserved bytes */ | ||
56 | #define FB_AUX_TEXT_SVGA_STEP8 10 /* SVGA text mode: text, attr, 6 reserved bytes */ | ||
57 | #define FB_AUX_TEXT_SVGA_STEP16 11 /* SVGA text mode: text, attr, 14 reserved bytes */ | ||
58 | #define FB_AUX_TEXT_SVGA_LAST 15 /* reserved up to 15 */ | ||
52 | 59 | ||
53 | #define FB_AUX_VGA_PLANES_VGA4 0 /* 16 color planes (EGA/VGA) */ | 60 | #define FB_AUX_VGA_PLANES_VGA4 0 /* 16 color planes (EGA/VGA) */ |
54 | #define FB_AUX_VGA_PLANES_CFB4 1 /* CFB4 in planes (VGA) */ | 61 | #define FB_AUX_VGA_PLANES_CFB4 1 /* CFB4 in planes (VGA) */ |
@@ -945,25 +952,26 @@ extern unsigned char *fb_ddc_read(struct i2c_adapter *adapter); | |||
945 | /* drivers/video/modedb.c */ | 952 | /* drivers/video/modedb.c */ |
946 | #define VESA_MODEDB_SIZE 34 | 953 | #define VESA_MODEDB_SIZE 34 |
947 | extern void fb_var_to_videomode(struct fb_videomode *mode, | 954 | extern void fb_var_to_videomode(struct fb_videomode *mode, |
948 | struct fb_var_screeninfo *var); | 955 | const struct fb_var_screeninfo *var); |
949 | extern void fb_videomode_to_var(struct fb_var_screeninfo *var, | 956 | extern void fb_videomode_to_var(struct fb_var_screeninfo *var, |
950 | struct fb_videomode *mode); | 957 | const struct fb_videomode *mode); |
951 | extern int fb_mode_is_equal(struct fb_videomode *mode1, | 958 | extern int fb_mode_is_equal(const struct fb_videomode *mode1, |
952 | struct fb_videomode *mode2); | 959 | const struct fb_videomode *mode2); |
953 | extern int fb_add_videomode(struct fb_videomode *mode, struct list_head *head); | 960 | extern int fb_add_videomode(const struct fb_videomode *mode, |
954 | extern void fb_delete_videomode(struct fb_videomode *mode, | 961 | struct list_head *head); |
962 | extern void fb_delete_videomode(const struct fb_videomode *mode, | ||
955 | struct list_head *head); | 963 | struct list_head *head); |
956 | extern struct fb_videomode *fb_match_mode(struct fb_var_screeninfo *var, | 964 | extern const struct fb_videomode *fb_match_mode(const struct fb_var_screeninfo *var, |
957 | struct list_head *head); | 965 | struct list_head *head); |
958 | extern struct fb_videomode *fb_find_best_mode(struct fb_var_screeninfo *var, | 966 | extern const struct fb_videomode *fb_find_best_mode(const struct fb_var_screeninfo *var, |
959 | struct list_head *head); | 967 | struct list_head *head); |
960 | extern struct fb_videomode *fb_find_nearest_mode(struct fb_videomode *mode, | 968 | extern const struct fb_videomode *fb_find_nearest_mode(const struct fb_videomode *mode, |
961 | struct list_head *head); | 969 | struct list_head *head); |
962 | extern void fb_destroy_modelist(struct list_head *head); | 970 | extern void fb_destroy_modelist(struct list_head *head); |
963 | extern void fb_videomode_to_modelist(struct fb_videomode *modedb, int num, | 971 | extern void fb_videomode_to_modelist(const struct fb_videomode *modedb, int num, |
964 | struct list_head *head); | 972 | struct list_head *head); |
965 | extern struct fb_videomode *fb_find_best_display(struct fb_monspecs *specs, | 973 | extern const struct fb_videomode *fb_find_best_display(const struct fb_monspecs *specs, |
966 | struct list_head *head); | 974 | struct list_head *head); |
967 | 975 | ||
968 | /* drivers/video/fbcmap.c */ | 976 | /* drivers/video/fbcmap.c */ |
969 | extern int fb_alloc_cmap(struct fb_cmap *cmap, int len, int transp); | 977 | extern int fb_alloc_cmap(struct fb_cmap *cmap, int len, int transp); |
diff --git a/include/linux/fs.h b/include/linux/fs.h index 20fd1619ccfb..86ec3f4a7da6 100644 --- a/include/linux/fs.h +++ b/include/linux/fs.h | |||
@@ -551,7 +551,7 @@ struct inode { | |||
551 | spinlock_t i_lock; /* i_blocks, i_bytes, maybe i_size */ | 551 | spinlock_t i_lock; /* i_blocks, i_bytes, maybe i_size */ |
552 | struct mutex i_mutex; | 552 | struct mutex i_mutex; |
553 | struct rw_semaphore i_alloc_sem; | 553 | struct rw_semaphore i_alloc_sem; |
554 | struct inode_operations *i_op; | 554 | const struct inode_operations *i_op; |
555 | const struct file_operations *i_fop; /* former ->i_op->default_file_ops */ | 555 | const struct file_operations *i_fop; /* former ->i_op->default_file_ops */ |
556 | struct super_block *i_sb; | 556 | struct super_block *i_sb; |
557 | struct file_lock *i_flock; | 557 | struct file_lock *i_flock; |
@@ -907,7 +907,7 @@ struct super_block { | |||
907 | unsigned char s_dirt; | 907 | unsigned char s_dirt; |
908 | unsigned long long s_maxbytes; /* Max file size */ | 908 | unsigned long long s_maxbytes; /* Max file size */ |
909 | struct file_system_type *s_type; | 909 | struct file_system_type *s_type; |
910 | struct super_operations *s_op; | 910 | const struct super_operations *s_op; |
911 | struct dquot_operations *dq_op; | 911 | struct dquot_operations *dq_op; |
912 | struct quotactl_ops *s_qcop; | 912 | struct quotactl_ops *s_qcop; |
913 | struct export_operations *s_export_op; | 913 | struct export_operations *s_export_op; |
@@ -1383,7 +1383,7 @@ struct super_block *sget(struct file_system_type *type, | |||
1383 | int (*set)(struct super_block *,void *), | 1383 | int (*set)(struct super_block *,void *), |
1384 | void *data); | 1384 | void *data); |
1385 | extern int get_sb_pseudo(struct file_system_type *, char *, | 1385 | extern int get_sb_pseudo(struct file_system_type *, char *, |
1386 | struct super_operations *ops, unsigned long, | 1386 | const struct super_operations *ops, unsigned long, |
1387 | struct vfsmount *mnt); | 1387 | struct vfsmount *mnt); |
1388 | extern int simple_set_mnt(struct vfsmount *mnt, struct super_block *sb); | 1388 | extern int simple_set_mnt(struct vfsmount *mnt, struct super_block *sb); |
1389 | int __put_super(struct super_block *sb); | 1389 | int __put_super(struct super_block *sb); |
@@ -1688,7 +1688,6 @@ extern struct inode *new_inode(struct super_block *); | |||
1688 | extern int __remove_suid(struct dentry *, int); | 1688 | extern int __remove_suid(struct dentry *, int); |
1689 | extern int should_remove_suid(struct dentry *); | 1689 | extern int should_remove_suid(struct dentry *); |
1690 | extern int remove_suid(struct dentry *); | 1690 | extern int remove_suid(struct dentry *); |
1691 | extern void remove_dquot_ref(struct super_block *, int, struct list_head *); | ||
1692 | 1691 | ||
1693 | extern void __insert_inode_hash(struct inode *, unsigned long hashval); | 1692 | extern void __insert_inode_hash(struct inode *, unsigned long hashval); |
1694 | extern void remove_inode_hash(struct inode *); | 1693 | extern void remove_inode_hash(struct inode *); |
@@ -1829,7 +1828,7 @@ extern void page_put_link(struct dentry *, struct nameidata *, void *); | |||
1829 | extern int __page_symlink(struct inode *inode, const char *symname, int len, | 1828 | extern int __page_symlink(struct inode *inode, const char *symname, int len, |
1830 | gfp_t gfp_mask); | 1829 | gfp_t gfp_mask); |
1831 | extern int page_symlink(struct inode *inode, const char *symname, int len); | 1830 | extern int page_symlink(struct inode *inode, const char *symname, int len); |
1832 | extern struct inode_operations page_symlink_inode_operations; | 1831 | extern const struct inode_operations page_symlink_inode_operations; |
1833 | extern int generic_readlink(struct dentry *, char __user *, int); | 1832 | extern int generic_readlink(struct dentry *, char __user *, int); |
1834 | extern void generic_fillattr(struct inode *, struct kstat *); | 1833 | extern void generic_fillattr(struct inode *, struct kstat *); |
1835 | extern int vfs_getattr(struct vfsmount *, struct dentry *, struct kstat *); | 1834 | extern int vfs_getattr(struct vfsmount *, struct dentry *, struct kstat *); |
@@ -1874,7 +1873,7 @@ extern int simple_commit_write(struct file *file, struct page *page, | |||
1874 | extern struct dentry *simple_lookup(struct inode *, struct dentry *, struct nameidata *); | 1873 | extern struct dentry *simple_lookup(struct inode *, struct dentry *, struct nameidata *); |
1875 | extern ssize_t generic_read_dir(struct file *, char __user *, size_t, loff_t *); | 1874 | extern ssize_t generic_read_dir(struct file *, char __user *, size_t, loff_t *); |
1876 | extern const struct file_operations simple_dir_operations; | 1875 | extern const struct file_operations simple_dir_operations; |
1877 | extern struct inode_operations simple_dir_inode_operations; | 1876 | extern const struct inode_operations simple_dir_inode_operations; |
1878 | struct tree_descr { char *name; const struct file_operations *ops; int mode; }; | 1877 | struct tree_descr { char *name; const struct file_operations *ops; int mode; }; |
1879 | struct dentry *d_alloc_name(struct dentry *, const char *); | 1878 | struct dentry *d_alloc_name(struct dentry *, const char *); |
1880 | extern int simple_fill_super(struct super_block *, int, struct tree_descr *); | 1879 | extern int simple_fill_super(struct super_block *, int, struct tree_descr *); |
diff --git a/include/linux/gigaset_dev.h b/include/linux/gigaset_dev.h index 70ad09c8ad1e..5dc4a316ca37 100644 --- a/include/linux/gigaset_dev.h +++ b/include/linux/gigaset_dev.h | |||
@@ -9,8 +9,6 @@ | |||
9 | * published by the Free Software Foundation; either version 2 of | 9 | * published by the Free Software Foundation; either version 2 of |
10 | * the License, or (at your option) any later version. | 10 | * the License, or (at your option) any later version. |
11 | * ===================================================================== | 11 | * ===================================================================== |
12 | * Version: $Id: gigaset_dev.h,v 1.4.4.4 2005/11/21 22:28:09 hjlipp Exp $ | ||
13 | * ===================================================================== | ||
14 | */ | 12 | */ |
15 | 13 | ||
16 | #ifndef GIGASET_INTERFACE_H | 14 | #ifndef GIGASET_INTERFACE_H |
diff --git a/include/linux/init.h b/include/linux/init.h index c65f5107d512..e290a010e3f2 100644 --- a/include/linux/init.h +++ b/include/linux/init.h | |||
@@ -67,7 +67,8 @@ extern initcall_t __con_initcall_start[], __con_initcall_end[]; | |||
67 | extern initcall_t __security_initcall_start[], __security_initcall_end[]; | 67 | extern initcall_t __security_initcall_start[], __security_initcall_end[]; |
68 | 68 | ||
69 | /* Defined in init/main.c */ | 69 | /* Defined in init/main.c */ |
70 | extern char saved_command_line[]; | 70 | extern char __initdata boot_command_line[]; |
71 | extern char *saved_command_line; | ||
71 | extern unsigned int reset_devices; | 72 | extern unsigned int reset_devices; |
72 | 73 | ||
73 | /* used by init/main.c */ | 74 | /* used by init/main.c */ |
@@ -164,7 +165,7 @@ struct obs_kernel_param { | |||
164 | #define early_param(str, fn) \ | 165 | #define early_param(str, fn) \ |
165 | __setup_param(str, fn, fn, 1) | 166 | __setup_param(str, fn, fn, 1) |
166 | 167 | ||
167 | /* Relies on saved_command_line being set */ | 168 | /* Relies on boot_command_line being set */ |
168 | void __init parse_early_param(void); | 169 | void __init parse_early_param(void); |
169 | #endif /* __ASSEMBLY__ */ | 170 | #endif /* __ASSEMBLY__ */ |
170 | 171 | ||
diff --git a/include/linux/init_task.h b/include/linux/init_task.h index 6383d2d83bb0..a2d95ff50e9b 100644 --- a/include/linux/init_task.h +++ b/include/linux/init_task.h | |||
@@ -66,7 +66,7 @@ | |||
66 | .cpu_timers = INIT_CPU_TIMERS(sig.cpu_timers), \ | 66 | .cpu_timers = INIT_CPU_TIMERS(sig.cpu_timers), \ |
67 | .rlim = INIT_RLIMITS, \ | 67 | .rlim = INIT_RLIMITS, \ |
68 | .pgrp = 1, \ | 68 | .pgrp = 1, \ |
69 | .tty_old_pgrp = 0, \ | 69 | .tty_old_pgrp = NULL, \ |
70 | { .__session = 1}, \ | 70 | { .__session = 1}, \ |
71 | } | 71 | } |
72 | 72 | ||
diff --git a/include/linux/kernel.h b/include/linux/kernel.h index e91dce75bbcc..9ddf25c21538 100644 --- a/include/linux/kernel.h +++ b/include/linux/kernel.h | |||
@@ -92,11 +92,6 @@ extern int cond_resched(void); | |||
92 | (__x < 0) ? -__x : __x; \ | 92 | (__x < 0) ? -__x : __x; \ |
93 | }) | 93 | }) |
94 | 94 | ||
95 | #define labs(x) ({ \ | ||
96 | long __x = (x); \ | ||
97 | (__x < 0) ? -__x : __x; \ | ||
98 | }) | ||
99 | |||
100 | extern struct atomic_notifier_head panic_notifier_list; | 95 | extern struct atomic_notifier_head panic_notifier_list; |
101 | extern long (*panic_blink)(long time); | 96 | extern long (*panic_blink)(long time); |
102 | NORET_TYPE void panic(const char * fmt, ...) | 97 | NORET_TYPE void panic(const char * fmt, ...) |
@@ -139,7 +134,8 @@ extern unsigned long long memparse(char *ptr, char **retptr); | |||
139 | extern int core_kernel_text(unsigned long addr); | 134 | extern int core_kernel_text(unsigned long addr); |
140 | extern int __kernel_text_address(unsigned long addr); | 135 | extern int __kernel_text_address(unsigned long addr); |
141 | extern int kernel_text_address(unsigned long addr); | 136 | extern int kernel_text_address(unsigned long addr); |
142 | extern int session_of_pgrp(int pgrp); | 137 | struct pid; |
138 | extern struct pid *session_of_pgrp(struct pid *pgrp); | ||
143 | 139 | ||
144 | extern void dump_thread(struct pt_regs *regs, struct user *dump); | 140 | extern void dump_thread(struct pt_regs *regs, struct user *dump); |
145 | 141 | ||
diff --git a/include/linux/kvm.h b/include/linux/kvm.h index 1be148f0fce4..f3604593fb76 100644 --- a/include/linux/kvm.h +++ b/include/linux/kvm.h | |||
@@ -11,7 +11,7 @@ | |||
11 | #include <asm/types.h> | 11 | #include <asm/types.h> |
12 | #include <linux/ioctl.h> | 12 | #include <linux/ioctl.h> |
13 | 13 | ||
14 | #define KVM_API_VERSION 2 | 14 | #define KVM_API_VERSION 3 |
15 | 15 | ||
16 | /* | 16 | /* |
17 | * Architectural interrupt line count, and the size of the bitmap needed | 17 | * Architectural interrupt line count, and the size of the bitmap needed |
@@ -65,6 +65,8 @@ struct kvm_run { | |||
65 | __u8 ready_for_interrupt_injection; | 65 | __u8 ready_for_interrupt_injection; |
66 | __u8 if_flag; | 66 | __u8 if_flag; |
67 | __u16 padding2; | 67 | __u16 padding2; |
68 | |||
69 | /* in (pre_kvm_run), out (post_kvm_run) */ | ||
68 | __u64 cr8; | 70 | __u64 cr8; |
69 | __u64 apic_base; | 71 | __u64 apic_base; |
70 | 72 | ||
@@ -185,6 +187,7 @@ struct kvm_translation { | |||
185 | __u8 valid; | 187 | __u8 valid; |
186 | __u8 writeable; | 188 | __u8 writeable; |
187 | __u8 usermode; | 189 | __u8 usermode; |
190 | __u8 pad[5]; | ||
188 | }; | 191 | }; |
189 | 192 | ||
190 | /* for KVM_INTERRUPT */ | 193 | /* for KVM_INTERRUPT */ |
diff --git a/include/linux/lockdep.h b/include/linux/lockdep.h index 7e1160dde5e7..06fe93a3e916 100644 --- a/include/linux/lockdep.h +++ b/include/linux/lockdep.h | |||
@@ -8,6 +8,8 @@ | |||
8 | #ifndef __LINUX_LOCKDEP_H | 8 | #ifndef __LINUX_LOCKDEP_H |
9 | #define __LINUX_LOCKDEP_H | 9 | #define __LINUX_LOCKDEP_H |
10 | 10 | ||
11 | struct task_struct; | ||
12 | |||
11 | #ifdef CONFIG_LOCKDEP | 13 | #ifdef CONFIG_LOCKDEP |
12 | 14 | ||
13 | #include <linux/linkage.h> | 15 | #include <linux/linkage.h> |
diff --git a/include/linux/magic.h b/include/linux/magic.h index b78bbf42135a..b32c8a97fcec 100644 --- a/include/linux/magic.h +++ b/include/linux/magic.h | |||
@@ -18,6 +18,7 @@ | |||
18 | #define MINIX_SUPER_MAGIC2 0x138F /* minix fs, 30 char names */ | 18 | #define MINIX_SUPER_MAGIC2 0x138F /* minix fs, 30 char names */ |
19 | #define MINIX2_SUPER_MAGIC 0x2468 /* minix V2 fs */ | 19 | #define MINIX2_SUPER_MAGIC 0x2468 /* minix V2 fs */ |
20 | #define MINIX2_SUPER_MAGIC2 0x2478 /* minix V2 fs, 30 char names */ | 20 | #define MINIX2_SUPER_MAGIC2 0x2478 /* minix V2 fs, 30 char names */ |
21 | #define MINIX3_SUPER_MAGIC 0x4d5a /* minix V3 fs */ | ||
21 | 22 | ||
22 | #define MSDOS_SUPER_MAGIC 0x4d44 /* MD */ | 23 | #define MSDOS_SUPER_MAGIC 0x4d44 /* MD */ |
23 | #define NCP_SUPER_MAGIC 0x564c /* Guess, what 0x564c is :-) */ | 24 | #define NCP_SUPER_MAGIC 0x564c /* Guess, what 0x564c is :-) */ |
diff --git a/include/linux/minix_fs.h b/include/linux/minix_fs.h index 916e8f72c63d..9850d513ff60 100644 --- a/include/linux/minix_fs.h +++ b/include/linux/minix_fs.h | |||
@@ -25,7 +25,6 @@ | |||
25 | #define MINIX_ERROR_FS 0x0002 /* fs has errors. */ | 25 | #define MINIX_ERROR_FS 0x0002 /* fs has errors. */ |
26 | 26 | ||
27 | #define MINIX_INODES_PER_BLOCK ((BLOCK_SIZE)/(sizeof (struct minix_inode))) | 27 | #define MINIX_INODES_PER_BLOCK ((BLOCK_SIZE)/(sizeof (struct minix_inode))) |
28 | #define MINIX2_INODES_PER_BLOCK ((BLOCK_SIZE)/(sizeof (struct minix2_inode))) | ||
29 | 28 | ||
30 | /* | 29 | /* |
31 | * This is the original minix inode layout on disk. | 30 | * This is the original minix inode layout on disk. |
@@ -75,9 +74,33 @@ struct minix_super_block { | |||
75 | __u32 s_zones; | 74 | __u32 s_zones; |
76 | }; | 75 | }; |
77 | 76 | ||
77 | /* | ||
78 | * V3 minix super-block data on disk | ||
79 | */ | ||
80 | struct minix3_super_block { | ||
81 | __u16 s_ninodes; | ||
82 | __u16 s_nzones; | ||
83 | __u16 s_pad0; | ||
84 | __u16 s_imap_blocks; | ||
85 | __u16 s_zmap_blocks; | ||
86 | __u16 s_firstdatazone; | ||
87 | __u16 s_log_zone_size; | ||
88 | __u16 s_pad1; | ||
89 | __u32 s_max_size; | ||
90 | __u32 s_zones; | ||
91 | __u16 s_magic; | ||
92 | __u16 s_pad2; | ||
93 | __u16 s_blocksize; | ||
94 | __u8 s_disk_version; | ||
95 | }; | ||
96 | |||
78 | struct minix_dir_entry { | 97 | struct minix_dir_entry { |
79 | __u16 inode; | 98 | __u16 inode; |
80 | char name[0]; | 99 | char name[0]; |
81 | }; | 100 | }; |
82 | 101 | ||
102 | struct minix3_dir_entry { | ||
103 | __u32 inode; | ||
104 | char name[0]; | ||
105 | }; | ||
83 | #endif | 106 | #endif |
diff --git a/include/linux/mm.h b/include/linux/mm.h index 77a76101dcd9..a0eec16eb0bd 100644 --- a/include/linux/mm.h +++ b/include/linux/mm.h | |||
@@ -637,6 +637,7 @@ static inline int page_mapped(struct page *page) | |||
637 | */ | 637 | */ |
638 | #define NOPFN_SIGBUS ((unsigned long) -1) | 638 | #define NOPFN_SIGBUS ((unsigned long) -1) |
639 | #define NOPFN_OOM ((unsigned long) -2) | 639 | #define NOPFN_OOM ((unsigned long) -2) |
640 | #define NOPFN_REFAULT ((unsigned long) -3) | ||
640 | 641 | ||
641 | /* | 642 | /* |
642 | * Different kinds of faults, as returned by handle_mm_fault(). | 643 | * Different kinds of faults, as returned by handle_mm_fault(). |
@@ -1124,6 +1125,8 @@ unsigned long vmalloc_to_pfn(void *addr); | |||
1124 | int remap_pfn_range(struct vm_area_struct *, unsigned long addr, | 1125 | int remap_pfn_range(struct vm_area_struct *, unsigned long addr, |
1125 | unsigned long pfn, unsigned long size, pgprot_t); | 1126 | unsigned long pfn, unsigned long size, pgprot_t); |
1126 | int vm_insert_page(struct vm_area_struct *, unsigned long addr, struct page *); | 1127 | int vm_insert_page(struct vm_area_struct *, unsigned long addr, struct page *); |
1128 | int vm_insert_pfn(struct vm_area_struct *vma, unsigned long addr, | ||
1129 | unsigned long pfn); | ||
1127 | 1130 | ||
1128 | struct page *follow_page(struct vm_area_struct *, unsigned long address, | 1131 | struct page *follow_page(struct vm_area_struct *, unsigned long address, |
1129 | unsigned int foll_flags); | 1132 | unsigned int foll_flags); |
diff --git a/include/linux/msdos_fs.h b/include/linux/msdos_fs.h index 24a9ef1506b6..fa253fa73aa3 100644 --- a/include/linux/msdos_fs.h +++ b/include/linux/msdos_fs.h | |||
@@ -234,7 +234,7 @@ struct msdos_sb_info { | |||
234 | struct fat_mount_options options; | 234 | struct fat_mount_options options; |
235 | struct nls_table *nls_disk; /* Codepage used on disk */ | 235 | struct nls_table *nls_disk; /* Codepage used on disk */ |
236 | struct nls_table *nls_io; /* Charset used for input and display */ | 236 | struct nls_table *nls_io; /* Charset used for input and display */ |
237 | void *dir_ops; /* Opaque; default directory operations */ | 237 | const void *dir_ops; /* Opaque; default directory operations */ |
238 | int dir_per_block; /* dir entries per block */ | 238 | int dir_per_block; /* dir entries per block */ |
239 | int dir_per_block_bits; /* log2(dir_per_block) */ | 239 | int dir_per_block_bits; /* log2(dir_per_block) */ |
240 | 240 | ||
@@ -399,7 +399,7 @@ extern int fat_count_free_clusters(struct super_block *sb); | |||
399 | extern int fat_generic_ioctl(struct inode *inode, struct file *filp, | 399 | extern int fat_generic_ioctl(struct inode *inode, struct file *filp, |
400 | unsigned int cmd, unsigned long arg); | 400 | unsigned int cmd, unsigned long arg); |
401 | extern const struct file_operations fat_file_operations; | 401 | extern const struct file_operations fat_file_operations; |
402 | extern struct inode_operations fat_file_inode_operations; | 402 | extern const struct inode_operations fat_file_inode_operations; |
403 | extern int fat_notify_change(struct dentry * dentry, struct iattr * attr); | 403 | extern int fat_notify_change(struct dentry * dentry, struct iattr * attr); |
404 | extern void fat_truncate(struct inode *inode); | 404 | extern void fat_truncate(struct inode *inode); |
405 | extern int fat_getattr(struct vfsmount *mnt, struct dentry *dentry, | 405 | extern int fat_getattr(struct vfsmount *mnt, struct dentry *dentry, |
@@ -413,7 +413,7 @@ extern struct inode *fat_build_inode(struct super_block *sb, | |||
413 | struct msdos_dir_entry *de, loff_t i_pos); | 413 | struct msdos_dir_entry *de, loff_t i_pos); |
414 | extern int fat_sync_inode(struct inode *inode); | 414 | extern int fat_sync_inode(struct inode *inode); |
415 | extern int fat_fill_super(struct super_block *sb, void *data, int silent, | 415 | extern int fat_fill_super(struct super_block *sb, void *data, int silent, |
416 | struct inode_operations *fs_dir_inode_ops, int isvfat); | 416 | const struct inode_operations *fs_dir_inode_ops, int isvfat); |
417 | 417 | ||
418 | extern int fat_flush_inodes(struct super_block *sb, struct inode *i1, | 418 | extern int fat_flush_inodes(struct super_block *sb, struct inode *i1, |
419 | struct inode *i2); | 419 | struct inode *i2); |
diff --git a/include/linux/ncp_fs.h b/include/linux/ncp_fs.h index 0ea7f89e613c..83e39eb054d3 100644 --- a/include/linux/ncp_fs.h +++ b/include/linux/ncp_fs.h | |||
@@ -204,7 +204,7 @@ void ncp_update_inode(struct inode *, struct ncp_entry_info *); | |||
204 | void ncp_update_inode2(struct inode *, struct ncp_entry_info *); | 204 | void ncp_update_inode2(struct inode *, struct ncp_entry_info *); |
205 | 205 | ||
206 | /* linux/fs/ncpfs/dir.c */ | 206 | /* linux/fs/ncpfs/dir.c */ |
207 | extern struct inode_operations ncp_dir_inode_operations; | 207 | extern const struct inode_operations ncp_dir_inode_operations; |
208 | extern const struct file_operations ncp_dir_operations; | 208 | extern const struct file_operations ncp_dir_operations; |
209 | int ncp_conn_logged_in(struct super_block *); | 209 | int ncp_conn_logged_in(struct super_block *); |
210 | int ncp_date_dos2unix(__le16 time, __le16 date); | 210 | int ncp_date_dos2unix(__le16 time, __le16 date); |
@@ -226,7 +226,7 @@ void ncp_lock_server(struct ncp_server *server); | |||
226 | void ncp_unlock_server(struct ncp_server *server); | 226 | void ncp_unlock_server(struct ncp_server *server); |
227 | 227 | ||
228 | /* linux/fs/ncpfs/file.c */ | 228 | /* linux/fs/ncpfs/file.c */ |
229 | extern struct inode_operations ncp_file_inode_operations; | 229 | extern const struct inode_operations ncp_file_inode_operations; |
230 | extern const struct file_operations ncp_file_operations; | 230 | extern const struct file_operations ncp_file_operations; |
231 | int ncp_make_open(struct inode *, int); | 231 | int ncp_make_open(struct inode *, int); |
232 | 232 | ||
diff --git a/include/linux/netlink.h b/include/linux/netlink.h index b3b9b609ee89..2a20f488ac1b 100644 --- a/include/linux/netlink.h +++ b/include/linux/netlink.h | |||
@@ -23,6 +23,7 @@ | |||
23 | #define NETLINK_GENERIC 16 | 23 | #define NETLINK_GENERIC 16 |
24 | /* leave room for NETLINK_DM (DM Events) */ | 24 | /* leave room for NETLINK_DM (DM Events) */ |
25 | #define NETLINK_SCSITRANSPORT 18 /* SCSI Transports */ | 25 | #define NETLINK_SCSITRANSPORT 18 /* SCSI Transports */ |
26 | #define NETLINK_ECRYPTFS 19 | ||
26 | 27 | ||
27 | #define MAX_LINKS 32 | 28 | #define MAX_LINKS 32 |
28 | 29 | ||
diff --git a/include/linux/nfs_fs.h b/include/linux/nfs_fs.h index c5d4084773e8..ed0f2eac8f50 100644 --- a/include/linux/nfs_fs.h +++ b/include/linux/nfs_fs.h | |||
@@ -331,9 +331,9 @@ static inline void nfs_fattr_init(struct nfs_fattr *fattr) | |||
331 | /* | 331 | /* |
332 | * linux/fs/nfs/file.c | 332 | * linux/fs/nfs/file.c |
333 | */ | 333 | */ |
334 | extern struct inode_operations nfs_file_inode_operations; | 334 | extern const struct inode_operations nfs_file_inode_operations; |
335 | #ifdef CONFIG_NFS_V3 | 335 | #ifdef CONFIG_NFS_V3 |
336 | extern struct inode_operations nfs3_file_inode_operations; | 336 | extern const struct inode_operations nfs3_file_inode_operations; |
337 | #endif /* CONFIG_NFS_V3 */ | 337 | #endif /* CONFIG_NFS_V3 */ |
338 | extern const struct file_operations nfs_file_operations; | 338 | extern const struct file_operations nfs_file_operations; |
339 | extern const struct address_space_operations nfs_file_aops; | 339 | extern const struct address_space_operations nfs_file_aops; |
@@ -380,9 +380,9 @@ extern ssize_t nfs_file_direct_write(struct kiocb *iocb, | |||
380 | /* | 380 | /* |
381 | * linux/fs/nfs/dir.c | 381 | * linux/fs/nfs/dir.c |
382 | */ | 382 | */ |
383 | extern struct inode_operations nfs_dir_inode_operations; | 383 | extern const struct inode_operations nfs_dir_inode_operations; |
384 | #ifdef CONFIG_NFS_V3 | 384 | #ifdef CONFIG_NFS_V3 |
385 | extern struct inode_operations nfs3_dir_inode_operations; | 385 | extern const struct inode_operations nfs3_dir_inode_operations; |
386 | #endif /* CONFIG_NFS_V3 */ | 386 | #endif /* CONFIG_NFS_V3 */ |
387 | extern const struct file_operations nfs_dir_operations; | 387 | extern const struct file_operations nfs_dir_operations; |
388 | extern struct dentry_operations nfs_dentry_operations; | 388 | extern struct dentry_operations nfs_dentry_operations; |
@@ -392,7 +392,7 @@ extern int nfs_instantiate(struct dentry *dentry, struct nfs_fh *fh, struct nfs_ | |||
392 | /* | 392 | /* |
393 | * linux/fs/nfs/symlink.c | 393 | * linux/fs/nfs/symlink.c |
394 | */ | 394 | */ |
395 | extern struct inode_operations nfs_symlink_inode_operations; | 395 | extern const struct inode_operations nfs_symlink_inode_operations; |
396 | 396 | ||
397 | /* | 397 | /* |
398 | * linux/fs/nfs/sysctl.c | 398 | * linux/fs/nfs/sysctl.c |
@@ -409,8 +409,8 @@ extern void nfs_unregister_sysctl(void); | |||
409 | * linux/fs/nfs/namespace.c | 409 | * linux/fs/nfs/namespace.c |
410 | */ | 410 | */ |
411 | extern struct list_head nfs_automount_list; | 411 | extern struct list_head nfs_automount_list; |
412 | extern struct inode_operations nfs_mountpoint_inode_operations; | 412 | extern const struct inode_operations nfs_mountpoint_inode_operations; |
413 | extern struct inode_operations nfs_referral_inode_operations; | 413 | extern const struct inode_operations nfs_referral_inode_operations; |
414 | extern int nfs_mountpoint_expiry_timeout; | 414 | extern int nfs_mountpoint_expiry_timeout; |
415 | extern void nfs_release_automount_timer(void); | 415 | extern void nfs_release_automount_timer(void); |
416 | 416 | ||
diff --git a/include/linux/nfs_xdr.h b/include/linux/nfs_xdr.h index 9ee9da5e1cc9..30d7116d601e 100644 --- a/include/linux/nfs_xdr.h +++ b/include/linux/nfs_xdr.h | |||
@@ -767,8 +767,8 @@ struct nfs_access_entry; | |||
767 | struct nfs_rpc_ops { | 767 | struct nfs_rpc_ops { |
768 | int version; /* Protocol version */ | 768 | int version; /* Protocol version */ |
769 | struct dentry_operations *dentry_ops; | 769 | struct dentry_operations *dentry_ops; |
770 | struct inode_operations *dir_inode_ops; | 770 | const struct inode_operations *dir_inode_ops; |
771 | struct inode_operations *file_inode_ops; | 771 | const struct inode_operations *file_inode_ops; |
772 | 772 | ||
773 | int (*getroot) (struct nfs_server *, struct nfs_fh *, | 773 | int (*getroot) (struct nfs_server *, struct nfs_fh *, |
774 | struct nfs_fsinfo *); | 774 | struct nfs_fsinfo *); |
diff --git a/include/linux/nfsd/const.h b/include/linux/nfsd/const.h index f0cc77790527..323f8cfa060a 100644 --- a/include/linux/nfsd/const.h +++ b/include/linux/nfsd/const.h | |||
@@ -30,10 +30,6 @@ | |||
30 | 30 | ||
31 | #include <linux/sunrpc/msg_prot.h> | 31 | #include <linux/sunrpc/msg_prot.h> |
32 | 32 | ||
33 | #ifndef NFS_SUPER_MAGIC | ||
34 | # define NFS_SUPER_MAGIC 0x6969 | ||
35 | #endif | ||
36 | |||
37 | /* | 33 | /* |
38 | * Largest number of bytes we need to allocate for an NFS | 34 | * Largest number of bytes we need to allocate for an NFS |
39 | * call or reply. Used to control buffer sizes. We use | 35 | * call or reply. Used to control buffer sizes. We use |
diff --git a/include/linux/phonedev.h b/include/linux/phonedev.h index a0e31adf3abe..4269de99e320 100644 --- a/include/linux/phonedev.h +++ b/include/linux/phonedev.h | |||
@@ -9,7 +9,7 @@ | |||
9 | 9 | ||
10 | struct phone_device { | 10 | struct phone_device { |
11 | struct phone_device *next; | 11 | struct phone_device *next; |
12 | struct file_operations *f_op; | 12 | const struct file_operations *f_op; |
13 | int (*open) (struct phone_device *, struct file *); | 13 | int (*open) (struct phone_device *, struct file *); |
14 | int board; /* Device private index */ | 14 | int board; /* Device private index */ |
15 | int minor; | 15 | int minor; |
diff --git a/include/linux/pid.h b/include/linux/pid.h index 4dec047b1837..2ac27f9997dd 100644 --- a/include/linux/pid.h +++ b/include/linux/pid.h | |||
@@ -105,20 +105,6 @@ static inline pid_t pid_nr(struct pid *pid) | |||
105 | return nr; | 105 | return nr; |
106 | } | 106 | } |
107 | 107 | ||
108 | |||
109 | #define do_each_task_pid(who, type, task) \ | ||
110 | do { \ | ||
111 | struct hlist_node *pos___; \ | ||
112 | struct pid *pid___ = find_pid(who); \ | ||
113 | if (pid___ != NULL) \ | ||
114 | hlist_for_each_entry_rcu((task), pos___, \ | ||
115 | &pid___->tasks[type], pids[type].node) { | ||
116 | |||
117 | #define while_each_task_pid(who, type, task) \ | ||
118 | } \ | ||
119 | } while (0) | ||
120 | |||
121 | |||
122 | #define do_each_pid_task(pid, type, task) \ | 108 | #define do_each_pid_task(pid, type, task) \ |
123 | do { \ | 109 | do { \ |
124 | struct hlist_node *pos___; \ | 110 | struct hlist_node *pos___; \ |
diff --git a/include/linux/proc_fs.h b/include/linux/proc_fs.h index 87dec8fe6de9..2e132473cbe5 100644 --- a/include/linux/proc_fs.h +++ b/include/linux/proc_fs.h | |||
@@ -55,8 +55,8 @@ struct proc_dir_entry { | |||
55 | uid_t uid; | 55 | uid_t uid; |
56 | gid_t gid; | 56 | gid_t gid; |
57 | loff_t size; | 57 | loff_t size; |
58 | struct inode_operations * proc_iops; | 58 | const struct inode_operations *proc_iops; |
59 | const struct file_operations * proc_fops; | 59 | const struct file_operations *proc_fops; |
60 | get_info_t *get_info; | 60 | get_info_t *get_info; |
61 | struct module *owner; | 61 | struct module *owner; |
62 | struct proc_dir_entry *next, *parent, *subdir; | 62 | struct proc_dir_entry *next, *parent, *subdir; |
diff --git a/include/linux/qnx4_fs.h b/include/linux/qnx4_fs.h index 0c7ac444fd35..19bc9b8b6191 100644 --- a/include/linux/qnx4_fs.h +++ b/include/linux/qnx4_fs.h | |||
@@ -116,8 +116,8 @@ extern unsigned long qnx4_block_map(struct inode *inode, long iblock); | |||
116 | 116 | ||
117 | extern struct buffer_head *qnx4_bread(struct inode *, int, int); | 117 | extern struct buffer_head *qnx4_bread(struct inode *, int, int); |
118 | 118 | ||
119 | extern struct inode_operations qnx4_file_inode_operations; | 119 | extern const struct inode_operations qnx4_file_inode_operations; |
120 | extern struct inode_operations qnx4_dir_inode_operations; | 120 | extern const struct inode_operations qnx4_dir_inode_operations; |
121 | extern const struct file_operations qnx4_file_operations; | 121 | extern const struct file_operations qnx4_file_operations; |
122 | extern const struct file_operations qnx4_dir_operations; | 122 | extern const struct file_operations qnx4_dir_operations; |
123 | extern int qnx4_is_free(struct super_block *sb, long block); | 123 | extern int qnx4_is_free(struct super_block *sb, long block); |
diff --git a/include/linux/quota.h b/include/linux/quota.h index b8fbf26eb885..77db80a953d6 100644 --- a/include/linux/quota.h +++ b/include/linux/quota.h | |||
@@ -132,6 +132,7 @@ struct if_dqinfo { | |||
132 | 132 | ||
133 | #ifdef __KERNEL__ | 133 | #ifdef __KERNEL__ |
134 | #include <linux/spinlock.h> | 134 | #include <linux/spinlock.h> |
135 | #include <linux/rwsem.h> | ||
135 | #include <linux/mutex.h> | 136 | #include <linux/mutex.h> |
136 | 137 | ||
137 | #include <linux/dqblk_xfs.h> | 138 | #include <linux/dqblk_xfs.h> |
diff --git a/include/linux/random.h b/include/linux/random.h index 01ad71033d65..36f125c0c603 100644 --- a/include/linux/random.h +++ b/include/linux/random.h | |||
@@ -63,7 +63,7 @@ extern u64 secure_dccp_sequence_number(__be32 saddr, __be32 daddr, | |||
63 | __be16 sport, __be16 dport); | 63 | __be16 sport, __be16 dport); |
64 | 64 | ||
65 | #ifndef MODULE | 65 | #ifndef MODULE |
66 | extern struct file_operations random_fops, urandom_fops; | 66 | extern const struct file_operations random_fops, urandom_fops; |
67 | #endif | 67 | #endif |
68 | 68 | ||
69 | unsigned int get_random_int(void); | 69 | unsigned int get_random_int(void); |
diff --git a/include/linux/reiserfs_fs.h b/include/linux/reiserfs_fs.h index c3fc6caaad3f..965d5b3ea9eb 100644 --- a/include/linux/reiserfs_fs.h +++ b/include/linux/reiserfs_fs.h | |||
@@ -1949,9 +1949,9 @@ int reiserfs_global_version_in_proc(char *buffer, char **start, off_t offset, | |||
1949 | #endif | 1949 | #endif |
1950 | 1950 | ||
1951 | /* dir.c */ | 1951 | /* dir.c */ |
1952 | extern struct inode_operations reiserfs_dir_inode_operations; | 1952 | extern const struct inode_operations reiserfs_dir_inode_operations; |
1953 | extern struct inode_operations reiserfs_symlink_inode_operations; | 1953 | extern const struct inode_operations reiserfs_symlink_inode_operations; |
1954 | extern struct inode_operations reiserfs_special_inode_operations; | 1954 | extern const struct inode_operations reiserfs_special_inode_operations; |
1955 | extern const struct file_operations reiserfs_dir_operations; | 1955 | extern const struct file_operations reiserfs_dir_operations; |
1956 | 1956 | ||
1957 | /* tail_conversion.c */ | 1957 | /* tail_conversion.c */ |
@@ -1963,7 +1963,7 @@ int indirect2direct(struct reiserfs_transaction_handle *, struct inode *, | |||
1963 | void reiserfs_unmap_buffer(struct buffer_head *); | 1963 | void reiserfs_unmap_buffer(struct buffer_head *); |
1964 | 1964 | ||
1965 | /* file.c */ | 1965 | /* file.c */ |
1966 | extern struct inode_operations reiserfs_file_inode_operations; | 1966 | extern const struct inode_operations reiserfs_file_inode_operations; |
1967 | extern const struct file_operations reiserfs_file_operations; | 1967 | extern const struct file_operations reiserfs_file_operations; |
1968 | extern const struct address_space_operations reiserfs_address_space_operations; | 1968 | extern const struct address_space_operations reiserfs_address_space_operations; |
1969 | 1969 | ||
diff --git a/include/linux/sched.h b/include/linux/sched.h index 76c8e2dc48dd..5053dc01fad4 100644 --- a/include/linux/sched.h +++ b/include/linux/sched.h | |||
@@ -436,7 +436,7 @@ struct signal_struct { | |||
436 | 436 | ||
437 | /* job control IDs */ | 437 | /* job control IDs */ |
438 | pid_t pgrp; | 438 | pid_t pgrp; |
439 | pid_t tty_old_pgrp; | 439 | struct pid *tty_old_pgrp; |
440 | 440 | ||
441 | union { | 441 | union { |
442 | pid_t session __deprecated; | 442 | pid_t session __deprecated; |
@@ -1329,14 +1329,11 @@ extern int kill_pid_info(int sig, struct siginfo *info, struct pid *pid); | |||
1329 | extern int kill_pid_info_as_uid(int, struct siginfo *, struct pid *, uid_t, uid_t, u32); | 1329 | extern int kill_pid_info_as_uid(int, struct siginfo *, struct pid *, uid_t, uid_t, u32); |
1330 | extern int kill_pgrp(struct pid *pid, int sig, int priv); | 1330 | extern int kill_pgrp(struct pid *pid, int sig, int priv); |
1331 | extern int kill_pid(struct pid *pid, int sig, int priv); | 1331 | extern int kill_pid(struct pid *pid, int sig, int priv); |
1332 | extern int __kill_pg_info(int sig, struct siginfo *info, pid_t pgrp); | ||
1333 | extern int kill_pg_info(int, struct siginfo *, pid_t); | ||
1334 | extern void do_notify_parent(struct task_struct *, int); | 1332 | extern void do_notify_parent(struct task_struct *, int); |
1335 | extern void force_sig(int, struct task_struct *); | 1333 | extern void force_sig(int, struct task_struct *); |
1336 | extern void force_sig_specific(int, struct task_struct *); | 1334 | extern void force_sig_specific(int, struct task_struct *); |
1337 | extern int send_sig(int, struct task_struct *, int); | 1335 | extern int send_sig(int, struct task_struct *, int); |
1338 | extern void zap_other_threads(struct task_struct *p); | 1336 | extern void zap_other_threads(struct task_struct *p); |
1339 | extern int kill_pg(pid_t, int, int); | ||
1340 | extern int kill_proc(pid_t, int, int); | 1337 | extern int kill_proc(pid_t, int, int); |
1341 | extern struct sigqueue *sigqueue_alloc(void); | 1338 | extern struct sigqueue *sigqueue_alloc(void); |
1342 | extern void sigqueue_free(struct sigqueue *); | 1339 | extern void sigqueue_free(struct sigqueue *); |
diff --git a/include/linux/security.h b/include/linux/security.h index c554f60f18e4..7f88d97575fd 100644 --- a/include/linux/security.h +++ b/include/linux/security.h | |||
@@ -2130,7 +2130,7 @@ extern int mod_reg_security (const char *name, struct security_operations *ops); | |||
2130 | extern int mod_unreg_security (const char *name, struct security_operations *ops); | 2130 | extern int mod_unreg_security (const char *name, struct security_operations *ops); |
2131 | extern struct dentry *securityfs_create_file(const char *name, mode_t mode, | 2131 | extern struct dentry *securityfs_create_file(const char *name, mode_t mode, |
2132 | struct dentry *parent, void *data, | 2132 | struct dentry *parent, void *data, |
2133 | struct file_operations *fops); | 2133 | const struct file_operations *fops); |
2134 | extern struct dentry *securityfs_create_dir(const char *name, struct dentry *parent); | 2134 | extern struct dentry *securityfs_create_dir(const char *name, struct dentry *parent); |
2135 | extern void securityfs_remove(struct dentry *dentry); | 2135 | extern void securityfs_remove(struct dentry *dentry); |
2136 | 2136 | ||
diff --git a/include/linux/spi/eeprom.h b/include/linux/spi/eeprom.h new file mode 100644 index 000000000000..1085212c446e --- /dev/null +++ b/include/linux/spi/eeprom.h | |||
@@ -0,0 +1,22 @@ | |||
1 | #ifndef __LINUX_SPI_EEPROM_H | ||
2 | #define __LINUX_SPI_EEPROM_H | ||
3 | |||
4 | /* | ||
5 | * Put one of these structures in platform_data for SPI EEPROMS handled | ||
6 | * by the "at25" driver. On SPI, most EEPROMS understand the same core | ||
7 | * command set. If you need to support EEPROMs that don't yet fit, add | ||
8 | * flags to support those protocol options. These values all come from | ||
9 | * the chip datasheets. | ||
10 | */ | ||
11 | struct spi_eeprom { | ||
12 | u32 byte_len; | ||
13 | char name[10]; | ||
14 | u16 page_size; /* for writes */ | ||
15 | u16 flags; | ||
16 | #define EE_ADDR1 0x0001 /* 8 bit addrs */ | ||
17 | #define EE_ADDR2 0x0002 /* 16 bit addrs */ | ||
18 | #define EE_ADDR3 0x0004 /* 24 bit addrs */ | ||
19 | #define EE_READONLY 0x0008 /* disallow writes */ | ||
20 | }; | ||
21 | |||
22 | #endif /* __LINUX_SPI_EEPROM_H */ | ||
diff --git a/include/linux/spi/spi.h b/include/linux/spi/spi.h index 176f6e36dbfa..4f0f8c2e58a5 100644 --- a/include/linux/spi/spi.h +++ b/include/linux/spi/spi.h | |||
@@ -114,6 +114,17 @@ static inline void spi_set_ctldata(struct spi_device *spi, void *state) | |||
114 | spi->controller_state = state; | 114 | spi->controller_state = state; |
115 | } | 115 | } |
116 | 116 | ||
117 | /* device driver data */ | ||
118 | |||
119 | static inline void spi_set_drvdata(struct spi_device *spi, void *data) | ||
120 | { | ||
121 | dev_set_drvdata(&spi->dev, data); | ||
122 | } | ||
123 | |||
124 | static inline void *spi_get_drvdata(struct spi_device *spi) | ||
125 | { | ||
126 | return dev_get_drvdata(&spi->dev); | ||
127 | } | ||
117 | 128 | ||
118 | struct spi_message; | 129 | struct spi_message; |
119 | 130 | ||
@@ -137,13 +148,11 @@ extern int spi_register_driver(struct spi_driver *sdrv); | |||
137 | 148 | ||
138 | static inline void spi_unregister_driver(struct spi_driver *sdrv) | 149 | static inline void spi_unregister_driver(struct spi_driver *sdrv) |
139 | { | 150 | { |
140 | if (!sdrv) | 151 | if (sdrv) |
141 | return; | 152 | driver_unregister(&sdrv->driver); |
142 | driver_unregister(&sdrv->driver); | ||
143 | } | 153 | } |
144 | 154 | ||
145 | 155 | ||
146 | |||
147 | /** | 156 | /** |
148 | * struct spi_master - interface to SPI master controller | 157 | * struct spi_master - interface to SPI master controller |
149 | * @cdev: class interface to this driver | 158 | * @cdev: class interface to this driver |
@@ -154,7 +163,8 @@ static inline void spi_unregister_driver(struct spi_driver *sdrv) | |||
154 | * each slave has a chipselect signal, but it's common that not | 163 | * each slave has a chipselect signal, but it's common that not |
155 | * every chipselect is connected to a slave. | 164 | * every chipselect is connected to a slave. |
156 | * @setup: updates the device mode and clocking records used by a | 165 | * @setup: updates the device mode and clocking records used by a |
157 | * device's SPI controller; protocol code may call this. | 166 | * device's SPI controller; protocol code may call this. This |
167 | * must fail if an unrecognized or unsupported mode is requested. | ||
158 | * @transfer: adds a message to the controller's transfer queue. | 168 | * @transfer: adds a message to the controller's transfer queue. |
159 | * @cleanup: frees controller-specific state | 169 | * @cleanup: frees controller-specific state |
160 | * | 170 | * |
@@ -211,7 +221,7 @@ struct spi_master { | |||
211 | struct spi_message *mesg); | 221 | struct spi_message *mesg); |
212 | 222 | ||
213 | /* called on release() to free memory provided by spi_master */ | 223 | /* called on release() to free memory provided by spi_master */ |
214 | void (*cleanup)(const struct spi_device *spi); | 224 | void (*cleanup)(struct spi_device *spi); |
215 | }; | 225 | }; |
216 | 226 | ||
217 | static inline void *spi_master_get_devdata(struct spi_master *master) | 227 | static inline void *spi_master_get_devdata(struct spi_master *master) |
@@ -296,6 +306,16 @@ extern struct spi_master *spi_busnum_to_master(u16 busnum); | |||
296 | * shifting out three bytes with word size of sixteen or twenty bits; | 306 | * shifting out three bytes with word size of sixteen or twenty bits; |
297 | * the former uses two bytes per word, the latter uses four bytes.) | 307 | * the former uses two bytes per word, the latter uses four bytes.) |
298 | * | 308 | * |
309 | * In-memory data values are always in native CPU byte order, translated | ||
310 | * from the wire byte order (big-endian except with SPI_LSB_FIRST). So | ||
311 | * for example when bits_per_word is sixteen, buffers are 2N bytes long | ||
312 | * and hold N sixteen bit words in CPU byte order. | ||
313 | * | ||
314 | * When the word size of the SPI transfer is not a power-of-two multiple | ||
315 | * of eight bits, those in-memory words include extra bits. In-memory | ||
316 | * words are always seen by protocol drivers as right-justified, so the | ||
317 | * undefined (rx) or unused (tx) bits are always the most significant bits. | ||
318 | * | ||
299 | * All SPI transfers start with the relevant chipselect active. Normally | 319 | * All SPI transfers start with the relevant chipselect active. Normally |
300 | * it stays selected until after the last transfer in a message. Drivers | 320 | * it stays selected until after the last transfer in a message. Drivers |
301 | * can affect the chipselect signal using cs_change: | 321 | * can affect the chipselect signal using cs_change: |
@@ -453,6 +473,11 @@ static inline void spi_message_free(struct spi_message *m) | |||
453 | * changes those settings, and must be called from a context that can sleep. | 473 | * changes those settings, and must be called from a context that can sleep. |
454 | * The changes take effect the next time the device is selected and data | 474 | * The changes take effect the next time the device is selected and data |
455 | * is transferred to or from it. | 475 | * is transferred to or from it. |
476 | * | ||
477 | * Note that this call wil fail if the protocol driver specifies an option | ||
478 | * that the underlying controller or its driver does not support. For | ||
479 | * example, not all hardware supports wire transfers using nine bit words, | ||
480 | * LSB-first wire encoding, or active-high chipselects. | ||
456 | */ | 481 | */ |
457 | static inline int | 482 | static inline int |
458 | spi_setup(struct spi_device *spi) | 483 | spi_setup(struct spi_device *spi) |
diff --git a/include/linux/spi/spi_bitbang.h b/include/linux/spi/spi_bitbang.h index 16ce178f54d7..2e8c048b9b80 100644 --- a/include/linux/spi/spi_bitbang.h +++ b/include/linux/spi/spi_bitbang.h | |||
@@ -55,7 +55,7 @@ struct spi_bitbang { | |||
55 | * methods, if you like. | 55 | * methods, if you like. |
56 | */ | 56 | */ |
57 | extern int spi_bitbang_setup(struct spi_device *spi); | 57 | extern int spi_bitbang_setup(struct spi_device *spi); |
58 | extern void spi_bitbang_cleanup(const struct spi_device *spi); | 58 | extern void spi_bitbang_cleanup(struct spi_device *spi); |
59 | extern int spi_bitbang_transfer(struct spi_device *spi, struct spi_message *m); | 59 | extern int spi_bitbang_transfer(struct spi_device *spi, struct spi_message *m); |
60 | extern int spi_bitbang_setup_transfer(struct spi_device *spi, | 60 | extern int spi_bitbang_setup_transfer(struct spi_device *spi, |
61 | struct spi_transfer *t); | 61 | struct spi_transfer *t); |
diff --git a/include/linux/sunrpc/svc.h b/include/linux/sunrpc/svc.h index 64f3d60c72af..83b3c7b433aa 100644 --- a/include/linux/sunrpc/svc.h +++ b/include/linux/sunrpc/svc.h | |||
@@ -11,6 +11,7 @@ | |||
11 | #define SUNRPC_SVC_H | 11 | #define SUNRPC_SVC_H |
12 | 12 | ||
13 | #include <linux/in.h> | 13 | #include <linux/in.h> |
14 | #include <linux/in6.h> | ||
14 | #include <linux/sunrpc/types.h> | 15 | #include <linux/sunrpc/types.h> |
15 | #include <linux/sunrpc/xdr.h> | 16 | #include <linux/sunrpc/xdr.h> |
16 | #include <linux/sunrpc/auth.h> | 17 | #include <linux/sunrpc/auth.h> |
@@ -191,7 +192,13 @@ static inline void svc_putu32(struct kvec *iov, __be32 val) | |||
191 | iov->iov_len += sizeof(__be32); | 192 | iov->iov_len += sizeof(__be32); |
192 | } | 193 | } |
193 | 194 | ||
194 | 195 | union svc_addr_u { | |
196 | struct in_addr addr; | ||
197 | #if defined(CONFIG_IPV6) || defined(CONFIG_IPV6_MODULE) | ||
198 | struct in6_addr addr6; | ||
199 | #endif | ||
200 | }; | ||
201 | |||
195 | /* | 202 | /* |
196 | * The context of a single thread, including the request currently being | 203 | * The context of a single thread, including the request currently being |
197 | * processed. | 204 | * processed. |
@@ -200,8 +207,8 @@ struct svc_rqst { | |||
200 | struct list_head rq_list; /* idle list */ | 207 | struct list_head rq_list; /* idle list */ |
201 | struct list_head rq_all; /* all threads list */ | 208 | struct list_head rq_all; /* all threads list */ |
202 | struct svc_sock * rq_sock; /* socket */ | 209 | struct svc_sock * rq_sock; /* socket */ |
203 | struct sockaddr_in rq_addr; /* peer address */ | 210 | struct sockaddr_storage rq_addr; /* peer address */ |
204 | int rq_addrlen; | 211 | size_t rq_addrlen; |
205 | 212 | ||
206 | struct svc_serv * rq_server; /* RPC service definition */ | 213 | struct svc_serv * rq_server; /* RPC service definition */ |
207 | struct svc_pool * rq_pool; /* thread pool */ | 214 | struct svc_pool * rq_pool; /* thread pool */ |
@@ -227,8 +234,8 @@ struct svc_rqst { | |||
227 | unsigned short | 234 | unsigned short |
228 | rq_secure : 1; /* secure port */ | 235 | rq_secure : 1; /* secure port */ |
229 | 236 | ||
230 | 237 | union svc_addr_u rq_daddr; /* dest addr of request | |
231 | __be32 rq_daddr; /* dest addr of request - reply from here */ | 238 | * - reply from here */ |
232 | 239 | ||
233 | void * rq_argp; /* decoded arguments */ | 240 | void * rq_argp; /* decoded arguments */ |
234 | void * rq_resp; /* xdr'd results */ | 241 | void * rq_resp; /* xdr'd results */ |
@@ -256,6 +263,24 @@ struct svc_rqst { | |||
256 | }; | 263 | }; |
257 | 264 | ||
258 | /* | 265 | /* |
266 | * Rigorous type checking on sockaddr type conversions | ||
267 | */ | ||
268 | static inline struct sockaddr_in *svc_addr_in(struct svc_rqst *rqst) | ||
269 | { | ||
270 | return (struct sockaddr_in *) &rqst->rq_addr; | ||
271 | } | ||
272 | |||
273 | static inline struct sockaddr_in6 *svc_addr_in6(struct svc_rqst *rqst) | ||
274 | { | ||
275 | return (struct sockaddr_in6 *) &rqst->rq_addr; | ||
276 | } | ||
277 | |||
278 | static inline struct sockaddr *svc_addr(struct svc_rqst *rqst) | ||
279 | { | ||
280 | return (struct sockaddr *) &rqst->rq_addr; | ||
281 | } | ||
282 | |||
283 | /* | ||
259 | * Check buffer bounds after decoding arguments | 284 | * Check buffer bounds after decoding arguments |
260 | */ | 285 | */ |
261 | static inline int | 286 | static inline int |
@@ -292,9 +317,10 @@ static inline void svc_free_res_pages(struct svc_rqst *rqstp) | |||
292 | 317 | ||
293 | struct svc_deferred_req { | 318 | struct svc_deferred_req { |
294 | u32 prot; /* protocol (UDP or TCP) */ | 319 | u32 prot; /* protocol (UDP or TCP) */ |
295 | struct sockaddr_in addr; | 320 | struct svc_sock *svsk; |
296 | struct svc_sock *svsk; /* where reply must go */ | 321 | struct sockaddr_storage addr; /* where reply must go */ |
297 | __be32 daddr; /* where reply must come from */ | 322 | size_t addrlen; |
323 | union svc_addr_u daddr; /* where reply must come from */ | ||
298 | struct cache_deferred_req handle; | 324 | struct cache_deferred_req handle; |
299 | int argslen; | 325 | int argslen; |
300 | __be32 args[0]; | 326 | __be32 args[0]; |
@@ -368,5 +394,8 @@ int svc_register(struct svc_serv *, int, unsigned short); | |||
368 | void svc_wake_up(struct svc_serv *); | 394 | void svc_wake_up(struct svc_serv *); |
369 | void svc_reserve(struct svc_rqst *rqstp, int space); | 395 | void svc_reserve(struct svc_rqst *rqstp, int space); |
370 | struct svc_pool * svc_pool_for_cpu(struct svc_serv *serv, int cpu); | 396 | struct svc_pool * svc_pool_for_cpu(struct svc_serv *serv, int cpu); |
397 | char * svc_print_addr(struct svc_rqst *, char *, size_t); | ||
398 | |||
399 | #define RPC_MAX_ADDRBUFLEN (63U) | ||
371 | 400 | ||
372 | #endif /* SUNRPC_SVC_H */ | 401 | #endif /* SUNRPC_SVC_H */ |
diff --git a/include/linux/sunrpc/svcsock.h b/include/linux/sunrpc/svcsock.h index db312a1e2eeb..cccea0a0feb4 100644 --- a/include/linux/sunrpc/svcsock.h +++ b/include/linux/sunrpc/svcsock.h | |||
@@ -57,12 +57,15 @@ struct svc_sock { | |||
57 | 57 | ||
58 | /* cache of various info for TCP sockets */ | 58 | /* cache of various info for TCP sockets */ |
59 | void *sk_info_authunix; | 59 | void *sk_info_authunix; |
60 | |||
61 | struct sockaddr_storage sk_remote; /* remote peer's address */ | ||
62 | int sk_remotelen; /* length of address */ | ||
60 | }; | 63 | }; |
61 | 64 | ||
62 | /* | 65 | /* |
63 | * Function prototypes. | 66 | * Function prototypes. |
64 | */ | 67 | */ |
65 | int svc_makesock(struct svc_serv *, int, unsigned short); | 68 | int svc_makesock(struct svc_serv *, int, unsigned short, int flags); |
66 | void svc_close_socket(struct svc_sock *); | 69 | void svc_close_socket(struct svc_sock *); |
67 | int svc_recv(struct svc_rqst *, long); | 70 | int svc_recv(struct svc_rqst *, long); |
68 | int svc_send(struct svc_rqst *); | 71 | int svc_send(struct svc_rqst *); |
@@ -74,4 +77,11 @@ int svc_addsock(struct svc_serv *serv, | |||
74 | char *name_return, | 77 | char *name_return, |
75 | int *proto); | 78 | int *proto); |
76 | 79 | ||
80 | /* | ||
81 | * svc_makesock socket characteristics | ||
82 | */ | ||
83 | #define SVC_SOCK_DEFAULTS (0U) | ||
84 | #define SVC_SOCK_ANONYMOUS (1U << 0) /* don't register with pmap */ | ||
85 | #define SVC_SOCK_TEMPORARY (1U << 1) /* flag socket as temporary */ | ||
86 | |||
77 | #endif /* SUNRPC_SVCSOCK_H */ | 87 | #endif /* SUNRPC_SVCSOCK_H */ |
diff --git a/include/linux/svga.h b/include/linux/svga.h new file mode 100644 index 000000000000..eadb981bb37c --- /dev/null +++ b/include/linux/svga.h | |||
@@ -0,0 +1,124 @@ | |||
1 | #ifndef _LINUX_SVGA_H | ||
2 | #define _LINUX_SVGA_H | ||
3 | |||
4 | #ifdef __KERNEL__ | ||
5 | |||
6 | #include <linux/pci.h> | ||
7 | #include <video/vga.h> | ||
8 | |||
9 | /* Terminator for register set */ | ||
10 | |||
11 | #define VGA_REGSET_END_VAL 0xFF | ||
12 | #define VGA_REGSET_END {VGA_REGSET_END_VAL, 0, 0} | ||
13 | |||
14 | struct vga_regset { | ||
15 | u8 regnum; | ||
16 | u8 lowbit; | ||
17 | u8 highbit; | ||
18 | }; | ||
19 | |||
20 | /* ------------------------------------------------------------------------- */ | ||
21 | |||
22 | #define SVGA_FORMAT_END_VAL 0xFFFF | ||
23 | #define SVGA_FORMAT_END {SVGA_FORMAT_END_VAL, {0, 0, 0}, {0, 0, 0}, {0, 0, 0}, {0, 0, 0}, 0, 0, 0, 0, 0, 0} | ||
24 | |||
25 | struct svga_fb_format { | ||
26 | /* var part */ | ||
27 | u32 bits_per_pixel; | ||
28 | struct fb_bitfield red; | ||
29 | struct fb_bitfield green; | ||
30 | struct fb_bitfield blue; | ||
31 | struct fb_bitfield transp; | ||
32 | u32 nonstd; | ||
33 | /* fix part */ | ||
34 | u32 type; | ||
35 | u32 type_aux; | ||
36 | u32 visual; | ||
37 | u32 xpanstep; | ||
38 | u32 xresstep; | ||
39 | }; | ||
40 | |||
41 | struct svga_timing_regs { | ||
42 | const struct vga_regset *h_total_regs; | ||
43 | const struct vga_regset *h_display_regs; | ||
44 | const struct vga_regset *h_blank_start_regs; | ||
45 | const struct vga_regset *h_blank_end_regs; | ||
46 | const struct vga_regset *h_sync_start_regs; | ||
47 | const struct vga_regset *h_sync_end_regs; | ||
48 | |||
49 | const struct vga_regset *v_total_regs; | ||
50 | const struct vga_regset *v_display_regs; | ||
51 | const struct vga_regset *v_blank_start_regs; | ||
52 | const struct vga_regset *v_blank_end_regs; | ||
53 | const struct vga_regset *v_sync_start_regs; | ||
54 | const struct vga_regset *v_sync_end_regs; | ||
55 | }; | ||
56 | |||
57 | struct svga_pll { | ||
58 | u16 m_min; | ||
59 | u16 m_max; | ||
60 | u16 n_min; | ||
61 | u16 n_max; | ||
62 | u16 r_min; | ||
63 | u16 r_max; /* r_max < 32 */ | ||
64 | u32 f_vco_min; | ||
65 | u32 f_vco_max; | ||
66 | u32 f_base; | ||
67 | }; | ||
68 | |||
69 | |||
70 | /* Write a value to the attribute register */ | ||
71 | |||
72 | static inline void svga_wattr(u8 index, u8 data) | ||
73 | { | ||
74 | inb(0x3DA); | ||
75 | outb(index, 0x3C0); | ||
76 | outb(data, 0x3C0); | ||
77 | } | ||
78 | |||
79 | /* Write a value to a sequence register with a mask */ | ||
80 | |||
81 | static inline void svga_wseq_mask(u8 index, u8 data, u8 mask) | ||
82 | { | ||
83 | vga_wseq(NULL, index, (data & mask) | (vga_rseq(NULL, index) & ~mask)); | ||
84 | } | ||
85 | |||
86 | /* Write a value to a CRT register with a mask */ | ||
87 | |||
88 | static inline void svga_wcrt_mask(u8 index, u8 data, u8 mask) | ||
89 | { | ||
90 | vga_wcrt(NULL, index, (data & mask) | (vga_rcrt(NULL, index) & ~mask)); | ||
91 | } | ||
92 | |||
93 | static inline int svga_primary_device(struct pci_dev *dev) | ||
94 | { | ||
95 | u16 flags; | ||
96 | pci_read_config_word(dev, PCI_COMMAND, &flags); | ||
97 | return (flags & PCI_COMMAND_IO); | ||
98 | } | ||
99 | |||
100 | |||
101 | void svga_wcrt_multi(const struct vga_regset *regset, u32 value); | ||
102 | void svga_wseq_multi(const struct vga_regset *regset, u32 value); | ||
103 | |||
104 | void svga_set_default_gfx_regs(void); | ||
105 | void svga_set_default_atc_regs(void); | ||
106 | void svga_set_default_seq_regs(void); | ||
107 | void svga_set_default_crt_regs(void); | ||
108 | void svga_set_textmode_vga_regs(void); | ||
109 | |||
110 | void svga_settile(struct fb_info *info, struct fb_tilemap *map); | ||
111 | void svga_tilecopy(struct fb_info *info, struct fb_tilearea *area); | ||
112 | void svga_tilefill(struct fb_info *info, struct fb_tilerect *rect); | ||
113 | void svga_tileblit(struct fb_info *info, struct fb_tileblit *blit); | ||
114 | void svga_tilecursor(struct fb_info *info, struct fb_tilecursor *cursor); | ||
115 | |||
116 | int svga_compute_pll(const struct svga_pll *pll, u32 f_wanted, u16 *m, u16 *n, u16 *r, int node); | ||
117 | int svga_check_timings(const struct svga_timing_regs *tm, struct fb_var_screeninfo *var, int node); | ||
118 | void svga_set_timings(const struct svga_timing_regs *tm, struct fb_var_screeninfo *var, u32 hmul, u32 hdiv, u32 vmul, u32 vdiv, u32 hborder, int node); | ||
119 | |||
120 | int svga_match_format(const struct svga_fb_format *frm, struct fb_var_screeninfo *var, struct fb_fix_screeninfo *fix); | ||
121 | |||
122 | #endif /* __KERNEL__ */ | ||
123 | #endif /* _LINUX_SVGA_H */ | ||
124 | |||
diff --git a/include/linux/toshiba.h b/include/linux/toshiba.h index 916e5e3a699b..6a7c4edf0e13 100644 --- a/include/linux/toshiba.h +++ b/include/linux/toshiba.h | |||
@@ -33,4 +33,6 @@ typedef struct { | |||
33 | unsigned int edi __attribute__ ((packed)); | 33 | unsigned int edi __attribute__ ((packed)); |
34 | } SMMRegisters; | 34 | } SMMRegisters; |
35 | 35 | ||
36 | int tosh_smm(SMMRegisters *regs); | ||
37 | |||
36 | #endif | 38 | #endif |
diff --git a/include/linux/tty.h b/include/linux/tty.h index 8427c9e98e6b..dee72b9a20fb 100644 --- a/include/linux/tty.h +++ b/include/linux/tty.h | |||
@@ -197,8 +197,8 @@ struct tty_struct { | |||
197 | struct mutex termios_mutex; | 197 | struct mutex termios_mutex; |
198 | struct ktermios *termios, *termios_locked; | 198 | struct ktermios *termios, *termios_locked; |
199 | char name[64]; | 199 | char name[64]; |
200 | int pgrp; | 200 | struct pid *pgrp; |
201 | int session; | 201 | struct pid *session; |
202 | unsigned long flags; | 202 | unsigned long flags; |
203 | int count; | 203 | int count; |
204 | struct winsize winsize; | 204 | struct winsize winsize; |
@@ -303,7 +303,7 @@ extern int tty_read_raw_data(struct tty_struct *tty, unsigned char *bufp, | |||
303 | int buflen); | 303 | int buflen); |
304 | extern void tty_write_message(struct tty_struct *tty, char *msg); | 304 | extern void tty_write_message(struct tty_struct *tty, char *msg); |
305 | 305 | ||
306 | extern int is_orphaned_pgrp(int pgrp); | 306 | extern int is_current_pgrp_orphaned(void); |
307 | extern int is_ignored(int sig); | 307 | extern int is_ignored(int sig); |
308 | extern int tty_signal(int sig, struct tty_struct *tty); | 308 | extern int tty_signal(int sig, struct tty_struct *tty); |
309 | extern void tty_hangup(struct tty_struct * tty); | 309 | extern void tty_hangup(struct tty_struct * tty); |
@@ -333,7 +333,6 @@ extern int tty_ioctl(struct inode *inode, struct file *file, unsigned int cmd, | |||
333 | 333 | ||
334 | extern dev_t tty_devnum(struct tty_struct *tty); | 334 | extern dev_t tty_devnum(struct tty_struct *tty); |
335 | extern void proc_clear_tty(struct task_struct *p); | 335 | extern void proc_clear_tty(struct task_struct *p); |
336 | extern void __proc_set_tty(struct task_struct *tsk, struct tty_struct *tty); | ||
337 | extern void proc_set_tty(struct task_struct *tsk, struct tty_struct *tty); | 336 | extern void proc_set_tty(struct task_struct *tsk, struct tty_struct *tty); |
338 | extern struct tty_struct *get_current_tty(void); | 337 | extern struct tty_struct *get_current_tty(void); |
339 | 338 | ||
diff --git a/include/linux/ufs_fs.h b/include/linux/ufs_fs.h index d3a4f994a5dc..dc2e9fe69418 100644 --- a/include/linux/ufs_fs.h +++ b/include/linux/ufs_fs.h | |||
@@ -40,13 +40,16 @@ typedef __u64 __fs64; | |||
40 | typedef __u32 __fs32; | 40 | typedef __u32 __fs32; |
41 | typedef __u16 __fs16; | 41 | typedef __u16 __fs16; |
42 | #else | 42 | #else |
43 | #include <asm/div64.h> | ||
43 | typedef __u64 __bitwise __fs64; | 44 | typedef __u64 __bitwise __fs64; |
44 | typedef __u32 __bitwise __fs32; | 45 | typedef __u32 __bitwise __fs32; |
45 | typedef __u16 __bitwise __fs16; | 46 | typedef __u16 __bitwise __fs16; |
46 | #endif | 47 | #endif |
47 | 48 | ||
49 | #ifdef __KERNEL__ | ||
48 | #include <linux/ufs_fs_i.h> | 50 | #include <linux/ufs_fs_i.h> |
49 | #include <linux/ufs_fs_sb.h> | 51 | #include <linux/ufs_fs_sb.h> |
52 | #endif | ||
50 | 53 | ||
51 | #define UFS_BBLOCK 0 | 54 | #define UFS_BBLOCK 0 |
52 | #define UFS_BBSIZE 8192 | 55 | #define UFS_BBSIZE 8192 |
@@ -261,17 +264,10 @@ typedef __u16 __bitwise __fs16; | |||
261 | */ | 264 | */ |
262 | #define ufs_inotocg(x) ((x) / uspi->s_ipg) | 265 | #define ufs_inotocg(x) ((x) / uspi->s_ipg) |
263 | #define ufs_inotocgoff(x) ((x) % uspi->s_ipg) | 266 | #define ufs_inotocgoff(x) ((x) % uspi->s_ipg) |
264 | #define ufs_inotofsba(x) (ufs_cgimin(ufs_inotocg(x)) + ufs_inotocgoff(x) / uspi->s_inopf) | 267 | #define ufs_inotofsba(x) (((u64)ufs_cgimin(ufs_inotocg(x))) + ufs_inotocgoff(x) / uspi->s_inopf) |
265 | #define ufs_inotofsbo(x) ((x) % uspi->s_inopf) | 268 | #define ufs_inotofsbo(x) ((x) % uspi->s_inopf) |
266 | 269 | ||
267 | /* | 270 | /* |
268 | * Give cylinder group number for a file system block. | ||
269 | * Give cylinder group block number for a file system block. | ||
270 | */ | ||
271 | #define ufs_dtog(d) ((d) / uspi->s_fpg) | ||
272 | #define ufs_dtogd(d) ((d) % uspi->s_fpg) | ||
273 | |||
274 | /* | ||
275 | * Compute the cylinder and rotational position of a cyl block addr. | 271 | * Compute the cylinder and rotational position of a cyl block addr. |
276 | */ | 272 | */ |
277 | #define ufs_cbtocylno(bno) \ | 273 | #define ufs_cbtocylno(bno) \ |
@@ -303,7 +299,7 @@ typedef __u16 __bitwise __fs16; | |||
303 | #define UFS_MAXMNTLEN 512 | 299 | #define UFS_MAXMNTLEN 512 |
304 | #define UFS2_MAXMNTLEN 468 | 300 | #define UFS2_MAXMNTLEN 468 |
305 | #define UFS2_MAXVOLLEN 32 | 301 | #define UFS2_MAXVOLLEN 32 |
306 | /* #define UFS_MAXCSBUFS 31 */ | 302 | #define UFS_MAXCSBUFS 31 |
307 | #define UFS_LINK_MAX 32000 | 303 | #define UFS_LINK_MAX 32000 |
308 | /* | 304 | /* |
309 | #define UFS2_NOCSPTRS ((128 / sizeof(void *)) - 4) | 305 | #define UFS2_NOCSPTRS ((128 / sizeof(void *)) - 4) |
@@ -721,6 +717,7 @@ struct ufs_cg_private_info { | |||
721 | __u32 c_nclusterblks; /* number of clusters this cg */ | 717 | __u32 c_nclusterblks; /* number of clusters this cg */ |
722 | }; | 718 | }; |
723 | 719 | ||
720 | |||
724 | struct ufs_sb_private_info { | 721 | struct ufs_sb_private_info { |
725 | struct ufs_buffer_head s_ubh; /* buffer containing super block */ | 722 | struct ufs_buffer_head s_ubh; /* buffer containing super block */ |
726 | struct ufs_csum_core cs_total; | 723 | struct ufs_csum_core cs_total; |
@@ -754,7 +751,7 @@ struct ufs_sb_private_info { | |||
754 | __u32 s_npsect; /* # sectors/track including spares */ | 751 | __u32 s_npsect; /* # sectors/track including spares */ |
755 | __u32 s_interleave; /* hardware sector interleave */ | 752 | __u32 s_interleave; /* hardware sector interleave */ |
756 | __u32 s_trackskew; /* sector 0 skew, per track */ | 753 | __u32 s_trackskew; /* sector 0 skew, per track */ |
757 | __u32 s_csaddr; /* blk addr of cyl grp summary area */ | 754 | __u64 s_csaddr; /* blk addr of cyl grp summary area */ |
758 | __u32 s_cssize; /* size of cyl grp summary area */ | 755 | __u32 s_cssize; /* size of cyl grp summary area */ |
759 | __u32 s_cgsize; /* cylinder group size */ | 756 | __u32 s_cgsize; /* cylinder group size */ |
760 | __u32 s_ntrak; /* tracks per cylinder */ | 757 | __u32 s_ntrak; /* tracks per cylinder */ |
@@ -950,17 +947,17 @@ struct ufs_super_block_third { | |||
950 | #ifdef __KERNEL__ | 947 | #ifdef __KERNEL__ |
951 | 948 | ||
952 | /* balloc.c */ | 949 | /* balloc.c */ |
953 | extern void ufs_free_fragments (struct inode *, unsigned, unsigned); | 950 | extern void ufs_free_fragments (struct inode *, u64, unsigned); |
954 | extern void ufs_free_blocks (struct inode *, unsigned, unsigned); | 951 | extern void ufs_free_blocks (struct inode *, u64, unsigned); |
955 | extern unsigned ufs_new_fragments(struct inode *, __fs32 *, unsigned, unsigned, | 952 | extern u64 ufs_new_fragments(struct inode *, void *, u64, u64, |
956 | unsigned, int *, struct page *); | 953 | unsigned, int *, struct page *); |
957 | 954 | ||
958 | /* cylinder.c */ | 955 | /* cylinder.c */ |
959 | extern struct ufs_cg_private_info * ufs_load_cylinder (struct super_block *, unsigned); | 956 | extern struct ufs_cg_private_info * ufs_load_cylinder (struct super_block *, unsigned); |
960 | extern void ufs_put_cylinder (struct super_block *, unsigned); | 957 | extern void ufs_put_cylinder (struct super_block *, unsigned); |
961 | 958 | ||
962 | /* dir.c */ | 959 | /* dir.c */ |
963 | extern struct inode_operations ufs_dir_inode_operations; | 960 | extern const struct inode_operations ufs_dir_inode_operations; |
964 | extern int ufs_add_link (struct dentry *, struct inode *); | 961 | extern int ufs_add_link (struct dentry *, struct inode *); |
965 | extern ino_t ufs_inode_by_name(struct inode *, struct dentry *); | 962 | extern ino_t ufs_inode_by_name(struct inode *, struct dentry *); |
966 | extern int ufs_make_empty(struct inode *, struct inode *); | 963 | extern int ufs_make_empty(struct inode *, struct inode *); |
@@ -972,7 +969,7 @@ extern void ufs_set_link(struct inode *dir, struct ufs_dir_entry *de, | |||
972 | struct page *page, struct inode *inode); | 969 | struct page *page, struct inode *inode); |
973 | 970 | ||
974 | /* file.c */ | 971 | /* file.c */ |
975 | extern struct inode_operations ufs_file_inode_operations; | 972 | extern const struct inode_operations ufs_file_inode_operations; |
976 | extern const struct file_operations ufs_file_operations; | 973 | extern const struct file_operations ufs_file_operations; |
977 | 974 | ||
978 | extern const struct address_space_operations ufs_aops; | 975 | extern const struct address_space_operations ufs_aops; |
@@ -999,7 +996,7 @@ extern void ufs_error (struct super_block *, const char *, const char *, ...) __ | |||
999 | extern void ufs_panic (struct super_block *, const char *, const char *, ...) __attribute__ ((format (printf, 3, 4))); | 996 | extern void ufs_panic (struct super_block *, const char *, const char *, ...) __attribute__ ((format (printf, 3, 4))); |
1000 | 997 | ||
1001 | /* symlink.c */ | 998 | /* symlink.c */ |
1002 | extern struct inode_operations ufs_fast_symlink_inode_operations; | 999 | extern const struct inode_operations ufs_fast_symlink_inode_operations; |
1003 | 1000 | ||
1004 | /* truncate.c */ | 1001 | /* truncate.c */ |
1005 | extern int ufs_truncate (struct inode *, loff_t); | 1002 | extern int ufs_truncate (struct inode *, loff_t); |
@@ -1014,6 +1011,22 @@ static inline struct ufs_inode_info *UFS_I(struct inode *inode) | |||
1014 | return container_of(inode, struct ufs_inode_info, vfs_inode); | 1011 | return container_of(inode, struct ufs_inode_info, vfs_inode); |
1015 | } | 1012 | } |
1016 | 1013 | ||
1014 | /* | ||
1015 | * Give cylinder group number for a file system block. | ||
1016 | * Give cylinder group block number for a file system block. | ||
1017 | */ | ||
1018 | /* #define ufs_dtog(d) ((d) / uspi->s_fpg) */ | ||
1019 | static inline u64 ufs_dtog(struct ufs_sb_private_info * uspi, u64 b) | ||
1020 | { | ||
1021 | do_div(b, uspi->s_fpg); | ||
1022 | return b; | ||
1023 | } | ||
1024 | /* #define ufs_dtogd(d) ((d) % uspi->s_fpg) */ | ||
1025 | static inline u32 ufs_dtogd(struct ufs_sb_private_info * uspi, u64 b) | ||
1026 | { | ||
1027 | return do_div(b, uspi->s_fpg); | ||
1028 | } | ||
1029 | |||
1017 | #endif /* __KERNEL__ */ | 1030 | #endif /* __KERNEL__ */ |
1018 | 1031 | ||
1019 | #endif /* __LINUX_UFS_FS_H */ | 1032 | #endif /* __LINUX_UFS_FS_H */ |
diff --git a/include/linux/ufs_fs_i.h b/include/linux/ufs_fs_i.h index f50ce3b0cd52..6496caa82f9e 100644 --- a/include/linux/ufs_fs_i.h +++ b/include/linux/ufs_fs_i.h | |||
@@ -20,13 +20,12 @@ struct ufs_inode_info { | |||
20 | __fs64 u2_i_data[15]; | 20 | __fs64 u2_i_data[15]; |
21 | } i_u1; | 21 | } i_u1; |
22 | __u32 i_flags; | 22 | __u32 i_flags; |
23 | __u32 i_gen; | ||
24 | __u32 i_shadow; | 23 | __u32 i_shadow; |
25 | __u32 i_unused1; | 24 | __u32 i_unused1; |
26 | __u32 i_unused2; | 25 | __u32 i_unused2; |
27 | __u32 i_oeftflag; | 26 | __u32 i_oeftflag; |
28 | __u16 i_osync; | 27 | __u16 i_osync; |
29 | __u32 i_lastfrag; | 28 | __u64 i_lastfrag; |
30 | __u32 i_dir_start_lookup; | 29 | __u32 i_dir_start_lookup; |
31 | struct inode vfs_inode; | 30 | struct inode vfs_inode; |
32 | }; | 31 | }; |
diff --git a/include/linux/ufs_fs_sb.h b/include/linux/ufs_fs_sb.h index 8ff13c160f3d..e114c93fc578 100644 --- a/include/linux/ufs_fs_sb.h +++ b/include/linux/ufs_fs_sb.h | |||
@@ -21,7 +21,6 @@ | |||
21 | struct ufs_sb_private_info; | 21 | struct ufs_sb_private_info; |
22 | struct ufs_cg_private_info; | 22 | struct ufs_cg_private_info; |
23 | struct ufs_csum; | 23 | struct ufs_csum; |
24 | #define UFS_MAXCSBUFS 31 | ||
25 | 24 | ||
26 | struct ufs_sb_info { | 25 | struct ufs_sb_info { |
27 | struct ufs_sb_private_info * s_uspi; | 26 | struct ufs_sb_private_info * s_uspi; |
diff --git a/include/net/ax25.h b/include/net/ax25.h index 5ae10dd2e32e..47ff2f46e908 100644 --- a/include/net/ax25.h +++ b/include/net/ax25.h | |||
@@ -377,7 +377,7 @@ extern int ax25_check_iframes_acked(ax25_cb *, unsigned short); | |||
377 | /* ax25_route.c */ | 377 | /* ax25_route.c */ |
378 | extern void ax25_rt_device_down(struct net_device *); | 378 | extern void ax25_rt_device_down(struct net_device *); |
379 | extern int ax25_rt_ioctl(unsigned int, void __user *); | 379 | extern int ax25_rt_ioctl(unsigned int, void __user *); |
380 | extern struct file_operations ax25_route_fops; | 380 | extern const struct file_operations ax25_route_fops; |
381 | extern ax25_route *ax25_get_route(ax25_address *addr, struct net_device *dev); | 381 | extern ax25_route *ax25_get_route(ax25_address *addr, struct net_device *dev); |
382 | extern int ax25_rt_autobind(ax25_cb *, ax25_address *); | 382 | extern int ax25_rt_autobind(ax25_cb *, ax25_address *); |
383 | extern struct sk_buff *ax25_rt_build_path(struct sk_buff *, ax25_address *, ax25_address *, ax25_digi *); | 383 | extern struct sk_buff *ax25_rt_build_path(struct sk_buff *, ax25_address *, ax25_address *, ax25_digi *); |
@@ -430,7 +430,7 @@ extern unsigned long ax25_display_timer(struct timer_list *); | |||
430 | extern int ax25_uid_policy; | 430 | extern int ax25_uid_policy; |
431 | extern ax25_uid_assoc *ax25_findbyuid(uid_t); | 431 | extern ax25_uid_assoc *ax25_findbyuid(uid_t); |
432 | extern int __must_check ax25_uid_ioctl(int, struct sockaddr_ax25 *); | 432 | extern int __must_check ax25_uid_ioctl(int, struct sockaddr_ax25 *); |
433 | extern struct file_operations ax25_uid_fops; | 433 | extern const struct file_operations ax25_uid_fops; |
434 | extern void ax25_uid_free(void); | 434 | extern void ax25_uid_free(void); |
435 | 435 | ||
436 | /* sysctl_net_ax25.c */ | 436 | /* sysctl_net_ax25.c */ |
diff --git a/include/net/netfilter/nf_conntrack_expect.h b/include/net/netfilter/nf_conntrack_expect.h index 41bcc9eb4206..173c7c1eff23 100644 --- a/include/net/netfilter/nf_conntrack_expect.h +++ b/include/net/netfilter/nf_conntrack_expect.h | |||
@@ -8,7 +8,7 @@ | |||
8 | 8 | ||
9 | extern struct list_head nf_conntrack_expect_list; | 9 | extern struct list_head nf_conntrack_expect_list; |
10 | extern struct kmem_cache *nf_conntrack_expect_cachep; | 10 | extern struct kmem_cache *nf_conntrack_expect_cachep; |
11 | extern struct file_operations exp_file_ops; | 11 | extern const struct file_operations exp_file_ops; |
12 | 12 | ||
13 | struct nf_conntrack_expect | 13 | struct nf_conntrack_expect |
14 | { | 14 | { |
diff --git a/include/net/netrom.h b/include/net/netrom.h index e0ca112024a3..f06852bba62a 100644 --- a/include/net/netrom.h +++ b/include/net/netrom.h | |||
@@ -215,8 +215,8 @@ extern struct net_device *nr_dev_get(ax25_address *); | |||
215 | extern int nr_rt_ioctl(unsigned int, void __user *); | 215 | extern int nr_rt_ioctl(unsigned int, void __user *); |
216 | extern void nr_link_failed(ax25_cb *, int); | 216 | extern void nr_link_failed(ax25_cb *, int); |
217 | extern int nr_route_frame(struct sk_buff *, ax25_cb *); | 217 | extern int nr_route_frame(struct sk_buff *, ax25_cb *); |
218 | extern struct file_operations nr_nodes_fops; | 218 | extern const struct file_operations nr_nodes_fops; |
219 | extern struct file_operations nr_neigh_fops; | 219 | extern const struct file_operations nr_neigh_fops; |
220 | extern void nr_rt_free(void); | 220 | extern void nr_rt_free(void); |
221 | 221 | ||
222 | /* nr_subr.c */ | 222 | /* nr_subr.c */ |
diff --git a/include/net/rose.h b/include/net/rose.h index 4c05a88b921b..a4047d3cf5dd 100644 --- a/include/net/rose.h +++ b/include/net/rose.h | |||
@@ -189,9 +189,9 @@ extern void rose_enquiry_response(struct sock *); | |||
189 | 189 | ||
190 | /* rose_route.c */ | 190 | /* rose_route.c */ |
191 | extern struct rose_neigh rose_loopback_neigh; | 191 | extern struct rose_neigh rose_loopback_neigh; |
192 | extern struct file_operations rose_neigh_fops; | 192 | extern const struct file_operations rose_neigh_fops; |
193 | extern struct file_operations rose_nodes_fops; | 193 | extern const struct file_operations rose_nodes_fops; |
194 | extern struct file_operations rose_routes_fops; | 194 | extern const struct file_operations rose_routes_fops; |
195 | 195 | ||
196 | extern void rose_add_loopback_neigh(void); | 196 | extern void rose_add_loopback_neigh(void); |
197 | extern int __must_check rose_add_loopback_node(rose_address *); | 197 | extern int __must_check rose_add_loopback_node(rose_address *); |
diff --git a/include/sound/pcm.h b/include/sound/pcm.h index ee6bc2d06803..deff5a92efa6 100644 --- a/include/sound/pcm.h +++ b/include/sound/pcm.h | |||
@@ -447,7 +447,7 @@ struct snd_pcm_notify { | |||
447 | * Registering | 447 | * Registering |
448 | */ | 448 | */ |
449 | 449 | ||
450 | extern struct file_operations snd_pcm_f_ops[2]; | 450 | extern const struct file_operations snd_pcm_f_ops[2]; |
451 | 451 | ||
452 | int snd_pcm_new(struct snd_card *card, char *id, int device, | 452 | int snd_pcm_new(struct snd_card *card, char *id, int device, |
453 | int playback_count, int capture_count, | 453 | int playback_count, int capture_count, |
diff --git a/include/video/neomagic.h b/include/video/neomagic.h index 78b1f15a538f..a9e118a1cd16 100644 --- a/include/video/neomagic.h +++ b/include/video/neomagic.h | |||
@@ -140,7 +140,8 @@ typedef volatile struct { | |||
140 | 140 | ||
141 | struct neofb_par { | 141 | struct neofb_par { |
142 | struct vgastate state; | 142 | struct vgastate state; |
143 | atomic_t ref_count; | 143 | struct mutex open_lock; |
144 | unsigned int ref_count; | ||
144 | 145 | ||
145 | unsigned char MiscOutReg; /* Misc */ | 146 | unsigned char MiscOutReg; /* Misc */ |
146 | unsigned char CRTC[25]; /* Crtc Controller */ | 147 | unsigned char CRTC[25]; /* Crtc Controller */ |
diff --git a/include/video/s3blit.h b/include/video/s3blit.h deleted file mode 100644 index b1db63187b4e..000000000000 --- a/include/video/s3blit.h +++ /dev/null | |||
@@ -1,79 +0,0 @@ | |||
1 | #ifndef _VIDEO_S3BLIT_H | ||
2 | #define _VIDEO_S3BLIT_H | ||
3 | |||
4 | /* s3 commands */ | ||
5 | #define S3_BITBLT 0xc011 | ||
6 | #define S3_TWOPOINTLINE 0x2811 | ||
7 | #define S3_FILLEDRECT 0x40b1 | ||
8 | |||
9 | #define S3_FIFO_EMPTY 0x0400 | ||
10 | #define S3_HDW_BUSY 0x0200 | ||
11 | |||
12 | /* Enhanced register mapping (MMIO mode) */ | ||
13 | |||
14 | #define S3_READ_SEL 0xbee8 /* offset f */ | ||
15 | #define S3_MULT_MISC 0xbee8 /* offset e */ | ||
16 | #define S3_ERR_TERM 0x92e8 | ||
17 | #define S3_FRGD_COLOR 0xa6e8 | ||
18 | #define S3_BKGD_COLOR 0xa2e8 | ||
19 | #define S3_PIXEL_CNTL 0xbee8 /* offset a */ | ||
20 | #define S3_FRGD_MIX 0xbae8 | ||
21 | #define S3_BKGD_MIX 0xb6e8 | ||
22 | #define S3_CUR_Y 0x82e8 | ||
23 | #define S3_CUR_X 0x86e8 | ||
24 | #define S3_DESTY_AXSTP 0x8ae8 | ||
25 | #define S3_DESTX_DIASTP 0x8ee8 | ||
26 | #define S3_MIN_AXIS_PCNT 0xbee8 /* offset 0 */ | ||
27 | #define S3_MAJ_AXIS_PCNT 0x96e8 | ||
28 | #define S3_CMD 0x9ae8 | ||
29 | #define S3_GP_STAT 0x9ae8 | ||
30 | #define S3_ADVFUNC_CNTL 0x4ae8 | ||
31 | #define S3_WRT_MASK 0xaae8 | ||
32 | #define S3_RD_MASK 0xaee8 | ||
33 | |||
34 | /* Enhanced register mapping (Packed MMIO mode, write only) */ | ||
35 | #define S3_ALT_CURXY 0x8100 | ||
36 | #define S3_ALT_CURXY2 0x8104 | ||
37 | #define S3_ALT_STEP 0x8108 | ||
38 | #define S3_ALT_STEP2 0x810c | ||
39 | #define S3_ALT_ERR 0x8110 | ||
40 | #define S3_ALT_CMD 0x8118 | ||
41 | #define S3_ALT_MIX 0x8134 | ||
42 | #define S3_ALT_PCNT 0x8148 | ||
43 | #define S3_ALT_PAT 0x8168 | ||
44 | |||
45 | /* Drawing modes */ | ||
46 | #define S3_NOTCUR 0x0000 | ||
47 | #define S3_LOGICALZERO 0x0001 | ||
48 | #define S3_LOGICALONE 0x0002 | ||
49 | #define S3_LEAVEASIS 0x0003 | ||
50 | #define S3_NOTNEW 0x0004 | ||
51 | #define S3_CURXORNEW 0x0005 | ||
52 | #define S3_NOT_CURXORNEW 0x0006 | ||
53 | #define S3_NEW 0x0007 | ||
54 | #define S3_NOTCURORNOTNEW 0x0008 | ||
55 | #define S3_CURORNOTNEW 0x0009 | ||
56 | #define S3_NOTCURORNEW 0x000a | ||
57 | #define S3_CURORNEW 0x000b | ||
58 | #define S3_CURANDNEW 0x000c | ||
59 | #define S3_NOTCURANDNEW 0x000d | ||
60 | #define S3_CURANDNOTNEW 0x000e | ||
61 | #define S3_NOTCURANDNOTNEW 0x000f | ||
62 | |||
63 | #define S3_CRTC_ADR 0x03d4 | ||
64 | #define S3_CRTC_DATA 0x03d5 | ||
65 | |||
66 | #define S3_REG_LOCK2 0x39 | ||
67 | #define S3_HGC_MODE 0x45 | ||
68 | |||
69 | #define S3_HWGC_ORGX_H 0x46 | ||
70 | #define S3_HWGC_ORGX_L 0x47 | ||
71 | #define S3_HWGC_ORGY_H 0x48 | ||
72 | #define S3_HWGC_ORGY_L 0x49 | ||
73 | #define S3_HWGC_DX 0x4e | ||
74 | #define S3_HWGC_DY 0x4f | ||
75 | |||
76 | |||
77 | #define S3_LAW_CTL 0x58 | ||
78 | |||
79 | #endif /* _VIDEO_S3BLIT_H */ | ||