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 */ | ||
