diff options
159 files changed, 3444 insertions, 2022 deletions
diff --git a/Documentation/00-INDEX b/Documentation/00-INDEX index 30b327a116..042073f656 100644 --- a/Documentation/00-INDEX +++ b/Documentation/00-INDEX | |||
@@ -183,8 +183,6 @@ i386/ | |||
183 | - directory with info about Linux on Intel 32 bit architecture. | 183 | - directory with info about Linux on Intel 32 bit architecture. |
184 | ia64/ | 184 | ia64/ |
185 | - directory with info about Linux on Intel 64 bit architecture. | 185 | - directory with info about Linux on Intel 64 bit architecture. |
186 | ide.txt | ||
187 | - important info for users of ATA devices (IDE/EIDE disks and CD-ROMS). | ||
188 | infiniband/ | 186 | infiniband/ |
189 | - directory with documents concerning Linux InfiniBand support. | 187 | - directory with documents concerning Linux InfiniBand support. |
190 | initrd.txt | 188 | initrd.txt |
diff --git a/Documentation/cdrom/ide-cd b/Documentation/cdrom/ide-cd index 29721bfcde..91c0dcc6fa 100644 --- a/Documentation/cdrom/ide-cd +++ b/Documentation/cdrom/ide-cd | |||
@@ -45,7 +45,7 @@ This driver provides the following features: | |||
45 | --------------- | 45 | --------------- |
46 | 46 | ||
47 | 0. The ide-cd relies on the ide disk driver. See | 47 | 0. The ide-cd relies on the ide disk driver. See |
48 | Documentation/ide.txt for up-to-date information on the ide | 48 | Documentation/ide/ide.txt for up-to-date information on the ide |
49 | driver. | 49 | driver. |
50 | 50 | ||
51 | 1. Make sure that the ide and ide-cd drivers are compiled into the | 51 | 1. Make sure that the ide and ide-cd drivers are compiled into the |
@@ -64,7 +64,7 @@ This driver provides the following features: | |||
64 | 64 | ||
65 | Depending on what type of IDE interface you have, you may need to | 65 | Depending on what type of IDE interface you have, you may need to |
66 | specify additional configuration options. See | 66 | specify additional configuration options. See |
67 | Documentation/ide.txt. | 67 | Documentation/ide/ide.txt. |
68 | 68 | ||
69 | 2. You should also ensure that the iso9660 filesystem is either | 69 | 2. You should also ensure that the iso9660 filesystem is either |
70 | compiled into the kernel or available as a loadable module. You | 70 | compiled into the kernel or available as a loadable module. You |
@@ -84,7 +84,7 @@ This driver provides the following features: | |||
84 | on the primary IDE interface are called `hda' and `hdb', | 84 | on the primary IDE interface are called `hda' and `hdb', |
85 | respectively. The drives on the secondary interface are called | 85 | respectively. The drives on the secondary interface are called |
86 | `hdc' and `hdd'. (Interfaces at other locations get other letters | 86 | `hdc' and `hdd'. (Interfaces at other locations get other letters |
87 | in the third position; see Documentation/ide.txt.) | 87 | in the third position; see Documentation/ide/ide.txt.) |
88 | 88 | ||
89 | If you want your CDROM drive to be found automatically by the | 89 | If you want your CDROM drive to be found automatically by the |
90 | driver, you should make sure your IDE interface uses either the | 90 | driver, you should make sure your IDE interface uses either the |
@@ -93,7 +93,7 @@ This driver provides the following features: | |||
93 | be jumpered as `master'. (If for some reason you cannot configure | 93 | be jumpered as `master'. (If for some reason you cannot configure |
94 | your system in this manner, you can probably still use the driver. | 94 | your system in this manner, you can probably still use the driver. |
95 | You may have to pass extra configuration information to the kernel | 95 | You may have to pass extra configuration information to the kernel |
96 | when you boot, however. See Documentation/ide.txt for more | 96 | when you boot, however. See Documentation/ide/ide.txt for more |
97 | information.) | 97 | information.) |
98 | 98 | ||
99 | 4. Boot the system. If the drive is recognized, you should see a | 99 | 4. Boot the system. If the drive is recognized, you should see a |
@@ -201,7 +201,7 @@ TEST | |||
201 | This section discusses some common problems encountered when trying to | 201 | This section discusses some common problems encountered when trying to |
202 | use the driver, and some possible solutions. Note that if you are | 202 | use the driver, and some possible solutions. Note that if you are |
203 | experiencing problems, you should probably also review | 203 | experiencing problems, you should probably also review |
204 | Documentation/ide.txt for current information about the underlying | 204 | Documentation/ide/ide.txt for current information about the underlying |
205 | IDE support code. Some of these items apply only to earlier versions | 205 | IDE support code. Some of these items apply only to earlier versions |
206 | of the driver, but are mentioned here for completeness. | 206 | of the driver, but are mentioned here for completeness. |
207 | 207 | ||
@@ -211,7 +211,7 @@ from the driver. | |||
211 | a. Drive is not detected during booting. | 211 | a. Drive is not detected during booting. |
212 | 212 | ||
213 | - Review the configuration instructions above and in | 213 | - Review the configuration instructions above and in |
214 | Documentation/ide.txt, and check how your hardware is | 214 | Documentation/ide/ide.txt, and check how your hardware is |
215 | configured. | 215 | configured. |
216 | 216 | ||
217 | - If your drive is the only device on an IDE interface, it should | 217 | - If your drive is the only device on an IDE interface, it should |
@@ -219,7 +219,7 @@ a. Drive is not detected during booting. | |||
219 | 219 | ||
220 | - If your IDE interface is not at the standard addresses of 0x170 | 220 | - If your IDE interface is not at the standard addresses of 0x170 |
221 | or 0x1f0, you'll need to explicitly inform the driver using a | 221 | or 0x1f0, you'll need to explicitly inform the driver using a |
222 | lilo option. See Documentation/ide.txt. (This feature was | 222 | lilo option. See Documentation/ide/ide.txt. (This feature was |
223 | added around kernel version 1.3.30.) | 223 | added around kernel version 1.3.30.) |
224 | 224 | ||
225 | - If the autoprobing is not finding your drive, you can tell the | 225 | - If the autoprobing is not finding your drive, you can tell the |
@@ -245,7 +245,7 @@ a. Drive is not detected during booting. | |||
245 | Support for some interfaces needing extra initialization is | 245 | Support for some interfaces needing extra initialization is |
246 | provided in later 1.3.x kernels. You may need to turn on | 246 | provided in later 1.3.x kernels. You may need to turn on |
247 | additional kernel configuration options to get them to work; | 247 | additional kernel configuration options to get them to work; |
248 | see Documentation/ide.txt. | 248 | see Documentation/ide/ide.txt. |
249 | 249 | ||
250 | Even if support is not available for your interface, you may be | 250 | Even if support is not available for your interface, you may be |
251 | able to get it to work with the following procedure. First boot | 251 | able to get it to work with the following procedure. First boot |
@@ -299,7 +299,7 @@ c. System hangups. | |||
299 | be worked around by specifying the `serialize' option when | 299 | be worked around by specifying the `serialize' option when |
300 | booting. Recent kernels should be able to detect the need for | 300 | booting. Recent kernels should be able to detect the need for |
301 | this automatically in most cases, but the detection is not | 301 | this automatically in most cases, but the detection is not |
302 | foolproof. See Documentation/ide.txt for more information | 302 | foolproof. See Documentation/ide/ide.txt for more information |
303 | about the `serialize' option and the CMD640B. | 303 | about the `serialize' option and the CMD640B. |
304 | 304 | ||
305 | - Note that many MS-DOS CDROM drivers will work with such buggy | 305 | - Note that many MS-DOS CDROM drivers will work with such buggy |
diff --git a/Documentation/ide/00-INDEX b/Documentation/ide/00-INDEX new file mode 100644 index 0000000000..d6b778842b --- /dev/null +++ b/Documentation/ide/00-INDEX | |||
@@ -0,0 +1,12 @@ | |||
1 | 00-INDEX | ||
2 | - this file | ||
3 | ChangeLog.ide-cd.1994-2004 | ||
4 | - ide-cd changelog | ||
5 | ChangeLog.ide-floppy.1996-2002 | ||
6 | - ide-floppy changelog | ||
7 | ChangeLog.ide-tape.1995-2002 | ||
8 | - ide-tape changelog | ||
9 | ide-tape.txt | ||
10 | - info on the IDE ATAPI streaming tape driver | ||
11 | ide.txt | ||
12 | - important info for users of ATA devices (IDE/EIDE disks and CD-ROMS). | ||
diff --git a/Documentation/ide.txt b/Documentation/ide/ide.txt index bcd7cd1278..e3b3425328 100644 --- a/Documentation/ide.txt +++ b/Documentation/ide/ide.txt | |||
@@ -3,11 +3,11 @@ | |||
3 | 3 | ||
4 | ============================================================================== | 4 | ============================================================================== |
5 | 5 | ||
6 | 6 | ||
7 | The hdparm utility can be used to control various IDE features on a | 7 | The hdparm utility can be used to control various IDE features on a |
8 | running system. It is packaged separately. Please Look for it on popular | 8 | running system. It is packaged separately. Please Look for it on popular |
9 | linux FTP sites. | 9 | linux FTP sites. |
10 | 10 | ||
11 | 11 | ||
12 | 12 | ||
13 | *** IMPORTANT NOTICES: BUGGY IDE CHIPSETS CAN CORRUPT DATA!! | 13 | *** IMPORTANT NOTICES: BUGGY IDE CHIPSETS CAN CORRUPT DATA!! |
@@ -51,7 +51,7 @@ Common pitfalls: | |||
51 | 51 | ||
52 | ================================================================================ | 52 | ================================================================================ |
53 | 53 | ||
54 | This is the multiple IDE interface driver, as evolved from hd.c. | 54 | This is the multiple IDE interface driver, as evolved from hd.c. |
55 | 55 | ||
56 | It supports up to 9 IDE interfaces per default, on one or more IRQs (usually | 56 | It supports up to 9 IDE interfaces per default, on one or more IRQs (usually |
57 | 14 & 15). There can be up to two drives per interface, as per the ATA-6 spec. | 57 | 14 & 15). There can be up to two drives per interface, as per the ATA-6 spec. |
@@ -215,17 +215,17 @@ Summary of ide driver parameters for kernel command line | |||
215 | -------------------------------------------------------- | 215 | -------------------------------------------------------- |
216 | 216 | ||
217 | "hdx=" is recognized for all "x" from "a" to "h", such as "hdc". | 217 | "hdx=" is recognized for all "x" from "a" to "h", such as "hdc". |
218 | 218 | ||
219 | "idex=" is recognized for all "x" from "0" to "3", such as "ide1". | 219 | "idex=" is recognized for all "x" from "0" to "3", such as "ide1". |
220 | 220 | ||
221 | "hdx=noprobe" : drive may be present, but do not probe for it | 221 | "hdx=noprobe" : drive may be present, but do not probe for it |
222 | 222 | ||
223 | "hdx=none" : drive is NOT present, ignore cmos and do not probe | 223 | "hdx=none" : drive is NOT present, ignore cmos and do not probe |
224 | 224 | ||
225 | "hdx=nowerr" : ignore the WRERR_STAT bit on this drive | 225 | "hdx=nowerr" : ignore the WRERR_STAT bit on this drive |
226 | 226 | ||
227 | "hdx=cdrom" : drive is present, and is a cdrom drive | 227 | "hdx=cdrom" : drive is present, and is a cdrom drive |
228 | 228 | ||
229 | "hdx=cyl,head,sect" : disk drive is present, with specified geometry | 229 | "hdx=cyl,head,sect" : disk drive is present, with specified geometry |
230 | 230 | ||
231 | "hdx=remap" : remap access of sector 0 to sector 1 (for EZDrive) | 231 | "hdx=remap" : remap access of sector 0 to sector 1 (for EZDrive) |
@@ -261,7 +261,7 @@ Summary of ide driver parameters for kernel command line | |||
261 | "idex=base" : probe for an interface at the addr specified, | 261 | "idex=base" : probe for an interface at the addr specified, |
262 | where "base" is usually 0x1f0 or 0x170 | 262 | where "base" is usually 0x1f0 or 0x170 |
263 | and "ctl" is assumed to be "base"+0x206 | 263 | and "ctl" is assumed to be "base"+0x206 |
264 | 264 | ||
265 | "idex=base,ctl" : specify both base and ctl | 265 | "idex=base,ctl" : specify both base and ctl |
266 | 266 | ||
267 | "idex=base,ctl,irq" : specify base, ctl, and irq number | 267 | "idex=base,ctl,irq" : specify base, ctl, and irq number |
@@ -272,7 +272,7 @@ Summary of ide driver parameters for kernel command line | |||
272 | to take effect. | 272 | to take effect. |
273 | 273 | ||
274 | "idex=four" : four drives on idex and ide(x^1) share same ports | 274 | "idex=four" : four drives on idex and ide(x^1) share same ports |
275 | 275 | ||
276 | "idex=reset" : reset interface after probe | 276 | "idex=reset" : reset interface after probe |
277 | 277 | ||
278 | "idex=ata66" : informs the interface that it has an 80c cable | 278 | "idex=ata66" : informs the interface that it has an 80c cable |
diff --git a/Documentation/kernel-parameters.txt b/Documentation/kernel-parameters.txt index 9a5b6658c6..533e67febf 100644 --- a/Documentation/kernel-parameters.txt +++ b/Documentation/kernel-parameters.txt | |||
@@ -712,7 +712,7 @@ and is between 256 and 4096 characters. It is defined in the file | |||
712 | Format: <cyl>,<head>,<sect> | 712 | Format: <cyl>,<head>,<sect> |
713 | 713 | ||
714 | hd?= [HW] (E)IDE subsystem | 714 | hd?= [HW] (E)IDE subsystem |
715 | hd?lun= See Documentation/ide.txt. | 715 | hd?lun= See Documentation/ide/ide.txt. |
716 | 716 | ||
717 | highmem=nn[KMG] [KNL,BOOT] forces the highmem zone to have an exact | 717 | highmem=nn[KMG] [KNL,BOOT] forces the highmem zone to have an exact |
718 | size of <nn>. This works even on boxes that have no | 718 | size of <nn>. This works even on boxes that have no |
@@ -766,14 +766,14 @@ and is between 256 and 4096 characters. It is defined in the file | |||
766 | 766 | ||
767 | ide= [HW] (E)IDE subsystem | 767 | ide= [HW] (E)IDE subsystem |
768 | Format: ide=nodma or ide=doubler or ide=reverse | 768 | Format: ide=nodma or ide=doubler or ide=reverse |
769 | See Documentation/ide.txt. | 769 | See Documentation/ide/ide.txt. |
770 | 770 | ||
771 | ide?= [HW] (E)IDE subsystem | 771 | ide?= [HW] (E)IDE subsystem |
772 | Format: ide?=noprobe or chipset specific parameters. | 772 | Format: ide?=noprobe or chipset specific parameters. |
773 | See Documentation/ide.txt. | 773 | See Documentation/ide/ide.txt. |
774 | 774 | ||
775 | idebus= [HW] (E)IDE subsystem - VLB/PCI bus speed | 775 | idebus= [HW] (E)IDE subsystem - VLB/PCI bus speed |
776 | See Documentation/ide.txt. | 776 | See Documentation/ide/ide.txt. |
777 | 777 | ||
778 | idle= [X86] | 778 | idle= [X86] |
779 | Format: idle=poll or idle=mwait | 779 | Format: idle=poll or idle=mwait |
diff --git a/Documentation/pci.txt b/Documentation/pci.txt index bb7bd27d46..d2c2e6e2b2 100644 --- a/Documentation/pci.txt +++ b/Documentation/pci.txt | |||
@@ -123,7 +123,7 @@ initialization with a pointer to a structure describing the driver | |||
123 | 123 | ||
124 | 124 | ||
125 | The ID table is an array of struct pci_device_id entries ending with an | 125 | The ID table is an array of struct pci_device_id entries ending with an |
126 | all-zero entry; use of the macro DECLARE_PCI_DEVICE_TABLE is the preferred | 126 | all-zero entry; use of the macro DEFINE_PCI_DEVICE_TABLE is the preferred |
127 | method of declaring the table. Each entry consists of: | 127 | method of declaring the table. Each entry consists of: |
128 | 128 | ||
129 | vendor,device Vendor and device ID to match (or PCI_ANY_ID) | 129 | vendor,device Vendor and device ID to match (or PCI_ANY_ID) |
@@ -193,7 +193,7 @@ Tips on when/where to use the above attributes: | |||
193 | o Do not mark the struct pci_driver. | 193 | o Do not mark the struct pci_driver. |
194 | 194 | ||
195 | o The ID table array should be marked __devinitconst; this is done | 195 | o The ID table array should be marked __devinitconst; this is done |
196 | automatically if the table is declared with DECLARE_PCI_DEVICE_TABLE(). | 196 | automatically if the table is declared with DEFINE_PCI_DEVICE_TABLE(). |
197 | 197 | ||
198 | o The probe() and remove() functions should be marked __devinit | 198 | o The probe() and remove() functions should be marked __devinit |
199 | and __devexit respectively. All initialization functions | 199 | and __devexit respectively. All initialization functions |
diff --git a/Documentation/scheduler/sched-stats.txt b/Documentation/scheduler/sched-stats.txt index 442e14d35d..01e69404ee 100644 --- a/Documentation/scheduler/sched-stats.txt +++ b/Documentation/scheduler/sched-stats.txt | |||
@@ -142,7 +142,7 @@ of idleness (idle, busy, and newly idle): | |||
142 | 142 | ||
143 | /proc/<pid>/schedstat | 143 | /proc/<pid>/schedstat |
144 | ---------------- | 144 | ---------------- |
145 | schedstats also adds a new /proc/<pid/schedstat file to include some of | 145 | schedstats also adds a new /proc/<pid>/schedstat file to include some of |
146 | the same information on a per-process level. There are three fields in | 146 | the same information on a per-process level. There are three fields in |
147 | this file correlating for that process to: | 147 | this file correlating for that process to: |
148 | 1) time spent on the cpu | 148 | 1) time spent on the cpu |
diff --git a/Documentation/vm/slub.txt b/Documentation/vm/slub.txt index dcf8bcf846..7c13f22a0c 100644 --- a/Documentation/vm/slub.txt +++ b/Documentation/vm/slub.txt | |||
@@ -50,14 +50,14 @@ F.e. in order to boot just with sanity checks and red zoning one would specify: | |||
50 | 50 | ||
51 | Trying to find an issue in the dentry cache? Try | 51 | Trying to find an issue in the dentry cache? Try |
52 | 52 | ||
53 | slub_debug=,dentry_cache | 53 | slub_debug=,dentry |
54 | 54 | ||
55 | to only enable debugging on the dentry cache. | 55 | to only enable debugging on the dentry cache. |
56 | 56 | ||
57 | Red zoning and tracking may realign the slab. We can just apply sanity checks | 57 | Red zoning and tracking may realign the slab. We can just apply sanity checks |
58 | to the dentry cache with | 58 | to the dentry cache with |
59 | 59 | ||
60 | slub_debug=F,dentry_cache | 60 | slub_debug=F,dentry |
61 | 61 | ||
62 | In case you forgot to enable debugging on the kernel command line: It is | 62 | In case you forgot to enable debugging on the kernel command line: It is |
63 | possible to enable debugging manually when the kernel is up. Look at the | 63 | possible to enable debugging manually when the kernel is up. Look at the |
@@ -1,7 +1,7 @@ | |||
1 | VERSION = 2 | 1 | VERSION = 2 |
2 | PATCHLEVEL = 6 | 2 | PATCHLEVEL = 6 |
3 | SUBLEVEL = 25 | 3 | SUBLEVEL = 25 |
4 | EXTRAVERSION = -rc4 | 4 | EXTRAVERSION = -rc5 |
5 | NAME = Funky Weasel is Jiggy wit it | 5 | NAME = Funky Weasel is Jiggy wit it |
6 | 6 | ||
7 | # *DOCUMENTATION* | 7 | # *DOCUMENTATION* |
diff --git a/arch/alpha/kernel/pci_iommu.c b/arch/alpha/kernel/pci_iommu.c index be6fa105cd..e07a23fc5b 100644 --- a/arch/alpha/kernel/pci_iommu.c +++ b/arch/alpha/kernel/pci_iommu.c | |||
@@ -144,15 +144,14 @@ iommu_arena_find_pages(struct device *dev, struct pci_iommu_arena *arena, | |||
144 | unsigned long base; | 144 | unsigned long base; |
145 | unsigned long boundary_size; | 145 | unsigned long boundary_size; |
146 | 146 | ||
147 | BUG_ON(arena->dma_base & ~PAGE_MASK); | ||
148 | base = arena->dma_base >> PAGE_SHIFT; | 147 | base = arena->dma_base >> PAGE_SHIFT; |
149 | if (dev) | 148 | if (dev) { |
150 | boundary_size = ALIGN(dma_get_max_seg_size(dev) + 1, PAGE_SIZE) | 149 | boundary_size = dma_get_seg_boundary(dev) + 1; |
151 | >> PAGE_SHIFT; | 150 | BUG_ON(!is_power_of_2(boundary_size)); |
152 | else | 151 | boundary_size >>= PAGE_SHIFT; |
153 | boundary_size = ALIGN(1UL << 32, PAGE_SIZE) >> PAGE_SHIFT; | 152 | } else { |
154 | 153 | boundary_size = 1UL << (32 - PAGE_SHIFT); | |
155 | BUG_ON(!is_power_of_2(boundary_size)); | 154 | } |
156 | 155 | ||
157 | /* Search forward for the first mask-aligned sequence of N free ptes */ | 156 | /* Search forward for the first mask-aligned sequence of N free ptes */ |
158 | ptes = arena->ptes; | 157 | ptes = arena->ptes; |
diff --git a/arch/blackfin/kernel/fixed_code.S b/arch/blackfin/kernel/fixed_code.S index 90262691b1..5ed47228a3 100644 --- a/arch/blackfin/kernel/fixed_code.S +++ b/arch/blackfin/kernel/fixed_code.S | |||
@@ -101,9 +101,9 @@ ENDPROC (_atomic_ior32) | |||
101 | 101 | ||
102 | .align 16 | 102 | .align 16 |
103 | /* | 103 | /* |
104 | * Atomic ior, 32 bit. | 104 | * Atomic and, 32 bit. |
105 | * Inputs: P0: memory address to use | 105 | * Inputs: P0: memory address to use |
106 | * R0: value to ior | 106 | * R0: value to and |
107 | * Outputs: R0: new contents of the memory address. | 107 | * Outputs: R0: new contents of the memory address. |
108 | * R1: previous contents of the memory address. | 108 | * R1: previous contents of the memory address. |
109 | */ | 109 | */ |
@@ -112,13 +112,13 @@ ENTRY(_atomic_and32) | |||
112 | R0 = R1 & R0; | 112 | R0 = R1 & R0; |
113 | [P0] = R0; | 113 | [P0] = R0; |
114 | rts; | 114 | rts; |
115 | ENDPROC (_atomic_ior32) | 115 | ENDPROC (_atomic_and32) |
116 | 116 | ||
117 | .align 16 | 117 | .align 16 |
118 | /* | 118 | /* |
119 | * Atomic ior, 32 bit. | 119 | * Atomic xor, 32 bit. |
120 | * Inputs: P0: memory address to use | 120 | * Inputs: P0: memory address to use |
121 | * R0: value to ior | 121 | * R0: value to xor |
122 | * Outputs: R0: new contents of the memory address. | 122 | * Outputs: R0: new contents of the memory address. |
123 | * R1: previous contents of the memory address. | 123 | * R1: previous contents of the memory address. |
124 | */ | 124 | */ |
@@ -127,7 +127,7 @@ ENTRY(_atomic_xor32) | |||
127 | R0 = R1 ^ R0; | 127 | R0 = R1 ^ R0; |
128 | [P0] = R0; | 128 | [P0] = R0; |
129 | rts; | 129 | rts; |
130 | ENDPROC (_atomic_ior32) | 130 | ENDPROC (_atomic_xor32) |
131 | 131 | ||
132 | .align 16 | 132 | .align 16 |
133 | /* | 133 | /* |
diff --git a/arch/blackfin/mach-bf548/boards/ezkit.c b/arch/blackfin/mach-bf548/boards/ezkit.c index a0950c1fd8..40846aa034 100644 --- a/arch/blackfin/mach-bf548/boards/ezkit.c +++ b/arch/blackfin/mach-bf548/boards/ezkit.c | |||
@@ -323,7 +323,7 @@ static struct platform_device bf5xx_nand_device = { | |||
323 | }; | 323 | }; |
324 | #endif | 324 | #endif |
325 | 325 | ||
326 | #if defined(CONFIG_SDH_BFIN) || defined(CONFIG_SDH_BFIN) | 326 | #if defined(CONFIG_SDH_BFIN) || defined(CONFIG_SDH_BFIN_MODULE) |
327 | static struct platform_device bf54x_sdh_device = { | 327 | static struct platform_device bf54x_sdh_device = { |
328 | .name = "bfin-sdh", | 328 | .name = "bfin-sdh", |
329 | .id = 0, | 329 | .id = 0, |
@@ -636,7 +636,7 @@ static struct platform_device *ezkit_devices[] __initdata = { | |||
636 | &bf5xx_nand_device, | 636 | &bf5xx_nand_device, |
637 | #endif | 637 | #endif |
638 | 638 | ||
639 | #if defined(CONFIG_SDH_BFIN) || defined(CONFIG_SDH_BFIN) | 639 | #if defined(CONFIG_SDH_BFIN) || defined(CONFIG_SDH_BFIN_MODULE) |
640 | &bf54x_sdh_device, | 640 | &bf54x_sdh_device, |
641 | #endif | 641 | #endif |
642 | 642 | ||
diff --git a/arch/blackfin/mach-common/entry.S b/arch/blackfin/mach-common/entry.S index 2cbb7a0bc3..cee54cebbc 100644 --- a/arch/blackfin/mach-common/entry.S +++ b/arch/blackfin/mach-common/entry.S | |||
@@ -1369,7 +1369,7 @@ ENTRY(_sys_call_table) | |||
1369 | .long _sys_epoll_pwait | 1369 | .long _sys_epoll_pwait |
1370 | .long _sys_utimensat | 1370 | .long _sys_utimensat |
1371 | .long _sys_signalfd | 1371 | .long _sys_signalfd |
1372 | .long _sys_ni_syscall | 1372 | .long _sys_timerfd_create |
1373 | .long _sys_eventfd /* 350 */ | 1373 | .long _sys_eventfd /* 350 */ |
1374 | .long _sys_pread64 | 1374 | .long _sys_pread64 |
1375 | .long _sys_pwrite64 | 1375 | .long _sys_pwrite64 |
@@ -1378,6 +1378,9 @@ ENTRY(_sys_call_table) | |||
1378 | .long _sys_get_robust_list /* 355 */ | 1378 | .long _sys_get_robust_list /* 355 */ |
1379 | .long _sys_fallocate | 1379 | .long _sys_fallocate |
1380 | .long _sys_semtimedop | 1380 | .long _sys_semtimedop |
1381 | .long _sys_timerfd_settime | ||
1382 | .long _sys_timerfd_gettime | ||
1383 | |||
1381 | .rept NR_syscalls-(.-_sys_call_table)/4 | 1384 | .rept NR_syscalls-(.-_sys_call_table)/4 |
1382 | .long _sys_ni_syscall | 1385 | .long _sys_ni_syscall |
1383 | .endr | 1386 | .endr |
diff --git a/arch/ia64/hp/common/hwsw_iommu.c b/arch/ia64/hp/common/hwsw_iommu.c index 94e57109fa..8f6bcfe1da 100644 --- a/arch/ia64/hp/common/hwsw_iommu.c +++ b/arch/ia64/hp/common/hwsw_iommu.c | |||
@@ -71,7 +71,7 @@ hwsw_init (void) | |||
71 | #ifdef CONFIG_IA64_GENERIC | 71 | #ifdef CONFIG_IA64_GENERIC |
72 | /* Better to have normal DMA than panic */ | 72 | /* Better to have normal DMA than panic */ |
73 | printk(KERN_WARNING "%s: Failed to initialize software I/O TLB," | 73 | printk(KERN_WARNING "%s: Failed to initialize software I/O TLB," |
74 | " reverting to hpzx1 platform vector\n", __FUNCTION__); | 74 | " reverting to hpzx1 platform vector\n", __func__); |
75 | machvec_init("hpzx1"); | 75 | machvec_init("hpzx1"); |
76 | #else | 76 | #else |
77 | panic("Unable to initialize software I/O TLB services"); | 77 | panic("Unable to initialize software I/O TLB services"); |
diff --git a/arch/ia64/hp/common/sba_iommu.c b/arch/ia64/hp/common/sba_iommu.c index a94445422c..523eae6d3e 100644 --- a/arch/ia64/hp/common/sba_iommu.c +++ b/arch/ia64/hp/common/sba_iommu.c | |||
@@ -529,7 +529,7 @@ sba_search_bitmap(struct ioc *ioc, unsigned long bits_wanted, int use_hint) | |||
529 | base_mask = RESMAP_MASK(bits_wanted); | 529 | base_mask = RESMAP_MASK(bits_wanted); |
530 | mask = base_mask << bitshiftcnt; | 530 | mask = base_mask << bitshiftcnt; |
531 | 531 | ||
532 | DBG_RES("%s() o %ld %p", __FUNCTION__, o, res_ptr); | 532 | DBG_RES("%s() o %ld %p", __func__, o, res_ptr); |
533 | for(; res_ptr < res_end ; res_ptr++) | 533 | for(; res_ptr < res_end ; res_ptr++) |
534 | { | 534 | { |
535 | DBG_RES(" %p %lx %lx\n", res_ptr, mask, *res_ptr); | 535 | DBG_RES(" %p %lx %lx\n", res_ptr, mask, *res_ptr); |
@@ -679,7 +679,7 @@ sba_alloc_range(struct ioc *ioc, size_t size) | |||
679 | #endif | 679 | #endif |
680 | 680 | ||
681 | DBG_RES("%s(%x) %d -> %lx hint %x/%x\n", | 681 | DBG_RES("%s(%x) %d -> %lx hint %x/%x\n", |
682 | __FUNCTION__, size, pages_needed, pide, | 682 | __func__, size, pages_needed, pide, |
683 | (uint) ((unsigned long) ioc->res_hint - (unsigned long) ioc->res_map), | 683 | (uint) ((unsigned long) ioc->res_hint - (unsigned long) ioc->res_map), |
684 | ioc->res_bitshift ); | 684 | ioc->res_bitshift ); |
685 | 685 | ||
@@ -722,8 +722,8 @@ sba_free_range(struct ioc *ioc, dma_addr_t iova, size_t size) | |||
722 | m = RESMAP_MASK(bits_not_wanted) << (pide & (BITS_PER_LONG - 1)); | 722 | m = RESMAP_MASK(bits_not_wanted) << (pide & (BITS_PER_LONG - 1)); |
723 | bits_not_wanted = 0; | 723 | bits_not_wanted = 0; |
724 | 724 | ||
725 | DBG_RES("%s( ,%x,%x) %x/%lx %x %p %lx\n", __FUNCTION__, (uint) iova, size, | 725 | DBG_RES("%s( ,%x,%x) %x/%lx %x %p %lx\n", __func__, (uint) iova, size, |
726 | bits_not_wanted, m, pide, res_ptr, *res_ptr); | 726 | bits_not_wanted, m, pide, res_ptr, *res_ptr); |
727 | 727 | ||
728 | ASSERT(m != 0); | 728 | ASSERT(m != 0); |
729 | ASSERT(bits_not_wanted); | 729 | ASSERT(bits_not_wanted); |
@@ -940,8 +940,7 @@ sba_map_single(struct device *dev, void *addr, size_t size, int dir) | |||
940 | 940 | ||
941 | iovp = (dma_addr_t) pide << iovp_shift; | 941 | iovp = (dma_addr_t) pide << iovp_shift; |
942 | 942 | ||
943 | DBG_RUN("%s() 0x%p -> 0x%lx\n", | 943 | DBG_RUN("%s() 0x%p -> 0x%lx\n", __func__, addr, (long) iovp | offset); |
944 | __FUNCTION__, addr, (long) iovp | offset); | ||
945 | 944 | ||
946 | pdir_start = &(ioc->pdir_base[pide]); | 945 | pdir_start = &(ioc->pdir_base[pide]); |
947 | 946 | ||
@@ -1029,8 +1028,7 @@ void sba_unmap_single(struct device *dev, dma_addr_t iova, size_t size, int dir) | |||
1029 | #endif | 1028 | #endif |
1030 | offset = iova & ~iovp_mask; | 1029 | offset = iova & ~iovp_mask; |
1031 | 1030 | ||
1032 | DBG_RUN("%s() iovp 0x%lx/%x\n", | 1031 | DBG_RUN("%s() iovp 0x%lx/%x\n", __func__, (long) iova, size); |
1033 | __FUNCTION__, (long) iova, size); | ||
1034 | 1032 | ||
1035 | iova ^= offset; /* clear offset bits */ | 1033 | iova ^= offset; /* clear offset bits */ |
1036 | size += offset; | 1034 | size += offset; |
@@ -1404,7 +1402,7 @@ int sba_map_sg(struct device *dev, struct scatterlist *sglist, int nents, int di | |||
1404 | struct scatterlist *sg; | 1402 | struct scatterlist *sg; |
1405 | #endif | 1403 | #endif |
1406 | 1404 | ||
1407 | DBG_RUN_SG("%s() START %d entries\n", __FUNCTION__, nents); | 1405 | DBG_RUN_SG("%s() START %d entries\n", __func__, nents); |
1408 | ioc = GET_IOC(dev); | 1406 | ioc = GET_IOC(dev); |
1409 | ASSERT(ioc); | 1407 | ASSERT(ioc); |
1410 | 1408 | ||
@@ -1468,7 +1466,7 @@ int sba_map_sg(struct device *dev, struct scatterlist *sglist, int nents, int di | |||
1468 | #endif | 1466 | #endif |
1469 | 1467 | ||
1470 | ASSERT(coalesced == filled); | 1468 | ASSERT(coalesced == filled); |
1471 | DBG_RUN_SG("%s() DONE %d mappings\n", __FUNCTION__, filled); | 1469 | DBG_RUN_SG("%s() DONE %d mappings\n", __func__, filled); |
1472 | 1470 | ||
1473 | return filled; | 1471 | return filled; |
1474 | } | 1472 | } |
@@ -1491,7 +1489,7 @@ void sba_unmap_sg (struct device *dev, struct scatterlist *sglist, int nents, in | |||
1491 | #endif | 1489 | #endif |
1492 | 1490 | ||
1493 | DBG_RUN_SG("%s() START %d entries, %p,%x\n", | 1491 | DBG_RUN_SG("%s() START %d entries, %p,%x\n", |
1494 | __FUNCTION__, nents, sba_sg_address(sglist), sglist->length); | 1492 | __func__, nents, sba_sg_address(sglist), sglist->length); |
1495 | 1493 | ||
1496 | #ifdef ASSERT_PDIR_SANITY | 1494 | #ifdef ASSERT_PDIR_SANITY |
1497 | ioc = GET_IOC(dev); | 1495 | ioc = GET_IOC(dev); |
@@ -1509,7 +1507,7 @@ void sba_unmap_sg (struct device *dev, struct scatterlist *sglist, int nents, in | |||
1509 | nents--; | 1507 | nents--; |
1510 | } | 1508 | } |
1511 | 1509 | ||
1512 | DBG_RUN_SG("%s() DONE (nents %d)\n", __FUNCTION__, nents); | 1510 | DBG_RUN_SG("%s() DONE (nents %d)\n", __func__, nents); |
1513 | 1511 | ||
1514 | #ifdef ASSERT_PDIR_SANITY | 1512 | #ifdef ASSERT_PDIR_SANITY |
1515 | spin_lock_irqsave(&ioc->res_lock, flags); | 1513 | spin_lock_irqsave(&ioc->res_lock, flags); |
@@ -1546,7 +1544,7 @@ ioc_iova_init(struct ioc *ioc) | |||
1546 | ioc->iov_size = ~ioc->imask + 1; | 1544 | ioc->iov_size = ~ioc->imask + 1; |
1547 | 1545 | ||
1548 | DBG_INIT("%s() hpa %p IOV base 0x%lx mask 0x%lx (%dMB)\n", | 1546 | DBG_INIT("%s() hpa %p IOV base 0x%lx mask 0x%lx (%dMB)\n", |
1549 | __FUNCTION__, ioc->ioc_hpa, ioc->ibase, ioc->imask, | 1547 | __func__, ioc->ioc_hpa, ioc->ibase, ioc->imask, |
1550 | ioc->iov_size >> 20); | 1548 | ioc->iov_size >> 20); |
1551 | 1549 | ||
1552 | switch (iovp_size) { | 1550 | switch (iovp_size) { |
@@ -1569,7 +1567,7 @@ ioc_iova_init(struct ioc *ioc) | |||
1569 | 1567 | ||
1570 | memset(ioc->pdir_base, 0, ioc->pdir_size); | 1568 | memset(ioc->pdir_base, 0, ioc->pdir_size); |
1571 | 1569 | ||
1572 | DBG_INIT("%s() IOV page size %ldK pdir %p size %x\n", __FUNCTION__, | 1570 | DBG_INIT("%s() IOV page size %ldK pdir %p size %x\n", __func__, |
1573 | iovp_size >> 10, ioc->pdir_base, ioc->pdir_size); | 1571 | iovp_size >> 10, ioc->pdir_base, ioc->pdir_size); |
1574 | 1572 | ||
1575 | ASSERT(ALIGN((unsigned long) ioc->pdir_base, 4*1024) == (unsigned long) ioc->pdir_base); | 1573 | ASSERT(ALIGN((unsigned long) ioc->pdir_base, 4*1024) == (unsigned long) ioc->pdir_base); |
@@ -1612,7 +1610,7 @@ ioc_iova_init(struct ioc *ioc) | |||
1612 | 1610 | ||
1613 | prefetch_spill_page = virt_to_phys(addr); | 1611 | prefetch_spill_page = virt_to_phys(addr); |
1614 | 1612 | ||
1615 | DBG_INIT("%s() prefetch spill addr: 0x%lx\n", __FUNCTION__, prefetch_spill_page); | 1613 | DBG_INIT("%s() prefetch spill addr: 0x%lx\n", __func__, prefetch_spill_page); |
1616 | } | 1614 | } |
1617 | /* | 1615 | /* |
1618 | ** Set all the PDIR entries valid w/ the spill page as the target | 1616 | ** Set all the PDIR entries valid w/ the spill page as the target |
@@ -1641,7 +1639,7 @@ ioc_resource_init(struct ioc *ioc) | |||
1641 | /* resource map size dictated by pdir_size */ | 1639 | /* resource map size dictated by pdir_size */ |
1642 | ioc->res_size = ioc->pdir_size / PDIR_ENTRY_SIZE; /* entries */ | 1640 | ioc->res_size = ioc->pdir_size / PDIR_ENTRY_SIZE; /* entries */ |
1643 | ioc->res_size >>= 3; /* convert bit count to byte count */ | 1641 | ioc->res_size >>= 3; /* convert bit count to byte count */ |
1644 | DBG_INIT("%s() res_size 0x%x\n", __FUNCTION__, ioc->res_size); | 1642 | DBG_INIT("%s() res_size 0x%x\n", __func__, ioc->res_size); |
1645 | 1643 | ||
1646 | ioc->res_map = (char *) __get_free_pages(GFP_KERNEL, | 1644 | ioc->res_map = (char *) __get_free_pages(GFP_KERNEL, |
1647 | get_order(ioc->res_size)); | 1645 | get_order(ioc->res_size)); |
@@ -1664,7 +1662,7 @@ ioc_resource_init(struct ioc *ioc) | |||
1664 | | prefetch_spill_page); | 1662 | | prefetch_spill_page); |
1665 | #endif | 1663 | #endif |
1666 | 1664 | ||
1667 | DBG_INIT("%s() res_map %x %p\n", __FUNCTION__, | 1665 | DBG_INIT("%s() res_map %x %p\n", __func__, |
1668 | ioc->res_size, (void *) ioc->res_map); | 1666 | ioc->res_size, (void *) ioc->res_map); |
1669 | } | 1667 | } |
1670 | 1668 | ||
@@ -1767,7 +1765,7 @@ ioc_init(u64 hpa, void *handle) | |||
1767 | iovp_size = (1 << iovp_shift); | 1765 | iovp_size = (1 << iovp_shift); |
1768 | iovp_mask = ~(iovp_size - 1); | 1766 | iovp_mask = ~(iovp_size - 1); |
1769 | 1767 | ||
1770 | DBG_INIT("%s: PAGE_SIZE %ldK, iovp_size %ldK\n", __FUNCTION__, | 1768 | DBG_INIT("%s: PAGE_SIZE %ldK, iovp_size %ldK\n", __func__, |
1771 | PAGE_SIZE >> 10, iovp_size >> 10); | 1769 | PAGE_SIZE >> 10, iovp_size >> 10); |
1772 | 1770 | ||
1773 | if (!ioc->name) { | 1771 | if (!ioc->name) { |
@@ -2137,7 +2135,7 @@ sba_page_override(char *str) | |||
2137 | break; | 2135 | break; |
2138 | default: | 2136 | default: |
2139 | printk("%s: unknown/unsupported iommu page size %ld\n", | 2137 | printk("%s: unknown/unsupported iommu page size %ld\n", |
2140 | __FUNCTION__, page_size); | 2138 | __func__, page_size); |
2141 | } | 2139 | } |
2142 | 2140 | ||
2143 | return 1; | 2141 | return 1; |
diff --git a/arch/ia64/hp/sim/simeth.c b/arch/ia64/hp/sim/simeth.c index 9898febf60..969fe9f443 100644 --- a/arch/ia64/hp/sim/simeth.c +++ b/arch/ia64/hp/sim/simeth.c | |||
@@ -222,7 +222,7 @@ simeth_probe1(void) | |||
222 | } | 222 | } |
223 | 223 | ||
224 | if ((rc = assign_irq_vector(AUTO_ASSIGN)) < 0) | 224 | if ((rc = assign_irq_vector(AUTO_ASSIGN)) < 0) |
225 | panic("%s: out of interrupt vectors!\n", __FUNCTION__); | 225 | panic("%s: out of interrupt vectors!\n", __func__); |
226 | dev->irq = rc; | 226 | dev->irq = rc; |
227 | 227 | ||
228 | /* | 228 | /* |
diff --git a/arch/ia64/hp/sim/simserial.c b/arch/ia64/hp/sim/simserial.c index ef252df50e..eb0c32a85f 100644 --- a/arch/ia64/hp/sim/simserial.c +++ b/arch/ia64/hp/sim/simserial.c | |||
@@ -1000,7 +1000,7 @@ simrs_init (void) | |||
1000 | if (!state->irq) { | 1000 | if (!state->irq) { |
1001 | if ((rc = assign_irq_vector(AUTO_ASSIGN)) < 0) | 1001 | if ((rc = assign_irq_vector(AUTO_ASSIGN)) < 0) |
1002 | panic("%s: out of interrupt vectors!\n", | 1002 | panic("%s: out of interrupt vectors!\n", |
1003 | __FUNCTION__); | 1003 | __func__); |
1004 | state->irq = rc; | 1004 | state->irq = rc; |
1005 | ia64_ssc_connect_irq(KEYBOARD_INTR, state->irq); | 1005 | ia64_ssc_connect_irq(KEYBOARD_INTR, state->irq); |
1006 | } | 1006 | } |
diff --git a/arch/ia64/ia32/sys_ia32.c b/arch/ia64/ia32/sys_ia32.c index d025a22eb2..b1bf51fe97 100644 --- a/arch/ia64/ia32/sys_ia32.c +++ b/arch/ia64/ia32/sys_ia32.c | |||
@@ -32,13 +32,8 @@ | |||
32 | #include <linux/shm.h> | 32 | #include <linux/shm.h> |
33 | #include <linux/slab.h> | 33 | #include <linux/slab.h> |
34 | #include <linux/uio.h> | 34 | #include <linux/uio.h> |
35 | #include <linux/nfs_fs.h> | 35 | #include <linux/socket.h> |
36 | #include <linux/quota.h> | 36 | #include <linux/quota.h> |
37 | #include <linux/sunrpc/svc.h> | ||
38 | #include <linux/nfsd/nfsd.h> | ||
39 | #include <linux/nfsd/cache.h> | ||
40 | #include <linux/nfsd/xdr.h> | ||
41 | #include <linux/nfsd/syscall.h> | ||
42 | #include <linux/poll.h> | 37 | #include <linux/poll.h> |
43 | #include <linux/eventpoll.h> | 38 | #include <linux/eventpoll.h> |
44 | #include <linux/personality.h> | 39 | #include <linux/personality.h> |
diff --git a/arch/ia64/kernel/crash.c b/arch/ia64/kernel/crash.c index f1cf2df97a..fbe742ad2f 100644 --- a/arch/ia64/kernel/crash.c +++ b/arch/ia64/kernel/crash.c | |||
@@ -155,7 +155,7 @@ kdump_init_notifier(struct notifier_block *self, unsigned long val, void *data) | |||
155 | if (val == DIE_INIT_MONARCH_LEAVE) | 155 | if (val == DIE_INIT_MONARCH_LEAVE) |
156 | ia64_mca_printk(KERN_NOTICE | 156 | ia64_mca_printk(KERN_NOTICE |
157 | "%s: kdump not configured\n", | 157 | "%s: kdump not configured\n", |
158 | __FUNCTION__); | 158 | __func__); |
159 | return NOTIFY_DONE; | 159 | return NOTIFY_DONE; |
160 | } | 160 | } |
161 | 161 | ||
diff --git a/arch/ia64/kernel/efi.c b/arch/ia64/kernel/efi.c index 919070a9ae..728d7247a1 100644 --- a/arch/ia64/kernel/efi.c +++ b/arch/ia64/kernel/efi.c | |||
@@ -379,8 +379,8 @@ efi_get_pal_addr (void) | |||
379 | * a dedicated ITR for the PAL code. | 379 | * a dedicated ITR for the PAL code. |
380 | */ | 380 | */ |
381 | if ((vaddr & mask) == (KERNEL_START & mask)) { | 381 | if ((vaddr & mask) == (KERNEL_START & mask)) { |
382 | printk(KERN_INFO "%s: no need to install ITR for " | 382 | printk(KERN_INFO "%s: no need to install ITR for PAL code\n", |
383 | "PAL code\n", __FUNCTION__); | 383 | __func__); |
384 | continue; | 384 | continue; |
385 | } | 385 | } |
386 | 386 | ||
@@ -399,7 +399,7 @@ efi_get_pal_addr (void) | |||
399 | return __va(md->phys_addr); | 399 | return __va(md->phys_addr); |
400 | } | 400 | } |
401 | printk(KERN_WARNING "%s: no PAL-code memory-descriptor found\n", | 401 | printk(KERN_WARNING "%s: no PAL-code memory-descriptor found\n", |
402 | __FUNCTION__); | 402 | __func__); |
403 | return NULL; | 403 | return NULL; |
404 | } | 404 | } |
405 | 405 | ||
@@ -543,12 +543,30 @@ efi_init (void) | |||
543 | for (i = 0, p = efi_map_start; p < efi_map_end; | 543 | for (i = 0, p = efi_map_start; p < efi_map_end; |
544 | ++i, p += efi_desc_size) | 544 | ++i, p += efi_desc_size) |
545 | { | 545 | { |
546 | const char *unit; | ||
547 | unsigned long size; | ||
548 | |||
546 | md = p; | 549 | md = p; |
547 | printk("mem%02u: type=%u, attr=0x%lx, " | 550 | size = md->num_pages << EFI_PAGE_SHIFT; |
548 | "range=[0x%016lx-0x%016lx) (%luMB)\n", | 551 | |
552 | if ((size >> 40) > 0) { | ||
553 | size >>= 40; | ||
554 | unit = "TB"; | ||
555 | } else if ((size >> 30) > 0) { | ||
556 | size >>= 30; | ||
557 | unit = "GB"; | ||
558 | } else if ((size >> 20) > 0) { | ||
559 | size >>= 20; | ||
560 | unit = "MB"; | ||
561 | } else { | ||
562 | size >>= 10; | ||
563 | unit = "KB"; | ||
564 | } | ||
565 | |||
566 | printk("mem%02d: type=%2u, attr=0x%016lx, " | ||
567 | "range=[0x%016lx-0x%016lx) (%4lu%s)\n", | ||
549 | i, md->type, md->attribute, md->phys_addr, | 568 | i, md->type, md->attribute, md->phys_addr, |
550 | md->phys_addr + efi_md_size(md), | 569 | md->phys_addr + efi_md_size(md), size, unit); |
551 | md->num_pages >> (20 - EFI_PAGE_SHIFT)); | ||
552 | } | 570 | } |
553 | } | 571 | } |
554 | #endif | 572 | #endif |
diff --git a/arch/ia64/kernel/iosapic.c b/arch/ia64/kernel/iosapic.c index 7b3292282d..082c31dcfd 100644 --- a/arch/ia64/kernel/iosapic.c +++ b/arch/ia64/kernel/iosapic.c | |||
@@ -534,7 +534,7 @@ iosapic_reassign_vector (int irq) | |||
534 | if (iosapic_intr_info[irq].count) { | 534 | if (iosapic_intr_info[irq].count) { |
535 | new_irq = create_irq(); | 535 | new_irq = create_irq(); |
536 | if (new_irq < 0) | 536 | if (new_irq < 0) |
537 | panic("%s: out of interrupt vectors!\n", __FUNCTION__); | 537 | panic("%s: out of interrupt vectors!\n", __func__); |
538 | printk(KERN_INFO "Reassigning vector %d to %d\n", | 538 | printk(KERN_INFO "Reassigning vector %d to %d\n", |
539 | irq_to_vector(irq), irq_to_vector(new_irq)); | 539 | irq_to_vector(irq), irq_to_vector(new_irq)); |
540 | memcpy(&iosapic_intr_info[new_irq], &iosapic_intr_info[irq], | 540 | memcpy(&iosapic_intr_info[new_irq], &iosapic_intr_info[irq], |
@@ -599,7 +599,7 @@ register_intr (unsigned int gsi, int irq, unsigned char delivery, | |||
599 | index = find_iosapic(gsi); | 599 | index = find_iosapic(gsi); |
600 | if (index < 0) { | 600 | if (index < 0) { |
601 | printk(KERN_WARNING "%s: No IOSAPIC for GSI %u\n", | 601 | printk(KERN_WARNING "%s: No IOSAPIC for GSI %u\n", |
602 | __FUNCTION__, gsi); | 602 | __func__, gsi); |
603 | return -ENODEV; | 603 | return -ENODEV; |
604 | } | 604 | } |
605 | 605 | ||
@@ -608,7 +608,7 @@ register_intr (unsigned int gsi, int irq, unsigned char delivery, | |||
608 | rte = iosapic_alloc_rte(); | 608 | rte = iosapic_alloc_rte(); |
609 | if (!rte) { | 609 | if (!rte) { |
610 | printk(KERN_WARNING "%s: cannot allocate memory\n", | 610 | printk(KERN_WARNING "%s: cannot allocate memory\n", |
611 | __FUNCTION__); | 611 | __func__); |
612 | return -ENOMEM; | 612 | return -ENOMEM; |
613 | } | 613 | } |
614 | 614 | ||
@@ -625,7 +625,7 @@ register_intr (unsigned int gsi, int irq, unsigned char delivery, | |||
625 | (info->trigger != trigger || info->polarity != polarity)){ | 625 | (info->trigger != trigger || info->polarity != polarity)){ |
626 | printk (KERN_WARNING | 626 | printk (KERN_WARNING |
627 | "%s: cannot override the interrupt\n", | 627 | "%s: cannot override the interrupt\n", |
628 | __FUNCTION__); | 628 | __func__); |
629 | return -EINVAL; | 629 | return -EINVAL; |
630 | } | 630 | } |
631 | rte->refcnt++; | 631 | rte->refcnt++; |
@@ -647,7 +647,7 @@ register_intr (unsigned int gsi, int irq, unsigned char delivery, | |||
647 | if (idesc->chip != &no_irq_type) | 647 | if (idesc->chip != &no_irq_type) |
648 | printk(KERN_WARNING | 648 | printk(KERN_WARNING |
649 | "%s: changing vector %d from %s to %s\n", | 649 | "%s: changing vector %d from %s to %s\n", |
650 | __FUNCTION__, irq_to_vector(irq), | 650 | __func__, irq_to_vector(irq), |
651 | idesc->chip->name, irq_type->name); | 651 | idesc->chip->name, irq_type->name); |
652 | idesc->chip = irq_type; | 652 | idesc->chip = irq_type; |
653 | } | 653 | } |
@@ -920,7 +920,7 @@ iosapic_register_platform_intr (u32 int_type, unsigned int gsi, | |||
920 | case ACPI_INTERRUPT_INIT: | 920 | case ACPI_INTERRUPT_INIT: |
921 | irq = create_irq(); | 921 | irq = create_irq(); |
922 | if (irq < 0) | 922 | if (irq < 0) |
923 | panic("%s: out of interrupt vectors!\n", __FUNCTION__); | 923 | panic("%s: out of interrupt vectors!\n", __func__); |
924 | vector = irq_to_vector(irq); | 924 | vector = irq_to_vector(irq); |
925 | delivery = IOSAPIC_INIT; | 925 | delivery = IOSAPIC_INIT; |
926 | break; | 926 | break; |
@@ -931,7 +931,7 @@ iosapic_register_platform_intr (u32 int_type, unsigned int gsi, | |||
931 | mask = 1; | 931 | mask = 1; |
932 | break; | 932 | break; |
933 | default: | 933 | default: |
934 | printk(KERN_ERR "%s: invalid int type 0x%x\n", __FUNCTION__, | 934 | printk(KERN_ERR "%s: invalid int type 0x%x\n", __func__, |
935 | int_type); | 935 | int_type); |
936 | return -1; | 936 | return -1; |
937 | } | 937 | } |
@@ -996,7 +996,7 @@ iosapic_system_init (int system_pcat_compat) | |||
996 | */ | 996 | */ |
997 | printk(KERN_INFO | 997 | printk(KERN_INFO |
998 | "%s: Disabling PC-AT compatible 8259 interrupts\n", | 998 | "%s: Disabling PC-AT compatible 8259 interrupts\n", |
999 | __FUNCTION__); | 999 | __func__); |
1000 | outb(0xff, 0xA1); | 1000 | outb(0xff, 0xA1); |
1001 | outb(0xff, 0x21); | 1001 | outb(0xff, 0x21); |
1002 | } | 1002 | } |
@@ -1011,7 +1011,7 @@ iosapic_alloc (void) | |||
1011 | if (!iosapic_lists[index].addr) | 1011 | if (!iosapic_lists[index].addr) |
1012 | return index; | 1012 | return index; |
1013 | 1013 | ||
1014 | printk(KERN_WARNING "%s: failed to allocate iosapic\n", __FUNCTION__); | 1014 | printk(KERN_WARNING "%s: failed to allocate iosapic\n", __func__); |
1015 | return -1; | 1015 | return -1; |
1016 | } | 1016 | } |
1017 | 1017 | ||
@@ -1109,14 +1109,14 @@ iosapic_remove (unsigned int gsi_base) | |||
1109 | index = find_iosapic(gsi_base); | 1109 | index = find_iosapic(gsi_base); |
1110 | if (index < 0) { | 1110 | if (index < 0) { |
1111 | printk(KERN_WARNING "%s: No IOSAPIC for GSI base %u\n", | 1111 | printk(KERN_WARNING "%s: No IOSAPIC for GSI base %u\n", |
1112 | __FUNCTION__, gsi_base); | 1112 | __func__, gsi_base); |
1113 | goto out; | 1113 | goto out; |
1114 | } | 1114 | } |
1115 | 1115 | ||
1116 | if (iosapic_lists[index].rtes_inuse) { | 1116 | if (iosapic_lists[index].rtes_inuse) { |
1117 | err = -EBUSY; | 1117 | err = -EBUSY; |
1118 | printk(KERN_WARNING "%s: IOSAPIC for GSI base %u is busy\n", | 1118 | printk(KERN_WARNING "%s: IOSAPIC for GSI base %u is busy\n", |
1119 | __FUNCTION__, gsi_base); | 1119 | __func__, gsi_base); |
1120 | goto out; | 1120 | goto out; |
1121 | } | 1121 | } |
1122 | 1122 | ||
@@ -1137,7 +1137,7 @@ map_iosapic_to_node(unsigned int gsi_base, int node) | |||
1137 | index = find_iosapic(gsi_base); | 1137 | index = find_iosapic(gsi_base); |
1138 | if (index < 0) { | 1138 | if (index < 0) { |
1139 | printk(KERN_WARNING "%s: No IOSAPIC for GSI %u\n", | 1139 | printk(KERN_WARNING "%s: No IOSAPIC for GSI %u\n", |
1140 | __FUNCTION__, gsi_base); | 1140 | __func__, gsi_base); |
1141 | return; | 1141 | return; |
1142 | } | 1142 | } |
1143 | iosapic_lists[index].node = node; | 1143 | iosapic_lists[index].node = node; |
diff --git a/arch/ia64/kernel/irq_ia64.c b/arch/ia64/kernel/irq_ia64.c index 2b8cf6e85a..d8be23fbe6 100644 --- a/arch/ia64/kernel/irq_ia64.c +++ b/arch/ia64/kernel/irq_ia64.c | |||
@@ -507,7 +507,7 @@ ia64_handle_irq (ia64_vector vector, struct pt_regs *regs) | |||
507 | if (unlikely(irq < 0)) { | 507 | if (unlikely(irq < 0)) { |
508 | printk(KERN_ERR "%s: Unexpected interrupt " | 508 | printk(KERN_ERR "%s: Unexpected interrupt " |
509 | "vector %d on CPU %d is not mapped " | 509 | "vector %d on CPU %d is not mapped " |
510 | "to any IRQ!\n", __FUNCTION__, vector, | 510 | "to any IRQ!\n", __func__, vector, |
511 | smp_processor_id()); | 511 | smp_processor_id()); |
512 | } else | 512 | } else |
513 | generic_handle_irq(irq); | 513 | generic_handle_irq(irq); |
@@ -572,7 +572,7 @@ void ia64_process_pending_intr(void) | |||
572 | if (unlikely(irq < 0)) { | 572 | if (unlikely(irq < 0)) { |
573 | printk(KERN_ERR "%s: Unexpected interrupt " | 573 | printk(KERN_ERR "%s: Unexpected interrupt " |
574 | "vector %d on CPU %d not being mapped " | 574 | "vector %d on CPU %d not being mapped " |
575 | "to any IRQ!!\n", __FUNCTION__, vector, | 575 | "to any IRQ!!\n", __func__, vector, |
576 | smp_processor_id()); | 576 | smp_processor_id()); |
577 | } else { | 577 | } else { |
578 | vectors_in_migration[irq]=0; | 578 | vectors_in_migration[irq]=0; |
@@ -666,11 +666,7 @@ ia64_send_ipi (int cpu, int vector, int delivery_mode, int redirect) | |||
666 | unsigned long ipi_data; | 666 | unsigned long ipi_data; |
667 | unsigned long phys_cpu_id; | 667 | unsigned long phys_cpu_id; |
668 | 668 | ||
669 | #ifdef CONFIG_SMP | ||
670 | phys_cpu_id = cpu_physical_id(cpu); | 669 | phys_cpu_id = cpu_physical_id(cpu); |
671 | #else | ||
672 | phys_cpu_id = (ia64_getreg(_IA64_REG_CR_LID) >> 16) & 0xffff; | ||
673 | #endif | ||
674 | 670 | ||
675 | /* | 671 | /* |
676 | * cpu number is in 8bit ID and 8bit EID | 672 | * cpu number is in 8bit ID and 8bit EID |
diff --git a/arch/ia64/kernel/kprobes.c b/arch/ia64/kernel/kprobes.c index 615c3d2b63..8d9a446a0d 100644 --- a/arch/ia64/kernel/kprobes.c +++ b/arch/ia64/kernel/kprobes.c | |||
@@ -838,7 +838,7 @@ out: | |||
838 | return 1; | 838 | return 1; |
839 | } | 839 | } |
840 | 840 | ||
841 | int __kprobes kprobes_fault_handler(struct pt_regs *regs, int trapnr) | 841 | int __kprobes kprobe_fault_handler(struct pt_regs *regs, int trapnr) |
842 | { | 842 | { |
843 | struct kprobe *cur = kprobe_running(); | 843 | struct kprobe *cur = kprobe_running(); |
844 | struct kprobe_ctlblk *kcb = get_kprobe_ctlblk(); | 844 | struct kprobe_ctlblk *kcb = get_kprobe_ctlblk(); |
diff --git a/arch/ia64/kernel/mca.c b/arch/ia64/kernel/mca.c index 6e17aed531..6c18221dba 100644 --- a/arch/ia64/kernel/mca.c +++ b/arch/ia64/kernel/mca.c | |||
@@ -413,8 +413,8 @@ ia64_log_get(int sal_info_type, u8 **buffer, int irq_safe) | |||
413 | IA64_LOG_INDEX_INC(sal_info_type); | 413 | IA64_LOG_INDEX_INC(sal_info_type); |
414 | IA64_LOG_UNLOCK(sal_info_type); | 414 | IA64_LOG_UNLOCK(sal_info_type); |
415 | if (irq_safe) { | 415 | if (irq_safe) { |
416 | IA64_MCA_DEBUG("%s: SAL error record type %d retrieved. " | 416 | IA64_MCA_DEBUG("%s: SAL error record type %d retrieved. Record length = %ld\n", |
417 | "Record length = %ld\n", __FUNCTION__, sal_info_type, total_len); | 417 | __func__, sal_info_type, total_len); |
418 | } | 418 | } |
419 | *buffer = (u8 *) log_buffer; | 419 | *buffer = (u8 *) log_buffer; |
420 | return total_len; | 420 | return total_len; |
@@ -518,7 +518,7 @@ ia64_mca_cpe_int_handler (int cpe_irq, void *arg) | |||
518 | static DEFINE_SPINLOCK(cpe_history_lock); | 518 | static DEFINE_SPINLOCK(cpe_history_lock); |
519 | 519 | ||
520 | IA64_MCA_DEBUG("%s: received interrupt vector = %#x on CPU %d\n", | 520 | IA64_MCA_DEBUG("%s: received interrupt vector = %#x on CPU %d\n", |
521 | __FUNCTION__, cpe_irq, smp_processor_id()); | 521 | __func__, cpe_irq, smp_processor_id()); |
522 | 522 | ||
523 | /* SAL spec states this should run w/ interrupts enabled */ | 523 | /* SAL spec states this should run w/ interrupts enabled */ |
524 | local_irq_enable(); | 524 | local_irq_enable(); |
@@ -594,7 +594,7 @@ ia64_mca_register_cpev (int cpev) | |||
594 | } | 594 | } |
595 | 595 | ||
596 | IA64_MCA_DEBUG("%s: corrected platform error " | 596 | IA64_MCA_DEBUG("%s: corrected platform error " |
597 | "vector %#x registered\n", __FUNCTION__, cpev); | 597 | "vector %#x registered\n", __func__, cpev); |
598 | } | 598 | } |
599 | #endif /* CONFIG_ACPI */ | 599 | #endif /* CONFIG_ACPI */ |
600 | 600 | ||
@@ -621,12 +621,11 @@ ia64_mca_cmc_vector_setup (void) | |||
621 | cmcv.cmcv_vector = IA64_CMC_VECTOR; | 621 | cmcv.cmcv_vector = IA64_CMC_VECTOR; |
622 | ia64_setreg(_IA64_REG_CR_CMCV, cmcv.cmcv_regval); | 622 | ia64_setreg(_IA64_REG_CR_CMCV, cmcv.cmcv_regval); |
623 | 623 | ||
624 | IA64_MCA_DEBUG("%s: CPU %d corrected " | 624 | IA64_MCA_DEBUG("%s: CPU %d corrected machine check vector %#x registered.\n", |
625 | "machine check vector %#x registered.\n", | 625 | __func__, smp_processor_id(), IA64_CMC_VECTOR); |
626 | __FUNCTION__, smp_processor_id(), IA64_CMC_VECTOR); | ||
627 | 626 | ||
628 | IA64_MCA_DEBUG("%s: CPU %d CMCV = %#016lx\n", | 627 | IA64_MCA_DEBUG("%s: CPU %d CMCV = %#016lx\n", |
629 | __FUNCTION__, smp_processor_id(), ia64_getreg(_IA64_REG_CR_CMCV)); | 628 | __func__, smp_processor_id(), ia64_getreg(_IA64_REG_CR_CMCV)); |
630 | } | 629 | } |
631 | 630 | ||
632 | /* | 631 | /* |
@@ -651,9 +650,8 @@ ia64_mca_cmc_vector_disable (void *dummy) | |||
651 | cmcv.cmcv_mask = 1; /* Mask/disable interrupt */ | 650 | cmcv.cmcv_mask = 1; /* Mask/disable interrupt */ |
652 | ia64_setreg(_IA64_REG_CR_CMCV, cmcv.cmcv_regval); | 651 | ia64_setreg(_IA64_REG_CR_CMCV, cmcv.cmcv_regval); |
653 | 652 | ||
654 | IA64_MCA_DEBUG("%s: CPU %d corrected " | 653 | IA64_MCA_DEBUG("%s: CPU %d corrected machine check vector %#x disabled.\n", |
655 | "machine check vector %#x disabled.\n", | 654 | __func__, smp_processor_id(), cmcv.cmcv_vector); |
656 | __FUNCTION__, smp_processor_id(), cmcv.cmcv_vector); | ||
657 | } | 655 | } |
658 | 656 | ||
659 | /* | 657 | /* |
@@ -678,9 +676,8 @@ ia64_mca_cmc_vector_enable (void *dummy) | |||
678 | cmcv.cmcv_mask = 0; /* Unmask/enable interrupt */ | 676 | cmcv.cmcv_mask = 0; /* Unmask/enable interrupt */ |
679 | ia64_setreg(_IA64_REG_CR_CMCV, cmcv.cmcv_regval); | 677 | ia64_setreg(_IA64_REG_CR_CMCV, cmcv.cmcv_regval); |
680 | 678 | ||
681 | IA64_MCA_DEBUG("%s: CPU %d corrected " | 679 | IA64_MCA_DEBUG("%s: CPU %d corrected machine check vector %#x enabled.\n", |
682 | "machine check vector %#x enabled.\n", | 680 | __func__, smp_processor_id(), cmcv.cmcv_vector); |
683 | __FUNCTION__, smp_processor_id(), cmcv.cmcv_vector); | ||
684 | } | 681 | } |
685 | 682 | ||
686 | /* | 683 | /* |
@@ -767,7 +764,7 @@ ia64_mca_rendez_int_handler(int rendez_irq, void *arg) | |||
767 | local_irq_save(flags); | 764 | local_irq_save(flags); |
768 | if (notify_die(DIE_MCA_RENDZVOUS_ENTER, "MCA", get_irq_regs(), | 765 | if (notify_die(DIE_MCA_RENDZVOUS_ENTER, "MCA", get_irq_regs(), |
769 | (long)&nd, 0, 0) == NOTIFY_STOP) | 766 | (long)&nd, 0, 0) == NOTIFY_STOP) |
770 | ia64_mca_spin(__FUNCTION__); | 767 | ia64_mca_spin(__func__); |
771 | 768 | ||
772 | ia64_mc_info.imi_rendez_checkin[cpu] = IA64_MCA_RENDEZ_CHECKIN_DONE; | 769 | ia64_mc_info.imi_rendez_checkin[cpu] = IA64_MCA_RENDEZ_CHECKIN_DONE; |
773 | /* Register with the SAL monarch that the slave has | 770 | /* Register with the SAL monarch that the slave has |
@@ -777,7 +774,7 @@ ia64_mca_rendez_int_handler(int rendez_irq, void *arg) | |||
777 | 774 | ||
778 | if (notify_die(DIE_MCA_RENDZVOUS_PROCESS, "MCA", get_irq_regs(), | 775 | if (notify_die(DIE_MCA_RENDZVOUS_PROCESS, "MCA", get_irq_regs(), |
779 | (long)&nd, 0, 0) == NOTIFY_STOP) | 776 | (long)&nd, 0, 0) == NOTIFY_STOP) |
780 | ia64_mca_spin(__FUNCTION__); | 777 | ia64_mca_spin(__func__); |
781 | 778 | ||
782 | /* Wait for the monarch cpu to exit. */ | 779 | /* Wait for the monarch cpu to exit. */ |
783 | while (monarch_cpu != -1) | 780 | while (monarch_cpu != -1) |
@@ -785,7 +782,7 @@ ia64_mca_rendez_int_handler(int rendez_irq, void *arg) | |||
785 | 782 | ||
786 | if (notify_die(DIE_MCA_RENDZVOUS_LEAVE, "MCA", get_irq_regs(), | 783 | if (notify_die(DIE_MCA_RENDZVOUS_LEAVE, "MCA", get_irq_regs(), |
787 | (long)&nd, 0, 0) == NOTIFY_STOP) | 784 | (long)&nd, 0, 0) == NOTIFY_STOP) |
788 | ia64_mca_spin(__FUNCTION__); | 785 | ia64_mca_spin(__func__); |
789 | 786 | ||
790 | ia64_mc_info.imi_rendez_checkin[cpu] = IA64_MCA_RENDEZ_CHECKIN_NOTDONE; | 787 | ia64_mc_info.imi_rendez_checkin[cpu] = IA64_MCA_RENDEZ_CHECKIN_NOTDONE; |
791 | /* Enable all interrupts */ | 788 | /* Enable all interrupts */ |
@@ -1230,7 +1227,7 @@ ia64_mca_handler(struct pt_regs *regs, struct switch_stack *sw, | |||
1230 | 1227 | ||
1231 | if (notify_die(DIE_MCA_MONARCH_ENTER, "MCA", regs, (long)&nd, 0, 0) | 1228 | if (notify_die(DIE_MCA_MONARCH_ENTER, "MCA", regs, (long)&nd, 0, 0) |
1232 | == NOTIFY_STOP) | 1229 | == NOTIFY_STOP) |
1233 | ia64_mca_spin(__FUNCTION__); | 1230 | ia64_mca_spin(__func__); |
1234 | 1231 | ||
1235 | ia64_mc_info.imi_rendez_checkin[cpu] = IA64_MCA_RENDEZ_CHECKIN_CONCURRENT_MCA; | 1232 | ia64_mc_info.imi_rendez_checkin[cpu] = IA64_MCA_RENDEZ_CHECKIN_CONCURRENT_MCA; |
1236 | if (sos->monarch) { | 1233 | if (sos->monarch) { |
@@ -1246,7 +1243,7 @@ ia64_mca_handler(struct pt_regs *regs, struct switch_stack *sw, | |||
1246 | ia64_mca_wakeup_all(); | 1243 | ia64_mca_wakeup_all(); |
1247 | if (notify_die(DIE_MCA_MONARCH_PROCESS, "MCA", regs, (long)&nd, 0, 0) | 1244 | if (notify_die(DIE_MCA_MONARCH_PROCESS, "MCA", regs, (long)&nd, 0, 0) |
1248 | == NOTIFY_STOP) | 1245 | == NOTIFY_STOP) |
1249 | ia64_mca_spin(__FUNCTION__); | 1246 | ia64_mca_spin(__func__); |
1250 | } else { | 1247 | } else { |
1251 | while (cpu_isset(cpu, mca_cpu)) | 1248 | while (cpu_isset(cpu, mca_cpu)) |
1252 | cpu_relax(); /* spin until monarch wakes us */ | 1249 | cpu_relax(); /* spin until monarch wakes us */ |
@@ -1276,7 +1273,7 @@ ia64_mca_handler(struct pt_regs *regs, struct switch_stack *sw, | |||
1276 | } | 1273 | } |
1277 | if (notify_die(DIE_MCA_MONARCH_LEAVE, "MCA", regs, (long)&nd, 0, recover) | 1274 | if (notify_die(DIE_MCA_MONARCH_LEAVE, "MCA", regs, (long)&nd, 0, recover) |
1278 | == NOTIFY_STOP) | 1275 | == NOTIFY_STOP) |
1279 | ia64_mca_spin(__FUNCTION__); | 1276 | ia64_mca_spin(__func__); |
1280 | 1277 | ||
1281 | 1278 | ||
1282 | if (atomic_dec_return(&mca_count) > 0) { | 1279 | if (atomic_dec_return(&mca_count) > 0) { |
@@ -1328,7 +1325,7 @@ ia64_mca_cmc_int_handler(int cmc_irq, void *arg) | |||
1328 | static DEFINE_SPINLOCK(cmc_history_lock); | 1325 | static DEFINE_SPINLOCK(cmc_history_lock); |
1329 | 1326 | ||
1330 | IA64_MCA_DEBUG("%s: received interrupt vector = %#x on CPU %d\n", | 1327 | IA64_MCA_DEBUG("%s: received interrupt vector = %#x on CPU %d\n", |
1331 | __FUNCTION__, cmc_irq, smp_processor_id()); | 1328 | __func__, cmc_irq, smp_processor_id()); |
1332 | 1329 | ||
1333 | /* SAL spec states this should run w/ interrupts enabled */ | 1330 | /* SAL spec states this should run w/ interrupts enabled */ |
1334 | local_irq_enable(); | 1331 | local_irq_enable(); |
@@ -1614,7 +1611,7 @@ ia64_init_handler(struct pt_regs *regs, struct switch_stack *sw, | |||
1614 | */ | 1611 | */ |
1615 | if (!sos->monarch && atomic_add_return(1, &slaves) == num_online_cpus()) { | 1612 | if (!sos->monarch && atomic_add_return(1, &slaves) == num_online_cpus()) { |
1616 | mprintk(KERN_WARNING "%s: Promoting cpu %d to monarch.\n", | 1613 | mprintk(KERN_WARNING "%s: Promoting cpu %d to monarch.\n", |
1617 | __FUNCTION__, cpu); | 1614 | __func__, cpu); |
1618 | atomic_dec(&slaves); | 1615 | atomic_dec(&slaves); |
1619 | sos->monarch = 1; | 1616 | sos->monarch = 1; |
1620 | } | 1617 | } |
@@ -1626,7 +1623,7 @@ ia64_init_handler(struct pt_regs *regs, struct switch_stack *sw, | |||
1626 | */ | 1623 | */ |
1627 | if (sos->monarch && atomic_add_return(1, &monarchs) > 1) { | 1624 | if (sos->monarch && atomic_add_return(1, &monarchs) > 1) { |
1628 | mprintk(KERN_WARNING "%s: Demoting cpu %d to slave.\n", | 1625 | mprintk(KERN_WARNING "%s: Demoting cpu %d to slave.\n", |
1629 | __FUNCTION__, cpu); | 1626 | __func__, cpu); |
1630 | atomic_dec(&monarchs); | 1627 | atomic_dec(&monarchs); |
1631 | sos->monarch = 0; | 1628 | sos->monarch = 0; |
1632 | } | 1629 | } |
@@ -1637,15 +1634,15 @@ ia64_init_handler(struct pt_regs *regs, struct switch_stack *sw, | |||
1637 | cpu_relax(); /* spin until monarch enters */ | 1634 | cpu_relax(); /* spin until monarch enters */ |
1638 | if (notify_die(DIE_INIT_SLAVE_ENTER, "INIT", regs, (long)&nd, 0, 0) | 1635 | if (notify_die(DIE_INIT_SLAVE_ENTER, "INIT", regs, (long)&nd, 0, 0) |
1639 | == NOTIFY_STOP) | 1636 | == NOTIFY_STOP) |
1640 | ia64_mca_spin(__FUNCTION__); | 1637 | ia64_mca_spin(__func__); |
1641 | if (notify_die(DIE_INIT_SLAVE_PROCESS, "INIT", regs, (long)&nd, 0, 0) | 1638 | if (notify_die(DIE_INIT_SLAVE_PROCESS, "INIT", regs, (long)&nd, 0, 0) |
1642 | == NOTIFY_STOP) | 1639 | == NOTIFY_STOP) |
1643 | ia64_mca_spin(__FUNCTION__); | 1640 | ia64_mca_spin(__func__); |
1644 | while (monarch_cpu != -1) | 1641 | while (monarch_cpu != -1) |
1645 | cpu_relax(); /* spin until monarch leaves */ | 1642 | cpu_relax(); /* spin until monarch leaves */ |
1646 | if (notify_die(DIE_INIT_SLAVE_LEAVE, "INIT", regs, (long)&nd, 0, 0) | 1643 | if (notify_die(DIE_INIT_SLAVE_LEAVE, "INIT", regs, (long)&nd, 0, 0) |
1647 | == NOTIFY_STOP) | 1644 | == NOTIFY_STOP) |
1648 | ia64_mca_spin(__FUNCTION__); | 1645 | ia64_mca_spin(__func__); |
1649 | mprintk("Slave on cpu %d returning to normal service.\n", cpu); | 1646 | mprintk("Slave on cpu %d returning to normal service.\n", cpu); |
1650 | set_curr_task(cpu, previous_current); | 1647 | set_curr_task(cpu, previous_current); |
1651 | ia64_mc_info.imi_rendez_checkin[cpu] = IA64_MCA_RENDEZ_CHECKIN_NOTDONE; | 1648 | ia64_mc_info.imi_rendez_checkin[cpu] = IA64_MCA_RENDEZ_CHECKIN_NOTDONE; |
@@ -1656,7 +1653,7 @@ ia64_init_handler(struct pt_regs *regs, struct switch_stack *sw, | |||
1656 | monarch_cpu = cpu; | 1653 | monarch_cpu = cpu; |
1657 | if (notify_die(DIE_INIT_MONARCH_ENTER, "INIT", regs, (long)&nd, 0, 0) | 1654 | if (notify_die(DIE_INIT_MONARCH_ENTER, "INIT", regs, (long)&nd, 0, 0) |
1658 | == NOTIFY_STOP) | 1655 | == NOTIFY_STOP) |
1659 | ia64_mca_spin(__FUNCTION__); | 1656 | ia64_mca_spin(__func__); |
1660 | 1657 | ||
1661 | /* | 1658 | /* |
1662 | * Wait for a bit. On some machines (e.g., HP's zx2000 and zx6000, INIT can be | 1659 | * Wait for a bit. On some machines (e.g., HP's zx2000 and zx6000, INIT can be |
@@ -1673,10 +1670,10 @@ ia64_init_handler(struct pt_regs *regs, struct switch_stack *sw, | |||
1673 | */ | 1670 | */ |
1674 | if (notify_die(DIE_INIT_MONARCH_PROCESS, "INIT", regs, (long)&nd, 0, 0) | 1671 | if (notify_die(DIE_INIT_MONARCH_PROCESS, "INIT", regs, (long)&nd, 0, 0) |
1675 | == NOTIFY_STOP) | 1672 | == NOTIFY_STOP) |
1676 | ia64_mca_spin(__FUNCTION__); | 1673 | ia64_mca_spin(__func__); |
1677 | if (notify_die(DIE_INIT_MONARCH_LEAVE, "INIT", regs, (long)&nd, 0, 0) | 1674 | if (notify_die(DIE_INIT_MONARCH_LEAVE, "INIT", regs, (long)&nd, 0, 0) |
1678 | == NOTIFY_STOP) | 1675 | == NOTIFY_STOP) |
1679 | ia64_mca_spin(__FUNCTION__); | 1676 | ia64_mca_spin(__func__); |
1680 | mprintk("\nINIT dump complete. Monarch on cpu %d returning to normal service.\n", cpu); | 1677 | mprintk("\nINIT dump complete. Monarch on cpu %d returning to normal service.\n", cpu); |
1681 | atomic_dec(&monarchs); | 1678 | atomic_dec(&monarchs); |
1682 | set_curr_task(cpu, previous_current); | 1679 | set_curr_task(cpu, previous_current); |
@@ -1884,7 +1881,7 @@ ia64_mca_init(void) | |||
1884 | .priority = 0/* we need to notified last */ | 1881 | .priority = 0/* we need to notified last */ |
1885 | }; | 1882 | }; |
1886 | 1883 | ||
1887 | IA64_MCA_DEBUG("%s: begin\n", __FUNCTION__); | 1884 | IA64_MCA_DEBUG("%s: begin\n", __func__); |
1888 | 1885 | ||
1889 | /* Clear the Rendez checkin flag for all cpus */ | 1886 | /* Clear the Rendez checkin flag for all cpus */ |
1890 | for(i = 0 ; i < NR_CPUS; i++) | 1887 | for(i = 0 ; i < NR_CPUS; i++) |
@@ -1928,7 +1925,7 @@ ia64_mca_init(void) | |||
1928 | return; | 1925 | return; |
1929 | } | 1926 | } |
1930 | 1927 | ||
1931 | IA64_MCA_DEBUG("%s: registered MCA rendezvous spinloop and wakeup mech.\n", __FUNCTION__); | 1928 | IA64_MCA_DEBUG("%s: registered MCA rendezvous spinloop and wakeup mech.\n", __func__); |
1932 | 1929 | ||
1933 | ia64_mc_info.imi_mca_handler = ia64_tpa(mca_hldlr_ptr->fp); | 1930 | ia64_mc_info.imi_mca_handler = ia64_tpa(mca_hldlr_ptr->fp); |
1934 | /* | 1931 | /* |
@@ -1949,7 +1946,7 @@ ia64_mca_init(void) | |||
1949 | return; | 1946 | return; |
1950 | } | 1947 | } |
1951 | 1948 | ||
1952 | IA64_MCA_DEBUG("%s: registered OS MCA handler with SAL at 0x%lx, gp = 0x%lx\n", __FUNCTION__, | 1949 | IA64_MCA_DEBUG("%s: registered OS MCA handler with SAL at 0x%lx, gp = 0x%lx\n", __func__, |
1953 | ia64_mc_info.imi_mca_handler, ia64_tpa(mca_hldlr_ptr->gp)); | 1950 | ia64_mc_info.imi_mca_handler, ia64_tpa(mca_hldlr_ptr->gp)); |
1954 | 1951 | ||
1955 | /* | 1952 | /* |
@@ -1961,7 +1958,7 @@ ia64_mca_init(void) | |||
1961 | ia64_mc_info.imi_slave_init_handler = ia64_tpa(init_hldlr_ptr_slave->fp); | 1958 | ia64_mc_info.imi_slave_init_handler = ia64_tpa(init_hldlr_ptr_slave->fp); |
1962 | ia64_mc_info.imi_slave_init_handler_size = 0; | 1959 | ia64_mc_info.imi_slave_init_handler_size = 0; |
1963 | 1960 | ||
1964 | IA64_MCA_DEBUG("%s: OS INIT handler at %lx\n", __FUNCTION__, | 1961 | IA64_MCA_DEBUG("%s: OS INIT handler at %lx\n", __func__, |
1965 | ia64_mc_info.imi_monarch_init_handler); | 1962 | ia64_mc_info.imi_monarch_init_handler); |
1966 | 1963 | ||
1967 | /* Register the os init handler with SAL */ | 1964 | /* Register the os init handler with SAL */ |
@@ -1982,7 +1979,7 @@ ia64_mca_init(void) | |||
1982 | return; | 1979 | return; |
1983 | } | 1980 | } |
1984 | 1981 | ||
1985 | IA64_MCA_DEBUG("%s: registered OS INIT handler with SAL\n", __FUNCTION__); | 1982 | IA64_MCA_DEBUG("%s: registered OS INIT handler with SAL\n", __func__); |
1986 | 1983 | ||
1987 | /* | 1984 | /* |
1988 | * Configure the CMCI/P vector and handler. Interrupts for CMC are | 1985 | * Configure the CMCI/P vector and handler. Interrupts for CMC are |
@@ -2042,7 +2039,7 @@ ia64_mca_late_init(void) | |||
2042 | cmc_polling_enabled = 0; | 2039 | cmc_polling_enabled = 0; |
2043 | schedule_work(&cmc_enable_work); | 2040 | schedule_work(&cmc_enable_work); |
2044 | 2041 | ||
2045 | IA64_MCA_DEBUG("%s: CMCI/P setup and enabled.\n", __FUNCTION__); | 2042 | IA64_MCA_DEBUG("%s: CMCI/P setup and enabled.\n", __func__); |
2046 | 2043 | ||
2047 | #ifdef CONFIG_ACPI | 2044 | #ifdef CONFIG_ACPI |
2048 | /* Setup the CPEI/P vector and handler */ | 2045 | /* Setup the CPEI/P vector and handler */ |
@@ -2065,17 +2062,17 @@ ia64_mca_late_init(void) | |||
2065 | ia64_cpe_irq = irq; | 2062 | ia64_cpe_irq = irq; |
2066 | ia64_mca_register_cpev(cpe_vector); | 2063 | ia64_mca_register_cpev(cpe_vector); |
2067 | IA64_MCA_DEBUG("%s: CPEI/P setup and enabled.\n", | 2064 | IA64_MCA_DEBUG("%s: CPEI/P setup and enabled.\n", |
2068 | __FUNCTION__); | 2065 | __func__); |
2069 | return 0; | 2066 | return 0; |
2070 | } | 2067 | } |
2071 | printk(KERN_ERR "%s: Failed to find irq for CPE " | 2068 | printk(KERN_ERR "%s: Failed to find irq for CPE " |
2072 | "interrupt handler, vector %d\n", | 2069 | "interrupt handler, vector %d\n", |
2073 | __FUNCTION__, cpe_vector); | 2070 | __func__, cpe_vector); |
2074 | } | 2071 | } |
2075 | /* If platform doesn't support CPEI, get the timer going. */ | 2072 | /* If platform doesn't support CPEI, get the timer going. */ |
2076 | if (cpe_poll_enabled) { | 2073 | if (cpe_poll_enabled) { |
2077 | ia64_mca_cpe_poll(0UL); | 2074 | ia64_mca_cpe_poll(0UL); |
2078 | IA64_MCA_DEBUG("%s: CPEP setup and enabled.\n", __FUNCTION__); | 2075 | IA64_MCA_DEBUG("%s: CPEP setup and enabled.\n", __func__); |
2079 | } | 2076 | } |
2080 | } | 2077 | } |
2081 | #endif | 2078 | #endif |
diff --git a/arch/ia64/kernel/module.c b/arch/ia64/kernel/module.c index e58f4367cf..e83e2ea3b3 100644 --- a/arch/ia64/kernel/module.c +++ b/arch/ia64/kernel/module.c | |||
@@ -493,7 +493,7 @@ module_frob_arch_sections (Elf_Ehdr *ehdr, Elf_Shdr *sechdrs, char *secstrings, | |||
493 | mod->arch.opd->sh_addralign = 8; | 493 | mod->arch.opd->sh_addralign = 8; |
494 | mod->arch.opd->sh_size = fdescs * sizeof(struct fdesc); | 494 | mod->arch.opd->sh_size = fdescs * sizeof(struct fdesc); |
495 | DEBUGP("%s: core.plt=%lx, init.plt=%lx, got=%lx, fdesc=%lx\n", | 495 | DEBUGP("%s: core.plt=%lx, init.plt=%lx, got=%lx, fdesc=%lx\n", |
496 | __FUNCTION__, mod->arch.core_plt->sh_size, mod->arch.init_plt->sh_size, | 496 | __func__, mod->arch.core_plt->sh_size, mod->arch.init_plt->sh_size, |
497 | mod->arch.got->sh_size, mod->arch.opd->sh_size); | 497 | mod->arch.got->sh_size, mod->arch.opd->sh_size); |
498 | return 0; | 498 | return 0; |
499 | } | 499 | } |
@@ -585,7 +585,7 @@ get_plt (struct module *mod, const struct insn *insn, uint64_t value, int *okp) | |||
585 | #if ARCH_MODULE_DEBUG | 585 | #if ARCH_MODULE_DEBUG |
586 | if (plt_target(plt) != target_ip) { | 586 | if (plt_target(plt) != target_ip) { |
587 | printk("%s: mistargeted PLT: wanted %lx, got %lx\n", | 587 | printk("%s: mistargeted PLT: wanted %lx, got %lx\n", |
588 | __FUNCTION__, target_ip, plt_target(plt)); | 588 | __func__, target_ip, plt_target(plt)); |
589 | *okp = 0; | 589 | *okp = 0; |
590 | return 0; | 590 | return 0; |
591 | } | 591 | } |
@@ -703,7 +703,7 @@ do_reloc (struct module *mod, uint8_t r_type, Elf64_Sym *sym, uint64_t addend, | |||
703 | if (r_type == R_IA64_PCREL21BI) { | 703 | if (r_type == R_IA64_PCREL21BI) { |
704 | if (!is_internal(mod, val)) { | 704 | if (!is_internal(mod, val)) { |
705 | printk(KERN_ERR "%s: %s reloc against non-local symbol (%lx)\n", | 705 | printk(KERN_ERR "%s: %s reloc against non-local symbol (%lx)\n", |
706 | __FUNCTION__, reloc_name[r_type], val); | 706 | __func__, reloc_name[r_type], val); |
707 | return -ENOEXEC; | 707 | return -ENOEXEC; |
708 | } | 708 | } |
709 | format = RF_INSN21B; | 709 | format = RF_INSN21B; |
@@ -737,7 +737,7 @@ do_reloc (struct module *mod, uint8_t r_type, Elf64_Sym *sym, uint64_t addend, | |||
737 | case R_IA64_LDXMOV: | 737 | case R_IA64_LDXMOV: |
738 | if (gp_addressable(mod, val)) { | 738 | if (gp_addressable(mod, val)) { |
739 | /* turn "ld8" into "mov": */ | 739 | /* turn "ld8" into "mov": */ |
740 | DEBUGP("%s: patching ld8 at %p to mov\n", __FUNCTION__, location); | 740 | DEBUGP("%s: patching ld8 at %p to mov\n", __func__, location); |
741 | ia64_patch((u64) location, 0x1fff80fe000UL, 0x10000000000UL); | 741 | ia64_patch((u64) location, 0x1fff80fe000UL, 0x10000000000UL); |
742 | } | 742 | } |
743 | return 0; | 743 | return 0; |
@@ -771,7 +771,7 @@ do_reloc (struct module *mod, uint8_t r_type, Elf64_Sym *sym, uint64_t addend, | |||
771 | if (!ok) | 771 | if (!ok) |
772 | return -ENOEXEC; | 772 | return -ENOEXEC; |
773 | 773 | ||
774 | DEBUGP("%s: [%p]<-%016lx = %s(%lx)\n", __FUNCTION__, location, val, | 774 | DEBUGP("%s: [%p]<-%016lx = %s(%lx)\n", __func__, location, val, |
775 | reloc_name[r_type] ? reloc_name[r_type] : "?", sym->st_value + addend); | 775 | reloc_name[r_type] ? reloc_name[r_type] : "?", sym->st_value + addend); |
776 | 776 | ||
777 | switch (format) { | 777 | switch (format) { |
@@ -807,7 +807,7 @@ apply_relocate_add (Elf64_Shdr *sechdrs, const char *strtab, unsigned int symind | |||
807 | Elf64_Shdr *target_sec; | 807 | Elf64_Shdr *target_sec; |
808 | int ret; | 808 | int ret; |
809 | 809 | ||
810 | DEBUGP("%s: applying section %u (%u relocs) to %u\n", __FUNCTION__, | 810 | DEBUGP("%s: applying section %u (%u relocs) to %u\n", __func__, |
811 | relsec, n, sechdrs[relsec].sh_info); | 811 | relsec, n, sechdrs[relsec].sh_info); |
812 | 812 | ||
813 | target_sec = sechdrs + sechdrs[relsec].sh_info; | 813 | target_sec = sechdrs + sechdrs[relsec].sh_info; |
@@ -835,7 +835,7 @@ apply_relocate_add (Elf64_Shdr *sechdrs, const char *strtab, unsigned int symind | |||
835 | gp = mod->core_size / 2; | 835 | gp = mod->core_size / 2; |
836 | gp = (uint64_t) mod->module_core + ((gp + 7) & -8); | 836 | gp = (uint64_t) mod->module_core + ((gp + 7) & -8); |
837 | mod->arch.gp = gp; | 837 | mod->arch.gp = gp; |
838 | DEBUGP("%s: placing gp at 0x%lx\n", __FUNCTION__, gp); | 838 | DEBUGP("%s: placing gp at 0x%lx\n", __func__, gp); |
839 | } | 839 | } |
840 | 840 | ||
841 | for (i = 0; i < n; i++) { | 841 | for (i = 0; i < n; i++) { |
@@ -903,7 +903,7 @@ register_unwind_table (struct module *mod) | |||
903 | init = start + num_core; | 903 | init = start + num_core; |
904 | } | 904 | } |
905 | 905 | ||
906 | DEBUGP("%s: name=%s, gp=%lx, num_init=%lu, num_core=%lu\n", __FUNCTION__, | 906 | DEBUGP("%s: name=%s, gp=%lx, num_init=%lu, num_core=%lu\n", __func__, |
907 | mod->name, mod->arch.gp, num_init, num_core); | 907 | mod->name, mod->arch.gp, num_init, num_core); |
908 | 908 | ||
909 | /* | 909 | /* |
@@ -912,13 +912,13 @@ register_unwind_table (struct module *mod) | |||
912 | if (num_core > 0) { | 912 | if (num_core > 0) { |
913 | mod->arch.core_unw_table = unw_add_unwind_table(mod->name, 0, mod->arch.gp, | 913 | mod->arch.core_unw_table = unw_add_unwind_table(mod->name, 0, mod->arch.gp, |
914 | core, core + num_core); | 914 | core, core + num_core); |
915 | DEBUGP("%s: core: handle=%p [%p-%p)\n", __FUNCTION__, | 915 | DEBUGP("%s: core: handle=%p [%p-%p)\n", __func__, |
916 | mod->arch.core_unw_table, core, core + num_core); | 916 | mod->arch.core_unw_table, core, core + num_core); |
917 | } | 917 | } |
918 | if (num_init > 0) { | 918 | if (num_init > 0) { |
919 | mod->arch.init_unw_table = unw_add_unwind_table(mod->name, 0, mod->arch.gp, | 919 | mod->arch.init_unw_table = unw_add_unwind_table(mod->name, 0, mod->arch.gp, |
920 | init, init + num_init); | 920 | init, init + num_init); |
921 | DEBUGP("%s: init: handle=%p [%p-%p)\n", __FUNCTION__, | 921 | DEBUGP("%s: init: handle=%p [%p-%p)\n", __func__, |
922 | mod->arch.init_unw_table, init, init + num_init); | 922 | mod->arch.init_unw_table, init, init + num_init); |
923 | } | 923 | } |
924 | } | 924 | } |
@@ -926,7 +926,7 @@ register_unwind_table (struct module *mod) | |||
926 | int | 926 | int |
927 | module_finalize (const Elf_Ehdr *hdr, const Elf_Shdr *sechdrs, struct module *mod) | 927 | module_finalize (const Elf_Ehdr *hdr, const Elf_Shdr *sechdrs, struct module *mod) |
928 | { | 928 | { |
929 | DEBUGP("%s: init: entry=%p\n", __FUNCTION__, mod->init); | 929 | DEBUGP("%s: init: entry=%p\n", __func__, mod->init); |
930 | if (mod->arch.unwind) | 930 | if (mod->arch.unwind) |
931 | register_unwind_table(mod); | 931 | register_unwind_table(mod); |
932 | return 0; | 932 | return 0; |
diff --git a/arch/ia64/kernel/perfmon.c b/arch/ia64/kernel/perfmon.c index f6b99719f1..a2aabfdc80 100644 --- a/arch/ia64/kernel/perfmon.c +++ b/arch/ia64/kernel/perfmon.c | |||
@@ -227,12 +227,12 @@ | |||
227 | #ifdef PFM_DEBUGGING | 227 | #ifdef PFM_DEBUGGING |
228 | #define DPRINT(a) \ | 228 | #define DPRINT(a) \ |
229 | do { \ | 229 | do { \ |
230 | if (unlikely(pfm_sysctl.debug >0)) { printk("%s.%d: CPU%d [%d] ", __FUNCTION__, __LINE__, smp_processor_id(), task_pid_nr(current)); printk a; } \ | 230 | if (unlikely(pfm_sysctl.debug >0)) { printk("%s.%d: CPU%d [%d] ", __func__, __LINE__, smp_processor_id(), task_pid_nr(current)); printk a; } \ |
231 | } while (0) | 231 | } while (0) |
232 | 232 | ||
233 | #define DPRINT_ovfl(a) \ | 233 | #define DPRINT_ovfl(a) \ |
234 | do { \ | 234 | do { \ |
235 | if (unlikely(pfm_sysctl.debug > 0 && pfm_sysctl.debug_ovfl >0)) { printk("%s.%d: CPU%d [%d] ", __FUNCTION__, __LINE__, smp_processor_id(), task_pid_nr(current)); printk a; } \ | 235 | if (unlikely(pfm_sysctl.debug > 0 && pfm_sysctl.debug_ovfl >0)) { printk("%s.%d: CPU%d [%d] ", __func__, __LINE__, smp_processor_id(), task_pid_nr(current)); printk a; } \ |
236 | } while (0) | 236 | } while (0) |
237 | #endif | 237 | #endif |
238 | 238 | ||
diff --git a/arch/ia64/kernel/perfmon_default_smpl.c b/arch/ia64/kernel/perfmon_default_smpl.c index a7af1cb419..5f637bbfcc 100644 --- a/arch/ia64/kernel/perfmon_default_smpl.c +++ b/arch/ia64/kernel/perfmon_default_smpl.c | |||
@@ -24,12 +24,12 @@ MODULE_LICENSE("GPL"); | |||
24 | #ifdef DEFAULT_DEBUG | 24 | #ifdef DEFAULT_DEBUG |
25 | #define DPRINT(a) \ | 25 | #define DPRINT(a) \ |
26 | do { \ | 26 | do { \ |
27 | if (unlikely(pfm_sysctl.debug >0)) { printk("%s.%d: CPU%d ", __FUNCTION__, __LINE__, smp_processor_id()); printk a; } \ | 27 | if (unlikely(pfm_sysctl.debug >0)) { printk("%s.%d: CPU%d ", __func__, __LINE__, smp_processor_id()); printk a; } \ |
28 | } while (0) | 28 | } while (0) |
29 | 29 | ||
30 | #define DPRINT_ovfl(a) \ | 30 | #define DPRINT_ovfl(a) \ |
31 | do { \ | 31 | do { \ |
32 | if (unlikely(pfm_sysctl.debug > 0 && pfm_sysctl.debug_ovfl >0)) { printk("%s.%d: CPU%d ", __FUNCTION__, __LINE__, smp_processor_id()); printk a; } \ | 32 | if (unlikely(pfm_sysctl.debug > 0 && pfm_sysctl.debug_ovfl >0)) { printk("%s.%d: CPU%d ", __func__, __LINE__, smp_processor_id()); printk a; } \ |
33 | } while (0) | 33 | } while (0) |
34 | 34 | ||
35 | #else | 35 | #else |
diff --git a/arch/ia64/kernel/ptrace.c b/arch/ia64/kernel/ptrace.c index 331d6768b5..ab784ec431 100644 --- a/arch/ia64/kernel/ptrace.c +++ b/arch/ia64/kernel/ptrace.c | |||
@@ -698,52 +698,6 @@ thread_matches (struct task_struct *thread, unsigned long addr) | |||
698 | } | 698 | } |
699 | 699 | ||
700 | /* | 700 | /* |
701 | * GDB apparently wants to be able to read the register-backing store | ||
702 | * of any thread when attached to a given process. If we are peeking | ||
703 | * or poking an address that happens to reside in the kernel-backing | ||
704 | * store of another thread, we need to attach to that thread, because | ||
705 | * otherwise we end up accessing stale data. | ||
706 | * | ||
707 | * task_list_lock must be read-locked before calling this routine! | ||
708 | */ | ||
709 | static struct task_struct * | ||
710 | find_thread_for_addr (struct task_struct *child, unsigned long addr) | ||
711 | { | ||
712 | struct task_struct *p; | ||
713 | struct mm_struct *mm; | ||
714 | struct list_head *this, *next; | ||
715 | int mm_users; | ||
716 | |||
717 | if (!(mm = get_task_mm(child))) | ||
718 | return child; | ||
719 | |||
720 | /* -1 because of our get_task_mm(): */ | ||
721 | mm_users = atomic_read(&mm->mm_users) - 1; | ||
722 | if (mm_users <= 1) | ||
723 | goto out; /* not multi-threaded */ | ||
724 | |||
725 | /* | ||
726 | * Traverse the current process' children list. Every task that | ||
727 | * one attaches to becomes a child. And it is only attached children | ||
728 | * of the debugger that are of interest (ptrace_check_attach checks | ||
729 | * for this). | ||
730 | */ | ||
731 | list_for_each_safe(this, next, ¤t->children) { | ||
732 | p = list_entry(this, struct task_struct, sibling); | ||
733 | if (p->tgid != child->tgid) | ||
734 | continue; | ||
735 | if (thread_matches(p, addr)) { | ||
736 | child = p; | ||
737 | goto out; | ||
738 | } | ||
739 | } | ||
740 | |||
741 | out: | ||
742 | mmput(mm); | ||
743 | return child; | ||
744 | } | ||
745 | |||
746 | /* | ||
747 | * Write f32-f127 back to task->thread.fph if it has been modified. | 701 | * Write f32-f127 back to task->thread.fph if it has been modified. |
748 | */ | 702 | */ |
749 | inline void | 703 | inline void |
@@ -826,14 +780,14 @@ convert_to_non_syscall (struct task_struct *child, struct pt_regs *pt, | |||
826 | if ((long)((unsigned long)child + IA64_STK_OFFSET - sp) | 780 | if ((long)((unsigned long)child + IA64_STK_OFFSET - sp) |
827 | < IA64_PT_REGS_SIZE) { | 781 | < IA64_PT_REGS_SIZE) { |
828 | dprintk("ptrace.%s: ran off the top of the kernel " | 782 | dprintk("ptrace.%s: ran off the top of the kernel " |
829 | "stack\n", __FUNCTION__); | 783 | "stack\n", __func__); |
830 | return; | 784 | return; |
831 | } | 785 | } |
832 | if (unw_get_pr (&prev_info, &pr) < 0) { | 786 | if (unw_get_pr (&prev_info, &pr) < 0) { |
833 | unw_get_rp(&prev_info, &ip); | 787 | unw_get_rp(&prev_info, &ip); |
834 | dprintk("ptrace.%s: failed to read " | 788 | dprintk("ptrace.%s: failed to read " |
835 | "predicate register (ip=0x%lx)\n", | 789 | "predicate register (ip=0x%lx)\n", |
836 | __FUNCTION__, ip); | 790 | __func__, ip); |
837 | return; | 791 | return; |
838 | } | 792 | } |
839 | if (unw_is_intr_frame(&info) | 793 | if (unw_is_intr_frame(&info) |
@@ -908,7 +862,7 @@ static int | |||
908 | access_uarea (struct task_struct *child, unsigned long addr, | 862 | access_uarea (struct task_struct *child, unsigned long addr, |
909 | unsigned long *data, int write_access) | 863 | unsigned long *data, int write_access) |
910 | { | 864 | { |
911 | unsigned long *ptr, regnum, urbs_end, rnat_addr, cfm; | 865 | unsigned long *ptr, regnum, urbs_end, cfm; |
912 | struct switch_stack *sw; | 866 | struct switch_stack *sw; |
913 | struct pt_regs *pt; | 867 | struct pt_regs *pt; |
914 | # define pt_reg_addr(pt, reg) ((void *) \ | 868 | # define pt_reg_addr(pt, reg) ((void *) \ |
@@ -1011,14 +965,9 @@ access_uarea (struct task_struct *child, unsigned long addr, | |||
1011 | * the kernel was entered. | 965 | * the kernel was entered. |
1012 | * | 966 | * |
1013 | * Furthermore, when changing the contents of | 967 | * Furthermore, when changing the contents of |
1014 | * PT_AR_BSP (or PT_CFM) we MUST copy any | 968 | * PT_AR_BSP (or PT_CFM) while the task is |
1015 | * users-level stacked registers that are | 969 | * blocked in a system call, convert the state |
1016 | * stored on the kernel stack back to | 970 | * so that the non-system-call exit |
1017 | * user-space because otherwise, we might end | ||
1018 | * up clobbering kernel stacked registers. | ||
1019 | * Also, if this happens while the task is | ||
1020 | * blocked in a system call, which convert the | ||
1021 | * state such that the non-system-call exit | ||
1022 | * path is used. This ensures that the proper | 971 | * path is used. This ensures that the proper |
1023 | * state will be picked up when resuming | 972 | * state will be picked up when resuming |
1024 | * execution. However, it *also* means that | 973 | * execution. However, it *also* means that |
@@ -1035,10 +984,6 @@ access_uarea (struct task_struct *child, unsigned long addr, | |||
1035 | urbs_end = ia64_get_user_rbs_end(child, pt, &cfm); | 984 | urbs_end = ia64_get_user_rbs_end(child, pt, &cfm); |
1036 | if (write_access) { | 985 | if (write_access) { |
1037 | if (*data != urbs_end) { | 986 | if (*data != urbs_end) { |
1038 | if (ia64_sync_user_rbs(child, sw, | ||
1039 | pt->ar_bspstore, | ||
1040 | urbs_end) < 0) | ||
1041 | return -1; | ||
1042 | if (in_syscall(pt)) | 987 | if (in_syscall(pt)) |
1043 | convert_to_non_syscall(child, | 988 | convert_to_non_syscall(child, |
1044 | pt, | 989 | pt, |
@@ -1058,10 +1003,6 @@ access_uarea (struct task_struct *child, unsigned long addr, | |||
1058 | urbs_end = ia64_get_user_rbs_end(child, pt, &cfm); | 1003 | urbs_end = ia64_get_user_rbs_end(child, pt, &cfm); |
1059 | if (write_access) { | 1004 | if (write_access) { |
1060 | if (((cfm ^ *data) & PFM_MASK) != 0) { | 1005 | if (((cfm ^ *data) & PFM_MASK) != 0) { |
1061 | if (ia64_sync_user_rbs(child, sw, | ||
1062 | pt->ar_bspstore, | ||
1063 | urbs_end) < 0) | ||
1064 | return -1; | ||
1065 | if (in_syscall(pt)) | 1006 | if (in_syscall(pt)) |
1066 | convert_to_non_syscall(child, | 1007 | convert_to_non_syscall(child, |
1067 | pt, | 1008 | pt, |
@@ -1093,16 +1034,8 @@ access_uarea (struct task_struct *child, unsigned long addr, | |||
1093 | return 0; | 1034 | return 0; |
1094 | 1035 | ||
1095 | case PT_AR_RNAT: | 1036 | case PT_AR_RNAT: |
1096 | urbs_end = ia64_get_user_rbs_end(child, pt, NULL); | 1037 | ptr = pt_reg_addr(pt, ar_rnat); |
1097 | rnat_addr = (long) ia64_rse_rnat_addr((long *) | 1038 | break; |
1098 | urbs_end); | ||
1099 | if (write_access) | ||
1100 | return ia64_poke(child, sw, urbs_end, | ||
1101 | rnat_addr, *data); | ||
1102 | else | ||
1103 | return ia64_peek(child, sw, urbs_end, | ||
1104 | rnat_addr, data); | ||
1105 | |||
1106 | case PT_R1: | 1039 | case PT_R1: |
1107 | ptr = pt_reg_addr(pt, r1); | 1040 | ptr = pt_reg_addr(pt, r1); |
1108 | break; | 1041 | break; |
@@ -1521,215 +1454,97 @@ ptrace_setregs (struct task_struct *child, struct pt_all_user_regs __user *ppr) | |||
1521 | return ret; | 1454 | return ret; |
1522 | } | 1455 | } |
1523 | 1456 | ||
1524 | /* | ||
1525 | * Called by kernel/ptrace.c when detaching.. | ||
1526 | * | ||
1527 | * Make sure the single step bit is not set. | ||
1528 | */ | ||
1529 | void | 1457 | void |
1530 | ptrace_disable (struct task_struct *child) | 1458 | user_enable_single_step (struct task_struct *child) |
1531 | { | 1459 | { |
1532 | struct ia64_psr *child_psr = ia64_psr(task_pt_regs(child)); | 1460 | struct ia64_psr *child_psr = ia64_psr(task_pt_regs(child)); |
1533 | 1461 | ||
1534 | /* make sure the single step/taken-branch trap bits are not set: */ | 1462 | set_tsk_thread_flag(child, TIF_SINGLESTEP); |
1535 | clear_tsk_thread_flag(child, TIF_SINGLESTEP); | 1463 | child_psr->ss = 1; |
1536 | child_psr->ss = 0; | ||
1537 | child_psr->tb = 0; | ||
1538 | } | 1464 | } |
1539 | 1465 | ||
1540 | asmlinkage long | 1466 | void |
1541 | sys_ptrace (long request, pid_t pid, unsigned long addr, unsigned long data) | 1467 | user_enable_block_step (struct task_struct *child) |
1542 | { | 1468 | { |
1543 | struct pt_regs *pt; | 1469 | struct ia64_psr *child_psr = ia64_psr(task_pt_regs(child)); |
1544 | unsigned long urbs_end, peek_or_poke; | ||
1545 | struct task_struct *child; | ||
1546 | struct switch_stack *sw; | ||
1547 | long ret; | ||
1548 | struct unw_frame_info info; | ||
1549 | 1470 | ||
1550 | lock_kernel(); | 1471 | set_tsk_thread_flag(child, TIF_SINGLESTEP); |
1551 | ret = -EPERM; | 1472 | child_psr->tb = 1; |
1552 | if (request == PTRACE_TRACEME) { | 1473 | } |
1553 | ret = ptrace_traceme(); | ||
1554 | goto out; | ||
1555 | } | ||
1556 | 1474 | ||
1557 | peek_or_poke = (request == PTRACE_PEEKTEXT | 1475 | void |
1558 | || request == PTRACE_PEEKDATA | 1476 | user_disable_single_step (struct task_struct *child) |
1559 | || request == PTRACE_POKETEXT | 1477 | { |
1560 | || request == PTRACE_POKEDATA); | 1478 | struct ia64_psr *child_psr = ia64_psr(task_pt_regs(child)); |
1561 | ret = -ESRCH; | ||
1562 | read_lock(&tasklist_lock); | ||
1563 | { | ||
1564 | child = find_task_by_pid(pid); | ||
1565 | if (child) { | ||
1566 | if (peek_or_poke) | ||
1567 | child = find_thread_for_addr(child, addr); | ||
1568 | get_task_struct(child); | ||
1569 | } | ||
1570 | } | ||
1571 | read_unlock(&tasklist_lock); | ||
1572 | if (!child) | ||
1573 | goto out; | ||
1574 | ret = -EPERM; | ||
1575 | if (pid == 1) /* no messing around with init! */ | ||
1576 | goto out_tsk; | ||
1577 | |||
1578 | if (request == PTRACE_ATTACH) { | ||
1579 | ret = ptrace_attach(child); | ||
1580 | if (!ret) | ||
1581 | arch_ptrace_attach(child); | ||
1582 | goto out_tsk; | ||
1583 | } | ||
1584 | 1479 | ||
1585 | ret = ptrace_check_attach(child, request == PTRACE_KILL); | 1480 | /* make sure the single step/taken-branch trap bits are not set: */ |
1586 | if (ret < 0) | 1481 | clear_tsk_thread_flag(child, TIF_SINGLESTEP); |
1587 | goto out_tsk; | 1482 | child_psr->ss = 0; |
1483 | child_psr->tb = 0; | ||
1484 | } | ||
1588 | 1485 | ||
1589 | pt = task_pt_regs(child); | 1486 | /* |
1590 | sw = (struct switch_stack *) (child->thread.ksp + 16); | 1487 | * Called by kernel/ptrace.c when detaching.. |
1488 | * | ||
1489 | * Make sure the single step bit is not set. | ||
1490 | */ | ||
1491 | void | ||
1492 | ptrace_disable (struct task_struct *child) | ||
1493 | { | ||
1494 | user_disable_single_step(child); | ||
1495 | } | ||
1591 | 1496 | ||
1497 | long | ||
1498 | arch_ptrace (struct task_struct *child, long request, long addr, long data) | ||
1499 | { | ||
1592 | switch (request) { | 1500 | switch (request) { |
1593 | case PTRACE_PEEKTEXT: | 1501 | case PTRACE_PEEKTEXT: |
1594 | case PTRACE_PEEKDATA: | 1502 | case PTRACE_PEEKDATA: |
1595 | /* read word at location addr */ | 1503 | /* read word at location addr */ |
1596 | urbs_end = ia64_get_user_rbs_end(child, pt, NULL); | 1504 | if (access_process_vm(child, addr, &data, sizeof(data), 0) |
1597 | ret = ia64_peek(child, sw, urbs_end, addr, &data); | 1505 | != sizeof(data)) |
1598 | if (ret == 0) { | 1506 | return -EIO; |
1599 | ret = data; | 1507 | /* ensure return value is not mistaken for error code */ |
1600 | /* ensure "ret" is not mistaken as an error code: */ | 1508 | force_successful_syscall_return(); |
1601 | force_successful_syscall_return(); | 1509 | return data; |
1602 | } | ||
1603 | goto out_tsk; | ||
1604 | |||
1605 | case PTRACE_POKETEXT: | ||
1606 | case PTRACE_POKEDATA: | ||
1607 | /* write the word at location addr */ | ||
1608 | urbs_end = ia64_get_user_rbs_end(child, pt, NULL); | ||
1609 | ret = ia64_poke(child, sw, urbs_end, addr, data); | ||
1610 | |||
1611 | /* Make sure user RBS has the latest data */ | ||
1612 | unw_init_from_blocked_task(&info, child); | ||
1613 | do_sync_rbs(&info, ia64_sync_user_rbs); | ||
1614 | 1510 | ||
1615 | goto out_tsk; | 1511 | /* PTRACE_POKETEXT and PTRACE_POKEDATA is handled |
1512 | * by the generic ptrace_request(). | ||
1513 | */ | ||
1616 | 1514 | ||
1617 | case PTRACE_PEEKUSR: | 1515 | case PTRACE_PEEKUSR: |
1618 | /* read the word at addr in the USER area */ | 1516 | /* read the word at addr in the USER area */ |
1619 | if (access_uarea(child, addr, &data, 0) < 0) { | 1517 | if (access_uarea(child, addr, &data, 0) < 0) |
1620 | ret = -EIO; | 1518 | return -EIO; |
1621 | goto out_tsk; | 1519 | /* ensure return value is not mistaken for error code */ |
1622 | } | ||
1623 | ret = data; | ||
1624 | /* ensure "ret" is not mistaken as an error code */ | ||
1625 | force_successful_syscall_return(); | 1520 | force_successful_syscall_return(); |
1626 | goto out_tsk; | 1521 | return data; |
1627 | 1522 | ||
1628 | case PTRACE_POKEUSR: | 1523 | case PTRACE_POKEUSR: |
1629 | /* write the word at addr in the USER area */ | 1524 | /* write the word at addr in the USER area */ |
1630 | if (access_uarea(child, addr, &data, 1) < 0) { | 1525 | if (access_uarea(child, addr, &data, 1) < 0) |
1631 | ret = -EIO; | 1526 | return -EIO; |
1632 | goto out_tsk; | 1527 | return 0; |
1633 | } | ||
1634 | ret = 0; | ||
1635 | goto out_tsk; | ||
1636 | 1528 | ||
1637 | case PTRACE_OLD_GETSIGINFO: | 1529 | case PTRACE_OLD_GETSIGINFO: |
1638 | /* for backwards-compatibility */ | 1530 | /* for backwards-compatibility */ |
1639 | ret = ptrace_request(child, PTRACE_GETSIGINFO, addr, data); | 1531 | return ptrace_request(child, PTRACE_GETSIGINFO, addr, data); |
1640 | goto out_tsk; | ||
1641 | 1532 | ||
1642 | case PTRACE_OLD_SETSIGINFO: | 1533 | case PTRACE_OLD_SETSIGINFO: |
1643 | /* for backwards-compatibility */ | 1534 | /* for backwards-compatibility */ |
1644 | ret = ptrace_request(child, PTRACE_SETSIGINFO, addr, data); | 1535 | return ptrace_request(child, PTRACE_SETSIGINFO, addr, data); |
1645 | goto out_tsk; | ||
1646 | |||
1647 | case PTRACE_SYSCALL: | ||
1648 | /* continue and stop at next (return from) syscall */ | ||
1649 | case PTRACE_CONT: | ||
1650 | /* restart after signal. */ | ||
1651 | ret = -EIO; | ||
1652 | if (!valid_signal(data)) | ||
1653 | goto out_tsk; | ||
1654 | if (request == PTRACE_SYSCALL) | ||
1655 | set_tsk_thread_flag(child, TIF_SYSCALL_TRACE); | ||
1656 | else | ||
1657 | clear_tsk_thread_flag(child, TIF_SYSCALL_TRACE); | ||
1658 | child->exit_code = data; | ||
1659 | 1536 | ||
1660 | /* | 1537 | case PTRACE_GETREGS: |
1661 | * Make sure the single step/taken-branch trap bits | 1538 | return ptrace_getregs(child, |
1662 | * are not set: | 1539 | (struct pt_all_user_regs __user *) data); |
1663 | */ | ||
1664 | clear_tsk_thread_flag(child, TIF_SINGLESTEP); | ||
1665 | ia64_psr(pt)->ss = 0; | ||
1666 | ia64_psr(pt)->tb = 0; | ||
1667 | 1540 | ||
1668 | wake_up_process(child); | 1541 | case PTRACE_SETREGS: |
1669 | ret = 0; | 1542 | return ptrace_setregs(child, |
1670 | goto out_tsk; | 1543 | (struct pt_all_user_regs __user *) data); |
1671 | 1544 | ||
1672 | case PTRACE_KILL: | 1545 | default: |
1673 | /* | 1546 | return ptrace_request(child, request, addr, data); |
1674 | * Make the child exit. Best I can do is send it a | ||
1675 | * sigkill. Perhaps it should be put in the status | ||
1676 | * that it wants to exit. | ||
1677 | */ | ||
1678 | if (child->exit_state == EXIT_ZOMBIE) | ||
1679 | /* already dead */ | ||
1680 | goto out_tsk; | ||
1681 | child->exit_code = SIGKILL; | ||
1682 | |||
1683 | ptrace_disable(child); | ||
1684 | wake_up_process(child); | ||
1685 | ret = 0; | ||
1686 | goto out_tsk; | ||
1687 | |||
1688 | case PTRACE_SINGLESTEP: | ||
1689 | /* let child execute for one instruction */ | ||
1690 | case PTRACE_SINGLEBLOCK: | ||
1691 | ret = -EIO; | ||
1692 | if (!valid_signal(data)) | ||
1693 | goto out_tsk; | ||
1694 | |||
1695 | clear_tsk_thread_flag(child, TIF_SYSCALL_TRACE); | ||
1696 | set_tsk_thread_flag(child, TIF_SINGLESTEP); | ||
1697 | if (request == PTRACE_SINGLESTEP) { | ||
1698 | ia64_psr(pt)->ss = 1; | ||
1699 | } else { | ||
1700 | ia64_psr(pt)->tb = 1; | ||
1701 | } | ||
1702 | child->exit_code = data; | ||
1703 | |||
1704 | /* give it a chance to run. */ | ||
1705 | wake_up_process(child); | ||
1706 | ret = 0; | ||
1707 | goto out_tsk; | ||
1708 | |||
1709 | case PTRACE_DETACH: | ||
1710 | /* detach a process that was attached. */ | ||
1711 | ret = ptrace_detach(child, data); | ||
1712 | goto out_tsk; | ||
1713 | |||
1714 | case PTRACE_GETREGS: | ||
1715 | ret = ptrace_getregs(child, | ||
1716 | (struct pt_all_user_regs __user *) data); | ||
1717 | goto out_tsk; | ||
1718 | |||
1719 | case PTRACE_SETREGS: | ||
1720 | ret = ptrace_setregs(child, | ||
1721 | (struct pt_all_user_regs __user *) data); | ||
1722 | goto out_tsk; | ||
1723 | |||
1724 | default: | ||
1725 | ret = ptrace_request(child, request, addr, data); | ||
1726 | goto out_tsk; | ||
1727 | } | 1547 | } |
1728 | out_tsk: | ||
1729 | put_task_struct(child); | ||
1730 | out: | ||
1731 | unlock_kernel(); | ||
1732 | return ret; | ||
1733 | } | 1548 | } |
1734 | 1549 | ||
1735 | 1550 | ||
diff --git a/arch/ia64/kernel/setup.c b/arch/ia64/kernel/setup.c index ebd1a09f32..4aa9eaea76 100644 --- a/arch/ia64/kernel/setup.c +++ b/arch/ia64/kernel/setup.c | |||
@@ -690,7 +690,7 @@ get_model_name(__u8 family, __u8 model) | |||
690 | if (overflow++ == 0) | 690 | if (overflow++ == 0) |
691 | printk(KERN_ERR | 691 | printk(KERN_ERR |
692 | "%s: Table overflow. Some processor model information will be missing\n", | 692 | "%s: Table overflow. Some processor model information will be missing\n", |
693 | __FUNCTION__); | 693 | __func__); |
694 | return "Unknown"; | 694 | return "Unknown"; |
695 | } | 695 | } |
696 | 696 | ||
@@ -785,7 +785,7 @@ get_max_cacheline_size (void) | |||
785 | status = ia64_pal_cache_summary(&levels, &unique_caches); | 785 | status = ia64_pal_cache_summary(&levels, &unique_caches); |
786 | if (status != 0) { | 786 | if (status != 0) { |
787 | printk(KERN_ERR "%s: ia64_pal_cache_summary() failed (status=%ld)\n", | 787 | printk(KERN_ERR "%s: ia64_pal_cache_summary() failed (status=%ld)\n", |
788 | __FUNCTION__, status); | 788 | __func__, status); |
789 | max = SMP_CACHE_BYTES; | 789 | max = SMP_CACHE_BYTES; |
790 | /* Safest setup for "flush_icache_range()" */ | 790 | /* Safest setup for "flush_icache_range()" */ |
791 | ia64_i_cache_stride_shift = I_CACHE_STRIDE_SHIFT; | 791 | ia64_i_cache_stride_shift = I_CACHE_STRIDE_SHIFT; |
@@ -798,7 +798,7 @@ get_max_cacheline_size (void) | |||
798 | if (status != 0) { | 798 | if (status != 0) { |
799 | printk(KERN_ERR | 799 | printk(KERN_ERR |
800 | "%s: ia64_pal_cache_config_info(l=%lu, 2) failed (status=%ld)\n", | 800 | "%s: ia64_pal_cache_config_info(l=%lu, 2) failed (status=%ld)\n", |
801 | __FUNCTION__, l, status); | 801 | __func__, l, status); |
802 | max = SMP_CACHE_BYTES; | 802 | max = SMP_CACHE_BYTES; |
803 | /* The safest setup for "flush_icache_range()" */ | 803 | /* The safest setup for "flush_icache_range()" */ |
804 | cci.pcci_stride = I_CACHE_STRIDE_SHIFT; | 804 | cci.pcci_stride = I_CACHE_STRIDE_SHIFT; |
@@ -814,7 +814,7 @@ get_max_cacheline_size (void) | |||
814 | if (status != 0) { | 814 | if (status != 0) { |
815 | printk(KERN_ERR | 815 | printk(KERN_ERR |
816 | "%s: ia64_pal_cache_config_info(l=%lu, 1) failed (status=%ld)\n", | 816 | "%s: ia64_pal_cache_config_info(l=%lu, 1) failed (status=%ld)\n", |
817 | __FUNCTION__, l, status); | 817 | __func__, l, status); |
818 | /* The safest setup for "flush_icache_range()" */ | 818 | /* The safest setup for "flush_icache_range()" */ |
819 | cci.pcci_stride = I_CACHE_STRIDE_SHIFT; | 819 | cci.pcci_stride = I_CACHE_STRIDE_SHIFT; |
820 | } | 820 | } |
diff --git a/arch/ia64/kernel/unaligned.c b/arch/ia64/kernel/unaligned.c index 52f70bbc19..6903361d11 100644 --- a/arch/ia64/kernel/unaligned.c +++ b/arch/ia64/kernel/unaligned.c | |||
@@ -28,7 +28,7 @@ extern int die_if_kernel(char *str, struct pt_regs *regs, long err); | |||
28 | #undef DEBUG_UNALIGNED_TRAP | 28 | #undef DEBUG_UNALIGNED_TRAP |
29 | 29 | ||
30 | #ifdef DEBUG_UNALIGNED_TRAP | 30 | #ifdef DEBUG_UNALIGNED_TRAP |
31 | # define DPRINT(a...) do { printk("%s %u: ", __FUNCTION__, __LINE__); printk (a); } while (0) | 31 | # define DPRINT(a...) do { printk("%s %u: ", __func__, __LINE__); printk (a); } while (0) |
32 | # define DDUMP(str,vp,len) dump(str, vp, len) | 32 | # define DDUMP(str,vp,len) dump(str, vp, len) |
33 | 33 | ||
34 | static void | 34 | static void |
@@ -674,7 +674,7 @@ emulate_load_updates (update_t type, load_store_t ld, struct pt_regs *regs, unsi | |||
674 | * just in case. | 674 | * just in case. |
675 | */ | 675 | */ |
676 | if (ld.x6_op == 1 || ld.x6_op == 3) { | 676 | if (ld.x6_op == 1 || ld.x6_op == 3) { |
677 | printk(KERN_ERR "%s: register update on speculative load, error\n", __FUNCTION__); | 677 | printk(KERN_ERR "%s: register update on speculative load, error\n", __func__); |
678 | if (die_if_kernel("unaligned reference on speculative load with register update\n", | 678 | if (die_if_kernel("unaligned reference on speculative load with register update\n", |
679 | regs, 30)) | 679 | regs, 30)) |
680 | return; | 680 | return; |
@@ -1104,7 +1104,7 @@ emulate_load_floatpair (unsigned long ifa, load_store_t ld, struct pt_regs *regs | |||
1104 | */ | 1104 | */ |
1105 | if (ld.x6_op == 1 || ld.x6_op == 3) | 1105 | if (ld.x6_op == 1 || ld.x6_op == 3) |
1106 | printk(KERN_ERR "%s: register update on speculative load pair, error\n", | 1106 | printk(KERN_ERR "%s: register update on speculative load pair, error\n", |
1107 | __FUNCTION__); | 1107 | __func__); |
1108 | 1108 | ||
1109 | setreg(ld.r3, ifa, 0, regs); | 1109 | setreg(ld.r3, ifa, 0, regs); |
1110 | } | 1110 | } |
diff --git a/arch/ia64/kernel/unwind.c b/arch/ia64/kernel/unwind.c index c1bdb51318..67810b77d9 100644 --- a/arch/ia64/kernel/unwind.c +++ b/arch/ia64/kernel/unwind.c | |||
@@ -257,7 +257,7 @@ pt_regs_off (unsigned long reg) | |||
257 | off = unw.pt_regs_offsets[reg]; | 257 | off = unw.pt_regs_offsets[reg]; |
258 | 258 | ||
259 | if (off < 0) { | 259 | if (off < 0) { |
260 | UNW_DPRINT(0, "unwind.%s: bad scratch reg r%lu\n", __FUNCTION__, reg); | 260 | UNW_DPRINT(0, "unwind.%s: bad scratch reg r%lu\n", __func__, reg); |
261 | off = 0; | 261 | off = 0; |
262 | } | 262 | } |
263 | return (unsigned long) off; | 263 | return (unsigned long) off; |
@@ -268,13 +268,13 @@ get_scratch_regs (struct unw_frame_info *info) | |||
268 | { | 268 | { |
269 | if (!info->pt) { | 269 | if (!info->pt) { |
270 | /* This should not happen with valid unwind info. */ | 270 | /* This should not happen with valid unwind info. */ |
271 | UNW_DPRINT(0, "unwind.%s: bad unwind info: resetting info->pt\n", __FUNCTION__); | 271 | UNW_DPRINT(0, "unwind.%s: bad unwind info: resetting info->pt\n", __func__); |
272 | if (info->flags & UNW_FLAG_INTERRUPT_FRAME) | 272 | if (info->flags & UNW_FLAG_INTERRUPT_FRAME) |
273 | info->pt = (unsigned long) ((struct pt_regs *) info->psp - 1); | 273 | info->pt = (unsigned long) ((struct pt_regs *) info->psp - 1); |
274 | else | 274 | else |
275 | info->pt = info->sp - 16; | 275 | info->pt = info->sp - 16; |
276 | } | 276 | } |
277 | UNW_DPRINT(3, "unwind.%s: sp 0x%lx pt 0x%lx\n", __FUNCTION__, info->sp, info->pt); | 277 | UNW_DPRINT(3, "unwind.%s: sp 0x%lx pt 0x%lx\n", __func__, info->sp, info->pt); |
278 | return (struct pt_regs *) info->pt; | 278 | return (struct pt_regs *) info->pt; |
279 | } | 279 | } |
280 | 280 | ||
@@ -294,7 +294,7 @@ unw_access_gr (struct unw_frame_info *info, int regnum, unsigned long *val, char | |||
294 | return 0; | 294 | return 0; |
295 | } | 295 | } |
296 | UNW_DPRINT(0, "unwind.%s: trying to access non-existent r%u\n", | 296 | UNW_DPRINT(0, "unwind.%s: trying to access non-existent r%u\n", |
297 | __FUNCTION__, regnum); | 297 | __func__, regnum); |
298 | return -1; | 298 | return -1; |
299 | } | 299 | } |
300 | 300 | ||
@@ -341,7 +341,7 @@ unw_access_gr (struct unw_frame_info *info, int regnum, unsigned long *val, char | |||
341 | { | 341 | { |
342 | UNW_DPRINT(0, "unwind.%s: %p outside of regstk " | 342 | UNW_DPRINT(0, "unwind.%s: %p outside of regstk " |
343 | "[0x%lx-0x%lx)\n", | 343 | "[0x%lx-0x%lx)\n", |
344 | __FUNCTION__, (void *) addr, | 344 | __func__, (void *) addr, |
345 | info->regstk.limit, | 345 | info->regstk.limit, |
346 | info->regstk.top); | 346 | info->regstk.top); |
347 | return -1; | 347 | return -1; |
@@ -374,7 +374,7 @@ unw_access_gr (struct unw_frame_info *info, int regnum, unsigned long *val, char | |||
374 | || (unsigned long) addr >= info->regstk.top) | 374 | || (unsigned long) addr >= info->regstk.top) |
375 | { | 375 | { |
376 | UNW_DPRINT(0, "unwind.%s: ignoring attempt to access register outside " | 376 | UNW_DPRINT(0, "unwind.%s: ignoring attempt to access register outside " |
377 | "of rbs\n", __FUNCTION__); | 377 | "of rbs\n", __func__); |
378 | return -1; | 378 | return -1; |
379 | } | 379 | } |
380 | if ((unsigned long) nat_addr >= info->regstk.top) | 380 | if ((unsigned long) nat_addr >= info->regstk.top) |
@@ -385,7 +385,7 @@ unw_access_gr (struct unw_frame_info *info, int regnum, unsigned long *val, char | |||
385 | if (write) { | 385 | if (write) { |
386 | if (read_only(addr)) { | 386 | if (read_only(addr)) { |
387 | UNW_DPRINT(0, "unwind.%s: ignoring attempt to write read-only location\n", | 387 | UNW_DPRINT(0, "unwind.%s: ignoring attempt to write read-only location\n", |
388 | __FUNCTION__); | 388 | __func__); |
389 | } else { | 389 | } else { |
390 | *addr = *val; | 390 | *addr = *val; |
391 | if (*nat) | 391 | if (*nat) |
@@ -427,13 +427,13 @@ unw_access_br (struct unw_frame_info *info, int regnum, unsigned long *val, int | |||
427 | 427 | ||
428 | default: | 428 | default: |
429 | UNW_DPRINT(0, "unwind.%s: trying to access non-existent b%u\n", | 429 | UNW_DPRINT(0, "unwind.%s: trying to access non-existent b%u\n", |
430 | __FUNCTION__, regnum); | 430 | __func__, regnum); |
431 | return -1; | 431 | return -1; |
432 | } | 432 | } |
433 | if (write) | 433 | if (write) |
434 | if (read_only(addr)) { | 434 | if (read_only(addr)) { |
435 | UNW_DPRINT(0, "unwind.%s: ignoring attempt to write read-only location\n", | 435 | UNW_DPRINT(0, "unwind.%s: ignoring attempt to write read-only location\n", |
436 | __FUNCTION__); | 436 | __func__); |
437 | } else | 437 | } else |
438 | *addr = *val; | 438 | *addr = *val; |
439 | else | 439 | else |
@@ -450,7 +450,7 @@ unw_access_fr (struct unw_frame_info *info, int regnum, struct ia64_fpreg *val, | |||
450 | 450 | ||
451 | if ((unsigned) (regnum - 2) >= 126) { | 451 | if ((unsigned) (regnum - 2) >= 126) { |
452 | UNW_DPRINT(0, "unwind.%s: trying to access non-existent f%u\n", | 452 | UNW_DPRINT(0, "unwind.%s: trying to access non-existent f%u\n", |
453 | __FUNCTION__, regnum); | 453 | __func__, regnum); |
454 | return -1; | 454 | return -1; |
455 | } | 455 | } |
456 | 456 | ||
@@ -482,7 +482,7 @@ unw_access_fr (struct unw_frame_info *info, int regnum, struct ia64_fpreg *val, | |||
482 | if (write) | 482 | if (write) |
483 | if (read_only(addr)) { | 483 | if (read_only(addr)) { |
484 | UNW_DPRINT(0, "unwind.%s: ignoring attempt to write read-only location\n", | 484 | UNW_DPRINT(0, "unwind.%s: ignoring attempt to write read-only location\n", |
485 | __FUNCTION__); | 485 | __func__); |
486 | } else | 486 | } else |
487 | *addr = *val; | 487 | *addr = *val; |
488 | else | 488 | else |
@@ -572,14 +572,14 @@ unw_access_ar (struct unw_frame_info *info, int regnum, unsigned long *val, int | |||
572 | 572 | ||
573 | default: | 573 | default: |
574 | UNW_DPRINT(0, "unwind.%s: trying to access non-existent ar%u\n", | 574 | UNW_DPRINT(0, "unwind.%s: trying to access non-existent ar%u\n", |
575 | __FUNCTION__, regnum); | 575 | __func__, regnum); |
576 | return -1; | 576 | return -1; |
577 | } | 577 | } |
578 | 578 | ||
579 | if (write) { | 579 | if (write) { |
580 | if (read_only(addr)) { | 580 | if (read_only(addr)) { |
581 | UNW_DPRINT(0, "unwind.%s: ignoring attempt to write read-only location\n", | 581 | UNW_DPRINT(0, "unwind.%s: ignoring attempt to write read-only location\n", |
582 | __FUNCTION__); | 582 | __func__); |
583 | } else | 583 | } else |
584 | *addr = *val; | 584 | *addr = *val; |
585 | } else | 585 | } else |
@@ -600,7 +600,7 @@ unw_access_pr (struct unw_frame_info *info, unsigned long *val, int write) | |||
600 | if (write) { | 600 | if (write) { |
601 | if (read_only(addr)) { | 601 | if (read_only(addr)) { |
602 | UNW_DPRINT(0, "unwind.%s: ignoring attempt to write read-only location\n", | 602 | UNW_DPRINT(0, "unwind.%s: ignoring attempt to write read-only location\n", |
603 | __FUNCTION__); | 603 | __func__); |
604 | } else | 604 | } else |
605 | *addr = *val; | 605 | *addr = *val; |
606 | } else | 606 | } else |
@@ -699,7 +699,7 @@ decode_abreg (unsigned char abreg, int memory) | |||
699 | default: | 699 | default: |
700 | break; | 700 | break; |
701 | } | 701 | } |
702 | UNW_DPRINT(0, "unwind.%s: bad abreg=0x%x\n", __FUNCTION__, abreg); | 702 | UNW_DPRINT(0, "unwind.%s: bad abreg=0x%x\n", __func__, abreg); |
703 | return UNW_REG_LC; | 703 | return UNW_REG_LC; |
704 | } | 704 | } |
705 | 705 | ||
@@ -739,7 +739,7 @@ spill_next_when (struct unw_reg_info **regp, struct unw_reg_info *lim, unw_word | |||
739 | return; | 739 | return; |
740 | } | 740 | } |
741 | } | 741 | } |
742 | UNW_DPRINT(0, "unwind.%s: excess spill!\n", __FUNCTION__); | 742 | UNW_DPRINT(0, "unwind.%s: excess spill!\n", __func__); |
743 | } | 743 | } |
744 | 744 | ||
745 | static inline void | 745 | static inline void |
@@ -855,11 +855,11 @@ desc_abi (unsigned char abi, unsigned char context, struct unw_state_record *sr) | |||
855 | { | 855 | { |
856 | if (abi == 3 && context == 'i') { | 856 | if (abi == 3 && context == 'i') { |
857 | sr->flags |= UNW_FLAG_INTERRUPT_FRAME; | 857 | sr->flags |= UNW_FLAG_INTERRUPT_FRAME; |
858 | UNW_DPRINT(3, "unwind.%s: interrupt frame\n", __FUNCTION__); | 858 | UNW_DPRINT(3, "unwind.%s: interrupt frame\n", __func__); |
859 | } | 859 | } |
860 | else | 860 | else |
861 | UNW_DPRINT(0, "unwind%s: ignoring unwabi(abi=0x%x,context=0x%x)\n", | 861 | UNW_DPRINT(0, "unwind%s: ignoring unwabi(abi=0x%x,context=0x%x)\n", |
862 | __FUNCTION__, abi, context); | 862 | __func__, abi, context); |
863 | } | 863 | } |
864 | 864 | ||
865 | static inline void | 865 | static inline void |
@@ -1347,7 +1347,7 @@ script_emit (struct unw_script *script, struct unw_insn insn) | |||
1347 | { | 1347 | { |
1348 | if (script->count >= UNW_MAX_SCRIPT_LEN) { | 1348 | if (script->count >= UNW_MAX_SCRIPT_LEN) { |
1349 | UNW_DPRINT(0, "unwind.%s: script exceeds maximum size of %u instructions!\n", | 1349 | UNW_DPRINT(0, "unwind.%s: script exceeds maximum size of %u instructions!\n", |
1350 | __FUNCTION__, UNW_MAX_SCRIPT_LEN); | 1350 | __func__, UNW_MAX_SCRIPT_LEN); |
1351 | return; | 1351 | return; |
1352 | } | 1352 | } |
1353 | script->insn[script->count++] = insn; | 1353 | script->insn[script->count++] = insn; |
@@ -1389,7 +1389,7 @@ emit_nat_info (struct unw_state_record *sr, int i, struct unw_script *script) | |||
1389 | 1389 | ||
1390 | default: | 1390 | default: |
1391 | UNW_DPRINT(0, "unwind.%s: don't know how to emit nat info for where = %u\n", | 1391 | UNW_DPRINT(0, "unwind.%s: don't know how to emit nat info for where = %u\n", |
1392 | __FUNCTION__, r->where); | 1392 | __func__, r->where); |
1393 | return; | 1393 | return; |
1394 | } | 1394 | } |
1395 | insn.opc = opc; | 1395 | insn.opc = opc; |
@@ -1446,7 +1446,7 @@ compile_reg (struct unw_state_record *sr, int i, struct unw_script *script) | |||
1446 | val = offsetof(struct pt_regs, f6) + 16*(rval - 6); | 1446 | val = offsetof(struct pt_regs, f6) + 16*(rval - 6); |
1447 | else | 1447 | else |
1448 | UNW_DPRINT(0, "unwind.%s: kernel may not touch f%lu\n", | 1448 | UNW_DPRINT(0, "unwind.%s: kernel may not touch f%lu\n", |
1449 | __FUNCTION__, rval); | 1449 | __func__, rval); |
1450 | } | 1450 | } |
1451 | break; | 1451 | break; |
1452 | 1452 | ||
@@ -1474,7 +1474,7 @@ compile_reg (struct unw_state_record *sr, int i, struct unw_script *script) | |||
1474 | 1474 | ||
1475 | default: | 1475 | default: |
1476 | UNW_DPRINT(0, "unwind%s: register %u has unexpected `where' value of %u\n", | 1476 | UNW_DPRINT(0, "unwind%s: register %u has unexpected `where' value of %u\n", |
1477 | __FUNCTION__, i, r->where); | 1477 | __func__, i, r->where); |
1478 | break; | 1478 | break; |
1479 | } | 1479 | } |
1480 | insn.opc = opc; | 1480 | insn.opc = opc; |
@@ -1547,10 +1547,10 @@ build_script (struct unw_frame_info *info) | |||
1547 | r->when = UNW_WHEN_NEVER; | 1547 | r->when = UNW_WHEN_NEVER; |
1548 | sr.pr_val = info->pr; | 1548 | sr.pr_val = info->pr; |
1549 | 1549 | ||
1550 | UNW_DPRINT(3, "unwind.%s: ip 0x%lx\n", __FUNCTION__, ip); | 1550 | UNW_DPRINT(3, "unwind.%s: ip 0x%lx\n", __func__, ip); |
1551 | script = script_new(ip); | 1551 | script = script_new(ip); |
1552 | if (!script) { | 1552 | if (!script) { |
1553 | UNW_DPRINT(0, "unwind.%s: failed to create unwind script\n", __FUNCTION__); | 1553 | UNW_DPRINT(0, "unwind.%s: failed to create unwind script\n", __func__); |
1554 | STAT(unw.stat.script.build_time += ia64_get_itc() - start); | 1554 | STAT(unw.stat.script.build_time += ia64_get_itc() - start); |
1555 | return NULL; | 1555 | return NULL; |
1556 | } | 1556 | } |
@@ -1569,7 +1569,7 @@ build_script (struct unw_frame_info *info) | |||
1569 | if (!e) { | 1569 | if (!e) { |
1570 | /* no info, return default unwinder (leaf proc, no mem stack, no saved regs) */ | 1570 | /* no info, return default unwinder (leaf proc, no mem stack, no saved regs) */ |
1571 | UNW_DPRINT(1, "unwind.%s: no unwind info for ip=0x%lx (prev ip=0x%lx)\n", | 1571 | UNW_DPRINT(1, "unwind.%s: no unwind info for ip=0x%lx (prev ip=0x%lx)\n", |
1572 | __FUNCTION__, ip, unw.cache[info->prev_script].ip); | 1572 | __func__, ip, unw.cache[info->prev_script].ip); |
1573 | sr.curr.reg[UNW_REG_RP].where = UNW_WHERE_BR; | 1573 | sr.curr.reg[UNW_REG_RP].where = UNW_WHERE_BR; |
1574 | sr.curr.reg[UNW_REG_RP].when = -1; | 1574 | sr.curr.reg[UNW_REG_RP].when = -1; |
1575 | sr.curr.reg[UNW_REG_RP].val = 0; | 1575 | sr.curr.reg[UNW_REG_RP].val = 0; |
@@ -1618,13 +1618,13 @@ build_script (struct unw_frame_info *info) | |||
1618 | sr.curr.reg[UNW_REG_RP].when = -1; | 1618 | sr.curr.reg[UNW_REG_RP].when = -1; |
1619 | sr.curr.reg[UNW_REG_RP].val = sr.return_link_reg; | 1619 | sr.curr.reg[UNW_REG_RP].val = sr.return_link_reg; |
1620 | UNW_DPRINT(1, "unwind.%s: using default for rp at ip=0x%lx where=%d val=0x%lx\n", | 1620 | UNW_DPRINT(1, "unwind.%s: using default for rp at ip=0x%lx where=%d val=0x%lx\n", |
1621 | __FUNCTION__, ip, sr.curr.reg[UNW_REG_RP].where, | 1621 | __func__, ip, sr.curr.reg[UNW_REG_RP].where, |
1622 | sr.curr.reg[UNW_REG_RP].val); | 1622 | sr.curr.reg[UNW_REG_RP].val); |
1623 | } | 1623 | } |
1624 | 1624 | ||
1625 | #ifdef UNW_DEBUG | 1625 | #ifdef UNW_DEBUG |
1626 | UNW_DPRINT(1, "unwind.%s: state record for func 0x%lx, t=%u:\n", | 1626 | UNW_DPRINT(1, "unwind.%s: state record for func 0x%lx, t=%u:\n", |
1627 | __FUNCTION__, table->segment_base + e->start_offset, sr.when_target); | 1627 | __func__, table->segment_base + e->start_offset, sr.when_target); |
1628 | for (r = sr.curr.reg; r < sr.curr.reg + UNW_NUM_REGS; ++r) { | 1628 | for (r = sr.curr.reg; r < sr.curr.reg + UNW_NUM_REGS; ++r) { |
1629 | if (r->where != UNW_WHERE_NONE || r->when != UNW_WHEN_NEVER) { | 1629 | if (r->where != UNW_WHERE_NONE || r->when != UNW_WHEN_NEVER) { |
1630 | UNW_DPRINT(1, " %s <- ", unw.preg_name[r - sr.curr.reg]); | 1630 | UNW_DPRINT(1, " %s <- ", unw.preg_name[r - sr.curr.reg]); |
@@ -1746,7 +1746,7 @@ run_script (struct unw_script *script, struct unw_frame_info *state) | |||
1746 | } else { | 1746 | } else { |
1747 | s[dst] = 0; | 1747 | s[dst] = 0; |
1748 | UNW_DPRINT(0, "unwind.%s: no state->pt, dst=%ld, val=%ld\n", | 1748 | UNW_DPRINT(0, "unwind.%s: no state->pt, dst=%ld, val=%ld\n", |
1749 | __FUNCTION__, dst, val); | 1749 | __func__, dst, val); |
1750 | } | 1750 | } |
1751 | break; | 1751 | break; |
1752 | 1752 | ||
@@ -1756,7 +1756,7 @@ run_script (struct unw_script *script, struct unw_frame_info *state) | |||
1756 | else { | 1756 | else { |
1757 | s[dst] = 0; | 1757 | s[dst] = 0; |
1758 | UNW_DPRINT(0, "unwind.%s: UNW_INSN_MOVE_CONST bad val=%ld\n", | 1758 | UNW_DPRINT(0, "unwind.%s: UNW_INSN_MOVE_CONST bad val=%ld\n", |
1759 | __FUNCTION__, val); | 1759 | __func__, val); |
1760 | } | 1760 | } |
1761 | break; | 1761 | break; |
1762 | 1762 | ||
@@ -1791,7 +1791,7 @@ run_script (struct unw_script *script, struct unw_frame_info *state) | |||
1791 | || s[val] < TASK_SIZE) | 1791 | || s[val] < TASK_SIZE) |
1792 | { | 1792 | { |
1793 | UNW_DPRINT(0, "unwind.%s: rejecting bad psp=0x%lx\n", | 1793 | UNW_DPRINT(0, "unwind.%s: rejecting bad psp=0x%lx\n", |
1794 | __FUNCTION__, s[val]); | 1794 | __func__, s[val]); |
1795 | break; | 1795 | break; |
1796 | } | 1796 | } |
1797 | #endif | 1797 | #endif |
@@ -1825,7 +1825,7 @@ find_save_locs (struct unw_frame_info *info) | |||
1825 | if ((info->ip & (local_cpu_data->unimpl_va_mask | 0xf)) || info->ip < TASK_SIZE) { | 1825 | if ((info->ip & (local_cpu_data->unimpl_va_mask | 0xf)) || info->ip < TASK_SIZE) { |
1826 | /* don't let obviously bad addresses pollute the cache */ | 1826 | /* don't let obviously bad addresses pollute the cache */ |
1827 | /* FIXME: should really be level 0 but it occurs too often. KAO */ | 1827 | /* FIXME: should really be level 0 but it occurs too often. KAO */ |
1828 | UNW_DPRINT(1, "unwind.%s: rejecting bad ip=0x%lx\n", __FUNCTION__, info->ip); | 1828 | UNW_DPRINT(1, "unwind.%s: rejecting bad ip=0x%lx\n", __func__, info->ip); |
1829 | info->rp_loc = NULL; | 1829 | info->rp_loc = NULL; |
1830 | return -1; | 1830 | return -1; |
1831 | } | 1831 | } |
@@ -1838,7 +1838,7 @@ find_save_locs (struct unw_frame_info *info) | |||
1838 | spin_unlock_irqrestore(&unw.lock, flags); | 1838 | spin_unlock_irqrestore(&unw.lock, flags); |
1839 | UNW_DPRINT(0, | 1839 | UNW_DPRINT(0, |
1840 | "unwind.%s: failed to locate/build unwind script for ip %lx\n", | 1840 | "unwind.%s: failed to locate/build unwind script for ip %lx\n", |
1841 | __FUNCTION__, info->ip); | 1841 | __func__, info->ip); |
1842 | return -1; | 1842 | return -1; |
1843 | } | 1843 | } |
1844 | have_write_lock = 1; | 1844 | have_write_lock = 1; |
@@ -1882,21 +1882,21 @@ unw_unwind (struct unw_frame_info *info) | |||
1882 | if (!unw_valid(info, info->rp_loc)) { | 1882 | if (!unw_valid(info, info->rp_loc)) { |
1883 | /* FIXME: should really be level 0 but it occurs too often. KAO */ | 1883 | /* FIXME: should really be level 0 but it occurs too often. KAO */ |
1884 | UNW_DPRINT(1, "unwind.%s: failed to locate return link (ip=0x%lx)!\n", | 1884 | UNW_DPRINT(1, "unwind.%s: failed to locate return link (ip=0x%lx)!\n", |
1885 | __FUNCTION__, info->ip); | 1885 | __func__, info->ip); |
1886 | STAT(unw.stat.api.unwind_time += ia64_get_itc() - start; local_irq_restore(flags)); | 1886 | STAT(unw.stat.api.unwind_time += ia64_get_itc() - start; local_irq_restore(flags)); |
1887 | return -1; | 1887 | return -1; |
1888 | } | 1888 | } |
1889 | /* restore the ip */ | 1889 | /* restore the ip */ |
1890 | ip = info->ip = *info->rp_loc; | 1890 | ip = info->ip = *info->rp_loc; |
1891 | if (ip < GATE_ADDR) { | 1891 | if (ip < GATE_ADDR) { |
1892 | UNW_DPRINT(2, "unwind.%s: reached user-space (ip=0x%lx)\n", __FUNCTION__, ip); | 1892 | UNW_DPRINT(2, "unwind.%s: reached user-space (ip=0x%lx)\n", __func__, ip); |
1893 | STAT(unw.stat.api.unwind_time += ia64_get_itc() - start; local_irq_restore(flags)); | 1893 | STAT(unw.stat.api.unwind_time += ia64_get_itc() - start; local_irq_restore(flags)); |
1894 | return -1; | 1894 | return -1; |
1895 | } | 1895 | } |
1896 | 1896 | ||
1897 | /* validate the previous stack frame pointer */ | 1897 | /* validate the previous stack frame pointer */ |
1898 | if (!unw_valid(info, info->pfs_loc)) { | 1898 | if (!unw_valid(info, info->pfs_loc)) { |
1899 | UNW_DPRINT(0, "unwind.%s: failed to locate ar.pfs!\n", __FUNCTION__); | 1899 | UNW_DPRINT(0, "unwind.%s: failed to locate ar.pfs!\n", __func__); |
1900 | STAT(unw.stat.api.unwind_time += ia64_get_itc() - start; local_irq_restore(flags)); | 1900 | STAT(unw.stat.api.unwind_time += ia64_get_itc() - start; local_irq_restore(flags)); |
1901 | return -1; | 1901 | return -1; |
1902 | } | 1902 | } |
@@ -1912,13 +1912,13 @@ unw_unwind (struct unw_frame_info *info) | |||
1912 | num_regs = *info->cfm_loc & 0x7f; /* size of frame */ | 1912 | num_regs = *info->cfm_loc & 0x7f; /* size of frame */ |
1913 | info->pfs_loc = | 1913 | info->pfs_loc = |
1914 | (unsigned long *) (info->pt + offsetof(struct pt_regs, ar_pfs)); | 1914 | (unsigned long *) (info->pt + offsetof(struct pt_regs, ar_pfs)); |
1915 | UNW_DPRINT(3, "unwind.%s: interrupt_frame pt 0x%lx\n", __FUNCTION__, info->pt); | 1915 | UNW_DPRINT(3, "unwind.%s: interrupt_frame pt 0x%lx\n", __func__, info->pt); |
1916 | } else | 1916 | } else |
1917 | num_regs = (*info->cfm_loc >> 7) & 0x7f; /* size of locals */ | 1917 | num_regs = (*info->cfm_loc >> 7) & 0x7f; /* size of locals */ |
1918 | info->bsp = (unsigned long) ia64_rse_skip_regs((unsigned long *) info->bsp, -num_regs); | 1918 | info->bsp = (unsigned long) ia64_rse_skip_regs((unsigned long *) info->bsp, -num_regs); |
1919 | if (info->bsp < info->regstk.limit || info->bsp > info->regstk.top) { | 1919 | if (info->bsp < info->regstk.limit || info->bsp > info->regstk.top) { |
1920 | UNW_DPRINT(0, "unwind.%s: bsp (0x%lx) out of range [0x%lx-0x%lx]\n", | 1920 | UNW_DPRINT(0, "unwind.%s: bsp (0x%lx) out of range [0x%lx-0x%lx]\n", |
1921 | __FUNCTION__, info->bsp, info->regstk.limit, info->regstk.top); | 1921 | __func__, info->bsp, info->regstk.limit, info->regstk.top); |
1922 | STAT(unw.stat.api.unwind_time += ia64_get_itc() - start; local_irq_restore(flags)); | 1922 | STAT(unw.stat.api.unwind_time += ia64_get_itc() - start; local_irq_restore(flags)); |
1923 | return -1; | 1923 | return -1; |
1924 | } | 1924 | } |
@@ -1927,14 +1927,14 @@ unw_unwind (struct unw_frame_info *info) | |||
1927 | info->sp = info->psp; | 1927 | info->sp = info->psp; |
1928 | if (info->sp < info->memstk.top || info->sp > info->memstk.limit) { | 1928 | if (info->sp < info->memstk.top || info->sp > info->memstk.limit) { |
1929 | UNW_DPRINT(0, "unwind.%s: sp (0x%lx) out of range [0x%lx-0x%lx]\n", | 1929 | UNW_DPRINT(0, "unwind.%s: sp (0x%lx) out of range [0x%lx-0x%lx]\n", |
1930 | __FUNCTION__, info->sp, info->memstk.top, info->memstk.limit); | 1930 | __func__, info->sp, info->memstk.top, info->memstk.limit); |
1931 | STAT(unw.stat.api.unwind_time += ia64_get_itc() - start; local_irq_restore(flags)); | 1931 | STAT(unw.stat.api.unwind_time += ia64_get_itc() - start; local_irq_restore(flags)); |
1932 | return -1; | 1932 | return -1; |
1933 | } | 1933 | } |
1934 | 1934 | ||
1935 | if (info->ip == prev_ip && info->sp == prev_sp && info->bsp == prev_bsp) { | 1935 | if (info->ip == prev_ip && info->sp == prev_sp && info->bsp == prev_bsp) { |
1936 | UNW_DPRINT(0, "unwind.%s: ip, sp, bsp unchanged; stopping here (ip=0x%lx)\n", | 1936 | UNW_DPRINT(0, "unwind.%s: ip, sp, bsp unchanged; stopping here (ip=0x%lx)\n", |
1937 | __FUNCTION__, ip); | 1937 | __func__, ip); |
1938 | STAT(unw.stat.api.unwind_time += ia64_get_itc() - start; local_irq_restore(flags)); | 1938 | STAT(unw.stat.api.unwind_time += ia64_get_itc() - start; local_irq_restore(flags)); |
1939 | return -1; | 1939 | return -1; |
1940 | } | 1940 | } |
@@ -1961,7 +1961,7 @@ unw_unwind_to_user (struct unw_frame_info *info) | |||
1961 | if ((long)((unsigned long)info->task + IA64_STK_OFFSET - sp) | 1961 | if ((long)((unsigned long)info->task + IA64_STK_OFFSET - sp) |
1962 | < IA64_PT_REGS_SIZE) { | 1962 | < IA64_PT_REGS_SIZE) { |
1963 | UNW_DPRINT(0, "unwind.%s: ran off the top of the kernel stack\n", | 1963 | UNW_DPRINT(0, "unwind.%s: ran off the top of the kernel stack\n", |
1964 | __FUNCTION__); | 1964 | __func__); |
1965 | break; | 1965 | break; |
1966 | } | 1966 | } |
1967 | if (unw_is_intr_frame(info) && | 1967 | if (unw_is_intr_frame(info) && |
@@ -1971,13 +1971,13 @@ unw_unwind_to_user (struct unw_frame_info *info) | |||
1971 | unw_get_rp(info, &ip); | 1971 | unw_get_rp(info, &ip); |
1972 | UNW_DPRINT(0, "unwind.%s: failed to read " | 1972 | UNW_DPRINT(0, "unwind.%s: failed to read " |
1973 | "predicate register (ip=0x%lx)\n", | 1973 | "predicate register (ip=0x%lx)\n", |
1974 | __FUNCTION__, ip); | 1974 | __func__, ip); |
1975 | return -1; | 1975 | return -1; |
1976 | } | 1976 | } |
1977 | } while (unw_unwind(info) >= 0); | 1977 | } while (unw_unwind(info) >= 0); |
1978 | unw_get_ip(info, &ip); | 1978 | unw_get_ip(info, &ip); |
1979 | UNW_DPRINT(0, "unwind.%s: failed to unwind to user-level (ip=0x%lx)\n", | 1979 | UNW_DPRINT(0, "unwind.%s: failed to unwind to user-level (ip=0x%lx)\n", |
1980 | __FUNCTION__, ip); | 1980 | __func__, ip); |
1981 | return -1; | 1981 | return -1; |
1982 | } | 1982 | } |
1983 | EXPORT_SYMBOL(unw_unwind_to_user); | 1983 | EXPORT_SYMBOL(unw_unwind_to_user); |
@@ -2028,7 +2028,7 @@ init_frame_info (struct unw_frame_info *info, struct task_struct *t, | |||
2028 | " pr 0x%lx\n" | 2028 | " pr 0x%lx\n" |
2029 | " sw 0x%lx\n" | 2029 | " sw 0x%lx\n" |
2030 | " sp 0x%lx\n", | 2030 | " sp 0x%lx\n", |
2031 | __FUNCTION__, (unsigned long) t, rbslimit, rbstop, stktop, stklimit, | 2031 | __func__, (unsigned long) t, rbslimit, rbstop, stktop, stklimit, |
2032 | info->pr, (unsigned long) info->sw, info->sp); | 2032 | info->pr, (unsigned long) info->sw, info->sp); |
2033 | STAT(unw.stat.api.init_time += ia64_get_itc() - start; local_irq_restore(flags)); | 2033 | STAT(unw.stat.api.init_time += ia64_get_itc() - start; local_irq_restore(flags)); |
2034 | } | 2034 | } |
@@ -2047,7 +2047,7 @@ unw_init_frame_info (struct unw_frame_info *info, struct task_struct *t, struct | |||
2047 | " bsp 0x%lx\n" | 2047 | " bsp 0x%lx\n" |
2048 | " sol 0x%lx\n" | 2048 | " sol 0x%lx\n" |
2049 | " ip 0x%lx\n", | 2049 | " ip 0x%lx\n", |
2050 | __FUNCTION__, info->bsp, sol, info->ip); | 2050 | __func__, info->bsp, sol, info->ip); |
2051 | find_save_locs(info); | 2051 | find_save_locs(info); |
2052 | } | 2052 | } |
2053 | 2053 | ||
@@ -2058,7 +2058,7 @@ unw_init_from_blocked_task (struct unw_frame_info *info, struct task_struct *t) | |||
2058 | { | 2058 | { |
2059 | struct switch_stack *sw = (struct switch_stack *) (t->thread.ksp + 16); | 2059 | struct switch_stack *sw = (struct switch_stack *) (t->thread.ksp + 16); |
2060 | 2060 | ||
2061 | UNW_DPRINT(1, "unwind.%s\n", __FUNCTION__); | 2061 | UNW_DPRINT(1, "unwind.%s\n", __func__); |
2062 | unw_init_frame_info(info, t, sw); | 2062 | unw_init_frame_info(info, t, sw); |
2063 | } | 2063 | } |
2064 | EXPORT_SYMBOL(unw_init_from_blocked_task); | 2064 | EXPORT_SYMBOL(unw_init_from_blocked_task); |
@@ -2088,7 +2088,7 @@ unw_add_unwind_table (const char *name, unsigned long segment_base, unsigned lon | |||
2088 | 2088 | ||
2089 | if (end - start <= 0) { | 2089 | if (end - start <= 0) { |
2090 | UNW_DPRINT(0, "unwind.%s: ignoring attempt to insert empty unwind table\n", | 2090 | UNW_DPRINT(0, "unwind.%s: ignoring attempt to insert empty unwind table\n", |
2091 | __FUNCTION__); | 2091 | __func__); |
2092 | return NULL; | 2092 | return NULL; |
2093 | } | 2093 | } |
2094 | 2094 | ||
@@ -2119,14 +2119,14 @@ unw_remove_unwind_table (void *handle) | |||
2119 | 2119 | ||
2120 | if (!handle) { | 2120 | if (!handle) { |
2121 | UNW_DPRINT(0, "unwind.%s: ignoring attempt to remove non-existent unwind table\n", | 2121 | UNW_DPRINT(0, "unwind.%s: ignoring attempt to remove non-existent unwind table\n", |
2122 | __FUNCTION__); | 2122 | __func__); |
2123 | return; | 2123 | return; |
2124 | } | 2124 | } |
2125 | 2125 | ||
2126 | table = handle; | 2126 | table = handle; |
2127 | if (table == &unw.kernel_table) { | 2127 | if (table == &unw.kernel_table) { |
2128 | UNW_DPRINT(0, "unwind.%s: sorry, freeing the kernel's unwind table is a " | 2128 | UNW_DPRINT(0, "unwind.%s: sorry, freeing the kernel's unwind table is a " |
2129 | "no-can-do!\n", __FUNCTION__); | 2129 | "no-can-do!\n", __func__); |
2130 | return; | 2130 | return; |
2131 | } | 2131 | } |
2132 | 2132 | ||
@@ -2139,7 +2139,7 @@ unw_remove_unwind_table (void *handle) | |||
2139 | break; | 2139 | break; |
2140 | if (!prev) { | 2140 | if (!prev) { |
2141 | UNW_DPRINT(0, "unwind.%s: failed to find unwind table %p\n", | 2141 | UNW_DPRINT(0, "unwind.%s: failed to find unwind table %p\n", |
2142 | __FUNCTION__, (void *) table); | 2142 | __func__, (void *) table); |
2143 | spin_unlock_irqrestore(&unw.lock, flags); | 2143 | spin_unlock_irqrestore(&unw.lock, flags); |
2144 | return; | 2144 | return; |
2145 | } | 2145 | } |
@@ -2185,7 +2185,7 @@ create_gate_table (void) | |||
2185 | } | 2185 | } |
2186 | 2186 | ||
2187 | if (!punw) { | 2187 | if (!punw) { |
2188 | printk("%s: failed to find gate DSO's unwind table!\n", __FUNCTION__); | 2188 | printk("%s: failed to find gate DSO's unwind table!\n", __func__); |
2189 | return 0; | 2189 | return 0; |
2190 | } | 2190 | } |
2191 | 2191 | ||
@@ -2202,7 +2202,7 @@ create_gate_table (void) | |||
2202 | unw.gate_table = kmalloc(size, GFP_KERNEL); | 2202 | unw.gate_table = kmalloc(size, GFP_KERNEL); |
2203 | if (!unw.gate_table) { | 2203 | if (!unw.gate_table) { |
2204 | unw.gate_table_size = 0; | 2204 | unw.gate_table_size = 0; |
2205 | printk(KERN_ERR "%s: unable to create unwind data for gate page!\n", __FUNCTION__); | 2205 | printk(KERN_ERR "%s: unable to create unwind data for gate page!\n", __func__); |
2206 | return 0; | 2206 | return 0; |
2207 | } | 2207 | } |
2208 | unw.gate_table_size = size; | 2208 | unw.gate_table_size = size; |
diff --git a/arch/ia64/mm/fault.c b/arch/ia64/mm/fault.c index 3e69881648..23088bed11 100644 --- a/arch/ia64/mm/fault.c +++ b/arch/ia64/mm/fault.c | |||
@@ -26,7 +26,7 @@ static inline int notify_page_fault(struct pt_regs *regs, int trap) | |||
26 | if (!user_mode(regs)) { | 26 | if (!user_mode(regs)) { |
27 | /* kprobe_running() needs smp_processor_id() */ | 27 | /* kprobe_running() needs smp_processor_id() */ |
28 | preempt_disable(); | 28 | preempt_disable(); |
29 | if (kprobe_running() && kprobes_fault_handler(regs, trap)) | 29 | if (kprobe_running() && kprobe_fault_handler(regs, trap)) |
30 | ret = 1; | 30 | ret = 1; |
31 | preempt_enable(); | 31 | preempt_enable(); |
32 | } | 32 | } |
diff --git a/arch/ia64/mm/init.c b/arch/ia64/mm/init.c index 25aef6211a..a4ca657c72 100644 --- a/arch/ia64/mm/init.c +++ b/arch/ia64/mm/init.c | |||
@@ -714,7 +714,7 @@ int arch_add_memory(int nid, u64 start, u64 size) | |||
714 | 714 | ||
715 | if (ret) | 715 | if (ret) |
716 | printk("%s: Problem encountered in __add_pages() as ret=%d\n", | 716 | printk("%s: Problem encountered in __add_pages() as ret=%d\n", |
717 | __FUNCTION__, ret); | 717 | __func__, ret); |
718 | 718 | ||
719 | return ret; | 719 | return ret; |
720 | } | 720 | } |
diff --git a/arch/ia64/pci/fixup.c b/arch/ia64/pci/fixup.c index 245dc1fedc..f5959c0c18 100644 --- a/arch/ia64/pci/fixup.c +++ b/arch/ia64/pci/fixup.c | |||
@@ -63,7 +63,7 @@ static void __devinit pci_fixup_video(struct pci_dev *pdev) | |||
63 | pci_read_config_word(pdev, PCI_COMMAND, &config); | 63 | pci_read_config_word(pdev, PCI_COMMAND, &config); |
64 | if (config & (PCI_COMMAND_IO | PCI_COMMAND_MEMORY)) { | 64 | if (config & (PCI_COMMAND_IO | PCI_COMMAND_MEMORY)) { |
65 | pdev->resource[PCI_ROM_RESOURCE].flags |= IORESOURCE_ROM_SHADOW; | 65 | pdev->resource[PCI_ROM_RESOURCE].flags |= IORESOURCE_ROM_SHADOW; |
66 | printk(KERN_DEBUG "Boot video device is %s\n", pci_name(pdev)); | 66 | dev_printk(KERN_DEBUG, &pdev->dev, "Boot video device\n"); |
67 | } | 67 | } |
68 | } | 68 | } |
69 | DECLARE_PCI_FIXUP_HEADER(PCI_ANY_ID, PCI_ANY_ID, pci_fixup_video); | 69 | DECLARE_PCI_FIXUP_HEADER(PCI_ANY_ID, PCI_ANY_ID, pci_fixup_video); |
diff --git a/arch/ia64/pci/pci.c b/arch/ia64/pci/pci.c index 8fd7e82519..e282c348dc 100644 --- a/arch/ia64/pci/pci.c +++ b/arch/ia64/pci/pci.c | |||
@@ -765,7 +765,7 @@ static void __init set_pci_cacheline_size(void) | |||
765 | status = ia64_pal_cache_summary(&levels, &unique_caches); | 765 | status = ia64_pal_cache_summary(&levels, &unique_caches); |
766 | if (status != 0) { | 766 | if (status != 0) { |
767 | printk(KERN_ERR "%s: ia64_pal_cache_summary() failed " | 767 | printk(KERN_ERR "%s: ia64_pal_cache_summary() failed " |
768 | "(status=%ld)\n", __FUNCTION__, status); | 768 | "(status=%ld)\n", __func__, status); |
769 | return; | 769 | return; |
770 | } | 770 | } |
771 | 771 | ||
@@ -773,7 +773,7 @@ static void __init set_pci_cacheline_size(void) | |||
773 | /* cache_type (data_or_unified)= */ 2, &cci); | 773 | /* cache_type (data_or_unified)= */ 2, &cci); |
774 | if (status != 0) { | 774 | if (status != 0) { |
775 | printk(KERN_ERR "%s: ia64_pal_cache_config_info() failed " | 775 | printk(KERN_ERR "%s: ia64_pal_cache_config_info() failed " |
776 | "(status=%ld)\n", __FUNCTION__, status); | 776 | "(status=%ld)\n", __func__, status); |
777 | return; | 777 | return; |
778 | } | 778 | } |
779 | pci_cache_line_size = (1 << cci.pcci_line_size) / 4; | 779 | pci_cache_line_size = (1 << cci.pcci_line_size) / 4; |
diff --git a/arch/ia64/sn/kernel/huberror.c b/arch/ia64/sn/kernel/huberror.c index b663168da5..0101c7924a 100644 --- a/arch/ia64/sn/kernel/huberror.c +++ b/arch/ia64/sn/kernel/huberror.c | |||
@@ -37,7 +37,7 @@ static irqreturn_t hub_eint_handler(int irq, void *arg) | |||
37 | (u64) nasid, 0, 0, 0, 0, 0, 0); | 37 | (u64) nasid, 0, 0, 0, 0, 0, 0); |
38 | 38 | ||
39 | if ((int)ret_stuff.v0) | 39 | if ((int)ret_stuff.v0) |
40 | panic("%s: Fatal %s Error", __FUNCTION__, | 40 | panic("%s: Fatal %s Error", __func__, |
41 | ((nasid & 1) ? "TIO" : "HUBII")); | 41 | ((nasid & 1) ? "TIO" : "HUBII")); |
42 | 42 | ||
43 | if (!(nasid & 1)) /* Not a TIO, handle CRB errors */ | 43 | if (!(nasid & 1)) /* Not a TIO, handle CRB errors */ |
@@ -48,7 +48,7 @@ static irqreturn_t hub_eint_handler(int irq, void *arg) | |||
48 | (u64) nasid, 0, 0, 0, 0, 0, 0); | 48 | (u64) nasid, 0, 0, 0, 0, 0, 0); |
49 | 49 | ||
50 | if ((int)ret_stuff.v0) | 50 | if ((int)ret_stuff.v0) |
51 | panic("%s: Fatal TIO Error", __FUNCTION__); | 51 | panic("%s: Fatal TIO Error", __func__); |
52 | } else | 52 | } else |
53 | bte_error_handler((unsigned long)NODEPDA(nasid_to_cnodeid(nasid))); | 53 | bte_error_handler((unsigned long)NODEPDA(nasid_to_cnodeid(nasid))); |
54 | 54 | ||
diff --git a/arch/ia64/sn/kernel/io_acpi_init.c b/arch/ia64/sn/kernel/io_acpi_init.c index 3c7178f5dc..6568942a95 100644 --- a/arch/ia64/sn/kernel/io_acpi_init.c +++ b/arch/ia64/sn/kernel/io_acpi_init.c | |||
@@ -133,7 +133,7 @@ sn_get_bussoft_ptr(struct pci_bus *bus) | |||
133 | if (ACPI_FAILURE(status)) { | 133 | if (ACPI_FAILURE(status)) { |
134 | printk(KERN_ERR "%s: " | 134 | printk(KERN_ERR "%s: " |
135 | "acpi_get_vendor_resource() failed (0x%x) for: ", | 135 | "acpi_get_vendor_resource() failed (0x%x) for: ", |
136 | __FUNCTION__, status); | 136 | __func__, status); |
137 | acpi_ns_print_node_pathname(handle, NULL); | 137 | acpi_ns_print_node_pathname(handle, NULL); |
138 | printk("\n"); | 138 | printk("\n"); |
139 | return NULL; | 139 | return NULL; |
@@ -145,7 +145,7 @@ sn_get_bussoft_ptr(struct pci_bus *bus) | |||
145 | sizeof(struct pcibus_bussoft *)) { | 145 | sizeof(struct pcibus_bussoft *)) { |
146 | printk(KERN_ERR | 146 | printk(KERN_ERR |
147 | "%s: Invalid vendor data length %d\n", | 147 | "%s: Invalid vendor data length %d\n", |
148 | __FUNCTION__, vendor->byte_length); | 148 | __func__, vendor->byte_length); |
149 | kfree(buffer.pointer); | 149 | kfree(buffer.pointer); |
150 | return NULL; | 150 | return NULL; |
151 | } | 151 | } |
@@ -184,7 +184,7 @@ sn_extract_device_info(acpi_handle handle, struct pcidev_info **pcidev_info, | |||
184 | if (ACPI_FAILURE(status)) { | 184 | if (ACPI_FAILURE(status)) { |
185 | printk(KERN_ERR | 185 | printk(KERN_ERR |
186 | "%s: acpi_get_vendor_resource() failed (0x%x) for: ", | 186 | "%s: acpi_get_vendor_resource() failed (0x%x) for: ", |
187 | __FUNCTION__, status); | 187 | __func__, status); |
188 | acpi_ns_print_node_pathname(handle, NULL); | 188 | acpi_ns_print_node_pathname(handle, NULL); |
189 | printk("\n"); | 189 | printk("\n"); |
190 | return 1; | 190 | return 1; |
@@ -196,7 +196,7 @@ sn_extract_device_info(acpi_handle handle, struct pcidev_info **pcidev_info, | |||
196 | sizeof(struct pci_devdev_info *)) { | 196 | sizeof(struct pci_devdev_info *)) { |
197 | printk(KERN_ERR | 197 | printk(KERN_ERR |
198 | "%s: Invalid vendor data length: %d for: ", | 198 | "%s: Invalid vendor data length: %d for: ", |
199 | __FUNCTION__, vendor->byte_length); | 199 | __func__, vendor->byte_length); |
200 | acpi_ns_print_node_pathname(handle, NULL); | 200 | acpi_ns_print_node_pathname(handle, NULL); |
201 | printk("\n"); | 201 | printk("\n"); |
202 | ret = 1; | 202 | ret = 1; |
@@ -205,7 +205,7 @@ sn_extract_device_info(acpi_handle handle, struct pcidev_info **pcidev_info, | |||
205 | 205 | ||
206 | pcidev_ptr = kzalloc(sizeof(struct pcidev_info), GFP_KERNEL); | 206 | pcidev_ptr = kzalloc(sizeof(struct pcidev_info), GFP_KERNEL); |
207 | if (!pcidev_ptr) | 207 | if (!pcidev_ptr) |
208 | panic("%s: Unable to alloc memory for pcidev_info", __FUNCTION__); | 208 | panic("%s: Unable to alloc memory for pcidev_info", __func__); |
209 | 209 | ||
210 | memcpy(&addr, vendor->byte_data, sizeof(struct pcidev_info *)); | 210 | memcpy(&addr, vendor->byte_data, sizeof(struct pcidev_info *)); |
211 | pcidev_prom_ptr = __va(addr); | 211 | pcidev_prom_ptr = __va(addr); |
@@ -214,7 +214,7 @@ sn_extract_device_info(acpi_handle handle, struct pcidev_info **pcidev_info, | |||
214 | /* Get the IRQ info */ | 214 | /* Get the IRQ info */ |
215 | irq_info = kzalloc(sizeof(struct sn_irq_info), GFP_KERNEL); | 215 | irq_info = kzalloc(sizeof(struct sn_irq_info), GFP_KERNEL); |
216 | if (!irq_info) | 216 | if (!irq_info) |
217 | panic("%s: Unable to alloc memory for sn_irq_info", __FUNCTION__); | 217 | panic("%s: Unable to alloc memory for sn_irq_info", __func__); |
218 | 218 | ||
219 | if (pcidev_ptr->pdi_sn_irq_info) { | 219 | if (pcidev_ptr->pdi_sn_irq_info) { |
220 | irq_info_prom = __va(pcidev_ptr->pdi_sn_irq_info); | 220 | irq_info_prom = __va(pcidev_ptr->pdi_sn_irq_info); |
@@ -249,10 +249,10 @@ get_host_devfn(acpi_handle device_handle, acpi_handle rootbus_handle) | |||
249 | status = acpi_get_parent(child, &parent); | 249 | status = acpi_get_parent(child, &parent); |
250 | if (ACPI_FAILURE(status)) { | 250 | if (ACPI_FAILURE(status)) { |
251 | printk(KERN_ERR "%s: acpi_get_parent() failed " | 251 | printk(KERN_ERR "%s: acpi_get_parent() failed " |
252 | "(0x%x) for: ", __FUNCTION__, status); | 252 | "(0x%x) for: ", __func__, status); |
253 | acpi_ns_print_node_pathname(child, NULL); | 253 | acpi_ns_print_node_pathname(child, NULL); |
254 | printk("\n"); | 254 | printk("\n"); |
255 | panic("%s: Unable to find host devfn\n", __FUNCTION__); | 255 | panic("%s: Unable to find host devfn\n", __func__); |
256 | } | 256 | } |
257 | if (parent == rootbus_handle) | 257 | if (parent == rootbus_handle) |
258 | break; | 258 | break; |
@@ -260,7 +260,7 @@ get_host_devfn(acpi_handle device_handle, acpi_handle rootbus_handle) | |||
260 | } | 260 | } |
261 | if (!child) { | 261 | if (!child) { |
262 | printk(KERN_ERR "%s: Unable to find root bus for: ", | 262 | printk(KERN_ERR "%s: Unable to find root bus for: ", |
263 | __FUNCTION__); | 263 | __func__); |
264 | acpi_ns_print_node_pathname(device_handle, NULL); | 264 | acpi_ns_print_node_pathname(device_handle, NULL); |
265 | printk("\n"); | 265 | printk("\n"); |
266 | BUG(); | 266 | BUG(); |
@@ -269,10 +269,10 @@ get_host_devfn(acpi_handle device_handle, acpi_handle rootbus_handle) | |||
269 | status = acpi_evaluate_integer(child, METHOD_NAME__ADR, NULL, &adr); | 269 | status = acpi_evaluate_integer(child, METHOD_NAME__ADR, NULL, &adr); |
270 | if (ACPI_FAILURE(status)) { | 270 | if (ACPI_FAILURE(status)) { |
271 | printk(KERN_ERR "%s: Unable to get _ADR (0x%x) for: ", | 271 | printk(KERN_ERR "%s: Unable to get _ADR (0x%x) for: ", |
272 | __FUNCTION__, status); | 272 | __func__, status); |
273 | acpi_ns_print_node_pathname(child, NULL); | 273 | acpi_ns_print_node_pathname(child, NULL); |
274 | printk("\n"); | 274 | printk("\n"); |
275 | panic("%s: Unable to find host devfn\n", __FUNCTION__); | 275 | panic("%s: Unable to find host devfn\n", __func__); |
276 | } | 276 | } |
277 | 277 | ||
278 | slot = (adr >> 16) & 0xffff; | 278 | slot = (adr >> 16) & 0xffff; |
@@ -308,7 +308,7 @@ find_matching_device(acpi_handle handle, u32 lvl, void *context, void **rv) | |||
308 | if (ACPI_FAILURE(status)) { | 308 | if (ACPI_FAILURE(status)) { |
309 | printk(KERN_ERR | 309 | printk(KERN_ERR |
310 | "%s: acpi_get_parent() failed (0x%x) for: ", | 310 | "%s: acpi_get_parent() failed (0x%x) for: ", |
311 | __FUNCTION__, status); | 311 | __func__, status); |
312 | acpi_ns_print_node_pathname(handle, NULL); | 312 | acpi_ns_print_node_pathname(handle, NULL); |
313 | printk("\n"); | 313 | printk("\n"); |
314 | return AE_OK; | 314 | return AE_OK; |
@@ -318,7 +318,7 @@ find_matching_device(acpi_handle handle, u32 lvl, void *context, void **rv) | |||
318 | if (ACPI_FAILURE(status)) { | 318 | if (ACPI_FAILURE(status)) { |
319 | printk(KERN_ERR | 319 | printk(KERN_ERR |
320 | "%s: Failed to find _BBN in parent of: ", | 320 | "%s: Failed to find _BBN in parent of: ", |
321 | __FUNCTION__); | 321 | __func__); |
322 | acpi_ns_print_node_pathname(handle, NULL); | 322 | acpi_ns_print_node_pathname(handle, NULL); |
323 | printk("\n"); | 323 | printk("\n"); |
324 | return AE_OK; | 324 | return AE_OK; |
@@ -358,14 +358,14 @@ sn_acpi_get_pcidev_info(struct pci_dev *dev, struct pcidev_info **pcidev_info, | |||
358 | if (segment != pci_domain_nr(dev)) { | 358 | if (segment != pci_domain_nr(dev)) { |
359 | printk(KERN_ERR | 359 | printk(KERN_ERR |
360 | "%s: Segment number mismatch, 0x%lx vs 0x%x for: ", | 360 | "%s: Segment number mismatch, 0x%lx vs 0x%x for: ", |
361 | __FUNCTION__, segment, pci_domain_nr(dev)); | 361 | __func__, segment, pci_domain_nr(dev)); |
362 | acpi_ns_print_node_pathname(rootbus_handle, NULL); | 362 | acpi_ns_print_node_pathname(rootbus_handle, NULL); |
363 | printk("\n"); | 363 | printk("\n"); |
364 | return 1; | 364 | return 1; |
365 | } | 365 | } |
366 | } else { | 366 | } else { |
367 | printk(KERN_ERR "%s: Unable to get __SEG from: ", | 367 | printk(KERN_ERR "%s: Unable to get __SEG from: ", |
368 | __FUNCTION__); | 368 | __func__); |
369 | acpi_ns_print_node_pathname(rootbus_handle, NULL); | 369 | acpi_ns_print_node_pathname(rootbus_handle, NULL); |
370 | printk("\n"); | 370 | printk("\n"); |
371 | return 1; | 371 | return 1; |
@@ -386,7 +386,7 @@ sn_acpi_get_pcidev_info(struct pci_dev *dev, struct pcidev_info **pcidev_info, | |||
386 | if (!pcidev_match.handle) { | 386 | if (!pcidev_match.handle) { |
387 | printk(KERN_ERR | 387 | printk(KERN_ERR |
388 | "%s: Could not find matching ACPI device for %s.\n", | 388 | "%s: Could not find matching ACPI device for %s.\n", |
389 | __FUNCTION__, pci_name(dev)); | 389 | __func__, pci_name(dev)); |
390 | return 1; | 390 | return 1; |
391 | } | 391 | } |
392 | 392 | ||
@@ -422,7 +422,7 @@ sn_acpi_slot_fixup(struct pci_dev *dev) | |||
422 | 422 | ||
423 | if (sn_acpi_get_pcidev_info(dev, &pcidev_info, &sn_irq_info)) { | 423 | if (sn_acpi_get_pcidev_info(dev, &pcidev_info, &sn_irq_info)) { |
424 | panic("%s: Failure obtaining pcidev_info for %s\n", | 424 | panic("%s: Failure obtaining pcidev_info for %s\n", |
425 | __FUNCTION__, pci_name(dev)); | 425 | __func__, pci_name(dev)); |
426 | } | 426 | } |
427 | 427 | ||
428 | if (pcidev_info->pdi_pio_mapped_addr[PCI_ROM_RESOURCE]) { | 428 | if (pcidev_info->pdi_pio_mapped_addr[PCI_ROM_RESOURCE]) { |
@@ -463,7 +463,7 @@ sn_acpi_bus_fixup(struct pci_bus *bus) | |||
463 | printk(KERN_ERR | 463 | printk(KERN_ERR |
464 | "%s: 0x%04x:0x%02x Unable to " | 464 | "%s: 0x%04x:0x%02x Unable to " |
465 | "obtain prom_bussoft_ptr\n", | 465 | "obtain prom_bussoft_ptr\n", |
466 | __FUNCTION__, pci_domain_nr(bus), bus->number); | 466 | __func__, pci_domain_nr(bus), bus->number); |
467 | return; | 467 | return; |
468 | } | 468 | } |
469 | sn_common_bus_fixup(bus, prom_bussoft_ptr); | 469 | sn_common_bus_fixup(bus, prom_bussoft_ptr); |
diff --git a/arch/ia64/sn/kernel/io_common.c b/arch/ia64/sn/kernel/io_common.c index c4eb84f9e7..8a924a5661 100644 --- a/arch/ia64/sn/kernel/io_common.c +++ b/arch/ia64/sn/kernel/io_common.c | |||
@@ -364,7 +364,7 @@ void sn_bus_store_sysdata(struct pci_dev *dev) | |||
364 | 364 | ||
365 | element = kzalloc(sizeof(struct sysdata_el), GFP_KERNEL); | 365 | element = kzalloc(sizeof(struct sysdata_el), GFP_KERNEL); |
366 | if (!element) { | 366 | if (!element) { |
367 | dev_dbg(&dev->dev, "%s: out of memory!\n", __FUNCTION__); | 367 | dev_dbg(&dev->dev, "%s: out of memory!\n", __func__); |
368 | return; | 368 | return; |
369 | } | 369 | } |
370 | element->sysdata = SN_PCIDEV_INFO(dev); | 370 | element->sysdata = SN_PCIDEV_INFO(dev); |
diff --git a/arch/ia64/sn/kernel/io_init.c b/arch/ia64/sn/kernel/io_init.c index 906b93674b..c3aa851d1c 100644 --- a/arch/ia64/sn/kernel/io_init.c +++ b/arch/ia64/sn/kernel/io_init.c | |||
@@ -209,11 +209,11 @@ sn_io_slot_fixup(struct pci_dev *dev) | |||
209 | 209 | ||
210 | pcidev_info = kzalloc(sizeof(struct pcidev_info), GFP_KERNEL); | 210 | pcidev_info = kzalloc(sizeof(struct pcidev_info), GFP_KERNEL); |
211 | if (!pcidev_info) | 211 | if (!pcidev_info) |
212 | panic("%s: Unable to alloc memory for pcidev_info", __FUNCTION__); | 212 | panic("%s: Unable to alloc memory for pcidev_info", __func__); |
213 | 213 | ||
214 | sn_irq_info = kzalloc(sizeof(struct sn_irq_info), GFP_KERNEL); | 214 | sn_irq_info = kzalloc(sizeof(struct sn_irq_info), GFP_KERNEL); |
215 | if (!sn_irq_info) | 215 | if (!sn_irq_info) |
216 | panic("%s: Unable to alloc memory for sn_irq_info", __FUNCTION__); | 216 | panic("%s: Unable to alloc memory for sn_irq_info", __func__); |
217 | 217 | ||
218 | /* Call to retrieve pci device information needed by kernel. */ | 218 | /* Call to retrieve pci device information needed by kernel. */ |
219 | status = sal_get_pcidev_info((u64) pci_domain_nr(dev), | 219 | status = sal_get_pcidev_info((u64) pci_domain_nr(dev), |
diff --git a/arch/ia64/sn/kernel/mca.c b/arch/ia64/sn/kernel/mca.c index 868c9aa64f..27793f7aa9 100644 --- a/arch/ia64/sn/kernel/mca.c +++ b/arch/ia64/sn/kernel/mca.c | |||
@@ -100,7 +100,7 @@ sn_platform_plat_specific_err_print(const u8 * sect_header, u8 ** oemdata, | |||
100 | if (!newbuf) { | 100 | if (!newbuf) { |
101 | mutex_unlock(&sn_oemdata_mutex); | 101 | mutex_unlock(&sn_oemdata_mutex); |
102 | printk(KERN_ERR "%s: unable to extend sn_oemdata\n", | 102 | printk(KERN_ERR "%s: unable to extend sn_oemdata\n", |
103 | __FUNCTION__); | 103 | __func__); |
104 | return 1; | 104 | return 1; |
105 | } | 105 | } |
106 | vfree(*sn_oemdata); | 106 | vfree(*sn_oemdata); |
diff --git a/arch/ia64/sn/pci/pci_dma.c b/arch/ia64/sn/pci/pci_dma.c index 511db2fd7b..18b94b792d 100644 --- a/arch/ia64/sn/pci/pci_dma.c +++ b/arch/ia64/sn/pci/pci_dma.c | |||
@@ -116,7 +116,7 @@ void *sn_dma_alloc_coherent(struct device *dev, size_t size, | |||
116 | *dma_handle = provider->dma_map_consistent(pdev, phys_addr, size, | 116 | *dma_handle = provider->dma_map_consistent(pdev, phys_addr, size, |
117 | SN_DMA_ADDR_PHYS); | 117 | SN_DMA_ADDR_PHYS); |
118 | if (!*dma_handle) { | 118 | if (!*dma_handle) { |
119 | printk(KERN_ERR "%s: out of ATEs\n", __FUNCTION__); | 119 | printk(KERN_ERR "%s: out of ATEs\n", __func__); |
120 | free_pages((unsigned long)cpuaddr, get_order(size)); | 120 | free_pages((unsigned long)cpuaddr, get_order(size)); |
121 | return NULL; | 121 | return NULL; |
122 | } | 122 | } |
@@ -179,7 +179,7 @@ dma_addr_t sn_dma_map_single(struct device *dev, void *cpu_addr, size_t size, | |||
179 | phys_addr = __pa(cpu_addr); | 179 | phys_addr = __pa(cpu_addr); |
180 | dma_addr = provider->dma_map(pdev, phys_addr, size, SN_DMA_ADDR_PHYS); | 180 | dma_addr = provider->dma_map(pdev, phys_addr, size, SN_DMA_ADDR_PHYS); |
181 | if (!dma_addr) { | 181 | if (!dma_addr) { |
182 | printk(KERN_ERR "%s: out of ATEs\n", __FUNCTION__); | 182 | printk(KERN_ERR "%s: out of ATEs\n", __func__); |
183 | return 0; | 183 | return 0; |
184 | } | 184 | } |
185 | return dma_addr; | 185 | return dma_addr; |
@@ -266,7 +266,7 @@ int sn_dma_map_sg(struct device *dev, struct scatterlist *sgl, int nhwentries, | |||
266 | SN_DMA_ADDR_PHYS); | 266 | SN_DMA_ADDR_PHYS); |
267 | 267 | ||
268 | if (!sg->dma_address) { | 268 | if (!sg->dma_address) { |
269 | printk(KERN_ERR "%s: out of ATEs\n", __FUNCTION__); | 269 | printk(KERN_ERR "%s: out of ATEs\n", __func__); |
270 | 270 | ||
271 | /* | 271 | /* |
272 | * Free any successfully allocated entries. | 272 | * Free any successfully allocated entries. |
diff --git a/arch/ia64/sn/pci/tioca_provider.c b/arch/ia64/sn/pci/tioca_provider.c index ef048a6747..529462c015 100644 --- a/arch/ia64/sn/pci/tioca_provider.c +++ b/arch/ia64/sn/pci/tioca_provider.c | |||
@@ -88,7 +88,7 @@ tioca_gart_init(struct tioca_kernel *tioca_kern) | |||
88 | break; | 88 | break; |
89 | default: | 89 | default: |
90 | printk(KERN_ERR "%s: Invalid CA_APERATURE_SIZE " | 90 | printk(KERN_ERR "%s: Invalid CA_APERATURE_SIZE " |
91 | "0x%lx\n", __FUNCTION__, (ulong) CA_APERATURE_SIZE); | 91 | "0x%lx\n", __func__, (ulong) CA_APERATURE_SIZE); |
92 | return -1; | 92 | return -1; |
93 | } | 93 | } |
94 | 94 | ||
@@ -124,7 +124,7 @@ tioca_gart_init(struct tioca_kernel *tioca_kern) | |||
124 | if (!tmp) { | 124 | if (!tmp) { |
125 | printk(KERN_ERR "%s: Could not allocate " | 125 | printk(KERN_ERR "%s: Could not allocate " |
126 | "%lu bytes (order %d) for GART\n", | 126 | "%lu bytes (order %d) for GART\n", |
127 | __FUNCTION__, | 127 | __func__, |
128 | tioca_kern->ca_gart_size, | 128 | tioca_kern->ca_gart_size, |
129 | get_order(tioca_kern->ca_gart_size)); | 129 | get_order(tioca_kern->ca_gart_size)); |
130 | return -ENOMEM; | 130 | return -ENOMEM; |
@@ -341,7 +341,7 @@ tioca_dma_d48(struct pci_dev *pdev, u64 paddr) | |||
341 | 341 | ||
342 | if (node_upper > 64) { | 342 | if (node_upper > 64) { |
343 | printk(KERN_ERR "%s: coretalk addr 0x%p node id out " | 343 | printk(KERN_ERR "%s: coretalk addr 0x%p node id out " |
344 | "of range\n", __FUNCTION__, (void *)ct_addr); | 344 | "of range\n", __func__, (void *)ct_addr); |
345 | return 0; | 345 | return 0; |
346 | } | 346 | } |
347 | 347 | ||
@@ -349,7 +349,7 @@ tioca_dma_d48(struct pci_dev *pdev, u64 paddr) | |||
349 | if (node_upper != (agp_dma_extn >> CA_AGP_DMA_NODE_ID_SHFT)) { | 349 | if (node_upper != (agp_dma_extn >> CA_AGP_DMA_NODE_ID_SHFT)) { |
350 | printk(KERN_ERR "%s: coretalk upper node (%u) " | 350 | printk(KERN_ERR "%s: coretalk upper node (%u) " |
351 | "mismatch with ca_agp_dma_addr_extn (%lu)\n", | 351 | "mismatch with ca_agp_dma_addr_extn (%lu)\n", |
352 | __FUNCTION__, | 352 | __func__, |
353 | node_upper, (agp_dma_extn >> CA_AGP_DMA_NODE_ID_SHFT)); | 353 | node_upper, (agp_dma_extn >> CA_AGP_DMA_NODE_ID_SHFT)); |
354 | return 0; | 354 | return 0; |
355 | } | 355 | } |
@@ -597,7 +597,7 @@ tioca_bus_fixup(struct pcibus_bussoft *prom_bussoft, struct pci_controller *cont | |||
597 | if (is_shub1() && sn_sal_rev() < 0x0406) { | 597 | if (is_shub1() && sn_sal_rev() < 0x0406) { |
598 | printk | 598 | printk |
599 | (KERN_ERR "%s: SGI prom rev 4.06 or greater required " | 599 | (KERN_ERR "%s: SGI prom rev 4.06 or greater required " |
600 | "for tioca support\n", __FUNCTION__); | 600 | "for tioca support\n", __func__); |
601 | return NULL; | 601 | return NULL; |
602 | } | 602 | } |
603 | 603 | ||
@@ -651,7 +651,7 @@ tioca_bus_fixup(struct pcibus_bussoft *prom_bussoft, struct pci_controller *cont | |||
651 | printk(KERN_WARNING | 651 | printk(KERN_WARNING |
652 | "%s: Unable to get irq %d. " | 652 | "%s: Unable to get irq %d. " |
653 | "Error interrupts won't be routed for TIOCA bus %d\n", | 653 | "Error interrupts won't be routed for TIOCA bus %d\n", |
654 | __FUNCTION__, SGI_TIOCA_ERROR, | 654 | __func__, SGI_TIOCA_ERROR, |
655 | (int)tioca_common->ca_common.bs_persist_busnum); | 655 | (int)tioca_common->ca_common.bs_persist_busnum); |
656 | 656 | ||
657 | sn_set_err_irq_affinity(SGI_TIOCA_ERROR); | 657 | sn_set_err_irq_affinity(SGI_TIOCA_ERROR); |
diff --git a/arch/ia64/sn/pci/tioce_provider.c b/arch/ia64/sn/pci/tioce_provider.c index 999f14f986..9b3c113730 100644 --- a/arch/ia64/sn/pci/tioce_provider.c +++ b/arch/ia64/sn/pci/tioce_provider.c | |||
@@ -494,7 +494,7 @@ tioce_dma_unmap(struct pci_dev *pdev, dma_addr_t bus_addr, int dir) | |||
494 | if (&map->ce_dmamap_list == &ce_kern->ce_dmamap_list) { | 494 | if (&map->ce_dmamap_list == &ce_kern->ce_dmamap_list) { |
495 | printk(KERN_WARNING | 495 | printk(KERN_WARNING |
496 | "%s: %s - no map found for bus_addr 0x%lx\n", | 496 | "%s: %s - no map found for bus_addr 0x%lx\n", |
497 | __FUNCTION__, pci_name(pdev), bus_addr); | 497 | __func__, pci_name(pdev), bus_addr); |
498 | } else if (--map->refcnt == 0) { | 498 | } else if (--map->refcnt == 0) { |
499 | for (i = 0; i < map->ate_count; i++) { | 499 | for (i = 0; i < map->ate_count; i++) { |
500 | map->ate_shadow[i] = 0; | 500 | map->ate_shadow[i] = 0; |
@@ -1030,7 +1030,7 @@ tioce_bus_fixup(struct pcibus_bussoft *prom_bussoft, struct pci_controller *cont | |||
1030 | "%s: Unable to get irq %d. " | 1030 | "%s: Unable to get irq %d. " |
1031 | "Error interrupts won't be routed for " | 1031 | "Error interrupts won't be routed for " |
1032 | "TIOCE bus %04x:%02x\n", | 1032 | "TIOCE bus %04x:%02x\n", |
1033 | __FUNCTION__, SGI_PCIASIC_ERROR, | 1033 | __func__, SGI_PCIASIC_ERROR, |
1034 | tioce_common->ce_pcibus.bs_persist_segment, | 1034 | tioce_common->ce_pcibus.bs_persist_segment, |
1035 | tioce_common->ce_pcibus.bs_persist_busnum); | 1035 | tioce_common->ce_pcibus.bs_persist_busnum); |
1036 | 1036 | ||
diff --git a/arch/sh/Kconfig b/arch/sh/Kconfig index 783cfbbf87..95b7534e9e 100644 --- a/arch/sh/Kconfig +++ b/arch/sh/Kconfig | |||
@@ -456,13 +456,6 @@ config SH_SECUREEDGE5410 | |||
456 | This includes both the OEM SecureEdge products as well as the | 456 | This includes both the OEM SecureEdge products as well as the |
457 | SME product line. | 457 | SME product line. |
458 | 458 | ||
459 | config SH_7710VOIPGW | ||
460 | bool "SH7710-VOIP-GW" | ||
461 | depends on CPU_SUBTYPE_SH7710 | ||
462 | help | ||
463 | Select this option to build a kernel for the SH7710 based | ||
464 | VOIP GW. | ||
465 | |||
466 | config SH_RTS7751R2D | 459 | config SH_RTS7751R2D |
467 | bool "RTS7751R2D" | 460 | bool "RTS7751R2D" |
468 | depends on CPU_SUBTYPE_SH7751R | 461 | depends on CPU_SUBTYPE_SH7751R |
diff --git a/arch/sh/Makefile b/arch/sh/Makefile index 81381e5773..c510c22514 100644 --- a/arch/sh/Makefile +++ b/arch/sh/Makefile | |||
@@ -118,7 +118,6 @@ machdir-$(CONFIG_SH_EDOSK7705) += renesas/edosk7705 | |||
118 | machdir-$(CONFIG_SH_HIGHLANDER) += renesas/r7780rp | 118 | machdir-$(CONFIG_SH_HIGHLANDER) += renesas/r7780rp |
119 | machdir-$(CONFIG_SH_MIGOR) += renesas/migor | 119 | machdir-$(CONFIG_SH_MIGOR) += renesas/migor |
120 | machdir-$(CONFIG_SH_SDK7780) += renesas/sdk7780 | 120 | machdir-$(CONFIG_SH_SDK7780) += renesas/sdk7780 |
121 | machdir-$(CONFIG_SH_7710VOIPGW) += renesas/sh7710voipgw | ||
122 | machdir-$(CONFIG_SH_X3PROTO) += renesas/x3proto | 121 | machdir-$(CONFIG_SH_X3PROTO) += renesas/x3proto |
123 | machdir-$(CONFIG_SH_SH4202_MICRODEV) += superh/microdev | 122 | machdir-$(CONFIG_SH_SH4202_MICRODEV) += superh/microdev |
124 | machdir-$(CONFIG_SH_LANDISK) += landisk | 123 | machdir-$(CONFIG_SH_LANDISK) += landisk |
diff --git a/arch/sh/boards/hp6xx/hp6xx_apm.c b/arch/sh/boards/hp6xx/hp6xx_apm.c index 640ca2a74f..177f4f028e 100644 --- a/arch/sh/boards/hp6xx/hp6xx_apm.c +++ b/arch/sh/boards/hp6xx/hp6xx_apm.c | |||
@@ -2,6 +2,7 @@ | |||
2 | * bios-less APM driver for hp680 | 2 | * bios-less APM driver for hp680 |
3 | * | 3 | * |
4 | * Copyright 2005 (c) Andriy Skulysh <askulysh@gmail.com> | 4 | * Copyright 2005 (c) Andriy Skulysh <askulysh@gmail.com> |
5 | * Copyright 2008 (c) Kristoffer Ericson <kristoffer.ericson@gmail.com> | ||
5 | * | 6 | * |
6 | * This program is free software; you can redistribute it and/or | 7 | * This program is free software; you can redistribute it and/or |
7 | * modify it under the terms of the GNU General Public License. | 8 | * modify it under the terms of the GNU General Public License. |
@@ -15,17 +16,19 @@ | |||
15 | #include <asm/adc.h> | 16 | #include <asm/adc.h> |
16 | #include <asm/hp6xx.h> | 17 | #include <asm/hp6xx.h> |
17 | 18 | ||
18 | #define SH7709_PGDR 0xa400012c | 19 | /* percentage values */ |
19 | |||
20 | #define APM_CRITICAL 10 | 20 | #define APM_CRITICAL 10 |
21 | #define APM_LOW 30 | 21 | #define APM_LOW 30 |
22 | 22 | ||
23 | /* resonably sane values */ | ||
23 | #define HP680_BATTERY_MAX 898 | 24 | #define HP680_BATTERY_MAX 898 |
24 | #define HP680_BATTERY_MIN 486 | 25 | #define HP680_BATTERY_MIN 486 |
25 | #define HP680_BATTERY_AC_ON 1023 | 26 | #define HP680_BATTERY_AC_ON 1023 |
26 | 27 | ||
27 | #define MODNAME "hp6x0_apm" | 28 | #define MODNAME "hp6x0_apm" |
28 | 29 | ||
30 | #define PGDR 0xa400012c | ||
31 | |||
29 | static void hp6x0_apm_get_power_status(struct apm_power_info *info) | 32 | static void hp6x0_apm_get_power_status(struct apm_power_info *info) |
30 | { | 33 | { |
31 | int battery, backup, charging, percentage; | 34 | int battery, backup, charging, percentage; |
@@ -38,17 +41,26 @@ static void hp6x0_apm_get_power_status(struct apm_power_info *info) | |||
38 | percentage = 100 * (battery - HP680_BATTERY_MIN) / | 41 | percentage = 100 * (battery - HP680_BATTERY_MIN) / |
39 | (HP680_BATTERY_MAX - HP680_BATTERY_MIN); | 42 | (HP680_BATTERY_MAX - HP680_BATTERY_MIN); |
40 | 43 | ||
44 | /* % of full battery */ | ||
45 | info->battery_life = percentage; | ||
46 | |||
47 | /* We want our estimates in minutes */ | ||
48 | info->units = 0; | ||
49 | |||
50 | /* Extremely(!!) rough estimate, we will replace this with a datalist later on */ | ||
51 | info->time = (2 * battery); | ||
52 | |||
41 | info->ac_line_status = (battery > HP680_BATTERY_AC_ON) ? | 53 | info->ac_line_status = (battery > HP680_BATTERY_AC_ON) ? |
42 | APM_AC_ONLINE : APM_AC_OFFLINE; | 54 | APM_AC_ONLINE : APM_AC_OFFLINE; |
43 | 55 | ||
44 | pgdr = ctrl_inb(SH7709_PGDR); | 56 | pgdr = ctrl_inb(PGDR); |
45 | if (pgdr & PGDR_MAIN_BATTERY_OUT) { | 57 | if (pgdr & PGDR_MAIN_BATTERY_OUT) { |
46 | info->battery_status = APM_BATTERY_STATUS_NOT_PRESENT; | 58 | info->battery_status = APM_BATTERY_STATUS_NOT_PRESENT; |
47 | info->battery_flag = 0x80; | 59 | info->battery_flag = 0x80; |
48 | } else if (charging < 8) { | 60 | } else if (charging < 8) { |
49 | info->battery_status = APM_BATTERY_STATUS_CHARGING; | 61 | info->battery_status = APM_BATTERY_STATUS_CHARGING; |
50 | info->battery_flag = 0x08; | 62 | info->battery_flag = 0x08; |
51 | info->ac_line_status = 0xff; | 63 | info->ac_line_status = 0x01; |
52 | } else if (percentage <= APM_CRITICAL) { | 64 | } else if (percentage <= APM_CRITICAL) { |
53 | info->battery_status = APM_BATTERY_STATUS_CRITICAL; | 65 | info->battery_status = APM_BATTERY_STATUS_CRITICAL; |
54 | info->battery_flag = 0x04; | 66 | info->battery_flag = 0x04; |
@@ -59,8 +71,6 @@ static void hp6x0_apm_get_power_status(struct apm_power_info *info) | |||
59 | info->battery_status = APM_BATTERY_STATUS_HIGH; | 71 | info->battery_status = APM_BATTERY_STATUS_HIGH; |
60 | info->battery_flag = 0x01; | 72 | info->battery_flag = 0x01; |
61 | } | 73 | } |
62 | |||
63 | info->units = 0; | ||
64 | } | 74 | } |
65 | 75 | ||
66 | static irqreturn_t hp6x0_apm_interrupt(int irq, void *dev) | 76 | static irqreturn_t hp6x0_apm_interrupt(int irq, void *dev) |
diff --git a/arch/sh/boards/renesas/sh7710voipgw/Makefile b/arch/sh/boards/renesas/sh7710voipgw/Makefile deleted file mode 100644 index 7703756763..0000000000 --- a/arch/sh/boards/renesas/sh7710voipgw/Makefile +++ /dev/null | |||
@@ -1 +0,0 @@ | |||
1 | obj-y := setup.o | ||
diff --git a/arch/sh/boards/renesas/sh7710voipgw/setup.c b/arch/sh/boards/renesas/sh7710voipgw/setup.c deleted file mode 100644 index 0d56fd83bc..0000000000 --- a/arch/sh/boards/renesas/sh7710voipgw/setup.c +++ /dev/null | |||
@@ -1,94 +0,0 @@ | |||
1 | /* | ||
2 | * Renesas Technology SH7710 VoIP Gateway | ||
3 | * | ||
4 | * Copyright (C) 2006 Ranjit Deshpande | ||
5 | * Kenati Technologies Inc. | ||
6 | * | ||
7 | * May be copied or modified under the terms of the GNU General Public | ||
8 | * License. See linux/COPYING for more information. | ||
9 | */ | ||
10 | #include <linux/init.h> | ||
11 | #include <asm/machvec.h> | ||
12 | #include <asm/irq.h> | ||
13 | #include <asm/io.h> | ||
14 | |||
15 | static struct ipr_data sh7710voipgw_ipr_map[] = { | ||
16 | { TIMER2_IRQ, TIMER2_IPR_ADDR, TIMER2_IPR_POS, TIMER2_PRIORITY }, | ||
17 | { WDT_IRQ, WDT_IPR_ADDR, WDT_IPR_POS, WDT_PRIORITY }, | ||
18 | |||
19 | /* SCIF0 */ | ||
20 | { SCIF0_ERI_IRQ, SCIF0_IPR_ADDR, SCIF0_IPR_POS, SCIF0_PRIORITY }, | ||
21 | { SCIF0_RXI_IRQ, SCIF0_IPR_ADDR, SCIF0_IPR_POS, SCIF0_PRIORITY }, | ||
22 | { SCIF0_BRI_IRQ, SCIF0_IPR_ADDR, SCIF0_IPR_POS, SCIF0_PRIORITY }, | ||
23 | { SCIF0_TXI_IRQ, SCIF0_IPR_ADDR, SCIF0_IPR_POS, SCIF0_PRIORITY }, | ||
24 | |||
25 | /* DMAC-1 */ | ||
26 | { DMTE0_IRQ, DMA_IPR_ADDR, DMA_IPR_POS, DMA_PRIORITY }, | ||
27 | { DMTE1_IRQ, DMA_IPR_ADDR, DMA_IPR_POS, DMA_PRIORITY }, | ||
28 | { DMTE2_IRQ, DMA_IPR_ADDR, DMA_IPR_POS, DMA_PRIORITY }, | ||
29 | { DMTE3_IRQ, DMA_IPR_ADDR, DMA_IPR_POS, DMA_PRIORITY }, | ||
30 | |||
31 | /* DMAC-2 */ | ||
32 | { DMTE4_IRQ, DMA2_IPR_ADDR, DMA2_IPR_POS, DMA2_PRIORITY }, | ||
33 | { DMTE4_IRQ, DMA2_IPR_ADDR, DMA2_IPR_POS, DMA2_PRIORITY }, | ||
34 | |||
35 | /* IPSEC */ | ||
36 | { IPSEC_IRQ, IPSEC_IPR_ADDR, IPSEC_IPR_POS, IPSEC_PRIORITY }, | ||
37 | |||
38 | /* EDMAC */ | ||
39 | { EDMAC0_IRQ, EDMAC0_IPR_ADDR, EDMAC0_IPR_POS, EDMAC0_PRIORITY }, | ||
40 | { EDMAC1_IRQ, EDMAC1_IPR_ADDR, EDMAC1_IPR_POS, EDMAC1_PRIORITY }, | ||
41 | { EDMAC2_IRQ, EDMAC2_IPR_ADDR, EDMAC2_IPR_POS, EDMAC2_PRIORITY }, | ||
42 | |||
43 | /* SIOF0 */ | ||
44 | { SIOF0_ERI_IRQ, SIOF0_IPR_ADDR, SIOF0_IPR_POS, SIOF0_PRIORITY }, | ||
45 | { SIOF0_TXI_IRQ, SIOF0_IPR_ADDR, SIOF0_IPR_POS, SIOF0_PRIORITY }, | ||
46 | { SIOF0_RXI_IRQ, SIOF0_IPR_ADDR, SIOF0_IPR_POS, SIOF0_PRIORITY }, | ||
47 | { SIOF0_CCI_IRQ, SIOF0_IPR_ADDR, SIOF0_IPR_POS, SIOF0_PRIORITY }, | ||
48 | |||
49 | /* SIOF1 */ | ||
50 | { SIOF1_ERI_IRQ, SIOF1_IPR_ADDR, SIOF1_IPR_POS, SIOF1_PRIORITY }, | ||
51 | { SIOF1_TXI_IRQ, SIOF1_IPR_ADDR, SIOF1_IPR_POS, SIOF1_PRIORITY }, | ||
52 | { SIOF1_RXI_IRQ, SIOF1_IPR_ADDR, SIOF1_IPR_POS, SIOF1_PRIORITY }, | ||
53 | { SIOF1_CCI_IRQ, SIOF1_IPR_ADDR, SIOF1_IPR_POS, SIOF1_PRIORITY }, | ||
54 | |||
55 | /* SLIC IRQ's */ | ||
56 | { IRQ1_IRQ, IRQ1_IPR_ADDR, IRQ1_IPR_POS, IRQ1_PRIORITY }, | ||
57 | { IRQ2_IRQ, IRQ2_IPR_ADDR, IRQ2_IPR_POS, IRQ2_PRIORITY }, | ||
58 | }; | ||
59 | |||
60 | /* | ||
61 | * Initialize IRQ setting | ||
62 | */ | ||
63 | static void __init sh7710voipgw_init_irq(void) | ||
64 | { | ||
65 | /* Disable all interrupts in IPR registers */ | ||
66 | ctrl_outw(0x0, INTC_IPRA); | ||
67 | ctrl_outw(0x0, INTC_IPRB); | ||
68 | ctrl_outw(0x0, INTC_IPRC); | ||
69 | ctrl_outw(0x0, INTC_IPRD); | ||
70 | ctrl_outw(0x0, INTC_IPRE); | ||
71 | ctrl_outw(0x0, INTC_IPRF); | ||
72 | ctrl_outw(0x0, INTC_IPRG); | ||
73 | ctrl_outw(0x0, INTC_IPRH); | ||
74 | ctrl_outw(0x0, INTC_IPRI); | ||
75 | |||
76 | /* Ack all interrupt sources in the IRR0 register */ | ||
77 | ctrl_outb(0x3f, INTC_IRR0); | ||
78 | |||
79 | /* Use IRQ0 - IRQ3 as active low interrupt lines i.e. disable | ||
80 | * IRL mode. | ||
81 | */ | ||
82 | ctrl_outw(0x2aa, INTC_ICR1); | ||
83 | |||
84 | make_ipr_irq(sh7710voipgw_ipr_map, ARRAY_SIZE(sh7710voipgw_ipr_map)); | ||
85 | } | ||
86 | |||
87 | /* | ||
88 | * The Machine Vector | ||
89 | */ | ||
90 | static struct sh_machine_vector mv_sh7710voipgw __initmv = { | ||
91 | .mv_name = "SH7710 VoIP Gateway", | ||
92 | .mv_nr_irqs = 104, | ||
93 | .mv_init_irq = sh7710voipgw_init_irq, | ||
94 | }; | ||
diff --git a/arch/sh/boards/renesas/x3proto/ilsel.c b/arch/sh/boards/renesas/x3proto/ilsel.c index 6d4454fef9..b5c673c393 100644 --- a/arch/sh/boards/renesas/x3proto/ilsel.c +++ b/arch/sh/boards/renesas/x3proto/ilsel.c | |||
@@ -68,7 +68,7 @@ static void __ilsel_enable(ilsel_source_t set, unsigned int bit) | |||
68 | shift = mk_ilsel_shift(bit); | 68 | shift = mk_ilsel_shift(bit); |
69 | 69 | ||
70 | pr_debug("%s: bit#%d: addr - 0x%08lx (shift %d, set %d)\n", | 70 | pr_debug("%s: bit#%d: addr - 0x%08lx (shift %d, set %d)\n", |
71 | __FUNCTION__, bit, addr, shift, set); | 71 | __func__, bit, addr, shift, set); |
72 | 72 | ||
73 | tmp = ctrl_inw(addr); | 73 | tmp = ctrl_inw(addr); |
74 | tmp &= ~(0xf << shift); | 74 | tmp &= ~(0xf << shift); |
diff --git a/arch/sh/boards/superh/microdev/io.c b/arch/sh/boards/superh/microdev/io.c index b704e20d7e..9f8a540f7e 100644 --- a/arch/sh/boards/superh/microdev/io.c +++ b/arch/sh/boards/superh/microdev/io.c | |||
@@ -127,7 +127,7 @@ static unsigned long microdev_isa_port2addr(unsigned long offset) | |||
127 | * safe default. | 127 | * safe default. |
128 | */ | 128 | */ |
129 | printk("Warning: unexpected port in %s( offset = 0x%lx )\n", | 129 | printk("Warning: unexpected port in %s( offset = 0x%lx )\n", |
130 | __FUNCTION__, offset); | 130 | __func__, offset); |
131 | result = PVR; | 131 | result = PVR; |
132 | } | 132 | } |
133 | 133 | ||
diff --git a/arch/sh/configs/r7780mp_defconfig b/arch/sh/configs/r7780mp_defconfig index 2ad804ec92..1a072615ff 100644 --- a/arch/sh/configs/r7780mp_defconfig +++ b/arch/sh/configs/r7780mp_defconfig | |||
@@ -1,9 +1,10 @@ | |||
1 | # | 1 | # |
2 | # Automatically generated make config: don't edit | 2 | # Automatically generated make config: don't edit |
3 | # Linux kernel version: 2.6.24-rc2 | 3 | # Linux kernel version: 2.6.25-rc4 |
4 | # Tue Nov 13 20:32:39 2007 | 4 | # Thu Mar 6 15:39:59 2008 |
5 | # | 5 | # |
6 | CONFIG_SUPERH=y | 6 | CONFIG_SUPERH=y |
7 | CONFIG_SUPERH32=y | ||
7 | CONFIG_RWSEM_GENERIC_SPINLOCK=y | 8 | CONFIG_RWSEM_GENERIC_SPINLOCK=y |
8 | CONFIG_GENERIC_BUG=y | 9 | CONFIG_GENERIC_BUG=y |
9 | CONFIG_GENERIC_FIND_NEXT_BIT=y | 10 | CONFIG_GENERIC_FIND_NEXT_BIT=y |
@@ -19,6 +20,8 @@ CONFIG_LOCKDEP_SUPPORT=y | |||
19 | # CONFIG_ARCH_HAS_ILOG2_U32 is not set | 20 | # CONFIG_ARCH_HAS_ILOG2_U32 is not set |
20 | # CONFIG_ARCH_HAS_ILOG2_U64 is not set | 21 | # CONFIG_ARCH_HAS_ILOG2_U64 is not set |
21 | CONFIG_ARCH_NO_VIRT_TO_BUS=y | 22 | CONFIG_ARCH_NO_VIRT_TO_BUS=y |
23 | CONFIG_ARCH_SUPPORTS_AOUT=y | ||
24 | CONFIG_IO_TRAPPED=y | ||
22 | CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config" | 25 | CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config" |
23 | 26 | ||
24 | # | 27 | # |
@@ -37,17 +40,20 @@ CONFIG_SYSVIPC_SYSCTL=y | |||
37 | CONFIG_BSD_PROCESS_ACCT=y | 40 | CONFIG_BSD_PROCESS_ACCT=y |
38 | # CONFIG_BSD_PROCESS_ACCT_V3 is not set | 41 | # CONFIG_BSD_PROCESS_ACCT_V3 is not set |
39 | # CONFIG_TASKSTATS is not set | 42 | # CONFIG_TASKSTATS is not set |
40 | # CONFIG_USER_NS is not set | ||
41 | # CONFIG_AUDIT is not set | 43 | # CONFIG_AUDIT is not set |
42 | CONFIG_IKCONFIG=y | 44 | CONFIG_IKCONFIG=y |
43 | CONFIG_IKCONFIG_PROC=y | 45 | CONFIG_IKCONFIG_PROC=y |
44 | CONFIG_LOG_BUF_SHIFT=14 | 46 | CONFIG_LOG_BUF_SHIFT=14 |
45 | # CONFIG_CGROUPS is not set | 47 | # CONFIG_CGROUPS is not set |
48 | CONFIG_GROUP_SCHED=y | ||
46 | CONFIG_FAIR_GROUP_SCHED=y | 49 | CONFIG_FAIR_GROUP_SCHED=y |
47 | CONFIG_FAIR_USER_SCHED=y | 50 | # CONFIG_RT_GROUP_SCHED is not set |
48 | # CONFIG_FAIR_CGROUP_SCHED is not set | 51 | CONFIG_USER_SCHED=y |
49 | # CONFIG_SYSFS_DEPRECATED is not set | 52 | # CONFIG_CGROUP_SCHED is not set |
53 | CONFIG_SYSFS_DEPRECATED=y | ||
54 | CONFIG_SYSFS_DEPRECATED_V2=y | ||
50 | # CONFIG_RELAY is not set | 55 | # CONFIG_RELAY is not set |
56 | # CONFIG_NAMESPACES is not set | ||
51 | # CONFIG_BLK_DEV_INITRD is not set | 57 | # CONFIG_BLK_DEV_INITRD is not set |
52 | CONFIG_CC_OPTIMIZE_FOR_SIZE=y | 58 | CONFIG_CC_OPTIMIZE_FOR_SIZE=y |
53 | CONFIG_SYSCTL=y | 59 | CONFIG_SYSCTL=y |
@@ -61,17 +67,27 @@ CONFIG_HOTPLUG=y | |||
61 | CONFIG_PRINTK=y | 67 | CONFIG_PRINTK=y |
62 | CONFIG_BUG=y | 68 | CONFIG_BUG=y |
63 | CONFIG_ELF_CORE=y | 69 | CONFIG_ELF_CORE=y |
70 | CONFIG_COMPAT_BRK=y | ||
64 | CONFIG_BASE_FULL=y | 71 | CONFIG_BASE_FULL=y |
65 | # CONFIG_FUTEX is not set | 72 | # CONFIG_FUTEX is not set |
66 | CONFIG_ANON_INODES=y | 73 | CONFIG_ANON_INODES=y |
67 | # CONFIG_EPOLL is not set | 74 | # CONFIG_EPOLL is not set |
68 | CONFIG_SIGNALFD=y | 75 | CONFIG_SIGNALFD=y |
76 | CONFIG_TIMERFD=y | ||
69 | CONFIG_EVENTFD=y | 77 | CONFIG_EVENTFD=y |
70 | CONFIG_SHMEM=y | 78 | CONFIG_SHMEM=y |
71 | CONFIG_VM_EVENT_COUNTERS=y | 79 | CONFIG_VM_EVENT_COUNTERS=y |
72 | CONFIG_SLAB=y | 80 | CONFIG_SLAB=y |
73 | # CONFIG_SLUB is not set | 81 | # CONFIG_SLUB is not set |
74 | # CONFIG_SLOB is not set | 82 | # CONFIG_SLOB is not set |
83 | CONFIG_PROFILING=y | ||
84 | # CONFIG_MARKERS is not set | ||
85 | CONFIG_OPROFILE=m | ||
86 | CONFIG_HAVE_OPROFILE=y | ||
87 | # CONFIG_HAVE_KPROBES is not set | ||
88 | # CONFIG_HAVE_KRETPROBES is not set | ||
89 | CONFIG_PROC_PAGE_MONITOR=y | ||
90 | CONFIG_SLABINFO=y | ||
75 | # CONFIG_TINY_SHMEM is not set | 91 | # CONFIG_TINY_SHMEM is not set |
76 | CONFIG_BASE_SMALL=0 | 92 | CONFIG_BASE_SMALL=0 |
77 | CONFIG_MODULES=y | 93 | CONFIG_MODULES=y |
@@ -98,6 +114,8 @@ CONFIG_IOSCHED_NOOP=y | |||
98 | # CONFIG_DEFAULT_CFQ is not set | 114 | # CONFIG_DEFAULT_CFQ is not set |
99 | CONFIG_DEFAULT_NOOP=y | 115 | CONFIG_DEFAULT_NOOP=y |
100 | CONFIG_DEFAULT_IOSCHED="noop" | 116 | CONFIG_DEFAULT_IOSCHED="noop" |
117 | CONFIG_CLASSIC_RCU=y | ||
118 | # CONFIG_PREEMPT_RCU is not set | ||
101 | 119 | ||
102 | # | 120 | # |
103 | # System type | 121 | # System type |
@@ -105,7 +123,9 @@ CONFIG_DEFAULT_IOSCHED="noop" | |||
105 | CONFIG_CPU_SH4=y | 123 | CONFIG_CPU_SH4=y |
106 | CONFIG_CPU_SH4A=y | 124 | CONFIG_CPU_SH4A=y |
107 | # CONFIG_CPU_SUBTYPE_SH7619 is not set | 125 | # CONFIG_CPU_SUBTYPE_SH7619 is not set |
126 | # CONFIG_CPU_SUBTYPE_SH7203 is not set | ||
108 | # CONFIG_CPU_SUBTYPE_SH7206 is not set | 127 | # CONFIG_CPU_SUBTYPE_SH7206 is not set |
128 | # CONFIG_CPU_SUBTYPE_SH7263 is not set | ||
109 | # CONFIG_CPU_SUBTYPE_SH7705 is not set | 129 | # CONFIG_CPU_SUBTYPE_SH7705 is not set |
110 | # CONFIG_CPU_SUBTYPE_SH7706 is not set | 130 | # CONFIG_CPU_SUBTYPE_SH7706 is not set |
111 | # CONFIG_CPU_SUBTYPE_SH7707 is not set | 131 | # CONFIG_CPU_SUBTYPE_SH7707 is not set |
@@ -114,6 +134,7 @@ CONFIG_CPU_SH4A=y | |||
114 | # CONFIG_CPU_SUBTYPE_SH7710 is not set | 134 | # CONFIG_CPU_SUBTYPE_SH7710 is not set |
115 | # CONFIG_CPU_SUBTYPE_SH7712 is not set | 135 | # CONFIG_CPU_SUBTYPE_SH7712 is not set |
116 | # CONFIG_CPU_SUBTYPE_SH7720 is not set | 136 | # CONFIG_CPU_SUBTYPE_SH7720 is not set |
137 | # CONFIG_CPU_SUBTYPE_SH7721 is not set | ||
117 | # CONFIG_CPU_SUBTYPE_SH7750 is not set | 138 | # CONFIG_CPU_SUBTYPE_SH7750 is not set |
118 | # CONFIG_CPU_SUBTYPE_SH7091 is not set | 139 | # CONFIG_CPU_SUBTYPE_SH7091 is not set |
119 | # CONFIG_CPU_SUBTYPE_SH7750R is not set | 140 | # CONFIG_CPU_SUBTYPE_SH7750R is not set |
@@ -122,12 +143,16 @@ CONFIG_CPU_SH4A=y | |||
122 | # CONFIG_CPU_SUBTYPE_SH7751R is not set | 143 | # CONFIG_CPU_SUBTYPE_SH7751R is not set |
123 | # CONFIG_CPU_SUBTYPE_SH7760 is not set | 144 | # CONFIG_CPU_SUBTYPE_SH7760 is not set |
124 | # CONFIG_CPU_SUBTYPE_SH4_202 is not set | 145 | # CONFIG_CPU_SUBTYPE_SH4_202 is not set |
146 | # CONFIG_CPU_SUBTYPE_SH7763 is not set | ||
125 | # CONFIG_CPU_SUBTYPE_SH7770 is not set | 147 | # CONFIG_CPU_SUBTYPE_SH7770 is not set |
126 | CONFIG_CPU_SUBTYPE_SH7780=y | 148 | CONFIG_CPU_SUBTYPE_SH7780=y |
127 | # CONFIG_CPU_SUBTYPE_SH7785 is not set | 149 | # CONFIG_CPU_SUBTYPE_SH7785 is not set |
128 | # CONFIG_CPU_SUBTYPE_SHX3 is not set | 150 | # CONFIG_CPU_SUBTYPE_SHX3 is not set |
129 | # CONFIG_CPU_SUBTYPE_SH7343 is not set | 151 | # CONFIG_CPU_SUBTYPE_SH7343 is not set |
130 | # CONFIG_CPU_SUBTYPE_SH7722 is not set | 152 | # CONFIG_CPU_SUBTYPE_SH7722 is not set |
153 | # CONFIG_CPU_SUBTYPE_SH7366 is not set | ||
154 | # CONFIG_CPU_SUBTYPE_SH5_101 is not set | ||
155 | # CONFIG_CPU_SUBTYPE_SH5_103 is not set | ||
131 | 156 | ||
132 | # | 157 | # |
133 | # Memory management options | 158 | # Memory management options |
@@ -137,7 +162,8 @@ CONFIG_MMU=y | |||
137 | CONFIG_PAGE_OFFSET=0x80000000 | 162 | CONFIG_PAGE_OFFSET=0x80000000 |
138 | CONFIG_MEMORY_START=0x08000000 | 163 | CONFIG_MEMORY_START=0x08000000 |
139 | CONFIG_MEMORY_SIZE=0x08000000 | 164 | CONFIG_MEMORY_SIZE=0x08000000 |
140 | # CONFIG_32BIT is not set | 165 | CONFIG_29BIT=y |
166 | # CONFIG_PMB is not set | ||
141 | CONFIG_VSYSCALL=y | 167 | CONFIG_VSYSCALL=y |
142 | CONFIG_ARCH_FLATMEM_ENABLE=y | 168 | CONFIG_ARCH_FLATMEM_ENABLE=y |
143 | CONFIG_ARCH_SPARSEMEM_ENABLE=y | 169 | CONFIG_ARCH_SPARSEMEM_ENABLE=y |
@@ -153,6 +179,7 @@ CONFIG_HUGETLB_PAGE_SIZE_64K=y | |||
153 | # CONFIG_HUGETLB_PAGE_SIZE_1MB is not set | 179 | # CONFIG_HUGETLB_PAGE_SIZE_1MB is not set |
154 | # CONFIG_HUGETLB_PAGE_SIZE_4MB is not set | 180 | # CONFIG_HUGETLB_PAGE_SIZE_4MB is not set |
155 | # CONFIG_HUGETLB_PAGE_SIZE_64MB is not set | 181 | # CONFIG_HUGETLB_PAGE_SIZE_64MB is not set |
182 | # CONFIG_HUGETLB_PAGE_SIZE_512MB is not set | ||
156 | CONFIG_SELECT_MEMORY_MODEL=y | 183 | CONFIG_SELECT_MEMORY_MODEL=y |
157 | CONFIG_FLATMEM_MANUAL=y | 184 | CONFIG_FLATMEM_MANUAL=y |
158 | # CONFIG_DISCONTIGMEM_MANUAL is not set | 185 | # CONFIG_DISCONTIGMEM_MANUAL is not set |
@@ -190,6 +217,7 @@ CONFIG_CPU_HAS_FPU=y | |||
190 | # Board support | 217 | # Board support |
191 | # | 218 | # |
192 | # CONFIG_SH_7780_SOLUTION_ENGINE is not set | 219 | # CONFIG_SH_7780_SOLUTION_ENGINE is not set |
220 | # CONFIG_SH_SDK7780 is not set | ||
193 | CONFIG_SH_HIGHLANDER=y | 221 | CONFIG_SH_HIGHLANDER=y |
194 | # CONFIG_SH_R7780RP is not set | 222 | # CONFIG_SH_R7780RP is not set |
195 | CONFIG_SH_R7780MP=y | 223 | CONFIG_SH_R7780MP=y |
@@ -234,12 +262,13 @@ CONFIG_HZ_250=y | |||
234 | # CONFIG_HZ_300 is not set | 262 | # CONFIG_HZ_300 is not set |
235 | # CONFIG_HZ_1000 is not set | 263 | # CONFIG_HZ_1000 is not set |
236 | CONFIG_HZ=250 | 264 | CONFIG_HZ=250 |
265 | # CONFIG_SCHED_HRTICK is not set | ||
237 | CONFIG_KEXEC=y | 266 | CONFIG_KEXEC=y |
238 | # CONFIG_CRASH_DUMP is not set | 267 | # CONFIG_CRASH_DUMP is not set |
239 | # CONFIG_PREEMPT_NONE is not set | 268 | # CONFIG_PREEMPT_NONE is not set |
240 | # CONFIG_PREEMPT_VOLUNTARY is not set | 269 | # CONFIG_PREEMPT_VOLUNTARY is not set |
241 | CONFIG_PREEMPT=y | 270 | CONFIG_PREEMPT=y |
242 | CONFIG_PREEMPT_BKL=y | 271 | CONFIG_RCU_TRACE=y |
243 | CONFIG_GUSA=y | 272 | CONFIG_GUSA=y |
244 | 273 | ||
245 | # | 274 | # |
@@ -284,6 +313,7 @@ CONFIG_XFRM=y | |||
284 | # CONFIG_XFRM_USER is not set | 313 | # CONFIG_XFRM_USER is not set |
285 | # CONFIG_XFRM_SUB_POLICY is not set | 314 | # CONFIG_XFRM_SUB_POLICY is not set |
286 | # CONFIG_XFRM_MIGRATE is not set | 315 | # CONFIG_XFRM_MIGRATE is not set |
316 | # CONFIG_XFRM_STATISTICS is not set | ||
287 | # CONFIG_NET_KEY is not set | 317 | # CONFIG_NET_KEY is not set |
288 | CONFIG_INET=y | 318 | CONFIG_INET=y |
289 | # CONFIG_IP_MULTICAST is not set | 319 | # CONFIG_IP_MULTICAST is not set |
@@ -344,6 +374,7 @@ CONFIG_LLC=m | |||
344 | # | 374 | # |
345 | # CONFIG_NET_PKTGEN is not set | 375 | # CONFIG_NET_PKTGEN is not set |
346 | # CONFIG_HAMRADIO is not set | 376 | # CONFIG_HAMRADIO is not set |
377 | # CONFIG_CAN is not set | ||
347 | # CONFIG_IRDA is not set | 378 | # CONFIG_IRDA is not set |
348 | # CONFIG_BT is not set | 379 | # CONFIG_BT is not set |
349 | # CONFIG_AF_RXRPC is not set | 380 | # CONFIG_AF_RXRPC is not set |
@@ -386,7 +417,7 @@ CONFIG_BLK_DEV=y | |||
386 | CONFIG_BLK_DEV_RAM=y | 417 | CONFIG_BLK_DEV_RAM=y |
387 | CONFIG_BLK_DEV_RAM_COUNT=16 | 418 | CONFIG_BLK_DEV_RAM_COUNT=16 |
388 | CONFIG_BLK_DEV_RAM_SIZE=4096 | 419 | CONFIG_BLK_DEV_RAM_SIZE=4096 |
389 | CONFIG_BLK_DEV_RAM_BLOCKSIZE=1024 | 420 | # CONFIG_BLK_DEV_XIP is not set |
390 | # CONFIG_CDROM_PKTCDVD is not set | 421 | # CONFIG_CDROM_PKTCDVD is not set |
391 | # CONFIG_ATA_OVER_ETH is not set | 422 | # CONFIG_ATA_OVER_ETH is not set |
392 | CONFIG_MISC_DEVICES=y | 423 | CONFIG_MISC_DEVICES=y |
@@ -394,6 +425,8 @@ CONFIG_MISC_DEVICES=y | |||
394 | CONFIG_EEPROM_93CX6=y | 425 | CONFIG_EEPROM_93CX6=y |
395 | # CONFIG_SGI_IOC4 is not set | 426 | # CONFIG_SGI_IOC4 is not set |
396 | # CONFIG_TIFM_CORE is not set | 427 | # CONFIG_TIFM_CORE is not set |
428 | # CONFIG_ENCLOSURE_SERVICES is not set | ||
429 | CONFIG_HAVE_IDE=y | ||
397 | # CONFIG_IDE is not set | 430 | # CONFIG_IDE is not set |
398 | 431 | ||
399 | # | 432 | # |
@@ -453,6 +486,7 @@ CONFIG_SCSI_LOWLEVEL=y | |||
453 | # CONFIG_SCSI_IPS is not set | 486 | # CONFIG_SCSI_IPS is not set |
454 | # CONFIG_SCSI_INITIO is not set | 487 | # CONFIG_SCSI_INITIO is not set |
455 | # CONFIG_SCSI_INIA100 is not set | 488 | # CONFIG_SCSI_INIA100 is not set |
489 | # CONFIG_SCSI_MVSAS is not set | ||
456 | # CONFIG_SCSI_STEX is not set | 490 | # CONFIG_SCSI_STEX is not set |
457 | # CONFIG_SCSI_SYM53C8XX_2 is not set | 491 | # CONFIG_SCSI_SYM53C8XX_2 is not set |
458 | # CONFIG_SCSI_IPR is not set | 492 | # CONFIG_SCSI_IPR is not set |
@@ -506,6 +540,7 @@ CONFIG_SATA_SIL=y | |||
506 | # CONFIG_PATA_MPIIX is not set | 540 | # CONFIG_PATA_MPIIX is not set |
507 | # CONFIG_PATA_OLDPIIX is not set | 541 | # CONFIG_PATA_OLDPIIX is not set |
508 | # CONFIG_PATA_NETCELL is not set | 542 | # CONFIG_PATA_NETCELL is not set |
543 | # CONFIG_PATA_NINJA32 is not set | ||
509 | # CONFIG_PATA_NS87410 is not set | 544 | # CONFIG_PATA_NS87410 is not set |
510 | # CONFIG_PATA_NS87415 is not set | 545 | # CONFIG_PATA_NS87415 is not set |
511 | # CONFIG_PATA_OPTI is not set | 546 | # CONFIG_PATA_OPTI is not set |
@@ -538,7 +573,6 @@ CONFIG_NETDEVICES=y | |||
538 | # CONFIG_EQUALIZER is not set | 573 | # CONFIG_EQUALIZER is not set |
539 | # CONFIG_TUN is not set | 574 | # CONFIG_TUN is not set |
540 | # CONFIG_VETH is not set | 575 | # CONFIG_VETH is not set |
541 | # CONFIG_IP1000 is not set | ||
542 | # CONFIG_ARCNET is not set | 576 | # CONFIG_ARCNET is not set |
543 | # CONFIG_PHYLIB is not set | 577 | # CONFIG_PHYLIB is not set |
544 | CONFIG_NET_ETHERNET=y | 578 | CONFIG_NET_ETHERNET=y |
@@ -551,7 +585,6 @@ CONFIG_AX88796_93CX6=y | |||
551 | # CONFIG_CASSINI is not set | 585 | # CONFIG_CASSINI is not set |
552 | # CONFIG_NET_VENDOR_3COM is not set | 586 | # CONFIG_NET_VENDOR_3COM is not set |
553 | # CONFIG_SMC91X is not set | 587 | # CONFIG_SMC91X is not set |
554 | # CONFIG_SMC911X is not set | ||
555 | # CONFIG_NET_TULIP is not set | 588 | # CONFIG_NET_TULIP is not set |
556 | # CONFIG_HP100 is not set | 589 | # CONFIG_HP100 is not set |
557 | # CONFIG_IBM_NEW_EMAC_ZMII is not set | 590 | # CONFIG_IBM_NEW_EMAC_ZMII is not set |
@@ -576,6 +609,7 @@ CONFIG_8139TOO=m | |||
576 | # CONFIG_8139TOO_TUNE_TWISTER is not set | 609 | # CONFIG_8139TOO_TUNE_TWISTER is not set |
577 | CONFIG_8139TOO_8129=y | 610 | CONFIG_8139TOO_8129=y |
578 | # CONFIG_8139_OLD_RX_RESET is not set | 611 | # CONFIG_8139_OLD_RX_RESET is not set |
612 | # CONFIG_R6040 is not set | ||
579 | # CONFIG_SIS900 is not set | 613 | # CONFIG_SIS900 is not set |
580 | # CONFIG_EPIC100 is not set | 614 | # CONFIG_EPIC100 is not set |
581 | # CONFIG_SUNDANCE is not set | 615 | # CONFIG_SUNDANCE is not set |
@@ -591,6 +625,9 @@ CONFIG_E1000=m | |||
591 | # CONFIG_E1000_NAPI is not set | 625 | # CONFIG_E1000_NAPI is not set |
592 | # CONFIG_E1000_DISABLE_PACKET_SPLIT is not set | 626 | # CONFIG_E1000_DISABLE_PACKET_SPLIT is not set |
593 | # CONFIG_E1000E is not set | 627 | # CONFIG_E1000E is not set |
628 | # CONFIG_E1000E_ENABLED is not set | ||
629 | # CONFIG_IP1000 is not set | ||
630 | # CONFIG_IGB is not set | ||
594 | # CONFIG_NS83820 is not set | 631 | # CONFIG_NS83820 is not set |
595 | # CONFIG_HAMACHI is not set | 632 | # CONFIG_HAMACHI is not set |
596 | # CONFIG_YELLOWFIN is not set | 633 | # CONFIG_YELLOWFIN is not set |
@@ -616,6 +653,7 @@ CONFIG_NETDEV_10000=y | |||
616 | # CONFIG_NIU is not set | 653 | # CONFIG_NIU is not set |
617 | # CONFIG_MLX4_CORE is not set | 654 | # CONFIG_MLX4_CORE is not set |
618 | # CONFIG_TEHUTI is not set | 655 | # CONFIG_TEHUTI is not set |
656 | # CONFIG_BNX2X is not set | ||
619 | # CONFIG_TR is not set | 657 | # CONFIG_TR is not set |
620 | 658 | ||
621 | # | 659 | # |
@@ -629,7 +667,6 @@ CONFIG_NETDEV_10000=y | |||
629 | # CONFIG_PPP is not set | 667 | # CONFIG_PPP is not set |
630 | # CONFIG_SLIP is not set | 668 | # CONFIG_SLIP is not set |
631 | # CONFIG_NET_FC is not set | 669 | # CONFIG_NET_FC is not set |
632 | # CONFIG_SHAPER is not set | ||
633 | # CONFIG_NETCONSOLE is not set | 670 | # CONFIG_NETCONSOLE is not set |
634 | # CONFIG_NETPOLL is not set | 671 | # CONFIG_NETPOLL is not set |
635 | # CONFIG_NET_POLL_CONTROLLER is not set | 672 | # CONFIG_NET_POLL_CONTROLLER is not set |
@@ -686,6 +723,7 @@ CONFIG_SERIO_LIBPS2=y | |||
686 | # | 723 | # |
687 | # CONFIG_VT is not set | 724 | # CONFIG_VT is not set |
688 | # CONFIG_SERIAL_NONSTANDARD is not set | 725 | # CONFIG_SERIAL_NONSTANDARD is not set |
726 | # CONFIG_NOZOMI is not set | ||
689 | 727 | ||
690 | # | 728 | # |
691 | # Serial drivers | 729 | # Serial drivers |
@@ -722,6 +760,7 @@ CONFIG_DEVPORT=y | |||
722 | # CONFIG_POWER_SUPPLY is not set | 760 | # CONFIG_POWER_SUPPLY is not set |
723 | CONFIG_HWMON=y | 761 | CONFIG_HWMON=y |
724 | # CONFIG_HWMON_VID is not set | 762 | # CONFIG_HWMON_VID is not set |
763 | # CONFIG_SENSORS_I5K_AMB is not set | ||
725 | # CONFIG_SENSORS_F71805F is not set | 764 | # CONFIG_SENSORS_F71805F is not set |
726 | # CONFIG_SENSORS_F71882FG is not set | 765 | # CONFIG_SENSORS_F71882FG is not set |
727 | # CONFIG_SENSORS_IT87 is not set | 766 | # CONFIG_SENSORS_IT87 is not set |
@@ -736,6 +775,7 @@ CONFIG_HWMON=y | |||
736 | # CONFIG_SENSORS_W83627HF is not set | 775 | # CONFIG_SENSORS_W83627HF is not set |
737 | # CONFIG_SENSORS_W83627EHF is not set | 776 | # CONFIG_SENSORS_W83627EHF is not set |
738 | # CONFIG_HWMON_DEBUG_CHIP is not set | 777 | # CONFIG_HWMON_DEBUG_CHIP is not set |
778 | CONFIG_THERMAL=y | ||
739 | # CONFIG_WATCHDOG is not set | 779 | # CONFIG_WATCHDOG is not set |
740 | 780 | ||
741 | # | 781 | # |
@@ -800,12 +840,9 @@ CONFIG_USB_ARCH_HAS_EHCI=y | |||
800 | # | 840 | # |
801 | # NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support' | 841 | # NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support' |
802 | # | 842 | # |
803 | |||
804 | # | ||
805 | # USB Gadget Support | ||
806 | # | ||
807 | # CONFIG_USB_GADGET is not set | 843 | # CONFIG_USB_GADGET is not set |
808 | # CONFIG_MMC is not set | 844 | # CONFIG_MMC is not set |
845 | # CONFIG_MEMSTICK is not set | ||
809 | # CONFIG_NEW_LEDS is not set | 846 | # CONFIG_NEW_LEDS is not set |
810 | # CONFIG_INFINIBAND is not set | 847 | # CONFIG_INFINIBAND is not set |
811 | CONFIG_RTC_LIB=y | 848 | CONFIG_RTC_LIB=y |
@@ -830,9 +867,10 @@ CONFIG_RTC_INTF_DEV=y | |||
830 | # | 867 | # |
831 | # Platform RTC drivers | 868 | # Platform RTC drivers |
832 | # | 869 | # |
870 | # CONFIG_RTC_DRV_DS1511 is not set | ||
833 | # CONFIG_RTC_DRV_DS1553 is not set | 871 | # CONFIG_RTC_DRV_DS1553 is not set |
834 | # CONFIG_RTC_DRV_STK17TA8 is not set | ||
835 | # CONFIG_RTC_DRV_DS1742 is not set | 872 | # CONFIG_RTC_DRV_DS1742 is not set |
873 | # CONFIG_RTC_DRV_STK17TA8 is not set | ||
836 | # CONFIG_RTC_DRV_M48T86 is not set | 874 | # CONFIG_RTC_DRV_M48T86 is not set |
837 | # CONFIG_RTC_DRV_M48T59 is not set | 875 | # CONFIG_RTC_DRV_M48T59 is not set |
838 | # CONFIG_RTC_DRV_V3020 is not set | 876 | # CONFIG_RTC_DRV_V3020 is not set |
@@ -867,12 +905,10 @@ CONFIG_FS_POSIX_ACL=y | |||
867 | # CONFIG_XFS_FS is not set | 905 | # CONFIG_XFS_FS is not set |
868 | # CONFIG_GFS2_FS is not set | 906 | # CONFIG_GFS2_FS is not set |
869 | # CONFIG_OCFS2_FS is not set | 907 | # CONFIG_OCFS2_FS is not set |
870 | CONFIG_MINIX_FS=y | 908 | CONFIG_DNOTIFY=y |
871 | # CONFIG_ROMFS_FS is not set | ||
872 | CONFIG_INOTIFY=y | 909 | CONFIG_INOTIFY=y |
873 | CONFIG_INOTIFY_USER=y | 910 | CONFIG_INOTIFY_USER=y |
874 | # CONFIG_QUOTA is not set | 911 | # CONFIG_QUOTA is not set |
875 | CONFIG_DNOTIFY=y | ||
876 | # CONFIG_AUTOFS_FS is not set | 912 | # CONFIG_AUTOFS_FS is not set |
877 | # CONFIG_AUTOFS4_FS is not set | 913 | # CONFIG_AUTOFS4_FS is not set |
878 | CONFIG_FUSE_FS=m | 914 | CONFIG_FUSE_FS=m |
@@ -920,8 +956,10 @@ CONFIG_CONFIGFS_FS=m | |||
920 | # CONFIG_EFS_FS is not set | 956 | # CONFIG_EFS_FS is not set |
921 | # CONFIG_CRAMFS is not set | 957 | # CONFIG_CRAMFS is not set |
922 | # CONFIG_VXFS_FS is not set | 958 | # CONFIG_VXFS_FS is not set |
959 | CONFIG_MINIX_FS=y | ||
923 | # CONFIG_HPFS_FS is not set | 960 | # CONFIG_HPFS_FS is not set |
924 | # CONFIG_QNX4FS_FS is not set | 961 | # CONFIG_QNX4FS_FS is not set |
962 | # CONFIG_ROMFS_FS is not set | ||
925 | # CONFIG_SYSV_FS is not set | 963 | # CONFIG_SYSV_FS is not set |
926 | # CONFIG_UFS_FS is not set | 964 | # CONFIG_UFS_FS is not set |
927 | CONFIG_NETWORK_FILESYSTEMS=y | 965 | CONFIG_NETWORK_FILESYSTEMS=y |
@@ -997,10 +1035,6 @@ CONFIG_NLS_ISO8859_1=y | |||
997 | # CONFIG_NLS_KOI8_U is not set | 1035 | # CONFIG_NLS_KOI8_U is not set |
998 | # CONFIG_NLS_UTF8 is not set | 1036 | # CONFIG_NLS_UTF8 is not set |
999 | # CONFIG_DLM is not set | 1037 | # CONFIG_DLM is not set |
1000 | CONFIG_INSTRUMENTATION=y | ||
1001 | CONFIG_PROFILING=y | ||
1002 | CONFIG_OPROFILE=m | ||
1003 | # CONFIG_MARKERS is not set | ||
1004 | 1038 | ||
1005 | # | 1039 | # |
1006 | # Kernel hacking | 1040 | # Kernel hacking |
@@ -1035,9 +1069,9 @@ CONFIG_DEBUG_INFO=y | |||
1035 | # CONFIG_DEBUG_LIST is not set | 1069 | # CONFIG_DEBUG_LIST is not set |
1036 | # CONFIG_DEBUG_SG is not set | 1070 | # CONFIG_DEBUG_SG is not set |
1037 | # CONFIG_FRAME_POINTER is not set | 1071 | # CONFIG_FRAME_POINTER is not set |
1038 | CONFIG_FORCED_INLINING=y | ||
1039 | # CONFIG_BOOT_PRINTK_DELAY is not set | 1072 | # CONFIG_BOOT_PRINTK_DELAY is not set |
1040 | # CONFIG_RCU_TORTURE_TEST is not set | 1073 | # CONFIG_RCU_TORTURE_TEST is not set |
1074 | # CONFIG_BACKTRACE_SELF_TEST is not set | ||
1041 | # CONFIG_FAULT_INJECTION is not set | 1075 | # CONFIG_FAULT_INJECTION is not set |
1042 | # CONFIG_SAMPLES is not set | 1076 | # CONFIG_SAMPLES is not set |
1043 | CONFIG_SH_STANDARD_BIOS=y | 1077 | CONFIG_SH_STANDARD_BIOS=y |
@@ -1059,6 +1093,7 @@ CONFIG_DEBUG_STACKOVERFLOW=y | |||
1059 | CONFIG_CRYPTO=y | 1093 | CONFIG_CRYPTO=y |
1060 | CONFIG_CRYPTO_ALGAPI=y | 1094 | CONFIG_CRYPTO_ALGAPI=y |
1061 | CONFIG_CRYPTO_BLKCIPHER=y | 1095 | CONFIG_CRYPTO_BLKCIPHER=y |
1096 | # CONFIG_CRYPTO_SEQIV is not set | ||
1062 | CONFIG_CRYPTO_HASH=y | 1097 | CONFIG_CRYPTO_HASH=y |
1063 | CONFIG_CRYPTO_MANAGER=y | 1098 | CONFIG_CRYPTO_MANAGER=y |
1064 | CONFIG_CRYPTO_HMAC=y | 1099 | CONFIG_CRYPTO_HMAC=y |
@@ -1077,6 +1112,9 @@ CONFIG_CRYPTO_CBC=y | |||
1077 | CONFIG_CRYPTO_PCBC=m | 1112 | CONFIG_CRYPTO_PCBC=m |
1078 | # CONFIG_CRYPTO_LRW is not set | 1113 | # CONFIG_CRYPTO_LRW is not set |
1079 | # CONFIG_CRYPTO_XTS is not set | 1114 | # CONFIG_CRYPTO_XTS is not set |
1115 | # CONFIG_CRYPTO_CTR is not set | ||
1116 | # CONFIG_CRYPTO_GCM is not set | ||
1117 | # CONFIG_CRYPTO_CCM is not set | ||
1080 | # CONFIG_CRYPTO_CRYPTD is not set | 1118 | # CONFIG_CRYPTO_CRYPTD is not set |
1081 | CONFIG_CRYPTO_DES=y | 1119 | CONFIG_CRYPTO_DES=y |
1082 | # CONFIG_CRYPTO_FCRYPT is not set | 1120 | # CONFIG_CRYPTO_FCRYPT is not set |
@@ -1091,13 +1129,16 @@ CONFIG_CRYPTO_DES=y | |||
1091 | # CONFIG_CRYPTO_KHAZAD is not set | 1129 | # CONFIG_CRYPTO_KHAZAD is not set |
1092 | # CONFIG_CRYPTO_ANUBIS is not set | 1130 | # CONFIG_CRYPTO_ANUBIS is not set |
1093 | # CONFIG_CRYPTO_SEED is not set | 1131 | # CONFIG_CRYPTO_SEED is not set |
1132 | # CONFIG_CRYPTO_SALSA20 is not set | ||
1094 | # CONFIG_CRYPTO_DEFLATE is not set | 1133 | # CONFIG_CRYPTO_DEFLATE is not set |
1095 | # CONFIG_CRYPTO_MICHAEL_MIC is not set | 1134 | # CONFIG_CRYPTO_MICHAEL_MIC is not set |
1096 | # CONFIG_CRYPTO_CRC32C is not set | 1135 | # CONFIG_CRYPTO_CRC32C is not set |
1097 | # CONFIG_CRYPTO_CAMELLIA is not set | 1136 | # CONFIG_CRYPTO_CAMELLIA is not set |
1098 | # CONFIG_CRYPTO_TEST is not set | 1137 | # CONFIG_CRYPTO_TEST is not set |
1099 | # CONFIG_CRYPTO_AUTHENC is not set | 1138 | # CONFIG_CRYPTO_AUTHENC is not set |
1139 | # CONFIG_CRYPTO_LZO is not set | ||
1100 | CONFIG_CRYPTO_HW=y | 1140 | CONFIG_CRYPTO_HW=y |
1141 | # CONFIG_CRYPTO_DEV_HIFN_795X is not set | ||
1101 | 1142 | ||
1102 | # | 1143 | # |
1103 | # Library routines | 1144 | # Library routines |
diff --git a/arch/sh/configs/se7780_defconfig b/arch/sh/configs/se7780_defconfig index f68743dc39..30f5ee40c3 100644 --- a/arch/sh/configs/se7780_defconfig +++ b/arch/sh/configs/se7780_defconfig | |||
@@ -1,9 +1,10 @@ | |||
1 | # | 1 | # |
2 | # Automatically generated make config: don't edit | 2 | # Automatically generated make config: don't edit |
3 | # Linux kernel version: 2.6.21-rc3 | 3 | # Linux kernel version: 2.6.25-rc3 |
4 | # Thu Mar 15 14:06:20 2007 | 4 | # Thu Feb 28 10:18:04 2008 |
5 | # | 5 | # |
6 | CONFIG_SUPERH=y | 6 | CONFIG_SUPERH=y |
7 | CONFIG_SUPERH32=y | ||
7 | CONFIG_RWSEM_GENERIC_SPINLOCK=y | 8 | CONFIG_RWSEM_GENERIC_SPINLOCK=y |
8 | CONFIG_GENERIC_BUG=y | 9 | CONFIG_GENERIC_BUG=y |
9 | CONFIG_GENERIC_FIND_NEXT_BIT=y | 10 | CONFIG_GENERIC_FIND_NEXT_BIT=y |
@@ -11,38 +12,44 @@ CONFIG_GENERIC_HWEIGHT=y | |||
11 | CONFIG_GENERIC_HARDIRQS=y | 12 | CONFIG_GENERIC_HARDIRQS=y |
12 | CONFIG_GENERIC_IRQ_PROBE=y | 13 | CONFIG_GENERIC_IRQ_PROBE=y |
13 | CONFIG_GENERIC_CALIBRATE_DELAY=y | 14 | CONFIG_GENERIC_CALIBRATE_DELAY=y |
14 | # CONFIG_GENERIC_TIME is not set | 15 | CONFIG_GENERIC_TIME=y |
16 | CONFIG_GENERIC_CLOCKEVENTS=y | ||
17 | CONFIG_SYS_SUPPORTS_PCI=y | ||
15 | CONFIG_STACKTRACE_SUPPORT=y | 18 | CONFIG_STACKTRACE_SUPPORT=y |
16 | CONFIG_LOCKDEP_SUPPORT=y | 19 | CONFIG_LOCKDEP_SUPPORT=y |
17 | # CONFIG_ARCH_HAS_ILOG2_U32 is not set | 20 | # CONFIG_ARCH_HAS_ILOG2_U32 is not set |
18 | # CONFIG_ARCH_HAS_ILOG2_U64 is not set | 21 | # CONFIG_ARCH_HAS_ILOG2_U64 is not set |
22 | CONFIG_ARCH_NO_VIRT_TO_BUS=y | ||
23 | CONFIG_ARCH_SUPPORTS_AOUT=y | ||
19 | CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config" | 24 | CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config" |
20 | 25 | ||
21 | # | 26 | # |
22 | # Code maturity level options | 27 | # General setup |
23 | # | 28 | # |
24 | # CONFIG_EXPERIMENTAL is not set | 29 | # CONFIG_EXPERIMENTAL is not set |
25 | CONFIG_BROKEN_ON_SMP=y | 30 | CONFIG_BROKEN_ON_SMP=y |
26 | CONFIG_INIT_ENV_ARG_LIMIT=32 | 31 | CONFIG_INIT_ENV_ARG_LIMIT=32 |
27 | |||
28 | # | ||
29 | # General setup | ||
30 | # | ||
31 | CONFIG_LOCALVERSION="" | 32 | CONFIG_LOCALVERSION="" |
32 | CONFIG_LOCALVERSION_AUTO=y | 33 | CONFIG_LOCALVERSION_AUTO=y |
33 | # CONFIG_SWAP is not set | 34 | # CONFIG_SWAP is not set |
34 | CONFIG_SYSVIPC=y | 35 | CONFIG_SYSVIPC=y |
35 | # CONFIG_IPC_NS is not set | ||
36 | CONFIG_SYSVIPC_SYSCTL=y | 36 | CONFIG_SYSVIPC_SYSCTL=y |
37 | # CONFIG_BSD_PROCESS_ACCT is not set | 37 | # CONFIG_BSD_PROCESS_ACCT is not set |
38 | # CONFIG_TASKSTATS is not set | 38 | # CONFIG_TASKSTATS is not set |
39 | # CONFIG_UTS_NS is not set | ||
40 | # CONFIG_AUDIT is not set | 39 | # CONFIG_AUDIT is not set |
41 | CONFIG_IKCONFIG=y | 40 | CONFIG_IKCONFIG=y |
42 | CONFIG_IKCONFIG_PROC=y | 41 | CONFIG_IKCONFIG_PROC=y |
42 | CONFIG_LOG_BUF_SHIFT=14 | ||
43 | # CONFIG_CGROUPS is not set | ||
44 | CONFIG_GROUP_SCHED=y | ||
45 | CONFIG_FAIR_GROUP_SCHED=y | ||
46 | CONFIG_USER_SCHED=y | ||
47 | # CONFIG_CGROUP_SCHED is not set | ||
43 | CONFIG_SYSFS_DEPRECATED=y | 48 | CONFIG_SYSFS_DEPRECATED=y |
44 | # CONFIG_RELAY is not set | 49 | # CONFIG_RELAY is not set |
50 | # CONFIG_NAMESPACES is not set | ||
45 | # CONFIG_BLK_DEV_INITRD is not set | 51 | # CONFIG_BLK_DEV_INITRD is not set |
52 | CONFIG_CC_OPTIMIZE_FOR_SIZE=y | ||
46 | CONFIG_SYSCTL=y | 53 | CONFIG_SYSCTL=y |
47 | CONFIG_EMBEDDED=y | 54 | CONFIG_EMBEDDED=y |
48 | CONFIG_UID16=y | 55 | CONFIG_UID16=y |
@@ -52,31 +59,36 @@ CONFIG_SYSCTL_SYSCALL=y | |||
52 | CONFIG_PRINTK=y | 59 | CONFIG_PRINTK=y |
53 | CONFIG_BUG=y | 60 | CONFIG_BUG=y |
54 | CONFIG_ELF_CORE=y | 61 | CONFIG_ELF_CORE=y |
62 | CONFIG_COMPAT_BRK=y | ||
55 | CONFIG_BASE_FULL=y | 63 | CONFIG_BASE_FULL=y |
56 | CONFIG_FUTEX=y | 64 | CONFIG_FUTEX=y |
65 | CONFIG_ANON_INODES=y | ||
57 | # CONFIG_EPOLL is not set | 66 | # CONFIG_EPOLL is not set |
67 | CONFIG_SIGNALFD=y | ||
68 | CONFIG_TIMERFD=y | ||
69 | CONFIG_EVENTFD=y | ||
58 | CONFIG_SHMEM=y | 70 | CONFIG_SHMEM=y |
59 | CONFIG_SLAB=y | ||
60 | CONFIG_VM_EVENT_COUNTERS=y | 71 | CONFIG_VM_EVENT_COUNTERS=y |
72 | CONFIG_SLAB=y | ||
73 | # CONFIG_SLUB is not set | ||
74 | # CONFIG_SLOB is not set | ||
75 | # CONFIG_PROFILING is not set | ||
76 | # CONFIG_MARKERS is not set | ||
77 | CONFIG_HAVE_OPROFILE=y | ||
78 | # CONFIG_HAVE_KPROBES is not set | ||
79 | CONFIG_PROC_PAGE_MONITOR=y | ||
80 | CONFIG_SLABINFO=y | ||
61 | CONFIG_RT_MUTEXES=y | 81 | CONFIG_RT_MUTEXES=y |
62 | # CONFIG_TINY_SHMEM is not set | 82 | # CONFIG_TINY_SHMEM is not set |
63 | CONFIG_BASE_SMALL=0 | 83 | CONFIG_BASE_SMALL=0 |
64 | # CONFIG_SLOB is not set | ||
65 | |||
66 | # | ||
67 | # Loadable module support | ||
68 | # | ||
69 | CONFIG_MODULES=y | 84 | CONFIG_MODULES=y |
70 | CONFIG_MODULE_UNLOAD=y | 85 | CONFIG_MODULE_UNLOAD=y |
71 | # CONFIG_MODVERSIONS is not set | 86 | # CONFIG_MODVERSIONS is not set |
72 | # CONFIG_MODULE_SRCVERSION_ALL is not set | 87 | # CONFIG_MODULE_SRCVERSION_ALL is not set |
73 | CONFIG_KMOD=y | 88 | CONFIG_KMOD=y |
74 | |||
75 | # | ||
76 | # Block layer | ||
77 | # | ||
78 | CONFIG_BLOCK=y | 89 | CONFIG_BLOCK=y |
79 | # CONFIG_LBD is not set | 90 | # CONFIG_LBD is not set |
91 | # CONFIG_BLK_DEV_IO_TRACE is not set | ||
80 | # CONFIG_LSF is not set | 92 | # CONFIG_LSF is not set |
81 | 93 | ||
82 | # | 94 | # |
@@ -91,68 +103,27 @@ CONFIG_DEFAULT_DEADLINE=y | |||
91 | # CONFIG_DEFAULT_CFQ is not set | 103 | # CONFIG_DEFAULT_CFQ is not set |
92 | # CONFIG_DEFAULT_NOOP is not set | 104 | # CONFIG_DEFAULT_NOOP is not set |
93 | CONFIG_DEFAULT_IOSCHED="deadline" | 105 | CONFIG_DEFAULT_IOSCHED="deadline" |
106 | CONFIG_CLASSIC_RCU=y | ||
107 | # CONFIG_PREEMPT_RCU is not set | ||
94 | 108 | ||
95 | # | 109 | # |
96 | # System type | 110 | # System type |
97 | # | 111 | # |
98 | CONFIG_SOLUTION_ENGINE=y | ||
99 | # CONFIG_SH_SOLUTION_ENGINE is not set | ||
100 | # CONFIG_SH_7751_SOLUTION_ENGINE is not set | ||
101 | CONFIG_SH_7780_SOLUTION_ENGINE=y | ||
102 | # CONFIG_SH_7300_SOLUTION_ENGINE is not set | ||
103 | # CONFIG_SH_7343_SOLUTION_ENGINE is not set | ||
104 | # CONFIG_SH_73180_SOLUTION_ENGINE is not set | ||
105 | # CONFIG_SH_7751_SYSTEMH is not set | ||
106 | # CONFIG_SH_HP6XX is not set | ||
107 | # CONFIG_SH_SATURN is not set | ||
108 | # CONFIG_SH_DREAMCAST is not set | ||
109 | # CONFIG_SH_MPC1211 is not set | ||
110 | # CONFIG_SH_SH03 is not set | ||
111 | # CONFIG_SH_SECUREEDGE5410 is not set | ||
112 | # CONFIG_SH_HS7751RVOIP is not set | ||
113 | # CONFIG_SH_7710VOIPGW is not set | ||
114 | # CONFIG_SH_RTS7751R2D is not set | ||
115 | # CONFIG_SH_HIGHLANDER is not set | ||
116 | # CONFIG_SH_EDOSK7705 is not set | ||
117 | # CONFIG_SH_SH4202_MICRODEV is not set | ||
118 | # CONFIG_SH_LANDISK is not set | ||
119 | # CONFIG_SH_TITAN is not set | ||
120 | # CONFIG_SH_SHMIN is not set | ||
121 | # CONFIG_SH_7206_SOLUTION_ENGINE is not set | ||
122 | # CONFIG_SH_7619_SOLUTION_ENGINE is not set | ||
123 | # CONFIG_SH_UNKNOWN is not set | ||
124 | |||
125 | # | ||
126 | # Processor selection | ||
127 | # | ||
128 | CONFIG_CPU_SH4=y | 112 | CONFIG_CPU_SH4=y |
129 | CONFIG_CPU_SH4A=y | 113 | CONFIG_CPU_SH4A=y |
130 | |||
131 | # | ||
132 | # SH-2 Processor Support | ||
133 | # | ||
134 | # CONFIG_CPU_SUBTYPE_SH7604 is not set | ||
135 | # CONFIG_CPU_SUBTYPE_SH7619 is not set | 114 | # CONFIG_CPU_SUBTYPE_SH7619 is not set |
136 | 115 | # CONFIG_CPU_SUBTYPE_SH7203 is not set | |
137 | # | ||
138 | # SH-2A Processor Support | ||
139 | # | ||
140 | # CONFIG_CPU_SUBTYPE_SH7206 is not set | 116 | # CONFIG_CPU_SUBTYPE_SH7206 is not set |
141 | 117 | # CONFIG_CPU_SUBTYPE_SH7263 is not set | |
142 | # | ||
143 | # SH-3 Processor Support | ||
144 | # | ||
145 | # CONFIG_CPU_SUBTYPE_SH7300 is not set | ||
146 | # CONFIG_CPU_SUBTYPE_SH7705 is not set | 118 | # CONFIG_CPU_SUBTYPE_SH7705 is not set |
147 | # CONFIG_CPU_SUBTYPE_SH7706 is not set | 119 | # CONFIG_CPU_SUBTYPE_SH7706 is not set |
148 | # CONFIG_CPU_SUBTYPE_SH7707 is not set | 120 | # CONFIG_CPU_SUBTYPE_SH7707 is not set |
149 | # CONFIG_CPU_SUBTYPE_SH7708 is not set | 121 | # CONFIG_CPU_SUBTYPE_SH7708 is not set |
150 | # CONFIG_CPU_SUBTYPE_SH7709 is not set | 122 | # CONFIG_CPU_SUBTYPE_SH7709 is not set |
151 | # CONFIG_CPU_SUBTYPE_SH7710 is not set | 123 | # CONFIG_CPU_SUBTYPE_SH7710 is not set |
152 | 124 | # CONFIG_CPU_SUBTYPE_SH7712 is not set | |
153 | # | 125 | # CONFIG_CPU_SUBTYPE_SH7720 is not set |
154 | # SH-4 Processor Support | 126 | # CONFIG_CPU_SUBTYPE_SH7721 is not set |
155 | # | ||
156 | # CONFIG_CPU_SUBTYPE_SH7750 is not set | 127 | # CONFIG_CPU_SUBTYPE_SH7750 is not set |
157 | # CONFIG_CPU_SUBTYPE_SH7091 is not set | 128 | # CONFIG_CPU_SUBTYPE_SH7091 is not set |
158 | # CONFIG_CPU_SUBTYPE_SH7750R is not set | 129 | # CONFIG_CPU_SUBTYPE_SH7750R is not set |
@@ -161,52 +132,58 @@ CONFIG_CPU_SH4A=y | |||
161 | # CONFIG_CPU_SUBTYPE_SH7751R is not set | 132 | # CONFIG_CPU_SUBTYPE_SH7751R is not set |
162 | # CONFIG_CPU_SUBTYPE_SH7760 is not set | 133 | # CONFIG_CPU_SUBTYPE_SH7760 is not set |
163 | # CONFIG_CPU_SUBTYPE_SH4_202 is not set | 134 | # CONFIG_CPU_SUBTYPE_SH4_202 is not set |
164 | 135 | # CONFIG_CPU_SUBTYPE_SH7763 is not set | |
165 | # | ||
166 | # ST40 Processor Support | ||
167 | # | ||
168 | # CONFIG_CPU_SUBTYPE_ST40STB1 is not set | ||
169 | # CONFIG_CPU_SUBTYPE_ST40GX1 is not set | ||
170 | |||
171 | # | ||
172 | # SH-4A Processor Support | ||
173 | # | ||
174 | # CONFIG_CPU_SUBTYPE_SH7770 is not set | 136 | # CONFIG_CPU_SUBTYPE_SH7770 is not set |
175 | CONFIG_CPU_SUBTYPE_SH7780=y | 137 | CONFIG_CPU_SUBTYPE_SH7780=y |
176 | # CONFIG_CPU_SUBTYPE_SH7785 is not set | 138 | # CONFIG_CPU_SUBTYPE_SH7785 is not set |
177 | 139 | # CONFIG_CPU_SUBTYPE_SHX3 is not set | |
178 | # | ||
179 | # SH4AL-DSP Processor Support | ||
180 | # | ||
181 | # CONFIG_CPU_SUBTYPE_SH73180 is not set | ||
182 | # CONFIG_CPU_SUBTYPE_SH7343 is not set | 140 | # CONFIG_CPU_SUBTYPE_SH7343 is not set |
183 | # CONFIG_CPU_SUBTYPE_SH7722 is not set | 141 | # CONFIG_CPU_SUBTYPE_SH7722 is not set |
142 | # CONFIG_CPU_SUBTYPE_SH7366 is not set | ||
143 | # CONFIG_CPU_SUBTYPE_SH5_101 is not set | ||
144 | # CONFIG_CPU_SUBTYPE_SH5_103 is not set | ||
184 | 145 | ||
185 | # | 146 | # |
186 | # Memory management options | 147 | # Memory management options |
187 | # | 148 | # |
149 | CONFIG_QUICKLIST=y | ||
188 | CONFIG_MMU=y | 150 | CONFIG_MMU=y |
189 | CONFIG_PAGE_OFFSET=0x80000000 | 151 | CONFIG_PAGE_OFFSET=0x80000000 |
190 | CONFIG_MEMORY_START=0x08000000 | 152 | CONFIG_MEMORY_START=0x08000000 |
191 | CONFIG_MEMORY_SIZE=0x08000000 | 153 | CONFIG_MEMORY_SIZE=0x08000000 |
192 | CONFIG_32BIT=y | 154 | CONFIG_29BIT=y |
155 | # CONFIG_PMB is not set | ||
193 | CONFIG_VSYSCALL=y | 156 | CONFIG_VSYSCALL=y |
157 | CONFIG_ARCH_FLATMEM_ENABLE=y | ||
158 | CONFIG_ARCH_SPARSEMEM_ENABLE=y | ||
159 | CONFIG_ARCH_SPARSEMEM_DEFAULT=y | ||
160 | CONFIG_MAX_ACTIVE_REGIONS=1 | ||
161 | CONFIG_ARCH_POPULATES_NODE_MAP=y | ||
162 | CONFIG_ARCH_SELECT_MEMORY_MODEL=y | ||
163 | CONFIG_ARCH_ENABLE_MEMORY_HOTPLUG=y | ||
194 | CONFIG_PAGE_SIZE_4KB=y | 164 | CONFIG_PAGE_SIZE_4KB=y |
195 | # CONFIG_PAGE_SIZE_8KB is not set | 165 | # CONFIG_PAGE_SIZE_8KB is not set |
196 | # CONFIG_PAGE_SIZE_64KB is not set | 166 | # CONFIG_PAGE_SIZE_64KB is not set |
197 | CONFIG_FLATMEM=y | 167 | CONFIG_SELECT_MEMORY_MODEL=y |
198 | CONFIG_FLAT_NODE_MEM_MAP=y | 168 | # CONFIG_FLATMEM_MANUAL is not set |
199 | # CONFIG_SPARSEMEM_STATIC is not set | 169 | # CONFIG_DISCONTIGMEM_MANUAL is not set |
170 | CONFIG_SPARSEMEM_MANUAL=y | ||
171 | CONFIG_SPARSEMEM=y | ||
172 | CONFIG_HAVE_MEMORY_PRESENT=y | ||
173 | CONFIG_SPARSEMEM_STATIC=y | ||
174 | # CONFIG_SPARSEMEM_VMEMMAP_ENABLE is not set | ||
200 | CONFIG_SPLIT_PTLOCK_CPUS=4 | 175 | CONFIG_SPLIT_PTLOCK_CPUS=4 |
201 | # CONFIG_RESOURCES_64BIT is not set | 176 | # CONFIG_RESOURCES_64BIT is not set |
202 | CONFIG_ZONE_DMA_FLAG=0 | 177 | CONFIG_ZONE_DMA_FLAG=0 |
178 | CONFIG_NR_QUICK=2 | ||
203 | 179 | ||
204 | # | 180 | # |
205 | # Cache configuration | 181 | # Cache configuration |
206 | # | 182 | # |
207 | # CONFIG_SH_DIRECT_MAPPED is not set | 183 | # CONFIG_SH_DIRECT_MAPPED is not set |
208 | # CONFIG_SH_WRITETHROUGH is not set | 184 | CONFIG_CACHE_WRITEBACK=y |
209 | # CONFIG_SH_OCRAM is not set | 185 | # CONFIG_CACHE_WRITETHROUGH is not set |
186 | # CONFIG_CACHE_OFF is not set | ||
210 | 187 | ||
211 | # | 188 | # |
212 | # Processor features | 189 | # Processor features |
@@ -214,20 +191,29 @@ CONFIG_ZONE_DMA_FLAG=0 | |||
214 | CONFIG_CPU_LITTLE_ENDIAN=y | 191 | CONFIG_CPU_LITTLE_ENDIAN=y |
215 | # CONFIG_CPU_BIG_ENDIAN is not set | 192 | # CONFIG_CPU_BIG_ENDIAN is not set |
216 | CONFIG_SH_FPU=y | 193 | CONFIG_SH_FPU=y |
217 | # CONFIG_SH_DSP is not set | ||
218 | # CONFIG_SH_STORE_QUEUES is not set | 194 | # CONFIG_SH_STORE_QUEUES is not set |
219 | CONFIG_CPU_HAS_INTEVT=y | 195 | CONFIG_CPU_HAS_INTEVT=y |
220 | CONFIG_CPU_HAS_INTC2_IRQ=y | ||
221 | CONFIG_CPU_HAS_INTC_IRQ=y | ||
222 | CONFIG_CPU_HAS_SR_RB=y | 196 | CONFIG_CPU_HAS_SR_RB=y |
197 | CONFIG_CPU_HAS_FPU=y | ||
198 | |||
199 | # | ||
200 | # Board support | ||
201 | # | ||
202 | CONFIG_SOLUTION_ENGINE=y | ||
203 | CONFIG_SH_7780_SOLUTION_ENGINE=y | ||
204 | # CONFIG_SH_SDK7780 is not set | ||
205 | # CONFIG_SH_HIGHLANDER is not set | ||
223 | 206 | ||
224 | # | 207 | # |
225 | # Timer and clock configuration | 208 | # Timer and clock configuration |
226 | # | 209 | # |
227 | CONFIG_SH_TMU=y | 210 | CONFIG_SH_TMU=y |
228 | CONFIG_SH_TIMER_IRQ=28 | 211 | CONFIG_SH_TIMER_IRQ=28 |
229 | # CONFIG_NO_IDLE_HZ is not set | ||
230 | CONFIG_SH_PCLK_FREQ=33333333 | 212 | CONFIG_SH_PCLK_FREQ=33333333 |
213 | # CONFIG_TICK_ONESHOT is not set | ||
214 | # CONFIG_NO_HZ is not set | ||
215 | # CONFIG_HIGH_RES_TIMERS is not set | ||
216 | CONFIG_GENERIC_CLOCKEVENTS_BUILD=y | ||
231 | 217 | ||
232 | # | 218 | # |
233 | # CPU Frequency scaling | 219 | # CPU Frequency scaling |
@@ -242,7 +228,6 @@ CONFIG_SH_PCLK_FREQ=33333333 | |||
242 | # | 228 | # |
243 | # Companion Chips | 229 | # Companion Chips |
244 | # | 230 | # |
245 | # CONFIG_HD6446X_SERIES is not set | ||
246 | 231 | ||
247 | # | 232 | # |
248 | # Additional SuperH Device Drivers | 233 | # Additional SuperH Device Drivers |
@@ -258,40 +243,36 @@ CONFIG_HZ_250=y | |||
258 | # CONFIG_HZ_300 is not set | 243 | # CONFIG_HZ_300 is not set |
259 | # CONFIG_HZ_1000 is not set | 244 | # CONFIG_HZ_1000 is not set |
260 | CONFIG_HZ=250 | 245 | CONFIG_HZ=250 |
261 | # CONFIG_SMP is not set | 246 | # CONFIG_SCHED_HRTICK is not set |
262 | CONFIG_PREEMPT_NONE=y | 247 | CONFIG_PREEMPT_NONE=y |
263 | # CONFIG_PREEMPT_VOLUNTARY is not set | 248 | # CONFIG_PREEMPT_VOLUNTARY is not set |
264 | # CONFIG_PREEMPT is not set | 249 | # CONFIG_PREEMPT is not set |
250 | CONFIG_RCU_TRACE=y | ||
251 | CONFIG_GUSA=y | ||
265 | 252 | ||
266 | # | 253 | # |
267 | # Boot options | 254 | # Boot options |
268 | # | 255 | # |
269 | CONFIG_ZERO_PAGE_OFFSET=0x00001000 | 256 | CONFIG_ZERO_PAGE_OFFSET=0x00001000 |
270 | CONFIG_BOOT_LINK_OFFSET=0x00810000 | 257 | CONFIG_BOOT_LINK_OFFSET=0x00810000 |
271 | # CONFIG_UBC_WAKEUP is not set | 258 | CONFIG_CMDLINE_BOOL=y |
272 | # CONFIG_CMDLINE_BOOL is not set | 259 | CONFIG_CMDLINE="console=ttySC0.115200 root=/dev/sda1" |
273 | 260 | ||
274 | # | 261 | # |
275 | # Bus options | 262 | # Bus options |
276 | # | 263 | # |
264 | # CONFIG_CF_ENABLER is not set | ||
277 | CONFIG_PCI=y | 265 | CONFIG_PCI=y |
278 | CONFIG_SH_PCIDMA_NONCOHERENT=y | 266 | CONFIG_SH_PCIDMA_NONCOHERENT=y |
279 | CONFIG_PCI_AUTO=y | 267 | CONFIG_PCI_AUTO=y |
280 | CONFIG_PCI_AUTO_UPDATE_RESOURCES=y | 268 | CONFIG_PCI_AUTO_UPDATE_RESOURCES=y |
281 | 269 | # CONFIG_ARCH_SUPPORTS_MSI is not set | |
282 | # | 270 | CONFIG_PCI_LEGACY=y |
283 | # PCCARD (PCMCIA/CardBus) support | ||
284 | # | ||
285 | |||
286 | # | ||
287 | # PCI Hotplug Support | ||
288 | # | ||
289 | 271 | ||
290 | # | 272 | # |
291 | # Executable file formats | 273 | # Executable file formats |
292 | # | 274 | # |
293 | CONFIG_BINFMT_ELF=y | 275 | CONFIG_BINFMT_ELF=y |
294 | # CONFIG_BINFMT_FLAT is not set | ||
295 | # CONFIG_BINFMT_MISC is not set | 276 | # CONFIG_BINFMT_MISC is not set |
296 | 277 | ||
297 | # | 278 | # |
@@ -302,7 +283,6 @@ CONFIG_NET=y | |||
302 | # | 283 | # |
303 | # Networking options | 284 | # Networking options |
304 | # | 285 | # |
305 | # CONFIG_NETDEBUG is not set | ||
306 | CONFIG_PACKET=y | 286 | CONFIG_PACKET=y |
307 | # CONFIG_PACKET_MMAP is not set | 287 | # CONFIG_PACKET_MMAP is not set |
308 | CONFIG_UNIX=y | 288 | CONFIG_UNIX=y |
@@ -329,6 +309,7 @@ CONFIG_IP_PNP=y | |||
329 | CONFIG_INET_XFRM_MODE_TRANSPORT=y | 309 | CONFIG_INET_XFRM_MODE_TRANSPORT=y |
330 | CONFIG_INET_XFRM_MODE_TUNNEL=y | 310 | CONFIG_INET_XFRM_MODE_TUNNEL=y |
331 | CONFIG_INET_XFRM_MODE_BEET=y | 311 | CONFIG_INET_XFRM_MODE_BEET=y |
312 | # CONFIG_INET_LRO is not set | ||
332 | CONFIG_INET_DIAG=y | 313 | CONFIG_INET_DIAG=y |
333 | CONFIG_INET_TCP_DIAG=y | 314 | CONFIG_INET_TCP_DIAG=y |
334 | # CONFIG_TCP_CONG_ADVANCED is not set | 315 | # CONFIG_TCP_CONG_ADVANCED is not set |
@@ -349,16 +330,13 @@ CONFIG_IPV6=y | |||
349 | # CONFIG_IPV6_TUNNEL is not set | 330 | # CONFIG_IPV6_TUNNEL is not set |
350 | # CONFIG_NETWORK_SECMARK is not set | 331 | # CONFIG_NETWORK_SECMARK is not set |
351 | # CONFIG_NETFILTER is not set | 332 | # CONFIG_NETFILTER is not set |
333 | # CONFIG_ATM is not set | ||
352 | # CONFIG_BRIDGE is not set | 334 | # CONFIG_BRIDGE is not set |
353 | # CONFIG_VLAN_8021Q is not set | 335 | # CONFIG_VLAN_8021Q is not set |
354 | # CONFIG_DECNET is not set | 336 | # CONFIG_DECNET is not set |
355 | # CONFIG_LLC2 is not set | 337 | # CONFIG_LLC2 is not set |
356 | # CONFIG_IPX is not set | 338 | # CONFIG_IPX is not set |
357 | # CONFIG_ATALK is not set | 339 | # CONFIG_ATALK is not set |
358 | |||
359 | # | ||
360 | # QoS and/or fair queueing | ||
361 | # | ||
362 | # CONFIG_NET_SCHED is not set | 340 | # CONFIG_NET_SCHED is not set |
363 | 341 | ||
364 | # | 342 | # |
@@ -366,9 +344,18 @@ CONFIG_IPV6=y | |||
366 | # | 344 | # |
367 | # CONFIG_NET_PKTGEN is not set | 345 | # CONFIG_NET_PKTGEN is not set |
368 | # CONFIG_HAMRADIO is not set | 346 | # CONFIG_HAMRADIO is not set |
347 | # CONFIG_CAN is not set | ||
369 | # CONFIG_IRDA is not set | 348 | # CONFIG_IRDA is not set |
370 | # CONFIG_BT is not set | 349 | # CONFIG_BT is not set |
350 | |||
351 | # | ||
352 | # Wireless | ||
353 | # | ||
354 | # CONFIG_CFG80211 is not set | ||
355 | # CONFIG_WIRELESS_EXT is not set | ||
356 | # CONFIG_MAC80211 is not set | ||
371 | # CONFIG_IEEE80211 is not set | 357 | # CONFIG_IEEE80211 is not set |
358 | # CONFIG_RFKILL is not set | ||
372 | 359 | ||
373 | # | 360 | # |
374 | # Device Drivers | 361 | # Device Drivers |
@@ -380,15 +367,7 @@ CONFIG_IPV6=y | |||
380 | CONFIG_STANDALONE=y | 367 | CONFIG_STANDALONE=y |
381 | # CONFIG_PREVENT_FIRMWARE_BUILD is not set | 368 | # CONFIG_PREVENT_FIRMWARE_BUILD is not set |
382 | # CONFIG_SYS_HYPERVISOR is not set | 369 | # CONFIG_SYS_HYPERVISOR is not set |
383 | |||
384 | # | ||
385 | # Connector - unified userspace <-> kernelspace linker | ||
386 | # | ||
387 | # CONFIG_CONNECTOR is not set | 370 | # CONFIG_CONNECTOR is not set |
388 | |||
389 | # | ||
390 | # Memory Technology Devices (MTD) | ||
391 | # | ||
392 | CONFIG_MTD=y | 371 | CONFIG_MTD=y |
393 | # CONFIG_MTD_DEBUG is not set | 372 | # CONFIG_MTD_DEBUG is not set |
394 | # CONFIG_MTD_CONCAT is not set | 373 | # CONFIG_MTD_CONCAT is not set |
@@ -407,6 +386,7 @@ CONFIG_MTD_BLOCK=y | |||
407 | # CONFIG_INFTL is not set | 386 | # CONFIG_INFTL is not set |
408 | # CONFIG_RFD_FTL is not set | 387 | # CONFIG_RFD_FTL is not set |
409 | # CONFIG_SSFDC is not set | 388 | # CONFIG_SSFDC is not set |
389 | # CONFIG_MTD_OOPS is not set | ||
410 | 390 | ||
411 | # | 391 | # |
412 | # RAM/ROM/Flash chip drivers | 392 | # RAM/ROM/Flash chip drivers |
@@ -437,13 +417,13 @@ CONFIG_MTD_CFI_UTIL=y | |||
437 | # CONFIG_MTD_RAM is not set | 417 | # CONFIG_MTD_RAM is not set |
438 | CONFIG_MTD_ROM=y | 418 | CONFIG_MTD_ROM=y |
439 | # CONFIG_MTD_ABSENT is not set | 419 | # CONFIG_MTD_ABSENT is not set |
440 | # CONFIG_MTD_OBSOLETE_CHIPS is not set | ||
441 | 420 | ||
442 | # | 421 | # |
443 | # Mapping drivers for chip access | 422 | # Mapping drivers for chip access |
444 | # | 423 | # |
445 | # CONFIG_MTD_COMPLEX_MAPPINGS is not set | 424 | # CONFIG_MTD_COMPLEX_MAPPINGS is not set |
446 | # CONFIG_MTD_PHYSMAP is not set | 425 | # CONFIG_MTD_PHYSMAP is not set |
426 | # CONFIG_MTD_INTEL_VR_NOR is not set | ||
447 | # CONFIG_MTD_PLATRAM is not set | 427 | # CONFIG_MTD_PLATRAM is not set |
448 | 428 | ||
449 | # | 429 | # |
@@ -461,31 +441,15 @@ CONFIG_MTD_ROM=y | |||
461 | # CONFIG_MTD_DOC2000 is not set | 441 | # CONFIG_MTD_DOC2000 is not set |
462 | # CONFIG_MTD_DOC2001 is not set | 442 | # CONFIG_MTD_DOC2001 is not set |
463 | # CONFIG_MTD_DOC2001PLUS is not set | 443 | # CONFIG_MTD_DOC2001PLUS is not set |
464 | |||
465 | # | ||
466 | # NAND Flash Device Drivers | ||
467 | # | ||
468 | # CONFIG_MTD_NAND is not set | 444 | # CONFIG_MTD_NAND is not set |
469 | |||
470 | # | ||
471 | # OneNAND Flash Device Drivers | ||
472 | # | ||
473 | # CONFIG_MTD_ONENAND is not set | 445 | # CONFIG_MTD_ONENAND is not set |
474 | 446 | ||
475 | # | 447 | # |
476 | # Parallel port support | 448 | # UBI - Unsorted block images |
477 | # | 449 | # |
450 | # CONFIG_MTD_UBI is not set | ||
478 | # CONFIG_PARPORT is not set | 451 | # CONFIG_PARPORT is not set |
479 | 452 | CONFIG_BLK_DEV=y | |
480 | # | ||
481 | # Plug and Play support | ||
482 | # | ||
483 | # CONFIG_PNPACPI is not set | ||
484 | |||
485 | # | ||
486 | # Block devices | ||
487 | # | ||
488 | # CONFIG_BLK_CPQ_DA is not set | ||
489 | # CONFIG_BLK_CPQ_CISS_DA is not set | 453 | # CONFIG_BLK_CPQ_CISS_DA is not set |
490 | # CONFIG_BLK_DEV_DAC960 is not set | 454 | # CONFIG_BLK_DEV_DAC960 is not set |
491 | # CONFIG_BLK_DEV_COW_COMMON is not set | 455 | # CONFIG_BLK_DEV_COW_COMMON is not set |
@@ -497,15 +461,12 @@ CONFIG_BLK_DEV_LOOP=y | |||
497 | # CONFIG_BLK_DEV_RAM is not set | 461 | # CONFIG_BLK_DEV_RAM is not set |
498 | # CONFIG_CDROM_PKTCDVD is not set | 462 | # CONFIG_CDROM_PKTCDVD is not set |
499 | # CONFIG_ATA_OVER_ETH is not set | 463 | # CONFIG_ATA_OVER_ETH is not set |
500 | 464 | CONFIG_MISC_DEVICES=y | |
501 | # | 465 | # CONFIG_PHANTOM is not set |
502 | # Misc devices | 466 | # CONFIG_EEPROM_93CX6 is not set |
503 | # | ||
504 | # CONFIG_SGI_IOC4 is not set | 467 | # CONFIG_SGI_IOC4 is not set |
505 | 468 | # CONFIG_ENCLOSURE_SERVICES is not set | |
506 | # | 469 | CONFIG_HAVE_IDE=y |
507 | # ATA/ATAPI/MFM/RLL support | ||
508 | # | ||
509 | # CONFIG_IDE is not set | 470 | # CONFIG_IDE is not set |
510 | 471 | ||
511 | # | 472 | # |
@@ -513,6 +474,7 @@ CONFIG_BLK_DEV_LOOP=y | |||
513 | # | 474 | # |
514 | # CONFIG_RAID_ATTRS is not set | 475 | # CONFIG_RAID_ATTRS is not set |
515 | CONFIG_SCSI=y | 476 | CONFIG_SCSI=y |
477 | CONFIG_SCSI_DMA=y | ||
516 | # CONFIG_SCSI_NETLINK is not set | 478 | # CONFIG_SCSI_NETLINK is not set |
517 | CONFIG_SCSI_PROC_FS=y | 479 | CONFIG_SCSI_PROC_FS=y |
518 | 480 | ||
@@ -533,6 +495,7 @@ CONFIG_CHR_DEV_SG=y | |||
533 | # CONFIG_SCSI_CONSTANTS is not set | 495 | # CONFIG_SCSI_CONSTANTS is not set |
534 | # CONFIG_SCSI_LOGGING is not set | 496 | # CONFIG_SCSI_LOGGING is not set |
535 | # CONFIG_SCSI_SCAN_ASYNC is not set | 497 | # CONFIG_SCSI_SCAN_ASYNC is not set |
498 | CONFIG_SCSI_WAIT_SCAN=m | ||
536 | 499 | ||
537 | # | 500 | # |
538 | # SCSI Transports | 501 | # SCSI Transports |
@@ -540,12 +503,9 @@ CONFIG_CHR_DEV_SG=y | |||
540 | # CONFIG_SCSI_SPI_ATTRS is not set | 503 | # CONFIG_SCSI_SPI_ATTRS is not set |
541 | # CONFIG_SCSI_FC_ATTRS is not set | 504 | # CONFIG_SCSI_FC_ATTRS is not set |
542 | # CONFIG_SCSI_ISCSI_ATTRS is not set | 505 | # CONFIG_SCSI_ISCSI_ATTRS is not set |
543 | # CONFIG_SCSI_SAS_ATTRS is not set | ||
544 | # CONFIG_SCSI_SAS_LIBSAS is not set | 506 | # CONFIG_SCSI_SAS_LIBSAS is not set |
545 | 507 | # CONFIG_SCSI_SRP_ATTRS is not set | |
546 | # | 508 | CONFIG_SCSI_LOWLEVEL=y |
547 | # SCSI low-level drivers | ||
548 | # | ||
549 | # CONFIG_ISCSI_TCP is not set | 509 | # CONFIG_ISCSI_TCP is not set |
550 | # CONFIG_BLK_DEV_3W_XXXX_RAID is not set | 510 | # CONFIG_BLK_DEV_3W_XXXX_RAID is not set |
551 | # CONFIG_SCSI_3W_9XXX is not set | 511 | # CONFIG_SCSI_3W_9XXX is not set |
@@ -555,7 +515,6 @@ CONFIG_CHR_DEV_SG=y | |||
555 | # CONFIG_SCSI_AIC7XXX_OLD is not set | 515 | # CONFIG_SCSI_AIC7XXX_OLD is not set |
556 | # CONFIG_SCSI_AIC79XX is not set | 516 | # CONFIG_SCSI_AIC79XX is not set |
557 | # CONFIG_SCSI_AIC94XX is not set | 517 | # CONFIG_SCSI_AIC94XX is not set |
558 | # CONFIG_SCSI_DPT_I2O is not set | ||
559 | # CONFIG_SCSI_ARCMSR is not set | 518 | # CONFIG_SCSI_ARCMSR is not set |
560 | # CONFIG_MEGARAID_NEWGEN is not set | 519 | # CONFIG_MEGARAID_NEWGEN is not set |
561 | # CONFIG_MEGARAID_LEGACY is not set | 520 | # CONFIG_MEGARAID_LEGACY is not set |
@@ -566,6 +525,7 @@ CONFIG_CHR_DEV_SG=y | |||
566 | # CONFIG_SCSI_IPS is not set | 525 | # CONFIG_SCSI_IPS is not set |
567 | # CONFIG_SCSI_INITIO is not set | 526 | # CONFIG_SCSI_INITIO is not set |
568 | # CONFIG_SCSI_INIA100 is not set | 527 | # CONFIG_SCSI_INIA100 is not set |
528 | # CONFIG_SCSI_MVSAS is not set | ||
569 | # CONFIG_SCSI_STEX is not set | 529 | # CONFIG_SCSI_STEX is not set |
570 | # CONFIG_SCSI_SYM53C8XX_2 is not set | 530 | # CONFIG_SCSI_SYM53C8XX_2 is not set |
571 | # CONFIG_SCSI_IPR is not set | 531 | # CONFIG_SCSI_IPR is not set |
@@ -577,10 +537,6 @@ CONFIG_CHR_DEV_SG=y | |||
577 | # CONFIG_SCSI_NSP32 is not set | 537 | # CONFIG_SCSI_NSP32 is not set |
578 | # CONFIG_SCSI_DEBUG is not set | 538 | # CONFIG_SCSI_DEBUG is not set |
579 | # CONFIG_SCSI_SRP is not set | 539 | # CONFIG_SCSI_SRP is not set |
580 | |||
581 | # | ||
582 | # Serial ATA (prod) and Parallel ATA (experimental) drivers | ||
583 | # | ||
584 | CONFIG_ATA=y | 540 | CONFIG_ATA=y |
585 | # CONFIG_ATA_NONSTANDARD is not set | 541 | # CONFIG_ATA_NONSTANDARD is not set |
586 | # CONFIG_SATA_AHCI is not set | 542 | # CONFIG_SATA_AHCI is not set |
@@ -597,62 +553,48 @@ CONFIG_SATA_SIL=y | |||
597 | # CONFIG_SATA_VIA is not set | 553 | # CONFIG_SATA_VIA is not set |
598 | # CONFIG_SATA_VITESSE is not set | 554 | # CONFIG_SATA_VITESSE is not set |
599 | # CONFIG_PATA_AMD is not set | 555 | # CONFIG_PATA_AMD is not set |
556 | # CONFIG_PATA_ARTOP is not set | ||
557 | # CONFIG_PATA_ATIIXP is not set | ||
558 | # CONFIG_PATA_CMD64X is not set | ||
600 | # CONFIG_PATA_CS5520 is not set | 559 | # CONFIG_PATA_CS5520 is not set |
601 | # CONFIG_PATA_EFAR is not set | 560 | # CONFIG_PATA_EFAR is not set |
602 | # CONFIG_ATA_GENERIC is not set | 561 | # CONFIG_ATA_GENERIC is not set |
562 | # CONFIG_PATA_HPT366 is not set | ||
603 | # CONFIG_PATA_HPT3X3 is not set | 563 | # CONFIG_PATA_HPT3X3 is not set |
564 | # CONFIG_PATA_IT821X is not set | ||
604 | # CONFIG_PATA_JMICRON is not set | 565 | # CONFIG_PATA_JMICRON is not set |
605 | # CONFIG_PATA_TRIFLEX is not set | 566 | # CONFIG_PATA_TRIFLEX is not set |
606 | # CONFIG_PATA_MARVELL is not set | 567 | # CONFIG_PATA_MARVELL is not set |
607 | # CONFIG_PATA_MPIIX is not set | 568 | # CONFIG_PATA_MPIIX is not set |
569 | # CONFIG_PATA_OLDPIIX is not set | ||
608 | # CONFIG_PATA_NETCELL is not set | 570 | # CONFIG_PATA_NETCELL is not set |
609 | # CONFIG_PATA_RZ1000 is not set | 571 | # CONFIG_PATA_RZ1000 is not set |
572 | # CONFIG_PATA_SERVERWORKS is not set | ||
610 | # CONFIG_PATA_PDC2027X is not set | 573 | # CONFIG_PATA_PDC2027X is not set |
611 | # CONFIG_PATA_SIL680 is not set | 574 | # CONFIG_PATA_SIL680 is not set |
612 | # CONFIG_PATA_VIA is not set | 575 | # CONFIG_PATA_VIA is not set |
613 | # CONFIG_PATA_WINBOND is not set | 576 | # CONFIG_PATA_WINBOND is not set |
614 | # CONFIG_PATA_PLATFORM is not set | 577 | # CONFIG_PATA_PLATFORM is not set |
615 | |||
616 | # | ||
617 | # Multi-device support (RAID and LVM) | ||
618 | # | ||
619 | # CONFIG_MD is not set | 578 | # CONFIG_MD is not set |
620 | |||
621 | # | ||
622 | # Fusion MPT device support | ||
623 | # | ||
624 | # CONFIG_FUSION is not set | 579 | # CONFIG_FUSION is not set |
625 | # CONFIG_FUSION_SPI is not set | ||
626 | # CONFIG_FUSION_FC is not set | ||
627 | # CONFIG_FUSION_SAS is not set | ||
628 | 580 | ||
629 | # | 581 | # |
630 | # IEEE 1394 (FireWire) support | 582 | # IEEE 1394 (FireWire) support |
631 | # | 583 | # |
632 | # CONFIG_IEEE1394 is not set | ||
633 | 584 | ||
634 | # | 585 | # |
635 | # I2O device support | 586 | # An alternative FireWire stack is available with EXPERIMENTAL=y |
636 | # | 587 | # |
588 | # CONFIG_IEEE1394 is not set | ||
637 | # CONFIG_I2O is not set | 589 | # CONFIG_I2O is not set |
638 | |||
639 | # | ||
640 | # Network device support | ||
641 | # | ||
642 | CONFIG_NETDEVICES=y | 590 | CONFIG_NETDEVICES=y |
591 | # CONFIG_NETDEVICES_MULTIQUEUE is not set | ||
643 | # CONFIG_DUMMY is not set | 592 | # CONFIG_DUMMY is not set |
644 | # CONFIG_BONDING is not set | 593 | # CONFIG_BONDING is not set |
645 | # CONFIG_EQUALIZER is not set | 594 | # CONFIG_EQUALIZER is not set |
646 | # CONFIG_TUN is not set | 595 | # CONFIG_TUN is not set |
647 | 596 | # CONFIG_VETH is not set | |
648 | # | ||
649 | # ARCnet devices | ||
650 | # | ||
651 | # CONFIG_ARCNET is not set | 597 | # CONFIG_ARCNET is not set |
652 | |||
653 | # | ||
654 | # PHY device support | ||
655 | # | ||
656 | CONFIG_PHYLIB=y | 598 | CONFIG_PHYLIB=y |
657 | 599 | ||
658 | # | 600 | # |
@@ -666,85 +608,59 @@ CONFIG_PHYLIB=y | |||
666 | # CONFIG_VITESSE_PHY is not set | 608 | # CONFIG_VITESSE_PHY is not set |
667 | CONFIG_SMSC_PHY=y | 609 | CONFIG_SMSC_PHY=y |
668 | # CONFIG_BROADCOM_PHY is not set | 610 | # CONFIG_BROADCOM_PHY is not set |
611 | # CONFIG_ICPLUS_PHY is not set | ||
612 | # CONFIG_REALTEK_PHY is not set | ||
669 | # CONFIG_FIXED_PHY is not set | 613 | # CONFIG_FIXED_PHY is not set |
670 | 614 | # CONFIG_MDIO_BITBANG is not set | |
671 | # | ||
672 | # Ethernet (10 or 100Mbit) | ||
673 | # | ||
674 | CONFIG_NET_ETHERNET=y | 615 | CONFIG_NET_ETHERNET=y |
675 | CONFIG_MII=y | 616 | CONFIG_MII=y |
617 | # CONFIG_AX88796 is not set | ||
676 | # CONFIG_STNIC is not set | 618 | # CONFIG_STNIC is not set |
677 | # CONFIG_HAPPYMEAL is not set | 619 | # CONFIG_HAPPYMEAL is not set |
678 | # CONFIG_SUNGEM is not set | 620 | # CONFIG_SUNGEM is not set |
679 | # CONFIG_CASSINI is not set | 621 | # CONFIG_CASSINI is not set |
680 | # CONFIG_NET_VENDOR_3COM is not set | 622 | # CONFIG_NET_VENDOR_3COM is not set |
681 | CONFIG_SMC91X=y | 623 | CONFIG_SMC91X=y |
682 | |||
683 | # | ||
684 | # Tulip family network device support | ||
685 | # | ||
686 | # CONFIG_NET_TULIP is not set | 624 | # CONFIG_NET_TULIP is not set |
687 | # CONFIG_HP100 is not set | 625 | # CONFIG_HP100 is not set |
626 | # CONFIG_IBM_NEW_EMAC_ZMII is not set | ||
627 | # CONFIG_IBM_NEW_EMAC_RGMII is not set | ||
628 | # CONFIG_IBM_NEW_EMAC_TAH is not set | ||
629 | # CONFIG_IBM_NEW_EMAC_EMAC4 is not set | ||
688 | CONFIG_NET_PCI=y | 630 | CONFIG_NET_PCI=y |
689 | # CONFIG_PCNET32 is not set | 631 | # CONFIG_PCNET32 is not set |
690 | # CONFIG_AMD8111_ETH is not set | 632 | # CONFIG_AMD8111_ETH is not set |
691 | # CONFIG_ADAPTEC_STARFIRE is not set | 633 | # CONFIG_ADAPTEC_STARFIRE is not set |
692 | # CONFIG_B44 is not set | 634 | # CONFIG_B44 is not set |
693 | # CONFIG_FORCEDETH is not set | 635 | # CONFIG_FORCEDETH is not set |
694 | # CONFIG_DGRS is not set | ||
695 | # CONFIG_EEPRO100 is not set | 636 | # CONFIG_EEPRO100 is not set |
696 | # CONFIG_E100 is not set | 637 | # CONFIG_E100 is not set |
697 | # CONFIG_FEALNX is not set | 638 | # CONFIG_FEALNX is not set |
698 | # CONFIG_NATSEMI is not set | 639 | # CONFIG_NATSEMI is not set |
699 | # CONFIG_NE2K_PCI is not set | 640 | # CONFIG_NE2K_PCI is not set |
700 | # CONFIG_8139TOO is not set | 641 | # CONFIG_8139TOO is not set |
642 | # CONFIG_R6040 is not set | ||
701 | # CONFIG_SIS900 is not set | 643 | # CONFIG_SIS900 is not set |
702 | # CONFIG_EPIC100 is not set | 644 | # CONFIG_EPIC100 is not set |
703 | # CONFIG_SUNDANCE is not set | 645 | # CONFIG_SUNDANCE is not set |
704 | # CONFIG_TLAN is not set | 646 | # CONFIG_TLAN is not set |
705 | # CONFIG_VIA_RHINE is not set | 647 | # CONFIG_VIA_RHINE is not set |
706 | 648 | # CONFIG_NETDEV_1000 is not set | |
707 | # | 649 | # CONFIG_NETDEV_10000 is not set |
708 | # Ethernet (1000 Mbit) | ||
709 | # | ||
710 | # CONFIG_ACENIC is not set | ||
711 | # CONFIG_DL2K is not set | ||
712 | # CONFIG_E1000 is not set | ||
713 | # CONFIG_NS83820 is not set | ||
714 | # CONFIG_HAMACHI is not set | ||
715 | # CONFIG_R8169 is not set | ||
716 | # CONFIG_SIS190 is not set | ||
717 | # CONFIG_SKGE is not set | ||
718 | # CONFIG_SKY2 is not set | ||
719 | # CONFIG_SK98LIN is not set | ||
720 | # CONFIG_VIA_VELOCITY is not set | ||
721 | # CONFIG_TIGON3 is not set | ||
722 | # CONFIG_BNX2 is not set | ||
723 | # CONFIG_QLA3XXX is not set | ||
724 | |||
725 | # | ||
726 | # Ethernet (10000 Mbit) | ||
727 | # | ||
728 | # CONFIG_CHELSIO_T1 is not set | ||
729 | # CONFIG_CHELSIO_T3 is not set | ||
730 | # CONFIG_IXGB is not set | ||
731 | # CONFIG_S2IO is not set | ||
732 | # CONFIG_MYRI10GE is not set | ||
733 | # CONFIG_NETXEN_NIC is not set | ||
734 | |||
735 | # | ||
736 | # Token Ring devices | ||
737 | # | ||
738 | # CONFIG_TR is not set | 650 | # CONFIG_TR is not set |
739 | 651 | ||
740 | # | 652 | # |
741 | # Wireless LAN (non-hamradio) | 653 | # Wireless LAN |
742 | # | 654 | # |
743 | # CONFIG_NET_RADIO is not set | 655 | # CONFIG_WLAN_PRE80211 is not set |
656 | # CONFIG_WLAN_80211 is not set | ||
744 | 657 | ||
745 | # | 658 | # |
746 | # Wan interfaces | 659 | # USB Network Adapters |
747 | # | 660 | # |
661 | # CONFIG_USB_KAWETH is not set | ||
662 | # CONFIG_USB_PEGASUS is not set | ||
663 | # CONFIG_USB_USBNET is not set | ||
748 | # CONFIG_WAN is not set | 664 | # CONFIG_WAN is not set |
749 | # CONFIG_FDDI is not set | 665 | # CONFIG_FDDI is not set |
750 | # CONFIG_PPP is not set | 666 | # CONFIG_PPP is not set |
@@ -752,15 +668,7 @@ CONFIG_NET_PCI=y | |||
752 | # CONFIG_NET_FC is not set | 668 | # CONFIG_NET_FC is not set |
753 | # CONFIG_NETPOLL is not set | 669 | # CONFIG_NETPOLL is not set |
754 | # CONFIG_NET_POLL_CONTROLLER is not set | 670 | # CONFIG_NET_POLL_CONTROLLER is not set |
755 | |||
756 | # | ||
757 | # ISDN subsystem | ||
758 | # | ||
759 | # CONFIG_ISDN is not set | 671 | # CONFIG_ISDN is not set |
760 | |||
761 | # | ||
762 | # Telephony Support | ||
763 | # | ||
764 | # CONFIG_PHONE is not set | 672 | # CONFIG_PHONE is not set |
765 | 673 | ||
766 | # | 674 | # |
@@ -768,6 +676,7 @@ CONFIG_NET_PCI=y | |||
768 | # | 676 | # |
769 | CONFIG_INPUT=y | 677 | CONFIG_INPUT=y |
770 | # CONFIG_INPUT_FF_MEMLESS is not set | 678 | # CONFIG_INPUT_FF_MEMLESS is not set |
679 | # CONFIG_INPUT_POLLDEV is not set | ||
771 | 680 | ||
772 | # | 681 | # |
773 | # Userland interfaces | 682 | # Userland interfaces |
@@ -777,7 +686,6 @@ CONFIG_INPUT_MOUSEDEV=y | |||
777 | CONFIG_INPUT_MOUSEDEV_SCREEN_X=1024 | 686 | CONFIG_INPUT_MOUSEDEV_SCREEN_X=1024 |
778 | CONFIG_INPUT_MOUSEDEV_SCREEN_Y=768 | 687 | CONFIG_INPUT_MOUSEDEV_SCREEN_Y=768 |
779 | # CONFIG_INPUT_JOYDEV is not set | 688 | # CONFIG_INPUT_JOYDEV is not set |
780 | # CONFIG_INPUT_TSDEV is not set | ||
781 | # CONFIG_INPUT_EVDEV is not set | 689 | # CONFIG_INPUT_EVDEV is not set |
782 | # CONFIG_INPUT_EVBUG is not set | 690 | # CONFIG_INPUT_EVBUG is not set |
783 | 691 | ||
@@ -787,6 +695,7 @@ CONFIG_INPUT_MOUSEDEV_SCREEN_Y=768 | |||
787 | # CONFIG_INPUT_KEYBOARD is not set | 695 | # CONFIG_INPUT_KEYBOARD is not set |
788 | # CONFIG_INPUT_MOUSE is not set | 696 | # CONFIG_INPUT_MOUSE is not set |
789 | # CONFIG_INPUT_JOYSTICK is not set | 697 | # CONFIG_INPUT_JOYSTICK is not set |
698 | # CONFIG_INPUT_TABLET is not set | ||
790 | # CONFIG_INPUT_TOUCHSCREEN is not set | 699 | # CONFIG_INPUT_TOUCHSCREEN is not set |
791 | # CONFIG_INPUT_MISC is not set | 700 | # CONFIG_INPUT_MISC is not set |
792 | 701 | ||
@@ -821,31 +730,12 @@ CONFIG_SERIAL_CORE_CONSOLE=y | |||
821 | # CONFIG_SERIAL_JSM is not set | 730 | # CONFIG_SERIAL_JSM is not set |
822 | CONFIG_UNIX98_PTYS=y | 731 | CONFIG_UNIX98_PTYS=y |
823 | # CONFIG_LEGACY_PTYS is not set | 732 | # CONFIG_LEGACY_PTYS is not set |
824 | |||
825 | # | ||
826 | # IPMI | ||
827 | # | ||
828 | # CONFIG_IPMI_HANDLER is not set | 733 | # CONFIG_IPMI_HANDLER is not set |
829 | |||
830 | # | ||
831 | # Watchdog Cards | ||
832 | # | ||
833 | # CONFIG_WATCHDOG is not set | ||
834 | # CONFIG_HW_RANDOM is not set | 734 | # CONFIG_HW_RANDOM is not set |
835 | # CONFIG_GEN_RTC is not set | ||
836 | # CONFIG_DTLK is not set | ||
837 | # CONFIG_R3964 is not set | 735 | # CONFIG_R3964 is not set |
838 | # CONFIG_APPLICOM is not set | 736 | # CONFIG_APPLICOM is not set |
839 | # CONFIG_DRM is not set | ||
840 | # CONFIG_RAW_DRIVER is not set | 737 | # CONFIG_RAW_DRIVER is not set |
841 | 738 | CONFIG_DEVPORT=y | |
842 | # | ||
843 | # TPM devices | ||
844 | # | ||
845 | |||
846 | # | ||
847 | # I2C support | ||
848 | # | ||
849 | # CONFIG_I2C is not set | 739 | # CONFIG_I2C is not set |
850 | 740 | ||
851 | # | 741 | # |
@@ -853,18 +743,27 @@ CONFIG_UNIX98_PTYS=y | |||
853 | # | 743 | # |
854 | # CONFIG_SPI is not set | 744 | # CONFIG_SPI is not set |
855 | # CONFIG_SPI_MASTER is not set | 745 | # CONFIG_SPI_MASTER is not set |
856 | |||
857 | # | ||
858 | # Dallas's 1-wire bus | ||
859 | # | ||
860 | # CONFIG_W1 is not set | 746 | # CONFIG_W1 is not set |
861 | 747 | # CONFIG_POWER_SUPPLY is not set | |
862 | # | ||
863 | # Hardware Monitoring support | ||
864 | # | ||
865 | CONFIG_HWMON=y | 748 | CONFIG_HWMON=y |
866 | # CONFIG_HWMON_VID is not set | 749 | # CONFIG_HWMON_VID is not set |
750 | # CONFIG_SENSORS_IT87 is not set | ||
751 | # CONFIG_SENSORS_PC87360 is not set | ||
752 | # CONFIG_SENSORS_SIS5595 is not set | ||
753 | # CONFIG_SENSORS_SMSC47M1 is not set | ||
754 | # CONFIG_SENSORS_VIA686A is not set | ||
755 | # CONFIG_SENSORS_VT8231 is not set | ||
756 | # CONFIG_SENSORS_W83627HF is not set | ||
757 | # CONFIG_SENSORS_W83627EHF is not set | ||
867 | # CONFIG_HWMON_DEBUG_CHIP is not set | 758 | # CONFIG_HWMON_DEBUG_CHIP is not set |
759 | CONFIG_THERMAL=y | ||
760 | # CONFIG_WATCHDOG is not set | ||
761 | |||
762 | # | ||
763 | # Sonics Silicon Backplane | ||
764 | # | ||
765 | CONFIG_SSB_POSSIBLE=y | ||
766 | # CONFIG_SSB is not set | ||
868 | 767 | ||
869 | # | 768 | # |
870 | # Multifunction device drivers | 769 | # Multifunction device drivers |
@@ -875,23 +774,27 @@ CONFIG_HWMON=y | |||
875 | # Multimedia devices | 774 | # Multimedia devices |
876 | # | 775 | # |
877 | # CONFIG_VIDEO_DEV is not set | 776 | # CONFIG_VIDEO_DEV is not set |
878 | 777 | # CONFIG_DVB_CORE is not set | |
879 | # | 778 | # CONFIG_DAB is not set |
880 | # Digital Video Broadcasting Devices | ||
881 | # | ||
882 | # CONFIG_DVB is not set | ||
883 | # CONFIG_USB_DABUSB is not set | ||
884 | 779 | ||
885 | # | 780 | # |
886 | # Graphics support | 781 | # Graphics support |
887 | # | 782 | # |
888 | # CONFIG_BACKLIGHT_LCD_SUPPORT is not set | 783 | # CONFIG_DRM is not set |
784 | # CONFIG_VGASTATE is not set | ||
785 | # CONFIG_VIDEO_OUTPUT_CONTROL is not set | ||
889 | CONFIG_FB=y | 786 | CONFIG_FB=y |
890 | CONFIG_FIRMWARE_EDID=y | 787 | CONFIG_FIRMWARE_EDID=y |
891 | # CONFIG_FB_DDC is not set | 788 | # CONFIG_FB_DDC is not set |
892 | # CONFIG_FB_CFB_FILLRECT is not set | 789 | # CONFIG_FB_CFB_FILLRECT is not set |
893 | # CONFIG_FB_CFB_COPYAREA is not set | 790 | # CONFIG_FB_CFB_COPYAREA is not set |
894 | # CONFIG_FB_CFB_IMAGEBLIT is not set | 791 | # CONFIG_FB_CFB_IMAGEBLIT is not set |
792 | # CONFIG_FB_CFB_REV_PIXELS_IN_BYTE is not set | ||
793 | # CONFIG_FB_SYS_FILLRECT is not set | ||
794 | # CONFIG_FB_SYS_COPYAREA is not set | ||
795 | # CONFIG_FB_SYS_IMAGEBLIT is not set | ||
796 | # CONFIG_FB_SYS_FOPS is not set | ||
797 | CONFIG_FB_DEFERRED_IO=y | ||
895 | # CONFIG_FB_SVGALIB is not set | 798 | # CONFIG_FB_SVGALIB is not set |
896 | # CONFIG_FB_MACMODES is not set | 799 | # CONFIG_FB_MACMODES is not set |
897 | # CONFIG_FB_BACKLIGHT is not set | 800 | # CONFIG_FB_BACKLIGHT is not set |
@@ -899,14 +802,13 @@ CONFIG_FIRMWARE_EDID=y | |||
899 | # CONFIG_FB_TILEBLITTING is not set | 802 | # CONFIG_FB_TILEBLITTING is not set |
900 | 803 | ||
901 | # | 804 | # |
902 | # Frambuffer hardware drivers | 805 | # Frame buffer hardware drivers |
903 | # | 806 | # |
904 | # CONFIG_FB_CIRRUS is not set | 807 | # CONFIG_FB_CIRRUS is not set |
905 | # CONFIG_FB_PM2 is not set | 808 | # CONFIG_FB_PM2 is not set |
906 | # CONFIG_FB_CYBER2000 is not set | 809 | # CONFIG_FB_CYBER2000 is not set |
907 | # CONFIG_FB_ASILIANT is not set | 810 | # CONFIG_FB_ASILIANT is not set |
908 | # CONFIG_FB_IMSTT is not set | 811 | # CONFIG_FB_IMSTT is not set |
909 | # CONFIG_FB_EPSON1355 is not set | ||
910 | # CONFIG_FB_S1D13XXX is not set | 812 | # CONFIG_FB_S1D13XXX is not set |
911 | # CONFIG_FB_NVIDIA is not set | 813 | # CONFIG_FB_NVIDIA is not set |
912 | # CONFIG_FB_RIVA is not set | 814 | # CONFIG_FB_RIVA is not set |
@@ -920,22 +822,27 @@ CONFIG_FIRMWARE_EDID=y | |||
920 | # CONFIG_FB_KYRO is not set | 822 | # CONFIG_FB_KYRO is not set |
921 | # CONFIG_FB_3DFX is not set | 823 | # CONFIG_FB_3DFX is not set |
922 | # CONFIG_FB_VOODOO1 is not set | 824 | # CONFIG_FB_VOODOO1 is not set |
825 | # CONFIG_FB_VT8623 is not set | ||
923 | # CONFIG_FB_TRIDENT is not set | 826 | # CONFIG_FB_TRIDENT is not set |
827 | # CONFIG_FB_ARK is not set | ||
924 | # CONFIG_FB_VIRTUAL is not set | 828 | # CONFIG_FB_VIRTUAL is not set |
829 | # CONFIG_BACKLIGHT_LCD_SUPPORT is not set | ||
830 | |||
831 | # | ||
832 | # Display device support | ||
833 | # | ||
834 | # CONFIG_DISPLAY_SUPPORT is not set | ||
925 | 835 | ||
926 | # | 836 | # |
927 | # Console display driver support | 837 | # Console display driver support |
928 | # | 838 | # |
929 | CONFIG_DUMMY_CONSOLE=y | 839 | CONFIG_DUMMY_CONSOLE=y |
930 | CONFIG_FRAMEBUFFER_CONSOLE=y | 840 | CONFIG_FRAMEBUFFER_CONSOLE=y |
841 | # CONFIG_FRAMEBUFFER_CONSOLE_DETECT_PRIMARY is not set | ||
931 | # CONFIG_FRAMEBUFFER_CONSOLE_ROTATION is not set | 842 | # CONFIG_FRAMEBUFFER_CONSOLE_ROTATION is not set |
932 | # CONFIG_FONTS is not set | 843 | # CONFIG_FONTS is not set |
933 | CONFIG_FONT_8x8=y | 844 | CONFIG_FONT_8x8=y |
934 | CONFIG_FONT_8x16=y | 845 | CONFIG_FONT_8x16=y |
935 | |||
936 | # | ||
937 | # Logo configuration | ||
938 | # | ||
939 | CONFIG_LOGO=y | 846 | CONFIG_LOGO=y |
940 | # CONFIG_LOGO_LINUX_MONO is not set | 847 | # CONFIG_LOGO_LINUX_MONO is not set |
941 | # CONFIG_LOGO_LINUX_VGA16 is not set | 848 | # CONFIG_LOGO_LINUX_VGA16 is not set |
@@ -958,39 +865,38 @@ CONFIG_SOUND=y | |||
958 | # Open Sound System | 865 | # Open Sound System |
959 | # | 866 | # |
960 | CONFIG_SOUND_PRIME=y | 867 | CONFIG_SOUND_PRIME=y |
961 | # CONFIG_OBSOLETE_OSS is not set | ||
962 | # CONFIG_SOUND_BT878 is not set | ||
963 | # CONFIG_SOUND_ICH is not set | ||
964 | # CONFIG_SOUND_TRIDENT is not set | 868 | # CONFIG_SOUND_TRIDENT is not set |
965 | # CONFIG_SOUND_MSNDCLAS is not set | 869 | # CONFIG_SOUND_MSNDCLAS is not set |
966 | # CONFIG_SOUND_MSNDPIN is not set | 870 | # CONFIG_SOUND_MSNDPIN is not set |
967 | # CONFIG_SOUND_VIA82CXXX is not set | 871 | CONFIG_HID_SUPPORT=y |
968 | |||
969 | # | ||
970 | # HID Devices | ||
971 | # | ||
972 | CONFIG_HID=y | 872 | CONFIG_HID=y |
973 | # CONFIG_HID_DEBUG is not set | 873 | # CONFIG_HID_DEBUG is not set |
874 | # CONFIG_HIDRAW is not set | ||
974 | 875 | ||
975 | # | 876 | # |
976 | # USB support | 877 | # USB Input Devices |
977 | # | 878 | # |
879 | CONFIG_USB_HID=y | ||
880 | # CONFIG_USB_HIDINPUT_POWERBOOK is not set | ||
881 | # CONFIG_USB_HIDDEV is not set | ||
882 | CONFIG_USB_SUPPORT=y | ||
978 | CONFIG_USB_ARCH_HAS_HCD=y | 883 | CONFIG_USB_ARCH_HAS_HCD=y |
979 | CONFIG_USB_ARCH_HAS_OHCI=y | 884 | CONFIG_USB_ARCH_HAS_OHCI=y |
980 | CONFIG_USB_ARCH_HAS_EHCI=y | 885 | CONFIG_USB_ARCH_HAS_EHCI=y |
981 | CONFIG_USB=y | 886 | CONFIG_USB=y |
982 | CONFIG_USB_DEBUG=y | 887 | # CONFIG_USB_DEBUG is not set |
888 | # CONFIG_USB_ANNOUNCE_NEW_DEVICES is not set | ||
983 | 889 | ||
984 | # | 890 | # |
985 | # Miscellaneous USB options | 891 | # Miscellaneous USB options |
986 | # | 892 | # |
987 | CONFIG_USB_DEVICEFS=y | 893 | CONFIG_USB_DEVICEFS=y |
894 | # CONFIG_USB_DEVICE_CLASS is not set | ||
988 | 895 | ||
989 | # | 896 | # |
990 | # USB Host Controller Drivers | 897 | # USB Host Controller Drivers |
991 | # | 898 | # |
992 | CONFIG_USB_EHCI_HCD=y | 899 | CONFIG_USB_EHCI_HCD=y |
993 | # CONFIG_USB_EHCI_BIG_ENDIAN_MMIO is not set | ||
994 | # CONFIG_USB_ISP116X_HCD is not set | 900 | # CONFIG_USB_ISP116X_HCD is not set |
995 | CONFIG_USB_OHCI_HCD=y | 901 | CONFIG_USB_OHCI_HCD=y |
996 | # CONFIG_USB_OHCI_BIG_ENDIAN_DESC is not set | 902 | # CONFIG_USB_OHCI_BIG_ENDIAN_DESC is not set |
@@ -998,6 +904,7 @@ CONFIG_USB_OHCI_HCD=y | |||
998 | CONFIG_USB_OHCI_LITTLE_ENDIAN=y | 904 | CONFIG_USB_OHCI_LITTLE_ENDIAN=y |
999 | # CONFIG_USB_UHCI_HCD is not set | 905 | # CONFIG_USB_UHCI_HCD is not set |
1000 | # CONFIG_USB_SL811_HCD is not set | 906 | # CONFIG_USB_SL811_HCD is not set |
907 | # CONFIG_USB_R8A66597_HCD is not set | ||
1001 | 908 | ||
1002 | # | 909 | # |
1003 | # USB Device Class drivers | 910 | # USB Device Class drivers |
@@ -1015,49 +922,20 @@ CONFIG_USB_OHCI_LITTLE_ENDIAN=y | |||
1015 | CONFIG_USB_STORAGE=y | 922 | CONFIG_USB_STORAGE=y |
1016 | # CONFIG_USB_STORAGE_DEBUG is not set | 923 | # CONFIG_USB_STORAGE_DEBUG is not set |
1017 | # CONFIG_USB_STORAGE_FREECOM is not set | 924 | # CONFIG_USB_STORAGE_FREECOM is not set |
925 | # CONFIG_USB_STORAGE_ISD200 is not set | ||
1018 | # CONFIG_USB_STORAGE_DPCM is not set | 926 | # CONFIG_USB_STORAGE_DPCM is not set |
1019 | # CONFIG_USB_STORAGE_KARMA is not set | 927 | # CONFIG_USB_STORAGE_KARMA is not set |
1020 | # CONFIG_USB_LIBUSUAL is not set | 928 | # CONFIG_USB_LIBUSUAL is not set |
1021 | 929 | ||
1022 | # | 930 | # |
1023 | # USB Input Devices | ||
1024 | # | ||
1025 | CONFIG_USB_HID=y | ||
1026 | # CONFIG_USB_HIDINPUT_POWERBOOK is not set | ||
1027 | # CONFIG_USB_HIDDEV is not set | ||
1028 | # CONFIG_USB_AIPTEK is not set | ||
1029 | # CONFIG_USB_WACOM is not set | ||
1030 | # CONFIG_USB_ACECAD is not set | ||
1031 | # CONFIG_USB_KBTAB is not set | ||
1032 | # CONFIG_USB_POWERMATE is not set | ||
1033 | # CONFIG_USB_TOUCHSCREEN is not set | ||
1034 | # CONFIG_USB_XPAD is not set | ||
1035 | # CONFIG_USB_ATI_REMOTE is not set | ||
1036 | # CONFIG_USB_ATI_REMOTE2 is not set | ||
1037 | # CONFIG_USB_APPLETOUCH is not set | ||
1038 | # CONFIG_USB_GTCO is not set | ||
1039 | |||
1040 | # | ||
1041 | # USB Imaging devices | 931 | # USB Imaging devices |
1042 | # | 932 | # |
1043 | # CONFIG_USB_MICROTEK is not set | 933 | # CONFIG_USB_MICROTEK is not set |
1044 | |||
1045 | # | ||
1046 | # USB Network Adapters | ||
1047 | # | ||
1048 | # CONFIG_USB_KAWETH is not set | ||
1049 | # CONFIG_USB_PEGASUS is not set | ||
1050 | # CONFIG_USB_USBNET_MII is not set | ||
1051 | # CONFIG_USB_USBNET is not set | ||
1052 | CONFIG_USB_MON=y | 934 | CONFIG_USB_MON=y |
1053 | 935 | ||
1054 | # | 936 | # |
1055 | # USB port drivers | 937 | # USB port drivers |
1056 | # | 938 | # |
1057 | |||
1058 | # | ||
1059 | # USB Serial Converter support | ||
1060 | # | ||
1061 | # CONFIG_USB_SERIAL is not set | 939 | # CONFIG_USB_SERIAL is not set |
1062 | 940 | ||
1063 | # | 941 | # |
@@ -1078,67 +956,17 @@ CONFIG_USB_MON=y | |||
1078 | # CONFIG_USB_LD is not set | 956 | # CONFIG_USB_LD is not set |
1079 | # CONFIG_USB_TRANCEVIBRATOR is not set | 957 | # CONFIG_USB_TRANCEVIBRATOR is not set |
1080 | # CONFIG_USB_IOWARRIOR is not set | 958 | # CONFIG_USB_IOWARRIOR is not set |
1081 | |||
1082 | # | ||
1083 | # USB DSL modem support | ||
1084 | # | ||
1085 | |||
1086 | # | ||
1087 | # USB Gadget Support | ||
1088 | # | ||
1089 | # CONFIG_USB_GADGET is not set | 959 | # CONFIG_USB_GADGET is not set |
1090 | |||
1091 | # | ||
1092 | # MMC/SD Card support | ||
1093 | # | ||
1094 | # CONFIG_MMC is not set | 960 | # CONFIG_MMC is not set |
1095 | 961 | # CONFIG_MEMSTICK is not set | |
1096 | # | ||
1097 | # LED devices | ||
1098 | # | ||
1099 | # CONFIG_NEW_LEDS is not set | 962 | # CONFIG_NEW_LEDS is not set |
1100 | |||
1101 | # | ||
1102 | # LED drivers | ||
1103 | # | ||
1104 | |||
1105 | # | ||
1106 | # LED Triggers | ||
1107 | # | ||
1108 | |||
1109 | # | ||
1110 | # InfiniBand support | ||
1111 | # | ||
1112 | # CONFIG_INFINIBAND is not set | 963 | # CONFIG_INFINIBAND is not set |
964 | # CONFIG_RTC_CLASS is not set | ||
1113 | 965 | ||
1114 | # | 966 | # |
1115 | # EDAC - error detection and reporting (RAS) (EXPERIMENTAL) | 967 | # Userspace I/O |
1116 | # | ||
1117 | |||
1118 | # | ||
1119 | # Real Time Clock | ||
1120 | # | ||
1121 | |||
1122 | # | ||
1123 | # DMA Engine support | ||
1124 | # | ||
1125 | # CONFIG_DMA_ENGINE is not set | ||
1126 | |||
1127 | # | ||
1128 | # DMA Clients | ||
1129 | # | ||
1130 | |||
1131 | # | ||
1132 | # DMA Devices | ||
1133 | # | ||
1134 | |||
1135 | # | ||
1136 | # Auxiliary Display support | ||
1137 | # | ||
1138 | |||
1139 | # | ||
1140 | # Virtualization | ||
1141 | # | 968 | # |
969 | # CONFIG_UIO is not set | ||
1142 | 970 | ||
1143 | # | 971 | # |
1144 | # File systems | 972 | # File systems |
@@ -1151,12 +979,11 @@ CONFIG_EXT2_FS=y | |||
1151 | # CONFIG_JFS_FS is not set | 979 | # CONFIG_JFS_FS is not set |
1152 | # CONFIG_FS_POSIX_ACL is not set | 980 | # CONFIG_FS_POSIX_ACL is not set |
1153 | # CONFIG_XFS_FS is not set | 981 | # CONFIG_XFS_FS is not set |
1154 | # CONFIG_MINIX_FS is not set | 982 | # CONFIG_OCFS2_FS is not set |
1155 | # CONFIG_ROMFS_FS is not set | 983 | # CONFIG_DNOTIFY is not set |
1156 | CONFIG_INOTIFY=y | 984 | CONFIG_INOTIFY=y |
1157 | CONFIG_INOTIFY_USER=y | 985 | CONFIG_INOTIFY_USER=y |
1158 | # CONFIG_QUOTA is not set | 986 | # CONFIG_QUOTA is not set |
1159 | # CONFIG_DNOTIFY is not set | ||
1160 | # CONFIG_AUTOFS_FS is not set | 987 | # CONFIG_AUTOFS_FS is not set |
1161 | # CONFIG_AUTOFS4_FS is not set | 988 | # CONFIG_AUTOFS4_FS is not set |
1162 | # CONFIG_FUSE_FS is not set | 989 | # CONFIG_FUSE_FS is not set |
@@ -1181,14 +1008,14 @@ CONFIG_FAT_DEFAULT_IOCHARSET="iso8859-1" | |||
1181 | # Pseudo filesystems | 1008 | # Pseudo filesystems |
1182 | # | 1009 | # |
1183 | CONFIG_PROC_FS=y | 1010 | CONFIG_PROC_FS=y |
1184 | # CONFIG_PROC_KCORE is not set | 1011 | CONFIG_PROC_KCORE=y |
1185 | CONFIG_PROC_SYSCTL=y | 1012 | CONFIG_PROC_SYSCTL=y |
1186 | # CONFIG_SYSFS is not set | 1013 | CONFIG_SYSFS=y |
1187 | CONFIG_TMPFS=y | 1014 | CONFIG_TMPFS=y |
1188 | # CONFIG_TMPFS_POSIX_ACL is not set | 1015 | # CONFIG_TMPFS_POSIX_ACL is not set |
1189 | # CONFIG_HUGETLBFS is not set | 1016 | # CONFIG_HUGETLBFS is not set |
1190 | # CONFIG_HUGETLB_PAGE is not set | 1017 | # CONFIG_HUGETLB_PAGE is not set |
1191 | CONFIG_RAMFS=y | 1018 | # CONFIG_CONFIGFS_FS is not set |
1192 | 1019 | ||
1193 | # | 1020 | # |
1194 | # Miscellaneous filesystems | 1021 | # Miscellaneous filesystems |
@@ -1197,14 +1024,13 @@ CONFIG_RAMFS=y | |||
1197 | # CONFIG_JFFS2_FS is not set | 1024 | # CONFIG_JFFS2_FS is not set |
1198 | CONFIG_CRAMFS=y | 1025 | CONFIG_CRAMFS=y |
1199 | # CONFIG_VXFS_FS is not set | 1026 | # CONFIG_VXFS_FS is not set |
1027 | # CONFIG_MINIX_FS is not set | ||
1200 | # CONFIG_HPFS_FS is not set | 1028 | # CONFIG_HPFS_FS is not set |
1201 | # CONFIG_QNX4FS_FS is not set | 1029 | # CONFIG_QNX4FS_FS is not set |
1030 | # CONFIG_ROMFS_FS is not set | ||
1202 | # CONFIG_SYSV_FS is not set | 1031 | # CONFIG_SYSV_FS is not set |
1203 | # CONFIG_UFS_FS is not set | 1032 | # CONFIG_UFS_FS is not set |
1204 | 1033 | CONFIG_NETWORK_FILESYSTEMS=y | |
1205 | # | ||
1206 | # Network File Systems | ||
1207 | # | ||
1208 | CONFIG_NFS_FS=y | 1034 | CONFIG_NFS_FS=y |
1209 | CONFIG_NFS_V3=y | 1035 | CONFIG_NFS_V3=y |
1210 | # CONFIG_NFS_V3_ACL is not set | 1036 | # CONFIG_NFS_V3_ACL is not set |
@@ -1225,10 +1051,6 @@ CONFIG_SUNRPC=y | |||
1225 | # | 1051 | # |
1226 | # CONFIG_PARTITION_ADVANCED is not set | 1052 | # CONFIG_PARTITION_ADVANCED is not set |
1227 | CONFIG_MSDOS_PARTITION=y | 1053 | CONFIG_MSDOS_PARTITION=y |
1228 | |||
1229 | # | ||
1230 | # Native Language Support | ||
1231 | # | ||
1232 | CONFIG_NLS=y | 1054 | CONFIG_NLS=y |
1233 | CONFIG_NLS_DEFAULT="iso8859-1" | 1055 | CONFIG_NLS_DEFAULT="iso8859-1" |
1234 | # CONFIG_NLS_CODEPAGE_437 is not set | 1056 | # CONFIG_NLS_CODEPAGE_437 is not set |
@@ -1275,13 +1097,15 @@ CONFIG_NLS_DEFAULT="iso8859-1" | |||
1275 | # | 1097 | # |
1276 | CONFIG_TRACE_IRQFLAGS_SUPPORT=y | 1098 | CONFIG_TRACE_IRQFLAGS_SUPPORT=y |
1277 | # CONFIG_PRINTK_TIME is not set | 1099 | # CONFIG_PRINTK_TIME is not set |
1100 | CONFIG_ENABLE_WARN_DEPRECATED=y | ||
1278 | CONFIG_ENABLE_MUST_CHECK=y | 1101 | CONFIG_ENABLE_MUST_CHECK=y |
1279 | # CONFIG_MAGIC_SYSRQ is not set | 1102 | # CONFIG_MAGIC_SYSRQ is not set |
1280 | # CONFIG_UNUSED_SYMBOLS is not set | 1103 | # CONFIG_UNUSED_SYMBOLS is not set |
1104 | CONFIG_DEBUG_FS=y | ||
1281 | # CONFIG_HEADERS_CHECK is not set | 1105 | # CONFIG_HEADERS_CHECK is not set |
1282 | # CONFIG_DEBUG_KERNEL is not set | 1106 | # CONFIG_DEBUG_KERNEL is not set |
1283 | CONFIG_LOG_BUF_SHIFT=14 | ||
1284 | # CONFIG_DEBUG_BUGVERBOSE is not set | 1107 | # CONFIG_DEBUG_BUGVERBOSE is not set |
1108 | # CONFIG_SAMPLES is not set | ||
1285 | # CONFIG_SH_STANDARD_BIOS is not set | 1109 | # CONFIG_SH_STANDARD_BIOS is not set |
1286 | # CONFIG_EARLY_SCIF_CONSOLE is not set | 1110 | # CONFIG_EARLY_SCIF_CONSOLE is not set |
1287 | # CONFIG_SH_KGDB is not set | 1111 | # CONFIG_SH_KGDB is not set |
@@ -1290,11 +1114,48 @@ CONFIG_LOG_BUF_SHIFT=14 | |||
1290 | # Security options | 1114 | # Security options |
1291 | # | 1115 | # |
1292 | # CONFIG_KEYS is not set | 1116 | # CONFIG_KEYS is not set |
1293 | 1117 | # CONFIG_SECURITY is not set | |
1294 | # | 1118 | CONFIG_CRYPTO=y |
1295 | # Cryptographic options | 1119 | # CONFIG_CRYPTO_SEQIV is not set |
1296 | # | 1120 | # CONFIG_CRYPTO_MANAGER is not set |
1297 | # CONFIG_CRYPTO is not set | 1121 | # CONFIG_CRYPTO_HMAC is not set |
1122 | # CONFIG_CRYPTO_NULL is not set | ||
1123 | # CONFIG_CRYPTO_MD4 is not set | ||
1124 | # CONFIG_CRYPTO_MD5 is not set | ||
1125 | # CONFIG_CRYPTO_SHA1 is not set | ||
1126 | # CONFIG_CRYPTO_SHA256 is not set | ||
1127 | # CONFIG_CRYPTO_SHA512 is not set | ||
1128 | # CONFIG_CRYPTO_WP512 is not set | ||
1129 | # CONFIG_CRYPTO_TGR192 is not set | ||
1130 | # CONFIG_CRYPTO_ECB is not set | ||
1131 | # CONFIG_CRYPTO_CBC is not set | ||
1132 | # CONFIG_CRYPTO_PCBC is not set | ||
1133 | # CONFIG_CRYPTO_CTR is not set | ||
1134 | # CONFIG_CRYPTO_GCM is not set | ||
1135 | # CONFIG_CRYPTO_CCM is not set | ||
1136 | # CONFIG_CRYPTO_CRYPTD is not set | ||
1137 | # CONFIG_CRYPTO_DES is not set | ||
1138 | # CONFIG_CRYPTO_FCRYPT is not set | ||
1139 | # CONFIG_CRYPTO_BLOWFISH is not set | ||
1140 | # CONFIG_CRYPTO_TWOFISH is not set | ||
1141 | # CONFIG_CRYPTO_SERPENT is not set | ||
1142 | # CONFIG_CRYPTO_AES is not set | ||
1143 | # CONFIG_CRYPTO_CAST5 is not set | ||
1144 | # CONFIG_CRYPTO_CAST6 is not set | ||
1145 | # CONFIG_CRYPTO_TEA is not set | ||
1146 | # CONFIG_CRYPTO_ARC4 is not set | ||
1147 | # CONFIG_CRYPTO_KHAZAD is not set | ||
1148 | # CONFIG_CRYPTO_ANUBIS is not set | ||
1149 | # CONFIG_CRYPTO_SEED is not set | ||
1150 | # CONFIG_CRYPTO_DEFLATE is not set | ||
1151 | # CONFIG_CRYPTO_MICHAEL_MIC is not set | ||
1152 | # CONFIG_CRYPTO_CRC32C is not set | ||
1153 | # CONFIG_CRYPTO_CAMELLIA is not set | ||
1154 | # CONFIG_CRYPTO_TEST is not set | ||
1155 | # CONFIG_CRYPTO_AUTHENC is not set | ||
1156 | # CONFIG_CRYPTO_LZO is not set | ||
1157 | CONFIG_CRYPTO_HW=y | ||
1158 | # CONFIG_CRYPTO_DEV_HIFN_795X is not set | ||
1298 | 1159 | ||
1299 | # | 1160 | # |
1300 | # Library routines | 1161 | # Library routines |
@@ -1302,9 +1163,12 @@ CONFIG_LOG_BUF_SHIFT=14 | |||
1302 | CONFIG_BITREVERSE=y | 1163 | CONFIG_BITREVERSE=y |
1303 | # CONFIG_CRC_CCITT is not set | 1164 | # CONFIG_CRC_CCITT is not set |
1304 | # CONFIG_CRC16 is not set | 1165 | # CONFIG_CRC16 is not set |
1166 | # CONFIG_CRC_ITU_T is not set | ||
1305 | CONFIG_CRC32=y | 1167 | CONFIG_CRC32=y |
1168 | # CONFIG_CRC7 is not set | ||
1306 | # CONFIG_LIBCRC32C is not set | 1169 | # CONFIG_LIBCRC32C is not set |
1307 | CONFIG_ZLIB_INFLATE=y | 1170 | CONFIG_ZLIB_INFLATE=y |
1308 | CONFIG_PLIST=y | 1171 | CONFIG_PLIST=y |
1309 | CONFIG_HAS_IOMEM=y | 1172 | CONFIG_HAS_IOMEM=y |
1310 | CONFIG_HAS_IOPORT=y | 1173 | CONFIG_HAS_IOPORT=y |
1174 | CONFIG_HAS_DMA=y | ||
diff --git a/arch/sh/configs/sh7710voipgw_defconfig b/arch/sh/configs/sh7710voipgw_defconfig index 9380c32116..37e49a5892 100644 --- a/arch/sh/configs/sh7710voipgw_defconfig +++ b/arch/sh/configs/sh7710voipgw_defconfig | |||
@@ -1,40 +1,55 @@ | |||
1 | # | 1 | # |
2 | # Automatically generated make config: don't edit | 2 | # Automatically generated make config: don't edit |
3 | # Linux kernel version: 2.6.18 | 3 | # Linux kernel version: 2.6.25-rc4 |
4 | # Tue Oct 3 12:48:56 2006 | 4 | # Thu Mar 6 16:02:29 2008 |
5 | # | 5 | # |
6 | CONFIG_SUPERH=y | 6 | CONFIG_SUPERH=y |
7 | CONFIG_SUPERH32=y | ||
7 | CONFIG_RWSEM_GENERIC_SPINLOCK=y | 8 | CONFIG_RWSEM_GENERIC_SPINLOCK=y |
9 | CONFIG_GENERIC_BUG=y | ||
8 | CONFIG_GENERIC_FIND_NEXT_BIT=y | 10 | CONFIG_GENERIC_FIND_NEXT_BIT=y |
9 | CONFIG_GENERIC_HWEIGHT=y | 11 | CONFIG_GENERIC_HWEIGHT=y |
10 | CONFIG_GENERIC_HARDIRQS=y | 12 | CONFIG_GENERIC_HARDIRQS=y |
11 | CONFIG_GENERIC_IRQ_PROBE=y | 13 | CONFIG_GENERIC_IRQ_PROBE=y |
12 | CONFIG_GENERIC_CALIBRATE_DELAY=y | 14 | CONFIG_GENERIC_CALIBRATE_DELAY=y |
15 | CONFIG_GENERIC_TIME=y | ||
16 | CONFIG_GENERIC_CLOCKEVENTS=y | ||
17 | CONFIG_STACKTRACE_SUPPORT=y | ||
18 | CONFIG_LOCKDEP_SUPPORT=y | ||
19 | # CONFIG_ARCH_HAS_ILOG2_U32 is not set | ||
20 | # CONFIG_ARCH_HAS_ILOG2_U64 is not set | ||
21 | CONFIG_ARCH_NO_VIRT_TO_BUS=y | ||
22 | CONFIG_ARCH_SUPPORTS_AOUT=y | ||
13 | CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config" | 23 | CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config" |
14 | 24 | ||
15 | # | 25 | # |
16 | # Code maturity level options | 26 | # General setup |
17 | # | 27 | # |
18 | CONFIG_EXPERIMENTAL=y | 28 | CONFIG_EXPERIMENTAL=y |
19 | CONFIG_BROKEN_ON_SMP=y | 29 | CONFIG_BROKEN_ON_SMP=y |
20 | CONFIG_INIT_ENV_ARG_LIMIT=32 | 30 | CONFIG_INIT_ENV_ARG_LIMIT=32 |
21 | |||
22 | # | ||
23 | # General setup | ||
24 | # | ||
25 | CONFIG_LOCALVERSION="" | 31 | CONFIG_LOCALVERSION="" |
26 | CONFIG_LOCALVERSION_AUTO=y | 32 | CONFIG_LOCALVERSION_AUTO=y |
27 | # CONFIG_SWAP is not set | 33 | # CONFIG_SWAP is not set |
28 | CONFIG_SYSVIPC=y | 34 | CONFIG_SYSVIPC=y |
29 | # CONFIG_IPC_NS is not set | 35 | CONFIG_SYSVIPC_SYSCTL=y |
30 | CONFIG_POSIX_MQUEUE=y | 36 | CONFIG_POSIX_MQUEUE=y |
31 | # CONFIG_BSD_PROCESS_ACCT is not set | 37 | # CONFIG_BSD_PROCESS_ACCT is not set |
32 | # CONFIG_TASKSTATS is not set | 38 | # CONFIG_TASKSTATS is not set |
33 | # CONFIG_UTS_NS is not set | ||
34 | # CONFIG_AUDIT is not set | 39 | # CONFIG_AUDIT is not set |
35 | # CONFIG_IKCONFIG is not set | 40 | # CONFIG_IKCONFIG is not set |
41 | CONFIG_LOG_BUF_SHIFT=14 | ||
42 | # CONFIG_CGROUPS is not set | ||
43 | CONFIG_GROUP_SCHED=y | ||
44 | CONFIG_FAIR_GROUP_SCHED=y | ||
45 | # CONFIG_RT_GROUP_SCHED is not set | ||
46 | CONFIG_USER_SCHED=y | ||
47 | # CONFIG_CGROUP_SCHED is not set | ||
48 | CONFIG_SYSFS_DEPRECATED=y | ||
49 | CONFIG_SYSFS_DEPRECATED_V2=y | ||
36 | # CONFIG_RELAY is not set | 50 | # CONFIG_RELAY is not set |
37 | CONFIG_INITRAMFS_SOURCE="" | 51 | # CONFIG_NAMESPACES is not set |
52 | # CONFIG_BLK_DEV_INITRD is not set | ||
38 | CONFIG_CC_OPTIMIZE_FOR_SIZE=y | 53 | CONFIG_CC_OPTIMIZE_FOR_SIZE=y |
39 | CONFIG_SYSCTL=y | 54 | CONFIG_SYSCTL=y |
40 | CONFIG_EMBEDDED=y | 55 | CONFIG_EMBEDDED=y |
@@ -46,33 +61,39 @@ CONFIG_HOTPLUG=y | |||
46 | CONFIG_PRINTK=y | 61 | CONFIG_PRINTK=y |
47 | CONFIG_BUG=y | 62 | CONFIG_BUG=y |
48 | CONFIG_ELF_CORE=y | 63 | CONFIG_ELF_CORE=y |
64 | CONFIG_COMPAT_BRK=y | ||
49 | CONFIG_BASE_FULL=y | 65 | CONFIG_BASE_FULL=y |
50 | # CONFIG_FUTEX is not set | 66 | # CONFIG_FUTEX is not set |
67 | CONFIG_ANON_INODES=y | ||
51 | # CONFIG_EPOLL is not set | 68 | # CONFIG_EPOLL is not set |
69 | CONFIG_SIGNALFD=y | ||
70 | CONFIG_TIMERFD=y | ||
71 | CONFIG_EVENTFD=y | ||
52 | # CONFIG_SHMEM is not set | 72 | # CONFIG_SHMEM is not set |
53 | CONFIG_SLAB=y | ||
54 | CONFIG_VM_EVENT_COUNTERS=y | 73 | CONFIG_VM_EVENT_COUNTERS=y |
74 | CONFIG_SLAB=y | ||
75 | # CONFIG_SLUB is not set | ||
76 | # CONFIG_SLOB is not set | ||
77 | # CONFIG_PROFILING is not set | ||
78 | # CONFIG_MARKERS is not set | ||
79 | CONFIG_HAVE_OPROFILE=y | ||
80 | # CONFIG_HAVE_KPROBES is not set | ||
81 | # CONFIG_HAVE_KRETPROBES is not set | ||
82 | CONFIG_PROC_PAGE_MONITOR=y | ||
83 | CONFIG_SLABINFO=y | ||
55 | CONFIG_TINY_SHMEM=y | 84 | CONFIG_TINY_SHMEM=y |
56 | CONFIG_BASE_SMALL=0 | 85 | CONFIG_BASE_SMALL=0 |
57 | # CONFIG_SLOB is not set | ||
58 | |||
59 | # | ||
60 | # Loadable module support | ||
61 | # | ||
62 | CONFIG_MODULES=y | 86 | CONFIG_MODULES=y |
63 | CONFIG_MODULE_UNLOAD=y | 87 | CONFIG_MODULE_UNLOAD=y |
64 | CONFIG_MODULE_FORCE_UNLOAD=y | 88 | CONFIG_MODULE_FORCE_UNLOAD=y |
65 | # CONFIG_MODVERSIONS is not set | 89 | # CONFIG_MODVERSIONS is not set |
66 | # CONFIG_MODULE_SRCVERSION_ALL is not set | 90 | # CONFIG_MODULE_SRCVERSION_ALL is not set |
67 | # CONFIG_KMOD is not set | 91 | # CONFIG_KMOD is not set |
68 | |||
69 | # | ||
70 | # Block layer | ||
71 | # | ||
72 | CONFIG_BLOCK=y | 92 | CONFIG_BLOCK=y |
73 | # CONFIG_LBD is not set | 93 | # CONFIG_LBD is not set |
74 | # CONFIG_BLK_DEV_IO_TRACE is not set | 94 | # CONFIG_BLK_DEV_IO_TRACE is not set |
75 | # CONFIG_LSF is not set | 95 | # CONFIG_LSF is not set |
96 | # CONFIG_BLK_DEV_BSG is not set | ||
76 | 97 | ||
77 | # | 98 | # |
78 | # IO Schedulers | 99 | # IO Schedulers |
@@ -86,59 +107,26 @@ CONFIG_DEFAULT_DEADLINE=y | |||
86 | # CONFIG_DEFAULT_CFQ is not set | 107 | # CONFIG_DEFAULT_CFQ is not set |
87 | # CONFIG_DEFAULT_NOOP is not set | 108 | # CONFIG_DEFAULT_NOOP is not set |
88 | CONFIG_DEFAULT_IOSCHED="deadline" | 109 | CONFIG_DEFAULT_IOSCHED="deadline" |
110 | CONFIG_CLASSIC_RCU=y | ||
111 | # CONFIG_PREEMPT_RCU is not set | ||
89 | 112 | ||
90 | # | 113 | # |
91 | # System type | 114 | # System type |
92 | # | 115 | # |
93 | # CONFIG_SH_SOLUTION_ENGINE is not set | ||
94 | # CONFIG_SH_7751_SOLUTION_ENGINE is not set | ||
95 | # CONFIG_SH_7300_SOLUTION_ENGINE is not set | ||
96 | # CONFIG_SH_7343_SOLUTION_ENGINE is not set | ||
97 | # CONFIG_SH_73180_SOLUTION_ENGINE is not set | ||
98 | # CONFIG_SH_7751_SYSTEMH is not set | ||
99 | # CONFIG_SH_HP6XX is not set | ||
100 | # CONFIG_SH_EC3104 is not set | ||
101 | # CONFIG_SH_SATURN is not set | ||
102 | # CONFIG_SH_DREAMCAST is not set | ||
103 | # CONFIG_SH_BIGSUR is not set | ||
104 | # CONFIG_SH_MPC1211 is not set | ||
105 | # CONFIG_SH_SH03 is not set | ||
106 | # CONFIG_SH_SECUREEDGE5410 is not set | ||
107 | # CONFIG_SH_HS7751RVOIP is not set | ||
108 | CONFIG_SH_7710VOIPGW=y | ||
109 | # CONFIG_SH_RTS7751R2D is not set | ||
110 | # CONFIG_SH_R7780RP is not set | ||
111 | # CONFIG_SH_EDOSK7705 is not set | ||
112 | # CONFIG_SH_SH4202_MICRODEV is not set | ||
113 | # CONFIG_SH_LANDISK is not set | ||
114 | # CONFIG_SH_TITAN is not set | ||
115 | # CONFIG_SH_SHMIN is not set | ||
116 | # CONFIG_SH_UNKNOWN is not set | ||
117 | |||
118 | # | ||
119 | # Processor selection | ||
120 | # | ||
121 | CONFIG_CPU_SH3=y | 116 | CONFIG_CPU_SH3=y |
122 | 117 | # CONFIG_CPU_SUBTYPE_SH7619 is not set | |
123 | # | 118 | # CONFIG_CPU_SUBTYPE_SH7203 is not set |
124 | # SH-2 Processor Support | 119 | # CONFIG_CPU_SUBTYPE_SH7206 is not set |
125 | # | 120 | # CONFIG_CPU_SUBTYPE_SH7263 is not set |
126 | # CONFIG_CPU_SUBTYPE_SH7604 is not set | ||
127 | |||
128 | # | ||
129 | # SH-3 Processor Support | ||
130 | # | ||
131 | # CONFIG_CPU_SUBTYPE_SH7300 is not set | ||
132 | # CONFIG_CPU_SUBTYPE_SH7705 is not set | 121 | # CONFIG_CPU_SUBTYPE_SH7705 is not set |
133 | # CONFIG_CPU_SUBTYPE_SH7706 is not set | 122 | # CONFIG_CPU_SUBTYPE_SH7706 is not set |
134 | # CONFIG_CPU_SUBTYPE_SH7707 is not set | 123 | # CONFIG_CPU_SUBTYPE_SH7707 is not set |
135 | # CONFIG_CPU_SUBTYPE_SH7708 is not set | 124 | # CONFIG_CPU_SUBTYPE_SH7708 is not set |
136 | # CONFIG_CPU_SUBTYPE_SH7709 is not set | 125 | # CONFIG_CPU_SUBTYPE_SH7709 is not set |
137 | CONFIG_CPU_SUBTYPE_SH7710=y | 126 | CONFIG_CPU_SUBTYPE_SH7710=y |
138 | 127 | # CONFIG_CPU_SUBTYPE_SH7712 is not set | |
139 | # | 128 | # CONFIG_CPU_SUBTYPE_SH7720 is not set |
140 | # SH-4 Processor Support | 129 | # CONFIG_CPU_SUBTYPE_SH7721 is not set |
141 | # | ||
142 | # CONFIG_CPU_SUBTYPE_SH7750 is not set | 130 | # CONFIG_CPU_SUBTYPE_SH7750 is not set |
143 | # CONFIG_CPU_SUBTYPE_SH7091 is not set | 131 | # CONFIG_CPU_SUBTYPE_SH7091 is not set |
144 | # CONFIG_CPU_SUBTYPE_SH7750R is not set | 132 | # CONFIG_CPU_SUBTYPE_SH7750R is not set |
@@ -147,65 +135,84 @@ CONFIG_CPU_SUBTYPE_SH7710=y | |||
147 | # CONFIG_CPU_SUBTYPE_SH7751R is not set | 135 | # CONFIG_CPU_SUBTYPE_SH7751R is not set |
148 | # CONFIG_CPU_SUBTYPE_SH7760 is not set | 136 | # CONFIG_CPU_SUBTYPE_SH7760 is not set |
149 | # CONFIG_CPU_SUBTYPE_SH4_202 is not set | 137 | # CONFIG_CPU_SUBTYPE_SH4_202 is not set |
150 | 138 | # CONFIG_CPU_SUBTYPE_SH7763 is not set | |
151 | # | ||
152 | # ST40 Processor Support | ||
153 | # | ||
154 | # CONFIG_CPU_SUBTYPE_ST40STB1 is not set | ||
155 | # CONFIG_CPU_SUBTYPE_ST40GX1 is not set | ||
156 | |||
157 | # | ||
158 | # SH-4A Processor Support | ||
159 | # | ||
160 | # CONFIG_CPU_SUBTYPE_SH7770 is not set | 139 | # CONFIG_CPU_SUBTYPE_SH7770 is not set |
161 | # CONFIG_CPU_SUBTYPE_SH7780 is not set | 140 | # CONFIG_CPU_SUBTYPE_SH7780 is not set |
162 | 141 | # CONFIG_CPU_SUBTYPE_SH7785 is not set | |
163 | # | 142 | # CONFIG_CPU_SUBTYPE_SHX3 is not set |
164 | # SH4AL-DSP Processor Support | ||
165 | # | ||
166 | # CONFIG_CPU_SUBTYPE_SH73180 is not set | ||
167 | # CONFIG_CPU_SUBTYPE_SH7343 is not set | 143 | # CONFIG_CPU_SUBTYPE_SH7343 is not set |
144 | # CONFIG_CPU_SUBTYPE_SH7722 is not set | ||
145 | # CONFIG_CPU_SUBTYPE_SH7366 is not set | ||
146 | # CONFIG_CPU_SUBTYPE_SH5_101 is not set | ||
147 | # CONFIG_CPU_SUBTYPE_SH5_103 is not set | ||
168 | 148 | ||
169 | # | 149 | # |
170 | # Memory management options | 150 | # Memory management options |
171 | # | 151 | # |
152 | CONFIG_QUICKLIST=y | ||
172 | CONFIG_MMU=y | 153 | CONFIG_MMU=y |
173 | CONFIG_PAGE_OFFSET=0x80000000 | 154 | CONFIG_PAGE_OFFSET=0x80000000 |
174 | CONFIG_MEMORY_START=0x0c000000 | 155 | CONFIG_MEMORY_START=0x0c000000 |
175 | CONFIG_MEMORY_SIZE=0x00800000 | 156 | CONFIG_MEMORY_SIZE=0x00800000 |
157 | CONFIG_29BIT=y | ||
176 | CONFIG_VSYSCALL=y | 158 | CONFIG_VSYSCALL=y |
159 | CONFIG_ARCH_FLATMEM_ENABLE=y | ||
160 | CONFIG_ARCH_SPARSEMEM_ENABLE=y | ||
161 | CONFIG_ARCH_SPARSEMEM_DEFAULT=y | ||
162 | CONFIG_MAX_ACTIVE_REGIONS=1 | ||
163 | CONFIG_ARCH_POPULATES_NODE_MAP=y | ||
164 | CONFIG_ARCH_SELECT_MEMORY_MODEL=y | ||
165 | CONFIG_PAGE_SIZE_4KB=y | ||
166 | # CONFIG_PAGE_SIZE_8KB is not set | ||
167 | # CONFIG_PAGE_SIZE_64KB is not set | ||
177 | CONFIG_SELECT_MEMORY_MODEL=y | 168 | CONFIG_SELECT_MEMORY_MODEL=y |
178 | CONFIG_FLATMEM_MANUAL=y | 169 | CONFIG_FLATMEM_MANUAL=y |
179 | # CONFIG_DISCONTIGMEM_MANUAL is not set | 170 | # CONFIG_DISCONTIGMEM_MANUAL is not set |
180 | # CONFIG_SPARSEMEM_MANUAL is not set | 171 | # CONFIG_SPARSEMEM_MANUAL is not set |
181 | CONFIG_FLATMEM=y | 172 | CONFIG_FLATMEM=y |
182 | CONFIG_FLAT_NODE_MEM_MAP=y | 173 | CONFIG_FLAT_NODE_MEM_MAP=y |
183 | # CONFIG_SPARSEMEM_STATIC is not set | 174 | CONFIG_SPARSEMEM_STATIC=y |
175 | # CONFIG_SPARSEMEM_VMEMMAP_ENABLE is not set | ||
184 | CONFIG_SPLIT_PTLOCK_CPUS=4 | 176 | CONFIG_SPLIT_PTLOCK_CPUS=4 |
185 | # CONFIG_RESOURCES_64BIT is not set | 177 | # CONFIG_RESOURCES_64BIT is not set |
178 | CONFIG_ZONE_DMA_FLAG=0 | ||
179 | CONFIG_NR_QUICK=2 | ||
186 | 180 | ||
187 | # | 181 | # |
188 | # Cache configuration | 182 | # Cache configuration |
189 | # | 183 | # |
190 | # CONFIG_SH_DIRECT_MAPPED is not set | 184 | # CONFIG_SH_DIRECT_MAPPED is not set |
191 | # CONFIG_SH_WRITETHROUGH is not set | 185 | CONFIG_CACHE_WRITEBACK=y |
192 | # CONFIG_SH_OCRAM is not set | 186 | # CONFIG_CACHE_WRITETHROUGH is not set |
187 | # CONFIG_CACHE_OFF is not set | ||
193 | 188 | ||
194 | # | 189 | # |
195 | # Processor features | 190 | # Processor features |
196 | # | 191 | # |
197 | CONFIG_CPU_LITTLE_ENDIAN=y | 192 | CONFIG_CPU_LITTLE_ENDIAN=y |
193 | # CONFIG_CPU_BIG_ENDIAN is not set | ||
198 | # CONFIG_SH_FPU_EMU is not set | 194 | # CONFIG_SH_FPU_EMU is not set |
199 | CONFIG_SH_DSP=y | 195 | CONFIG_SH_DSP=y |
200 | # CONFIG_SH_ADC is not set | 196 | # CONFIG_SH_ADC is not set |
201 | CONFIG_CPU_HAS_INTEVT=y | 197 | CONFIG_CPU_HAS_INTEVT=y |
202 | CONFIG_CPU_HAS_SR_RB=y | 198 | CONFIG_CPU_HAS_SR_RB=y |
199 | CONFIG_CPU_HAS_DSP=y | ||
203 | 200 | ||
204 | # | 201 | # |
205 | # Timer support | 202 | # Board support |
203 | # | ||
204 | # CONFIG_SH_SOLUTION_ENGINE is not set | ||
205 | |||
206 | # | ||
207 | # Timer and clock configuration | ||
206 | # | 208 | # |
207 | CONFIG_SH_TMU=y | 209 | CONFIG_SH_TMU=y |
210 | CONFIG_SH_TIMER_IRQ=16 | ||
208 | CONFIG_SH_PCLK_FREQ=32768000 | 211 | CONFIG_SH_PCLK_FREQ=32768000 |
212 | # CONFIG_TICK_ONESHOT is not set | ||
213 | # CONFIG_NO_HZ is not set | ||
214 | # CONFIG_HIGH_RES_TIMERS is not set | ||
215 | CONFIG_GENERIC_CLOCKEVENTS_BUILD=y | ||
209 | 216 | ||
210 | # | 217 | # |
211 | # CPU Frequency scaling | 218 | # CPU Frequency scaling |
@@ -220,56 +227,51 @@ CONFIG_SH_PCLK_FREQ=32768000 | |||
220 | # | 227 | # |
221 | # Companion Chips | 228 | # Companion Chips |
222 | # | 229 | # |
223 | # CONFIG_HD6446X_SERIES is not set | 230 | |
231 | # | ||
232 | # Additional SuperH Device Drivers | ||
233 | # | ||
234 | # CONFIG_HEARTBEAT is not set | ||
235 | # CONFIG_PUSH_SWITCH is not set | ||
224 | 236 | ||
225 | # | 237 | # |
226 | # Kernel features | 238 | # Kernel features |
227 | # | 239 | # |
228 | # CONFIG_HZ_100 is not set | 240 | # CONFIG_HZ_100 is not set |
229 | CONFIG_HZ_250=y | 241 | CONFIG_HZ_250=y |
242 | # CONFIG_HZ_300 is not set | ||
230 | # CONFIG_HZ_1000 is not set | 243 | # CONFIG_HZ_1000 is not set |
231 | CONFIG_HZ=250 | 244 | CONFIG_HZ=250 |
245 | # CONFIG_SCHED_HRTICK is not set | ||
232 | # CONFIG_KEXEC is not set | 246 | # CONFIG_KEXEC is not set |
233 | # CONFIG_SMP is not set | 247 | # CONFIG_CRASH_DUMP is not set |
234 | CONFIG_PREEMPT_NONE=y | 248 | CONFIG_PREEMPT_NONE=y |
235 | # CONFIG_PREEMPT_VOLUNTARY is not set | 249 | # CONFIG_PREEMPT_VOLUNTARY is not set |
236 | # CONFIG_PREEMPT is not set | 250 | # CONFIG_PREEMPT is not set |
251 | CONFIG_RCU_TRACE=y | ||
252 | CONFIG_GUSA=y | ||
253 | # CONFIG_GUSA_RB is not set | ||
237 | 254 | ||
238 | # | 255 | # |
239 | # Boot options | 256 | # Boot options |
240 | # | 257 | # |
241 | CONFIG_ZERO_PAGE_OFFSET=0x00001000 | 258 | CONFIG_ZERO_PAGE_OFFSET=0x00001000 |
242 | CONFIG_BOOT_LINK_OFFSET=0x00800000 | 259 | CONFIG_BOOT_LINK_OFFSET=0x00800000 |
243 | # CONFIG_UBC_WAKEUP is not set | ||
244 | # CONFIG_CMDLINE_BOOL is not set | 260 | # CONFIG_CMDLINE_BOOL is not set |
245 | 261 | ||
246 | # | 262 | # |
247 | # Bus options | 263 | # Bus options |
248 | # | 264 | # |
249 | # CONFIG_PCI is not set | 265 | # CONFIG_ARCH_SUPPORTS_MSI is not set |
250 | |||
251 | # | ||
252 | # PCCARD (PCMCIA/CardBus) support | ||
253 | # | ||
254 | # CONFIG_PCCARD is not set | 266 | # CONFIG_PCCARD is not set |
255 | 267 | ||
256 | # | 268 | # |
257 | # PCI Hotplug Support | ||
258 | # | ||
259 | |||
260 | # | ||
261 | # Executable file formats | 269 | # Executable file formats |
262 | # | 270 | # |
263 | CONFIG_BINFMT_ELF=y | 271 | CONFIG_BINFMT_ELF=y |
264 | # CONFIG_BINFMT_FLAT is not set | ||
265 | # CONFIG_BINFMT_MISC is not set | 272 | # CONFIG_BINFMT_MISC is not set |
266 | 273 | ||
267 | # | 274 | # |
268 | # Power management options (EXPERIMENTAL) | ||
269 | # | ||
270 | # CONFIG_PM is not set | ||
271 | |||
272 | # | ||
273 | # Networking | 275 | # Networking |
274 | # | 276 | # |
275 | CONFIG_NET=y | 277 | CONFIG_NET=y |
@@ -277,13 +279,14 @@ CONFIG_NET=y | |||
277 | # | 279 | # |
278 | # Networking options | 280 | # Networking options |
279 | # | 281 | # |
280 | # CONFIG_NETDEBUG is not set | ||
281 | CONFIG_PACKET=y | 282 | CONFIG_PACKET=y |
282 | # CONFIG_PACKET_MMAP is not set | 283 | # CONFIG_PACKET_MMAP is not set |
283 | CONFIG_UNIX=y | 284 | CONFIG_UNIX=y |
284 | CONFIG_XFRM=y | 285 | CONFIG_XFRM=y |
285 | # CONFIG_XFRM_USER is not set | 286 | # CONFIG_XFRM_USER is not set |
286 | # CONFIG_XFRM_SUB_POLICY is not set | 287 | # CONFIG_XFRM_SUB_POLICY is not set |
288 | # CONFIG_XFRM_MIGRATE is not set | ||
289 | # CONFIG_XFRM_STATISTICS is not set | ||
287 | # CONFIG_NET_KEY is not set | 290 | # CONFIG_NET_KEY is not set |
288 | CONFIG_INET=y | 291 | CONFIG_INET=y |
289 | # CONFIG_IP_MULTICAST is not set | 292 | # CONFIG_IP_MULTICAST is not set |
@@ -301,14 +304,13 @@ CONFIG_SYN_COOKIES=y | |||
301 | # CONFIG_INET_TUNNEL is not set | 304 | # CONFIG_INET_TUNNEL is not set |
302 | CONFIG_INET_XFRM_MODE_TRANSPORT=y | 305 | CONFIG_INET_XFRM_MODE_TRANSPORT=y |
303 | CONFIG_INET_XFRM_MODE_TUNNEL=y | 306 | CONFIG_INET_XFRM_MODE_TUNNEL=y |
307 | CONFIG_INET_XFRM_MODE_BEET=y | ||
308 | # CONFIG_INET_LRO is not set | ||
304 | # CONFIG_INET_DIAG is not set | 309 | # CONFIG_INET_DIAG is not set |
305 | # CONFIG_TCP_CONG_ADVANCED is not set | 310 | # CONFIG_TCP_CONG_ADVANCED is not set |
306 | CONFIG_TCP_CONG_CUBIC=y | 311 | CONFIG_TCP_CONG_CUBIC=y |
307 | CONFIG_DEFAULT_TCP_CONG="cubic" | 312 | CONFIG_DEFAULT_TCP_CONG="cubic" |
308 | 313 | # CONFIG_TCP_MD5SIG is not set | |
309 | # | ||
310 | # IP: Virtual Server Configuration | ||
311 | # | ||
312 | # CONFIG_IP_VS is not set | 314 | # CONFIG_IP_VS is not set |
313 | # CONFIG_IPV6 is not set | 315 | # CONFIG_IPV6 is not set |
314 | # CONFIG_INET6_XFRM_TUNNEL is not set | 316 | # CONFIG_INET6_XFRM_TUNNEL is not set |
@@ -316,44 +318,24 @@ CONFIG_DEFAULT_TCP_CONG="cubic" | |||
316 | # CONFIG_NETWORK_SECMARK is not set | 318 | # CONFIG_NETWORK_SECMARK is not set |
317 | CONFIG_NETFILTER=y | 319 | CONFIG_NETFILTER=y |
318 | # CONFIG_NETFILTER_DEBUG is not set | 320 | # CONFIG_NETFILTER_DEBUG is not set |
321 | CONFIG_NETFILTER_ADVANCED=y | ||
319 | 322 | ||
320 | # | 323 | # |
321 | # Core Netfilter Configuration | 324 | # Core Netfilter Configuration |
322 | # | 325 | # |
323 | # CONFIG_NETFILTER_NETLINK is not set | 326 | # CONFIG_NETFILTER_NETLINK_QUEUE is not set |
327 | # CONFIG_NETFILTER_NETLINK_LOG is not set | ||
328 | # CONFIG_NF_CONNTRACK is not set | ||
324 | # CONFIG_NETFILTER_XTABLES is not set | 329 | # CONFIG_NETFILTER_XTABLES is not set |
325 | 330 | ||
326 | # | 331 | # |
327 | # IP: Netfilter Configuration | 332 | # IP: Netfilter Configuration |
328 | # | 333 | # |
329 | CONFIG_IP_NF_CONNTRACK=y | ||
330 | # CONFIG_IP_NF_CT_ACCT is not set | ||
331 | # CONFIG_IP_NF_CONNTRACK_MARK is not set | ||
332 | # CONFIG_IP_NF_CONNTRACK_EVENTS is not set | ||
333 | # CONFIG_IP_NF_CT_PROTO_SCTP is not set | ||
334 | CONFIG_IP_NF_FTP=m | ||
335 | # CONFIG_IP_NF_IRC is not set | ||
336 | # CONFIG_IP_NF_NETBIOS_NS is not set | ||
337 | # CONFIG_IP_NF_TFTP is not set | ||
338 | # CONFIG_IP_NF_AMANDA is not set | ||
339 | CONFIG_IP_NF_PPTP=m | ||
340 | # CONFIG_IP_NF_H323 is not set | ||
341 | # CONFIG_IP_NF_SIP is not set | ||
342 | # CONFIG_IP_NF_QUEUE is not set | 334 | # CONFIG_IP_NF_QUEUE is not set |
343 | 335 | # CONFIG_IP_NF_IPTABLES is not set | |
344 | # | 336 | # CONFIG_IP_NF_ARPTABLES is not set |
345 | # DCCP Configuration (EXPERIMENTAL) | ||
346 | # | ||
347 | # CONFIG_IP_DCCP is not set | 337 | # CONFIG_IP_DCCP is not set |
348 | |||
349 | # | ||
350 | # SCTP Configuration (EXPERIMENTAL) | ||
351 | # | ||
352 | # CONFIG_IP_SCTP is not set | 338 | # CONFIG_IP_SCTP is not set |
353 | |||
354 | # | ||
355 | # TIPC Configuration (EXPERIMENTAL) | ||
356 | # | ||
357 | # CONFIG_TIPC is not set | 339 | # CONFIG_TIPC is not set |
358 | # CONFIG_ATM is not set | 340 | # CONFIG_ATM is not set |
359 | # CONFIG_BRIDGE is not set | 341 | # CONFIG_BRIDGE is not set |
@@ -366,14 +348,7 @@ CONFIG_IP_NF_PPTP=m | |||
366 | # CONFIG_LAPB is not set | 348 | # CONFIG_LAPB is not set |
367 | # CONFIG_ECONET is not set | 349 | # CONFIG_ECONET is not set |
368 | # CONFIG_WAN_ROUTER is not set | 350 | # CONFIG_WAN_ROUTER is not set |
369 | |||
370 | # | ||
371 | # QoS and/or fair queueing | ||
372 | # | ||
373 | CONFIG_NET_SCHED=y | 351 | CONFIG_NET_SCHED=y |
374 | CONFIG_NET_SCH_CLK_JIFFIES=y | ||
375 | # CONFIG_NET_SCH_CLK_GETTIMEOFDAY is not set | ||
376 | # CONFIG_NET_SCH_CLK_CPU is not set | ||
377 | 352 | ||
378 | # | 353 | # |
379 | # Queueing/Scheduling | 354 | # Queueing/Scheduling |
@@ -382,6 +357,7 @@ CONFIG_NET_SCH_CBQ=y | |||
382 | # CONFIG_NET_SCH_HTB is not set | 357 | # CONFIG_NET_SCH_HTB is not set |
383 | # CONFIG_NET_SCH_HFSC is not set | 358 | # CONFIG_NET_SCH_HFSC is not set |
384 | # CONFIG_NET_SCH_PRIO is not set | 359 | # CONFIG_NET_SCH_PRIO is not set |
360 | # CONFIG_NET_SCH_RR is not set | ||
385 | # CONFIG_NET_SCH_RED is not set | 361 | # CONFIG_NET_SCH_RED is not set |
386 | # CONFIG_NET_SCH_SFQ is not set | 362 | # CONFIG_NET_SCH_SFQ is not set |
387 | # CONFIG_NET_SCH_TEQL is not set | 363 | # CONFIG_NET_SCH_TEQL is not set |
@@ -389,7 +365,6 @@ CONFIG_NET_SCH_CBQ=y | |||
389 | # CONFIG_NET_SCH_GRED is not set | 365 | # CONFIG_NET_SCH_GRED is not set |
390 | # CONFIG_NET_SCH_DSMARK is not set | 366 | # CONFIG_NET_SCH_DSMARK is not set |
391 | # CONFIG_NET_SCH_NETEM is not set | 367 | # CONFIG_NET_SCH_NETEM is not set |
392 | CONFIG_NET_SCH_INGRESS=y | ||
393 | 368 | ||
394 | # | 369 | # |
395 | # Classification | 370 | # Classification |
@@ -405,20 +380,31 @@ CONFIG_NET_CLS_U32=y | |||
405 | # CONFIG_CLS_U32_MARK is not set | 380 | # CONFIG_CLS_U32_MARK is not set |
406 | # CONFIG_NET_CLS_RSVP is not set | 381 | # CONFIG_NET_CLS_RSVP is not set |
407 | # CONFIG_NET_CLS_RSVP6 is not set | 382 | # CONFIG_NET_CLS_RSVP6 is not set |
383 | # CONFIG_NET_CLS_FLOW is not set | ||
408 | # CONFIG_NET_EMATCH is not set | 384 | # CONFIG_NET_EMATCH is not set |
409 | # CONFIG_NET_CLS_ACT is not set | 385 | # CONFIG_NET_CLS_ACT is not set |
410 | CONFIG_NET_CLS_POLICE=y | ||
411 | # CONFIG_NET_CLS_IND is not set | 386 | # CONFIG_NET_CLS_IND is not set |
412 | CONFIG_NET_ESTIMATOR=y | 387 | CONFIG_NET_SCH_FIFO=y |
413 | 388 | ||
414 | # | 389 | # |
415 | # Network testing | 390 | # Network testing |
416 | # | 391 | # |
417 | # CONFIG_NET_PKTGEN is not set | 392 | # CONFIG_NET_PKTGEN is not set |
418 | # CONFIG_HAMRADIO is not set | 393 | # CONFIG_HAMRADIO is not set |
394 | # CONFIG_CAN is not set | ||
419 | # CONFIG_IRDA is not set | 395 | # CONFIG_IRDA is not set |
420 | # CONFIG_BT is not set | 396 | # CONFIG_BT is not set |
397 | # CONFIG_AF_RXRPC is not set | ||
398 | |||
399 | # | ||
400 | # Wireless | ||
401 | # | ||
402 | # CONFIG_CFG80211 is not set | ||
403 | # CONFIG_WIRELESS_EXT is not set | ||
404 | # CONFIG_MAC80211 is not set | ||
421 | # CONFIG_IEEE80211 is not set | 405 | # CONFIG_IEEE80211 is not set |
406 | # CONFIG_RFKILL is not set | ||
407 | # CONFIG_NET_9P is not set | ||
422 | 408 | ||
423 | # | 409 | # |
424 | # Device Drivers | 410 | # Device Drivers |
@@ -427,19 +413,12 @@ CONFIG_NET_ESTIMATOR=y | |||
427 | # | 413 | # |
428 | # Generic Driver Options | 414 | # Generic Driver Options |
429 | # | 415 | # |
416 | CONFIG_UEVENT_HELPER_PATH="/sbin/hotplug" | ||
430 | CONFIG_STANDALONE=y | 417 | CONFIG_STANDALONE=y |
431 | CONFIG_PREVENT_FIRMWARE_BUILD=y | 418 | CONFIG_PREVENT_FIRMWARE_BUILD=y |
432 | CONFIG_FW_LOADER=y | 419 | CONFIG_FW_LOADER=y |
433 | # CONFIG_SYS_HYPERVISOR is not set | 420 | # CONFIG_SYS_HYPERVISOR is not set |
434 | |||
435 | # | ||
436 | # Connector - unified userspace <-> kernelspace linker | ||
437 | # | ||
438 | # CONFIG_CONNECTOR is not set | 421 | # CONFIG_CONNECTOR is not set |
439 | |||
440 | # | ||
441 | # Memory Technology Devices (MTD) | ||
442 | # | ||
443 | CONFIG_MTD=y | 422 | CONFIG_MTD=y |
444 | # CONFIG_MTD_DEBUG is not set | 423 | # CONFIG_MTD_DEBUG is not set |
445 | # CONFIG_MTD_CONCAT is not set | 424 | # CONFIG_MTD_CONCAT is not set |
@@ -451,12 +430,14 @@ CONFIG_MTD_PARTITIONS=y | |||
451 | # User Modules And Translation Layers | 430 | # User Modules And Translation Layers |
452 | # | 431 | # |
453 | CONFIG_MTD_CHAR=y | 432 | CONFIG_MTD_CHAR=y |
433 | CONFIG_MTD_BLKDEVS=y | ||
454 | CONFIG_MTD_BLOCK=y | 434 | CONFIG_MTD_BLOCK=y |
455 | # CONFIG_FTL is not set | 435 | # CONFIG_FTL is not set |
456 | # CONFIG_NFTL is not set | 436 | # CONFIG_NFTL is not set |
457 | # CONFIG_INFTL is not set | 437 | # CONFIG_INFTL is not set |
458 | # CONFIG_RFD_FTL is not set | 438 | # CONFIG_RFD_FTL is not set |
459 | # CONFIG_SSFDC is not set | 439 | # CONFIG_SSFDC is not set |
440 | # CONFIG_MTD_OOPS is not set | ||
460 | 441 | ||
461 | # | 442 | # |
462 | # RAM/ROM/Flash chip drivers | 443 | # RAM/ROM/Flash chip drivers |
@@ -482,7 +463,6 @@ CONFIG_MTD_CFI_UTIL=y | |||
482 | CONFIG_MTD_RAM=y | 463 | CONFIG_MTD_RAM=y |
483 | # CONFIG_MTD_ROM is not set | 464 | # CONFIG_MTD_ROM is not set |
484 | # CONFIG_MTD_ABSENT is not set | 465 | # CONFIG_MTD_ABSENT is not set |
485 | # CONFIG_MTD_OBSOLETE_CHIPS is not set | ||
486 | 466 | ||
487 | # | 467 | # |
488 | # Mapping drivers for chip access | 468 | # Mapping drivers for chip access |
@@ -505,40 +485,25 @@ CONFIG_MTD_RAM=y | |||
505 | # CONFIG_MTD_DOC2000 is not set | 485 | # CONFIG_MTD_DOC2000 is not set |
506 | # CONFIG_MTD_DOC2001 is not set | 486 | # CONFIG_MTD_DOC2001 is not set |
507 | # CONFIG_MTD_DOC2001PLUS is not set | 487 | # CONFIG_MTD_DOC2001PLUS is not set |
508 | |||
509 | # | ||
510 | # NAND Flash Device Drivers | ||
511 | # | ||
512 | # CONFIG_MTD_NAND is not set | 488 | # CONFIG_MTD_NAND is not set |
513 | |||
514 | # | ||
515 | # OneNAND Flash Device Drivers | ||
516 | # | ||
517 | # CONFIG_MTD_ONENAND is not set | 489 | # CONFIG_MTD_ONENAND is not set |
518 | 490 | ||
519 | # | 491 | # |
520 | # Parallel port support | 492 | # UBI - Unsorted block images |
521 | # | 493 | # |
494 | # CONFIG_MTD_UBI is not set | ||
522 | # CONFIG_PARPORT is not set | 495 | # CONFIG_PARPORT is not set |
523 | 496 | CONFIG_BLK_DEV=y | |
524 | # | ||
525 | # Plug and Play support | ||
526 | # | ||
527 | |||
528 | # | ||
529 | # Block devices | ||
530 | # | ||
531 | # CONFIG_BLK_DEV_COW_COMMON is not set | 497 | # CONFIG_BLK_DEV_COW_COMMON is not set |
532 | # CONFIG_BLK_DEV_LOOP is not set | 498 | # CONFIG_BLK_DEV_LOOP is not set |
533 | # CONFIG_BLK_DEV_NBD is not set | 499 | # CONFIG_BLK_DEV_NBD is not set |
534 | # CONFIG_BLK_DEV_RAM is not set | 500 | # CONFIG_BLK_DEV_RAM is not set |
535 | # CONFIG_BLK_DEV_INITRD is not set | ||
536 | # CONFIG_CDROM_PKTCDVD is not set | 501 | # CONFIG_CDROM_PKTCDVD is not set |
537 | # CONFIG_ATA_OVER_ETH is not set | 502 | # CONFIG_ATA_OVER_ETH is not set |
538 | 503 | CONFIG_MISC_DEVICES=y | |
539 | # | 504 | # CONFIG_EEPROM_93CX6 is not set |
540 | # ATA/ATAPI/MFM/RLL support | 505 | # CONFIG_ENCLOSURE_SERVICES is not set |
541 | # | 506 | CONFIG_HAVE_IDE=y |
542 | # CONFIG_IDE is not set | 507 | # CONFIG_IDE is not set |
543 | 508 | ||
544 | # | 509 | # |
@@ -546,104 +511,59 @@ CONFIG_MTD_RAM=y | |||
546 | # | 511 | # |
547 | # CONFIG_RAID_ATTRS is not set | 512 | # CONFIG_RAID_ATTRS is not set |
548 | # CONFIG_SCSI is not set | 513 | # CONFIG_SCSI is not set |
514 | # CONFIG_SCSI_DMA is not set | ||
549 | # CONFIG_SCSI_NETLINK is not set | 515 | # CONFIG_SCSI_NETLINK is not set |
550 | |||
551 | # | ||
552 | # Serial ATA (prod) and Parallel ATA (experimental) drivers | ||
553 | # | ||
554 | # CONFIG_ATA is not set | 516 | # CONFIG_ATA is not set |
555 | |||
556 | # | ||
557 | # Multi-device support (RAID and LVM) | ||
558 | # | ||
559 | # CONFIG_MD is not set | 517 | # CONFIG_MD is not set |
560 | |||
561 | # | ||
562 | # Fusion MPT device support | ||
563 | # | ||
564 | # CONFIG_FUSION is not set | ||
565 | |||
566 | # | ||
567 | # IEEE 1394 (FireWire) support | ||
568 | # | ||
569 | |||
570 | # | ||
571 | # I2O device support | ||
572 | # | ||
573 | |||
574 | # | ||
575 | # Network device support | ||
576 | # | ||
577 | CONFIG_NETDEVICES=y | 518 | CONFIG_NETDEVICES=y |
519 | # CONFIG_NETDEVICES_MULTIQUEUE is not set | ||
578 | # CONFIG_DUMMY is not set | 520 | # CONFIG_DUMMY is not set |
579 | # CONFIG_BONDING is not set | 521 | # CONFIG_BONDING is not set |
522 | # CONFIG_MACVLAN is not set | ||
580 | # CONFIG_EQUALIZER is not set | 523 | # CONFIG_EQUALIZER is not set |
581 | # CONFIG_TUN is not set | 524 | # CONFIG_TUN is not set |
582 | 525 | # CONFIG_VETH is not set | |
583 | # | ||
584 | # PHY device support | ||
585 | # | ||
586 | # CONFIG_PHYLIB is not set | 526 | # CONFIG_PHYLIB is not set |
587 | |||
588 | # | ||
589 | # Ethernet (10 or 100Mbit) | ||
590 | # | ||
591 | CONFIG_NET_ETHERNET=y | 527 | CONFIG_NET_ETHERNET=y |
592 | # CONFIG_MII is not set | 528 | # CONFIG_MII is not set |
529 | # CONFIG_AX88796 is not set | ||
593 | # CONFIG_STNIC is not set | 530 | # CONFIG_STNIC is not set |
594 | # CONFIG_SMC91X is not set | 531 | # CONFIG_SMC91X is not set |
532 | # CONFIG_IBM_NEW_EMAC_ZMII is not set | ||
533 | # CONFIG_IBM_NEW_EMAC_RGMII is not set | ||
534 | # CONFIG_IBM_NEW_EMAC_TAH is not set | ||
535 | # CONFIG_IBM_NEW_EMAC_EMAC4 is not set | ||
536 | # CONFIG_B44 is not set | ||
537 | CONFIG_NETDEV_1000=y | ||
538 | # CONFIG_E1000E_ENABLED is not set | ||
539 | CONFIG_NETDEV_10000=y | ||
595 | 540 | ||
596 | # | 541 | # |
597 | # Ethernet (1000 Mbit) | 542 | # Wireless LAN |
598 | # | ||
599 | |||
600 | # | ||
601 | # Ethernet (10000 Mbit) | ||
602 | # | ||
603 | |||
604 | # | ||
605 | # Token Ring devices | ||
606 | # | ||
607 | |||
608 | # | ||
609 | # Wireless LAN (non-hamradio) | ||
610 | # | ||
611 | # CONFIG_NET_RADIO is not set | ||
612 | |||
613 | # | ||
614 | # Wan interfaces | ||
615 | # | 543 | # |
544 | # CONFIG_WLAN_PRE80211 is not set | ||
545 | # CONFIG_WLAN_80211 is not set | ||
616 | # CONFIG_WAN is not set | 546 | # CONFIG_WAN is not set |
617 | # CONFIG_PPP is not set | 547 | # CONFIG_PPP is not set |
618 | # CONFIG_SLIP is not set | 548 | # CONFIG_SLIP is not set |
619 | # CONFIG_SHAPER is not set | ||
620 | # CONFIG_NETCONSOLE is not set | 549 | # CONFIG_NETCONSOLE is not set |
621 | # CONFIG_NETPOLL is not set | 550 | # CONFIG_NETPOLL is not set |
622 | # CONFIG_NET_POLL_CONTROLLER is not set | 551 | # CONFIG_NET_POLL_CONTROLLER is not set |
623 | |||
624 | # | ||
625 | # ISDN subsystem | ||
626 | # | ||
627 | # CONFIG_ISDN is not set | 552 | # CONFIG_ISDN is not set |
628 | |||
629 | # | ||
630 | # Telephony Support | ||
631 | # | ||
632 | CONFIG_PHONE=y | 553 | CONFIG_PHONE=y |
633 | # CONFIG_PHONE_IXJ is not set | ||
634 | 554 | ||
635 | # | 555 | # |
636 | # Input device support | 556 | # Input device support |
637 | # | 557 | # |
638 | CONFIG_INPUT=y | 558 | CONFIG_INPUT=y |
639 | # CONFIG_INPUT_FF_MEMLESS is not set | 559 | # CONFIG_INPUT_FF_MEMLESS is not set |
560 | # CONFIG_INPUT_POLLDEV is not set | ||
640 | 561 | ||
641 | # | 562 | # |
642 | # Userland interfaces | 563 | # Userland interfaces |
643 | # | 564 | # |
644 | # CONFIG_INPUT_MOUSEDEV is not set | 565 | # CONFIG_INPUT_MOUSEDEV is not set |
645 | # CONFIG_INPUT_JOYDEV is not set | 566 | # CONFIG_INPUT_JOYDEV is not set |
646 | # CONFIG_INPUT_TSDEV is not set | ||
647 | # CONFIG_INPUT_EVDEV is not set | 567 | # CONFIG_INPUT_EVDEV is not set |
648 | # CONFIG_INPUT_EVBUG is not set | 568 | # CONFIG_INPUT_EVBUG is not set |
649 | 569 | ||
@@ -653,6 +573,7 @@ CONFIG_INPUT=y | |||
653 | # CONFIG_INPUT_KEYBOARD is not set | 573 | # CONFIG_INPUT_KEYBOARD is not set |
654 | # CONFIG_INPUT_MOUSE is not set | 574 | # CONFIG_INPUT_MOUSE is not set |
655 | # CONFIG_INPUT_JOYSTICK is not set | 575 | # CONFIG_INPUT_JOYSTICK is not set |
576 | # CONFIG_INPUT_TABLET is not set | ||
656 | # CONFIG_INPUT_TOUCHSCREEN is not set | 577 | # CONFIG_INPUT_TOUCHSCREEN is not set |
657 | # CONFIG_INPUT_MISC is not set | 578 | # CONFIG_INPUT_MISC is not set |
658 | 579 | ||
@@ -684,35 +605,11 @@ CONFIG_SERIAL_CORE_CONSOLE=y | |||
684 | # CONFIG_UNIX98_PTYS is not set | 605 | # CONFIG_UNIX98_PTYS is not set |
685 | CONFIG_LEGACY_PTYS=y | 606 | CONFIG_LEGACY_PTYS=y |
686 | CONFIG_LEGACY_PTY_COUNT=256 | 607 | CONFIG_LEGACY_PTY_COUNT=256 |
687 | |||
688 | # | ||
689 | # IPMI | ||
690 | # | ||
691 | # CONFIG_IPMI_HANDLER is not set | 608 | # CONFIG_IPMI_HANDLER is not set |
692 | |||
693 | # | ||
694 | # Watchdog Cards | ||
695 | # | ||
696 | # CONFIG_WATCHDOG is not set | ||
697 | CONFIG_HW_RANDOM=y | 609 | CONFIG_HW_RANDOM=y |
698 | # CONFIG_GEN_RTC is not set | ||
699 | # CONFIG_DTLK is not set | ||
700 | # CONFIG_R3964 is not set | 610 | # CONFIG_R3964 is not set |
701 | |||
702 | # | ||
703 | # Ftape, the floppy tape device driver | ||
704 | # | ||
705 | # CONFIG_RAW_DRIVER is not set | 611 | # CONFIG_RAW_DRIVER is not set |
706 | |||
707 | # | ||
708 | # TPM devices | ||
709 | # | ||
710 | # CONFIG_TCG_TPM is not set | 612 | # CONFIG_TCG_TPM is not set |
711 | # CONFIG_TELCLOCK is not set | ||
712 | |||
713 | # | ||
714 | # I2C support | ||
715 | # | ||
716 | # CONFIG_I2C is not set | 613 | # CONFIG_I2C is not set |
717 | 614 | ||
718 | # | 615 | # |
@@ -720,119 +617,86 @@ CONFIG_HW_RANDOM=y | |||
720 | # | 617 | # |
721 | # CONFIG_SPI is not set | 618 | # CONFIG_SPI is not set |
722 | # CONFIG_SPI_MASTER is not set | 619 | # CONFIG_SPI_MASTER is not set |
620 | # CONFIG_W1 is not set | ||
621 | # CONFIG_POWER_SUPPLY is not set | ||
622 | # CONFIG_HWMON is not set | ||
623 | CONFIG_THERMAL=y | ||
624 | # CONFIG_WATCHDOG is not set | ||
723 | 625 | ||
724 | # | 626 | # |
725 | # Dallas's 1-wire bus | 627 | # Sonics Silicon Backplane |
726 | # | ||
727 | |||
728 | # | ||
729 | # Hardware Monitoring support | ||
730 | # | 628 | # |
731 | # CONFIG_HWMON is not set | 629 | CONFIG_SSB_POSSIBLE=y |
732 | # CONFIG_HWMON_VID is not set | 630 | # CONFIG_SSB is not set |
733 | 631 | ||
734 | # | 632 | # |
735 | # Misc devices | 633 | # Multifunction device drivers |
736 | # | 634 | # |
635 | # CONFIG_MFD_SM501 is not set | ||
737 | 636 | ||
738 | # | 637 | # |
739 | # Multimedia devices | 638 | # Multimedia devices |
740 | # | 639 | # |
741 | # CONFIG_VIDEO_DEV is not set | 640 | # CONFIG_VIDEO_DEV is not set |
742 | CONFIG_VIDEO_V4L2=y | 641 | # CONFIG_DVB_CORE is not set |
743 | 642 | # CONFIG_DAB is not set | |
744 | # | ||
745 | # Digital Video Broadcasting Devices | ||
746 | # | ||
747 | # CONFIG_DVB is not set | ||
748 | 643 | ||
749 | # | 644 | # |
750 | # Graphics support | 645 | # Graphics support |
751 | # | 646 | # |
752 | CONFIG_FIRMWARE_EDID=y | 647 | # CONFIG_VGASTATE is not set |
648 | # CONFIG_VIDEO_OUTPUT_CONTROL is not set | ||
753 | # CONFIG_FB is not set | 649 | # CONFIG_FB is not set |
754 | # CONFIG_BACKLIGHT_LCD_SUPPORT is not set | 650 | # CONFIG_BACKLIGHT_LCD_SUPPORT is not set |
755 | 651 | ||
756 | # | 652 | # |
757 | # Sound | 653 | # Display device support |
758 | # | 654 | # |
759 | # CONFIG_SOUND is not set | 655 | # CONFIG_DISPLAY_SUPPORT is not set |
760 | 656 | ||
761 | # | 657 | # |
762 | # USB support | 658 | # Sound |
763 | # | 659 | # |
764 | # CONFIG_USB_ARCH_HAS_HCD is not set | 660 | # CONFIG_SOUND is not set |
661 | CONFIG_HID_SUPPORT=y | ||
662 | CONFIG_HID=y | ||
663 | # CONFIG_HID_DEBUG is not set | ||
664 | # CONFIG_HIDRAW is not set | ||
665 | CONFIG_USB_SUPPORT=y | ||
666 | CONFIG_USB_ARCH_HAS_HCD=y | ||
765 | # CONFIG_USB_ARCH_HAS_OHCI is not set | 667 | # CONFIG_USB_ARCH_HAS_OHCI is not set |
766 | # CONFIG_USB_ARCH_HAS_EHCI is not set | 668 | # CONFIG_USB_ARCH_HAS_EHCI is not set |
669 | # CONFIG_USB is not set | ||
767 | 670 | ||
768 | # | 671 | # |
769 | # NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support' | 672 | # NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support' |
770 | # | 673 | # |
771 | |||
772 | # | ||
773 | # USB Gadget Support | ||
774 | # | ||
775 | # CONFIG_USB_GADGET is not set | 674 | # CONFIG_USB_GADGET is not set |
776 | |||
777 | # | ||
778 | # MMC/SD Card support | ||
779 | # | ||
780 | # CONFIG_MMC is not set | 675 | # CONFIG_MMC is not set |
781 | 676 | # CONFIG_MEMSTICK is not set | |
782 | # | ||
783 | # LED devices | ||
784 | # | ||
785 | # CONFIG_NEW_LEDS is not set | 677 | # CONFIG_NEW_LEDS is not set |
786 | |||
787 | # | ||
788 | # LED drivers | ||
789 | # | ||
790 | |||
791 | # | ||
792 | # LED Triggers | ||
793 | # | ||
794 | |||
795 | # | ||
796 | # InfiniBand support | ||
797 | # | ||
798 | |||
799 | # | ||
800 | # EDAC - error detection and reporting (RAS) (EXPERIMENTAL) | ||
801 | # | ||
802 | |||
803 | # | ||
804 | # Real Time Clock | ||
805 | # | ||
806 | # CONFIG_RTC_CLASS is not set | 678 | # CONFIG_RTC_CLASS is not set |
807 | 679 | ||
808 | # | 680 | # |
809 | # DMA Engine support | 681 | # Userspace I/O |
810 | # | ||
811 | # CONFIG_DMA_ENGINE is not set | ||
812 | |||
813 | # | ||
814 | # DMA Clients | ||
815 | # | ||
816 | |||
817 | # | ||
818 | # DMA Devices | ||
819 | # | 682 | # |
683 | # CONFIG_UIO is not set | ||
820 | 684 | ||
821 | # | 685 | # |
822 | # File systems | 686 | # File systems |
823 | # | 687 | # |
824 | # CONFIG_EXT2_FS is not set | 688 | # CONFIG_EXT2_FS is not set |
825 | # CONFIG_EXT3_FS is not set | 689 | # CONFIG_EXT3_FS is not set |
690 | # CONFIG_EXT4DEV_FS is not set | ||
826 | # CONFIG_REISERFS_FS is not set | 691 | # CONFIG_REISERFS_FS is not set |
827 | # CONFIG_JFS_FS is not set | 692 | # CONFIG_JFS_FS is not set |
828 | # CONFIG_FS_POSIX_ACL is not set | 693 | # CONFIG_FS_POSIX_ACL is not set |
829 | # CONFIG_XFS_FS is not set | 694 | # CONFIG_XFS_FS is not set |
695 | # CONFIG_GFS2_FS is not set | ||
830 | # CONFIG_OCFS2_FS is not set | 696 | # CONFIG_OCFS2_FS is not set |
831 | # CONFIG_MINIX_FS is not set | 697 | # CONFIG_DNOTIFY is not set |
832 | # CONFIG_ROMFS_FS is not set | ||
833 | # CONFIG_INOTIFY is not set | 698 | # CONFIG_INOTIFY is not set |
834 | # CONFIG_QUOTA is not set | 699 | # CONFIG_QUOTA is not set |
835 | # CONFIG_DNOTIFY is not set | ||
836 | # CONFIG_AUTOFS_FS is not set | 700 | # CONFIG_AUTOFS_FS is not set |
837 | # CONFIG_AUTOFS4_FS is not set | 701 | # CONFIG_AUTOFS4_FS is not set |
838 | # CONFIG_FUSE_FS is not set | 702 | # CONFIG_FUSE_FS is not set |
@@ -861,7 +725,6 @@ CONFIG_TMPFS=y | |||
861 | # CONFIG_TMPFS_POSIX_ACL is not set | 725 | # CONFIG_TMPFS_POSIX_ACL is not set |
862 | # CONFIG_HUGETLBFS is not set | 726 | # CONFIG_HUGETLBFS is not set |
863 | # CONFIG_HUGETLB_PAGE is not set | 727 | # CONFIG_HUGETLB_PAGE is not set |
864 | CONFIG_RAMFS=y | ||
865 | # CONFIG_CONFIGFS_FS is not set | 728 | # CONFIG_CONFIGFS_FS is not set |
866 | 729 | ||
867 | # | 730 | # |
@@ -874,26 +737,26 @@ CONFIG_RAMFS=y | |||
874 | # CONFIG_BEFS_FS is not set | 737 | # CONFIG_BEFS_FS is not set |
875 | # CONFIG_BFS_FS is not set | 738 | # CONFIG_BFS_FS is not set |
876 | # CONFIG_EFS_FS is not set | 739 | # CONFIG_EFS_FS is not set |
877 | # CONFIG_JFFS_FS is not set | ||
878 | CONFIG_JFFS2_FS=y | 740 | CONFIG_JFFS2_FS=y |
879 | CONFIG_JFFS2_FS_DEBUG=0 | 741 | CONFIG_JFFS2_FS_DEBUG=0 |
880 | CONFIG_JFFS2_FS_WRITEBUFFER=y | 742 | CONFIG_JFFS2_FS_WRITEBUFFER=y |
743 | # CONFIG_JFFS2_FS_WBUF_VERIFY is not set | ||
881 | # CONFIG_JFFS2_SUMMARY is not set | 744 | # CONFIG_JFFS2_SUMMARY is not set |
882 | # CONFIG_JFFS2_FS_XATTR is not set | 745 | # CONFIG_JFFS2_FS_XATTR is not set |
883 | # CONFIG_JFFS2_COMPRESSION_OPTIONS is not set | 746 | # CONFIG_JFFS2_COMPRESSION_OPTIONS is not set |
884 | CONFIG_JFFS2_ZLIB=y | 747 | CONFIG_JFFS2_ZLIB=y |
748 | # CONFIG_JFFS2_LZO is not set | ||
885 | CONFIG_JFFS2_RTIME=y | 749 | CONFIG_JFFS2_RTIME=y |
886 | # CONFIG_JFFS2_RUBIN is not set | 750 | # CONFIG_JFFS2_RUBIN is not set |
887 | # CONFIG_CRAMFS is not set | 751 | # CONFIG_CRAMFS is not set |
888 | # CONFIG_VXFS_FS is not set | 752 | # CONFIG_VXFS_FS is not set |
753 | # CONFIG_MINIX_FS is not set | ||
889 | # CONFIG_HPFS_FS is not set | 754 | # CONFIG_HPFS_FS is not set |
890 | # CONFIG_QNX4FS_FS is not set | 755 | # CONFIG_QNX4FS_FS is not set |
756 | # CONFIG_ROMFS_FS is not set | ||
891 | # CONFIG_SYSV_FS is not set | 757 | # CONFIG_SYSV_FS is not set |
892 | # CONFIG_UFS_FS is not set | 758 | # CONFIG_UFS_FS is not set |
893 | 759 | CONFIG_NETWORK_FILESYSTEMS=y | |
894 | # | ||
895 | # Network File Systems | ||
896 | # | ||
897 | # CONFIG_NFS_FS is not set | 760 | # CONFIG_NFS_FS is not set |
898 | # CONFIG_NFSD is not set | 761 | # CONFIG_NFSD is not set |
899 | # CONFIG_SMB_FS is not set | 762 | # CONFIG_SMB_FS is not set |
@@ -901,55 +764,97 @@ CONFIG_JFFS2_RTIME=y | |||
901 | # CONFIG_NCP_FS is not set | 764 | # CONFIG_NCP_FS is not set |
902 | # CONFIG_CODA_FS is not set | 765 | # CONFIG_CODA_FS is not set |
903 | # CONFIG_AFS_FS is not set | 766 | # CONFIG_AFS_FS is not set |
904 | # CONFIG_9P_FS is not set | ||
905 | 767 | ||
906 | # | 768 | # |
907 | # Partition Types | 769 | # Partition Types |
908 | # | 770 | # |
909 | # CONFIG_PARTITION_ADVANCED is not set | 771 | # CONFIG_PARTITION_ADVANCED is not set |
910 | CONFIG_MSDOS_PARTITION=y | 772 | CONFIG_MSDOS_PARTITION=y |
911 | |||
912 | # | ||
913 | # Native Language Support | ||
914 | # | ||
915 | # CONFIG_NLS is not set | 773 | # CONFIG_NLS is not set |
916 | 774 | # CONFIG_DLM is not set | |
917 | # | ||
918 | # Profiling support | ||
919 | # | ||
920 | # CONFIG_PROFILING is not set | ||
921 | 775 | ||
922 | # | 776 | # |
923 | # Kernel hacking | 777 | # Kernel hacking |
924 | # | 778 | # |
779 | CONFIG_TRACE_IRQFLAGS_SUPPORT=y | ||
925 | # CONFIG_PRINTK_TIME is not set | 780 | # CONFIG_PRINTK_TIME is not set |
781 | CONFIG_ENABLE_WARN_DEPRECATED=y | ||
926 | CONFIG_ENABLE_MUST_CHECK=y | 782 | CONFIG_ENABLE_MUST_CHECK=y |
927 | # CONFIG_MAGIC_SYSRQ is not set | 783 | # CONFIG_MAGIC_SYSRQ is not set |
928 | # CONFIG_UNUSED_SYMBOLS is not set | 784 | # CONFIG_UNUSED_SYMBOLS is not set |
785 | CONFIG_DEBUG_FS=y | ||
786 | # CONFIG_HEADERS_CHECK is not set | ||
929 | # CONFIG_DEBUG_KERNEL is not set | 787 | # CONFIG_DEBUG_KERNEL is not set |
930 | CONFIG_LOG_BUF_SHIFT=14 | ||
931 | # CONFIG_DEBUG_BUGVERBOSE is not set | 788 | # CONFIG_DEBUG_BUGVERBOSE is not set |
932 | # CONFIG_DEBUG_FS is not set | 789 | # CONFIG_SAMPLES is not set |
933 | # CONFIG_SH_STANDARD_BIOS is not set | 790 | # CONFIG_SH_STANDARD_BIOS is not set |
934 | # CONFIG_KGDB is not set | 791 | # CONFIG_EARLY_SCIF_CONSOLE is not set |
792 | # CONFIG_SH_KGDB is not set | ||
935 | 793 | ||
936 | # | 794 | # |
937 | # Security options | 795 | # Security options |
938 | # | 796 | # |
939 | # CONFIG_KEYS is not set | 797 | # CONFIG_KEYS is not set |
940 | # CONFIG_SECURITY is not set | 798 | # CONFIG_SECURITY is not set |
941 | 799 | # CONFIG_SECURITY_FILE_CAPABILITIES is not set | |
942 | # | 800 | CONFIG_CRYPTO=y |
943 | # Cryptographic options | 801 | # CONFIG_CRYPTO_SEQIV is not set |
944 | # | 802 | # CONFIG_CRYPTO_MANAGER is not set |
945 | # CONFIG_CRYPTO is not set | 803 | # CONFIG_CRYPTO_HMAC is not set |
804 | # CONFIG_CRYPTO_XCBC is not set | ||
805 | # CONFIG_CRYPTO_NULL is not set | ||
806 | # CONFIG_CRYPTO_MD4 is not set | ||
807 | # CONFIG_CRYPTO_MD5 is not set | ||
808 | # CONFIG_CRYPTO_SHA1 is not set | ||
809 | # CONFIG_CRYPTO_SHA256 is not set | ||
810 | # CONFIG_CRYPTO_SHA512 is not set | ||
811 | # CONFIG_CRYPTO_WP512 is not set | ||
812 | # CONFIG_CRYPTO_TGR192 is not set | ||
813 | # CONFIG_CRYPTO_GF128MUL is not set | ||
814 | # CONFIG_CRYPTO_ECB is not set | ||
815 | # CONFIG_CRYPTO_CBC is not set | ||
816 | # CONFIG_CRYPTO_PCBC is not set | ||
817 | # CONFIG_CRYPTO_LRW is not set | ||
818 | # CONFIG_CRYPTO_XTS is not set | ||
819 | # CONFIG_CRYPTO_CTR is not set | ||
820 | # CONFIG_CRYPTO_GCM is not set | ||
821 | # CONFIG_CRYPTO_CCM is not set | ||
822 | # CONFIG_CRYPTO_CRYPTD is not set | ||
823 | # CONFIG_CRYPTO_DES is not set | ||
824 | # CONFIG_CRYPTO_FCRYPT is not set | ||
825 | # CONFIG_CRYPTO_BLOWFISH is not set | ||
826 | # CONFIG_CRYPTO_TWOFISH is not set | ||
827 | # CONFIG_CRYPTO_SERPENT is not set | ||
828 | # CONFIG_CRYPTO_AES is not set | ||
829 | # CONFIG_CRYPTO_CAST5 is not set | ||
830 | # CONFIG_CRYPTO_CAST6 is not set | ||
831 | # CONFIG_CRYPTO_TEA is not set | ||
832 | # CONFIG_CRYPTO_ARC4 is not set | ||
833 | # CONFIG_CRYPTO_KHAZAD is not set | ||
834 | # CONFIG_CRYPTO_ANUBIS is not set | ||
835 | # CONFIG_CRYPTO_SEED is not set | ||
836 | # CONFIG_CRYPTO_SALSA20 is not set | ||
837 | # CONFIG_CRYPTO_DEFLATE is not set | ||
838 | # CONFIG_CRYPTO_MICHAEL_MIC is not set | ||
839 | # CONFIG_CRYPTO_CRC32C is not set | ||
840 | # CONFIG_CRYPTO_CAMELLIA is not set | ||
841 | # CONFIG_CRYPTO_TEST is not set | ||
842 | # CONFIG_CRYPTO_AUTHENC is not set | ||
843 | # CONFIG_CRYPTO_LZO is not set | ||
844 | CONFIG_CRYPTO_HW=y | ||
946 | 845 | ||
947 | # | 846 | # |
948 | # Library routines | 847 | # Library routines |
949 | # | 848 | # |
849 | CONFIG_BITREVERSE=y | ||
950 | # CONFIG_CRC_CCITT is not set | 850 | # CONFIG_CRC_CCITT is not set |
951 | # CONFIG_CRC16 is not set | 851 | # CONFIG_CRC16 is not set |
852 | # CONFIG_CRC_ITU_T is not set | ||
952 | CONFIG_CRC32=y | 853 | CONFIG_CRC32=y |
854 | # CONFIG_CRC7 is not set | ||
953 | # CONFIG_LIBCRC32C is not set | 855 | # CONFIG_LIBCRC32C is not set |
954 | CONFIG_ZLIB_INFLATE=y | 856 | CONFIG_ZLIB_INFLATE=y |
955 | CONFIG_ZLIB_DEFLATE=y | 857 | CONFIG_ZLIB_DEFLATE=y |
858 | CONFIG_HAS_IOMEM=y | ||
859 | CONFIG_HAS_IOPORT=y | ||
860 | CONFIG_HAS_DMA=y | ||
diff --git a/arch/sh/kernel/cpu/init.c b/arch/sh/kernel/cpu/init.c index 80a31329ea..75fb03d356 100644 --- a/arch/sh/kernel/cpu/init.c +++ b/arch/sh/kernel/cpu/init.c | |||
@@ -233,7 +233,7 @@ static void __init dsp_init(void) | |||
233 | * and cache configuration in detect_cpu_and_cache_system(). | 233 | * and cache configuration in detect_cpu_and_cache_system(). |
234 | */ | 234 | */ |
235 | 235 | ||
236 | asmlinkage void __cpuinit sh_cpu_init(void) | 236 | asmlinkage void __init sh_cpu_init(void) |
237 | { | 237 | { |
238 | current_thread_info()->cpu = hard_smp_processor_id(); | 238 | current_thread_info()->cpu = hard_smp_processor_id(); |
239 | 239 | ||
diff --git a/arch/sh/kernel/cpu/sh4/sq.c b/arch/sh/kernel/cpu/sh4/sq.c index 8250e017bd..9561b02ade 100644 --- a/arch/sh/kernel/cpu/sh4/sq.c +++ b/arch/sh/kernel/cpu/sh4/sq.c | |||
@@ -216,7 +216,7 @@ void sq_unmap(unsigned long vaddr) | |||
216 | 216 | ||
217 | if (unlikely(!map)) { | 217 | if (unlikely(!map)) { |
218 | printk("%s: bad store queue address 0x%08lx\n", | 218 | printk("%s: bad store queue address 0x%08lx\n", |
219 | __FUNCTION__, vaddr); | 219 | __func__, vaddr); |
220 | return; | 220 | return; |
221 | } | 221 | } |
222 | 222 | ||
@@ -233,7 +233,7 @@ void sq_unmap(unsigned long vaddr) | |||
233 | vma = remove_vm_area((void *)(map->sq_addr & PAGE_MASK)); | 233 | vma = remove_vm_area((void *)(map->sq_addr & PAGE_MASK)); |
234 | if (!vma) { | 234 | if (!vma) { |
235 | printk(KERN_ERR "%s: bad address 0x%08lx\n", | 235 | printk(KERN_ERR "%s: bad address 0x%08lx\n", |
236 | __FUNCTION__, map->sq_addr); | 236 | __func__, map->sq_addr); |
237 | return; | 237 | return; |
238 | } | 238 | } |
239 | } | 239 | } |
diff --git a/arch/sh/kernel/cpu/sh5/unwind.c b/arch/sh/kernel/cpu/sh5/unwind.c index 119c20afd4..b205b25eaf 100644 --- a/arch/sh/kernel/cpu/sh5/unwind.c +++ b/arch/sh/kernel/cpu/sh5/unwind.c | |||
@@ -149,7 +149,7 @@ static int lookup_prev_stack_frame(unsigned long fp, unsigned long pc, | |||
149 | if (dest >= 63) { | 149 | if (dest >= 63) { |
150 | printk(KERN_NOTICE "%s: Invalid dest reg %d " | 150 | printk(KERN_NOTICE "%s: Invalid dest reg %d " |
151 | "specified in movi handler. Failed " | 151 | "specified in movi handler. Failed " |
152 | "opcode was 0x%lx: ", __FUNCTION__, | 152 | "opcode was 0x%lx: ", __func__, |
153 | dest, op); | 153 | dest, op); |
154 | 154 | ||
155 | continue; | 155 | continue; |
diff --git a/arch/sh/kernel/io_trapped.c b/arch/sh/kernel/io_trapped.c index 86a665d922..39cd7f3aec 100644 --- a/arch/sh/kernel/io_trapped.c +++ b/arch/sh/kernel/io_trapped.c | |||
@@ -32,7 +32,7 @@ EXPORT_SYMBOL_GPL(trapped_mem); | |||
32 | #endif | 32 | #endif |
33 | static DEFINE_SPINLOCK(trapped_lock); | 33 | static DEFINE_SPINLOCK(trapped_lock); |
34 | 34 | ||
35 | int __init register_trapped_io(struct trapped_io *tiop) | 35 | int register_trapped_io(struct trapped_io *tiop) |
36 | { | 36 | { |
37 | struct resource *res; | 37 | struct resource *res; |
38 | unsigned long len = 0, flags = 0; | 38 | unsigned long len = 0, flags = 0; |
diff --git a/arch/sh/kernel/sh_ksyms_32.c b/arch/sh/kernel/sh_ksyms_32.c index e1a6de9088..d80de39032 100644 --- a/arch/sh/kernel/sh_ksyms_32.c +++ b/arch/sh/kernel/sh_ksyms_32.c | |||
@@ -111,9 +111,9 @@ DECLARE_EXPORT(__movmem_i4_even); | |||
111 | DECLARE_EXPORT(__movmem_i4_odd); | 111 | DECLARE_EXPORT(__movmem_i4_odd); |
112 | DECLARE_EXPORT(__movmemSI12_i4); | 112 | DECLARE_EXPORT(__movmemSI12_i4); |
113 | 113 | ||
114 | #if (__GNUC_MINOR__ == 2 || defined(__GNUC_STM_RELEASE__)) | 114 | #if (__GNUC_MINOR__ >= 2 || defined(__GNUC_STM_RELEASE__)) |
115 | /* | 115 | /* |
116 | * GCC 4.2 emits these for division, as do GCC 4.1.x versions of the ST | 116 | * GCC >= 4.2 emits these for division, as do GCC 4.1.x versions of the ST |
117 | * compiler which include backported patches. | 117 | * compiler which include backported patches. |
118 | */ | 118 | */ |
119 | DECLARE_EXPORT(__sdivsi3_i4i); | 119 | DECLARE_EXPORT(__sdivsi3_i4i); |
@@ -146,5 +146,6 @@ EXPORT_SYMBOL(csum_partial_copy_generic); | |||
146 | EXPORT_SYMBOL(csum_ipv6_magic); | 146 | EXPORT_SYMBOL(csum_ipv6_magic); |
147 | #endif | 147 | #endif |
148 | EXPORT_SYMBOL(clear_page); | 148 | EXPORT_SYMBOL(clear_page); |
149 | EXPORT_SYMBOL(copy_page); | ||
149 | EXPORT_SYMBOL(__clear_user); | 150 | EXPORT_SYMBOL(__clear_user); |
150 | EXPORT_SYMBOL(_ebss); | 151 | EXPORT_SYMBOL(_ebss); |
diff --git a/arch/sh/kernel/sh_ksyms_64.c b/arch/sh/kernel/sh_ksyms_64.c index 8004c38d3d..dd38a683de 100644 --- a/arch/sh/kernel/sh_ksyms_64.c +++ b/arch/sh/kernel/sh_ksyms_64.c | |||
@@ -42,6 +42,7 @@ EXPORT_SYMBOL(__down_trylock); | |||
42 | EXPORT_SYMBOL(__up); | 42 | EXPORT_SYMBOL(__up); |
43 | EXPORT_SYMBOL(__put_user_asm_l); | 43 | EXPORT_SYMBOL(__put_user_asm_l); |
44 | EXPORT_SYMBOL(__get_user_asm_l); | 44 | EXPORT_SYMBOL(__get_user_asm_l); |
45 | EXPORT_SYMBOL(copy_page); | ||
45 | EXPORT_SYMBOL(__copy_user); | 46 | EXPORT_SYMBOL(__copy_user); |
46 | EXPORT_SYMBOL(memcpy); | 47 | EXPORT_SYMBOL(memcpy); |
47 | EXPORT_SYMBOL(__udelay); | 48 | EXPORT_SYMBOL(__udelay); |
diff --git a/arch/sh/kernel/timers/timer-cmt.c b/arch/sh/kernel/timers/timer-cmt.c index 71312324b5..d20c8c3758 100644 --- a/arch/sh/kernel/timers/timer-cmt.c +++ b/arch/sh/kernel/timers/timer-cmt.c | |||
@@ -77,7 +77,7 @@ static unsigned long cmt_timer_get_offset(void) | |||
77 | count -= LATCH; | 77 | count -= LATCH; |
78 | } else { | 78 | } else { |
79 | printk("%s (): hardware timer problem?\n", | 79 | printk("%s (): hardware timer problem?\n", |
80 | __FUNCTION__); | 80 | __func__); |
81 | } | 81 | } |
82 | } | 82 | } |
83 | } else | 83 | } else |
diff --git a/arch/sh/kernel/timers/timer-mtu2.c b/arch/sh/kernel/timers/timer-mtu2.c index ade9d6eb29..fe453c01f9 100644 --- a/arch/sh/kernel/timers/timer-mtu2.c +++ b/arch/sh/kernel/timers/timer-mtu2.c | |||
@@ -76,7 +76,7 @@ static unsigned long mtu2_timer_get_offset(void) | |||
76 | count -= LATCH; | 76 | count -= LATCH; |
77 | } else { | 77 | } else { |
78 | printk("%s (): hardware timer problem?\n", | 78 | printk("%s (): hardware timer problem?\n", |
79 | __FUNCTION__); | 79 | __func__); |
80 | } | 80 | } |
81 | } | 81 | } |
82 | } else | 82 | } else |
diff --git a/arch/sh/kernel/topology.c b/arch/sh/kernel/topology.c index 9b5844a1bd..0838942b70 100644 --- a/arch/sh/kernel/topology.c +++ b/arch/sh/kernel/topology.c | |||
@@ -29,7 +29,7 @@ static int __init topology_init(void) | |||
29 | ret = register_cpu(&per_cpu(cpu_devices, i), i); | 29 | ret = register_cpu(&per_cpu(cpu_devices, i), i); |
30 | if (unlikely(ret)) | 30 | if (unlikely(ret)) |
31 | printk(KERN_WARNING "%s: register_cpu %d failed (%d)\n", | 31 | printk(KERN_WARNING "%s: register_cpu %d failed (%d)\n", |
32 | __FUNCTION__, i, ret); | 32 | __func__, i, ret); |
33 | } | 33 | } |
34 | 34 | ||
35 | #if defined(CONFIG_NUMA) && !defined(CONFIG_SMP) | 35 | #if defined(CONFIG_NUMA) && !defined(CONFIG_SMP) |
diff --git a/arch/sh/kernel/traps_64.c b/arch/sh/kernel/traps_64.c index a55ac81d79..1b58a74990 100644 --- a/arch/sh/kernel/traps_64.c +++ b/arch/sh/kernel/traps_64.c | |||
@@ -238,7 +238,7 @@ DO_ERROR(12, SIGILL, "reserved instruction", reserved_inst, current) | |||
238 | /* Called with interrupts disabled */ | 238 | /* Called with interrupts disabled */ |
239 | asmlinkage void do_exception_error(unsigned long ex, struct pt_regs *regs) | 239 | asmlinkage void do_exception_error(unsigned long ex, struct pt_regs *regs) |
240 | { | 240 | { |
241 | show_excp_regs(__FUNCTION__, -1, -1, regs); | 241 | show_excp_regs(__func__, -1, -1, regs); |
242 | die_if_kernel("exception", regs, ex); | 242 | die_if_kernel("exception", regs, ex); |
243 | } | 243 | } |
244 | 244 | ||
diff --git a/arch/sh/lib64/c-checksum.c b/arch/sh/lib64/c-checksum.c index 5dfbd8b5e5..5c284e0cff 100644 --- a/arch/sh/lib64/c-checksum.c +++ b/arch/sh/lib64/c-checksum.c | |||
@@ -207,7 +207,7 @@ __wsum csum_tcpudp_nofold(__be32 saddr, __be32 daddr, | |||
207 | result = (result & 0xffffffff) + (result >> 32); | 207 | result = (result & 0xffffffff) + (result >> 32); |
208 | 208 | ||
209 | pr_debug("%s saddr %x daddr %x len %x proto %x sum %x result %08Lx\n", | 209 | pr_debug("%s saddr %x daddr %x len %x proto %x sum %x result %08Lx\n", |
210 | __FUNCTION__, saddr, daddr, len, proto, sum, result); | 210 | __func__, saddr, daddr, len, proto, sum, result); |
211 | 211 | ||
212 | return (__wsum)result; | 212 | return (__wsum)result; |
213 | } | 213 | } |
diff --git a/arch/sh/lib64/udelay.c b/arch/sh/lib64/udelay.c index 23c7d17fb9..d76bd80119 100644 --- a/arch/sh/lib64/udelay.c +++ b/arch/sh/lib64/udelay.c | |||
@@ -21,7 +21,7 @@ | |||
21 | * a 1GHz box, that's about 2 seconds. | 21 | * a 1GHz box, that's about 2 seconds. |
22 | */ | 22 | */ |
23 | 23 | ||
24 | void __delay(int loops) | 24 | void __delay(unsigned long loops) |
25 | { | 25 | { |
26 | long long dummy; | 26 | long long dummy; |
27 | __asm__ __volatile__("gettr tr0, %1\n\t" | 27 | __asm__ __volatile__("gettr tr0, %1\n\t" |
@@ -33,24 +33,17 @@ void __delay(int loops) | |||
33 | :"0"(loops)); | 33 | :"0"(loops)); |
34 | } | 34 | } |
35 | 35 | ||
36 | void __udelay(unsigned long long usecs, unsigned long lpj) | 36 | inline void __const_udelay(unsigned long xloops) |
37 | { | 37 | { |
38 | usecs *= (((unsigned long long) HZ << 32) / 1000000) * lpj; | 38 | __delay(xloops * (HZ * cpu_data[raw_smp_processor_id()].loops_per_jiffy)); |
39 | __delay((long long) usecs >> 32); | ||
40 | } | 39 | } |
41 | 40 | ||
42 | void __ndelay(unsigned long long nsecs, unsigned long lpj) | 41 | void __udelay(unsigned long usecs) |
43 | { | 42 | { |
44 | nsecs *= (((unsigned long long) HZ << 32) / 1000000000) * lpj; | 43 | __const_udelay(usecs * 0x000010c6); /* 2**32 / 1000000 */ |
45 | __delay((long long) nsecs >> 32); | ||
46 | } | 44 | } |
47 | 45 | ||
48 | void udelay(unsigned long usecs) | 46 | void __ndelay(unsigned long nsecs) |
49 | { | 47 | { |
50 | __udelay(usecs, cpu_data[raw_smp_processor_id()].loops_per_jiffy); | 48 | __const_udelay(nsecs * 0x00000005); |
51 | } | ||
52 | |||
53 | void ndelay(unsigned long nsecs) | ||
54 | { | ||
55 | __ndelay(nsecs, cpu_data[raw_smp_processor_id()].loops_per_jiffy); | ||
56 | } | 49 | } |
diff --git a/arch/sh/mm/Kconfig b/arch/sh/mm/Kconfig index f549b8cd25..5fd218430b 100644 --- a/arch/sh/mm/Kconfig +++ b/arch/sh/mm/Kconfig | |||
@@ -59,7 +59,7 @@ config 32BIT | |||
59 | 59 | ||
60 | config PMB | 60 | config PMB |
61 | bool "Support 32-bit physical addressing through PMB" | 61 | bool "Support 32-bit physical addressing through PMB" |
62 | depends on MMU && (CPU_SUBTYPE_SH7780 || CPU_SUBTYPE_SH7785) | 62 | depends on MMU && EXPERIMENTAL && (CPU_SUBTYPE_SH7780 || CPU_SUBTYPE_SH7785) |
63 | select 32BIT | 63 | select 32BIT |
64 | default y | 64 | default y |
65 | help | 65 | help |
diff --git a/arch/sh/mm/init.c b/arch/sh/mm/init.c index e2ed6dd252..53dde06073 100644 --- a/arch/sh/mm/init.c +++ b/arch/sh/mm/init.c | |||
@@ -328,7 +328,7 @@ int arch_add_memory(int nid, u64 start, u64 size) | |||
328 | /* We only have ZONE_NORMAL, so this is easy.. */ | 328 | /* We only have ZONE_NORMAL, so this is easy.. */ |
329 | ret = __add_pages(pgdat->node_zones + ZONE_NORMAL, start_pfn, nr_pages); | 329 | ret = __add_pages(pgdat->node_zones + ZONE_NORMAL, start_pfn, nr_pages); |
330 | if (unlikely(ret)) | 330 | if (unlikely(ret)) |
331 | printk("%s: Failed, __add_pages() == %d\n", __FUNCTION__, ret); | 331 | printk("%s: Failed, __add_pages() == %d\n", __func__, ret); |
332 | 332 | ||
333 | return ret; | 333 | return ret; |
334 | } | 334 | } |
diff --git a/arch/sh/mm/ioremap_32.c b/arch/sh/mm/ioremap_32.c index 0c7b7e33ab..882a32ebc6 100644 --- a/arch/sh/mm/ioremap_32.c +++ b/arch/sh/mm/ioremap_32.c | |||
@@ -141,7 +141,7 @@ void __iounmap(void __iomem *addr) | |||
141 | 141 | ||
142 | p = remove_vm_area((void *)(vaddr & PAGE_MASK)); | 142 | p = remove_vm_area((void *)(vaddr & PAGE_MASK)); |
143 | if (!p) { | 143 | if (!p) { |
144 | printk(KERN_ERR "%s: bad address %p\n", __FUNCTION__, addr); | 144 | printk(KERN_ERR "%s: bad address %p\n", __func__, addr); |
145 | return; | 145 | return; |
146 | } | 146 | } |
147 | 147 | ||
diff --git a/arch/sh/mm/ioremap_64.c b/arch/sh/mm/ioremap_64.c index e27d165192..cea224c3e4 100644 --- a/arch/sh/mm/ioremap_64.c +++ b/arch/sh/mm/ioremap_64.c | |||
@@ -178,7 +178,7 @@ static unsigned long shmedia_alloc_io(unsigned long phys, unsigned long size, | |||
178 | } else { | 178 | } else { |
179 | if (!printed_full) { | 179 | if (!printed_full) { |
180 | printk("%s: done with statics, switching to kmalloc\n", | 180 | printk("%s: done with statics, switching to kmalloc\n", |
181 | __FUNCTION__); | 181 | __func__); |
182 | printed_full = 1; | 182 | printed_full = 1; |
183 | } | 183 | } |
184 | tlen = strlen(name); | 184 | tlen = strlen(name); |
@@ -352,7 +352,7 @@ void onchip_unmap(unsigned long vaddr) | |||
352 | res = shmedia_find_resource(&shmedia_iomap, vaddr); | 352 | res = shmedia_find_resource(&shmedia_iomap, vaddr); |
353 | if (!res) { | 353 | if (!res) { |
354 | printk(KERN_ERR "%s: Failed to free 0x%08lx\n", | 354 | printk(KERN_ERR "%s: Failed to free 0x%08lx\n", |
355 | __FUNCTION__, vaddr); | 355 | __func__, vaddr); |
356 | return; | 356 | return; |
357 | } | 357 | } |
358 | 358 | ||
diff --git a/arch/sh/mm/pg-sh7705.c b/arch/sh/mm/pg-sh7705.c index a4b015f95a..7f885b7f8a 100644 --- a/arch/sh/mm/pg-sh7705.c +++ b/arch/sh/mm/pg-sh7705.c | |||
@@ -14,6 +14,7 @@ | |||
14 | #include <linux/mman.h> | 14 | #include <linux/mman.h> |
15 | #include <linux/mm.h> | 15 | #include <linux/mm.h> |
16 | #include <linux/threads.h> | 16 | #include <linux/threads.h> |
17 | #include <linux/fs.h> | ||
17 | #include <asm/addrspace.h> | 18 | #include <asm/addrspace.h> |
18 | #include <asm/page.h> | 19 | #include <asm/page.h> |
19 | #include <asm/pgtable.h> | 20 | #include <asm/pgtable.h> |
diff --git a/arch/sh/mm/tlbflush_64.c b/arch/sh/mm/tlbflush_64.c index 2a98c9ec88..7876997ba1 100644 --- a/arch/sh/mm/tlbflush_64.c +++ b/arch/sh/mm/tlbflush_64.c | |||
@@ -131,7 +131,7 @@ asmlinkage void do_page_fault(struct pt_regs *regs, unsigned long writeaccess, | |||
131 | #ifdef DEBUG_FAULT | 131 | #ifdef DEBUG_FAULT |
132 | print_task(tsk); | 132 | print_task(tsk); |
133 | printk("%s:%d fault, address is 0x%08x PC %016Lx textaccess %d writeaccess %d\n", | 133 | printk("%s:%d fault, address is 0x%08x PC %016Lx textaccess %d writeaccess %d\n", |
134 | __FUNCTION__,__LINE__, | 134 | __func__, __LINE__, |
135 | address,regs->pc,textaccess,writeaccess); | 135 | address,regs->pc,textaccess,writeaccess); |
136 | show_regs(regs); | 136 | show_regs(regs); |
137 | #endif | 137 | #endif |
@@ -145,7 +145,7 @@ asmlinkage void do_page_fault(struct pt_regs *regs, unsigned long writeaccess, | |||
145 | #ifdef DEBUG_FAULT | 145 | #ifdef DEBUG_FAULT |
146 | print_task(tsk); | 146 | print_task(tsk); |
147 | printk("%s:%d fault, address is 0x%08x PC %016Lx textaccess %d writeaccess %d\n", | 147 | printk("%s:%d fault, address is 0x%08x PC %016Lx textaccess %d writeaccess %d\n", |
148 | __FUNCTION__,__LINE__, | 148 | __func__, __LINE__, |
149 | address,regs->pc,textaccess,writeaccess); | 149 | address,regs->pc,textaccess,writeaccess); |
150 | show_regs(regs); | 150 | show_regs(regs); |
151 | 151 | ||
@@ -157,7 +157,7 @@ asmlinkage void do_page_fault(struct pt_regs *regs, unsigned long writeaccess, | |||
157 | #ifdef DEBUG_FAULT | 157 | #ifdef DEBUG_FAULT |
158 | print_task(tsk); | 158 | print_task(tsk); |
159 | printk("%s:%d fault, address is 0x%08x PC %016Lx textaccess %d writeaccess %d\n", | 159 | printk("%s:%d fault, address is 0x%08x PC %016Lx textaccess %d writeaccess %d\n", |
160 | __FUNCTION__,__LINE__, | 160 | __func__, __LINE__, |
161 | address,regs->pc,textaccess,writeaccess); | 161 | address,regs->pc,textaccess,writeaccess); |
162 | show_regs(regs); | 162 | show_regs(regs); |
163 | #endif | 163 | #endif |
diff --git a/arch/sh/tools/mach-types b/arch/sh/tools/mach-types index 67997af25c..d63b93da95 100644 --- a/arch/sh/tools/mach-types +++ b/arch/sh/tools/mach-types | |||
@@ -38,7 +38,6 @@ R7780MP SH_R7780MP | |||
38 | R7785RP SH_R7785RP | 38 | R7785RP SH_R7785RP |
39 | TITAN SH_TITAN | 39 | TITAN SH_TITAN |
40 | SHMIN SH_SHMIN | 40 | SHMIN SH_SHMIN |
41 | 7710VOIPGW SH_7710VOIPGW | ||
42 | LBOXRE2 SH_LBOX_RE2 | 41 | LBOXRE2 SH_LBOX_RE2 |
43 | X3PROTO SH_X3PROTO | 42 | X3PROTO SH_X3PROTO |
44 | MAGICPANELR2 SH_MAGIC_PANEL_R2 | 43 | MAGICPANELR2 SH_MAGIC_PANEL_R2 |
diff --git a/arch/x86/boot/vesa.h b/arch/x86/boot/vesa.h index ff5b73cd40..468e444622 100644 --- a/arch/x86/boot/vesa.h +++ b/arch/x86/boot/vesa.h | |||
@@ -26,17 +26,10 @@ struct vesa_general_info { | |||
26 | far_ptr video_mode_ptr; /* 14 */ | 26 | far_ptr video_mode_ptr; /* 14 */ |
27 | u16 total_memory; /* 18 */ | 27 | u16 total_memory; /* 18 */ |
28 | 28 | ||
29 | u16 oem_software_rev; /* 20 */ | 29 | u8 reserved[236]; /* 20 */ |
30 | far_ptr oem_vendor_name_ptr; /* 22 */ | ||
31 | far_ptr oem_product_name_ptr; /* 26 */ | ||
32 | far_ptr oem_product_rev_ptr; /* 30 */ | ||
33 | |||
34 | u8 reserved[222]; /* 34 */ | ||
35 | u8 oem_data[256]; /* 256 */ | ||
36 | } __attribute__ ((packed)); | 30 | } __attribute__ ((packed)); |
37 | 31 | ||
38 | #define VESA_MAGIC ('V' + ('E' << 8) + ('S' << 16) + ('A' << 24)) | 32 | #define VESA_MAGIC ('V' + ('E' << 8) + ('S' << 16) + ('A' << 24)) |
39 | #define VBE2_MAGIC ('V' + ('B' << 8) + ('E' << 16) + ('2' << 24)) | ||
40 | 33 | ||
41 | struct vesa_mode_info { | 34 | struct vesa_mode_info { |
42 | u16 mode_attr; /* 0 */ | 35 | u16 mode_attr; /* 0 */ |
diff --git a/arch/x86/boot/video-vesa.c b/arch/x86/boot/video-vesa.c index 662dd2f130..419b5c2733 100644 --- a/arch/x86/boot/video-vesa.c +++ b/arch/x86/boot/video-vesa.c | |||
@@ -37,8 +37,6 @@ static int vesa_probe(void) | |||
37 | 37 | ||
38 | video_vesa.modes = GET_HEAP(struct mode_info, 0); | 38 | video_vesa.modes = GET_HEAP(struct mode_info, 0); |
39 | 39 | ||
40 | vginfo.signature = VBE2_MAGIC; | ||
41 | |||
42 | ax = 0x4f00; | 40 | ax = 0x4f00; |
43 | di = (size_t)&vginfo; | 41 | di = (size_t)&vginfo; |
44 | asm(INT10 | 42 | asm(INT10 |
diff --git a/arch/x86/ia32/ia32_signal.c b/arch/x86/ia32/ia32_signal.c index 1c0503bdfb..5e7771a3ba 100644 --- a/arch/x86/ia32/ia32_signal.c +++ b/arch/x86/ia32/ia32_signal.c | |||
@@ -500,7 +500,7 @@ int ia32_setup_frame(int sig, struct k_sigaction *ka, | |||
500 | regs->ss = __USER32_DS; | 500 | regs->ss = __USER32_DS; |
501 | 501 | ||
502 | set_fs(USER_DS); | 502 | set_fs(USER_DS); |
503 | regs->flags &= ~X86_EFLAGS_TF; | 503 | regs->flags &= ~(X86_EFLAGS_TF | X86_EFLAGS_DF); |
504 | if (test_thread_flag(TIF_SINGLESTEP)) | 504 | if (test_thread_flag(TIF_SINGLESTEP)) |
505 | ptrace_notify(SIGTRAP); | 505 | ptrace_notify(SIGTRAP); |
506 | 506 | ||
@@ -600,7 +600,7 @@ int ia32_setup_rt_frame(int sig, struct k_sigaction *ka, siginfo_t *info, | |||
600 | regs->ss = __USER32_DS; | 600 | regs->ss = __USER32_DS; |
601 | 601 | ||
602 | set_fs(USER_DS); | 602 | set_fs(USER_DS); |
603 | regs->flags &= ~X86_EFLAGS_TF; | 603 | regs->flags &= ~(X86_EFLAGS_TF | X86_EFLAGS_DF); |
604 | if (test_thread_flag(TIF_SINGLESTEP)) | 604 | if (test_thread_flag(TIF_SINGLESTEP)) |
605 | ptrace_notify(SIGTRAP); | 605 | ptrace_notify(SIGTRAP); |
606 | 606 | ||
diff --git a/arch/x86/kernel/i387.c b/arch/x86/kernel/i387.c index 60fe801575..d2e39e69aa 100644 --- a/arch/x86/kernel/i387.c +++ b/arch/x86/kernel/i387.c | |||
@@ -261,7 +261,7 @@ static void convert_from_fxsr(struct user_i387_ia32_struct *env, | |||
261 | } | 261 | } |
262 | #else | 262 | #else |
263 | env->fip = fxsave->fip; | 263 | env->fip = fxsave->fip; |
264 | env->fcs = fxsave->fcs; | 264 | env->fcs = (u16) fxsave->fcs | ((u32) fxsave->fop << 16); |
265 | env->foo = fxsave->foo; | 265 | env->foo = fxsave->foo; |
266 | env->fos = fxsave->fos; | 266 | env->fos = fxsave->fos; |
267 | #endif | 267 | #endif |
diff --git a/arch/x86/kernel/ptrace.c b/arch/x86/kernel/ptrace.c index f41fdc98ef..8f64abe699 100644 --- a/arch/x86/kernel/ptrace.c +++ b/arch/x86/kernel/ptrace.c | |||
@@ -323,6 +323,16 @@ static int putreg(struct task_struct *child, | |||
323 | return set_flags(child, value); | 323 | return set_flags(child, value); |
324 | 324 | ||
325 | #ifdef CONFIG_X86_64 | 325 | #ifdef CONFIG_X86_64 |
326 | /* | ||
327 | * Orig_ax is really just a flag with small positive and | ||
328 | * negative values, so make sure to always sign-extend it | ||
329 | * from 32 bits so that it works correctly regardless of | ||
330 | * whether we come from a 32-bit environment or not. | ||
331 | */ | ||
332 | case offsetof(struct user_regs_struct, orig_ax): | ||
333 | value = (long) (s32) value; | ||
334 | break; | ||
335 | |||
326 | case offsetof(struct user_regs_struct,fs_base): | 336 | case offsetof(struct user_regs_struct,fs_base): |
327 | if (value >= TASK_SIZE_OF(child)) | 337 | if (value >= TASK_SIZE_OF(child)) |
328 | return -EIO; | 338 | return -EIO; |
diff --git a/arch/x86/kernel/reboot.c b/arch/x86/kernel/reboot.c index 7fd6ac43e4..55ceb8cdef 100644 --- a/arch/x86/kernel/reboot.c +++ b/arch/x86/kernel/reboot.c | |||
@@ -326,6 +326,10 @@ static inline void kb_wait(void) | |||
326 | } | 326 | } |
327 | } | 327 | } |
328 | 328 | ||
329 | void __attribute__((weak)) mach_reboot_fixups(void) | ||
330 | { | ||
331 | } | ||
332 | |||
329 | static void native_machine_emergency_restart(void) | 333 | static void native_machine_emergency_restart(void) |
330 | { | 334 | { |
331 | int i; | 335 | int i; |
@@ -337,6 +341,8 @@ static void native_machine_emergency_restart(void) | |||
337 | /* Could also try the reset bit in the Hammer NB */ | 341 | /* Could also try the reset bit in the Hammer NB */ |
338 | switch (reboot_type) { | 342 | switch (reboot_type) { |
339 | case BOOT_KBD: | 343 | case BOOT_KBD: |
344 | mach_reboot_fixups(); /* for board specific fixups */ | ||
345 | |||
340 | for (i = 0; i < 10; i++) { | 346 | for (i = 0; i < 10; i++) { |
341 | kb_wait(); | 347 | kb_wait(); |
342 | udelay(50); | 348 | udelay(50); |
diff --git a/arch/x86/kernel/signal_32.c b/arch/x86/kernel/signal_32.c index caee1f002f..0157a6f0f4 100644 --- a/arch/x86/kernel/signal_32.c +++ b/arch/x86/kernel/signal_32.c | |||
@@ -407,7 +407,7 @@ static int setup_frame(int sig, struct k_sigaction *ka, | |||
407 | * The tracer may want to single-step inside the | 407 | * The tracer may want to single-step inside the |
408 | * handler too. | 408 | * handler too. |
409 | */ | 409 | */ |
410 | regs->flags &= ~TF_MASK; | 410 | regs->flags &= ~(TF_MASK | X86_EFLAGS_DF); |
411 | if (test_thread_flag(TIF_SINGLESTEP)) | 411 | if (test_thread_flag(TIF_SINGLESTEP)) |
412 | ptrace_notify(SIGTRAP); | 412 | ptrace_notify(SIGTRAP); |
413 | 413 | ||
@@ -500,7 +500,7 @@ static int setup_rt_frame(int sig, struct k_sigaction *ka, siginfo_t *info, | |||
500 | * The tracer may want to single-step inside the | 500 | * The tracer may want to single-step inside the |
501 | * handler too. | 501 | * handler too. |
502 | */ | 502 | */ |
503 | regs->flags &= ~TF_MASK; | 503 | regs->flags &= ~(TF_MASK | X86_EFLAGS_DF); |
504 | if (test_thread_flag(TIF_SINGLESTEP)) | 504 | if (test_thread_flag(TIF_SINGLESTEP)) |
505 | ptrace_notify(SIGTRAP); | 505 | ptrace_notify(SIGTRAP); |
506 | 506 | ||
diff --git a/arch/x86/kernel/signal_64.c b/arch/x86/kernel/signal_64.c index 7347bb14e3..56b72fb67f 100644 --- a/arch/x86/kernel/signal_64.c +++ b/arch/x86/kernel/signal_64.c | |||
@@ -295,7 +295,7 @@ static int setup_rt_frame(int sig, struct k_sigaction *ka, siginfo_t *info, | |||
295 | see include/asm-x86_64/uaccess.h for details. */ | 295 | see include/asm-x86_64/uaccess.h for details. */ |
296 | set_fs(USER_DS); | 296 | set_fs(USER_DS); |
297 | 297 | ||
298 | regs->flags &= ~X86_EFLAGS_TF; | 298 | regs->flags &= ~(X86_EFLAGS_TF | X86_EFLAGS_DF); |
299 | if (test_thread_flag(TIF_SINGLESTEP)) | 299 | if (test_thread_flag(TIF_SINGLESTEP)) |
300 | ptrace_notify(SIGTRAP); | 300 | ptrace_notify(SIGTRAP); |
301 | #ifdef DEBUG_SIG | 301 | #ifdef DEBUG_SIG |
diff --git a/arch/x86/kernel/step.c b/arch/x86/kernel/step.c index 2ef1a5f8d6..9d406cdc84 100644 --- a/arch/x86/kernel/step.c +++ b/arch/x86/kernel/step.c | |||
@@ -166,7 +166,7 @@ static void enable_step(struct task_struct *child, bool block) | |||
166 | child->thread.debugctlmsr | DEBUGCTLMSR_BTF); | 166 | child->thread.debugctlmsr | DEBUGCTLMSR_BTF); |
167 | } else { | 167 | } else { |
168 | write_debugctlmsr(child, | 168 | write_debugctlmsr(child, |
169 | child->thread.debugctlmsr & ~TIF_DEBUGCTLMSR); | 169 | child->thread.debugctlmsr & ~DEBUGCTLMSR_BTF); |
170 | 170 | ||
171 | if (!child->thread.debugctlmsr) | 171 | if (!child->thread.debugctlmsr) |
172 | clear_tsk_thread_flag(child, TIF_DEBUGCTLMSR); | 172 | clear_tsk_thread_flag(child, TIF_DEBUGCTLMSR); |
@@ -189,7 +189,7 @@ void user_disable_single_step(struct task_struct *child) | |||
189 | * Make sure block stepping (BTF) is disabled. | 189 | * Make sure block stepping (BTF) is disabled. |
190 | */ | 190 | */ |
191 | write_debugctlmsr(child, | 191 | write_debugctlmsr(child, |
192 | child->thread.debugctlmsr & ~TIF_DEBUGCTLMSR); | 192 | child->thread.debugctlmsr & ~DEBUGCTLMSR_BTF); |
193 | 193 | ||
194 | if (!child->thread.debugctlmsr) | 194 | if (!child->thread.debugctlmsr) |
195 | clear_tsk_thread_flag(child, TIF_DEBUGCTLMSR); | 195 | clear_tsk_thread_flag(child, TIF_DEBUGCTLMSR); |
diff --git a/crypto/Kconfig b/crypto/Kconfig index 898acc5c19..69f1be6816 100644 --- a/crypto/Kconfig +++ b/crypto/Kconfig | |||
@@ -575,6 +575,7 @@ config CRYPTO_TEST | |||
575 | config CRYPTO_AUTHENC | 575 | config CRYPTO_AUTHENC |
576 | tristate "Authenc support" | 576 | tristate "Authenc support" |
577 | select CRYPTO_AEAD | 577 | select CRYPTO_AEAD |
578 | select CRYPTO_BLKCIPHER | ||
578 | select CRYPTO_MANAGER | 579 | select CRYPTO_MANAGER |
579 | select CRYPTO_HASH | 580 | select CRYPTO_HASH |
580 | help | 581 | help |
diff --git a/crypto/Makefile b/crypto/Makefile index 48c7583799..7cf36253a7 100644 --- a/crypto/Makefile +++ b/crypto/Makefile | |||
@@ -12,9 +12,9 @@ obj-$(CONFIG_CRYPTO_AEAD) += aead.o | |||
12 | 12 | ||
13 | crypto_blkcipher-objs := ablkcipher.o | 13 | crypto_blkcipher-objs := ablkcipher.o |
14 | crypto_blkcipher-objs += blkcipher.o | 14 | crypto_blkcipher-objs += blkcipher.o |
15 | crypto_blkcipher-objs += chainiv.o | ||
16 | crypto_blkcipher-objs += eseqiv.o | ||
15 | obj-$(CONFIG_CRYPTO_BLKCIPHER) += crypto_blkcipher.o | 17 | obj-$(CONFIG_CRYPTO_BLKCIPHER) += crypto_blkcipher.o |
16 | obj-$(CONFIG_CRYPTO_BLKCIPHER) += chainiv.o | ||
17 | obj-$(CONFIG_CRYPTO_BLKCIPHER) += eseqiv.o | ||
18 | obj-$(CONFIG_CRYPTO_SEQIV) += seqiv.o | 18 | obj-$(CONFIG_CRYPTO_SEQIV) += seqiv.o |
19 | 19 | ||
20 | crypto_hash-objs := hash.o | 20 | crypto_hash-objs := hash.o |
diff --git a/crypto/ablkcipher.c b/crypto/ablkcipher.c index 3bcb099b4a..94140b3756 100644 --- a/crypto/ablkcipher.c +++ b/crypto/ablkcipher.c | |||
@@ -341,6 +341,3 @@ err: | |||
341 | return ERR_PTR(err); | 341 | return ERR_PTR(err); |
342 | } | 342 | } |
343 | EXPORT_SYMBOL_GPL(crypto_alloc_ablkcipher); | 343 | EXPORT_SYMBOL_GPL(crypto_alloc_ablkcipher); |
344 | |||
345 | MODULE_LICENSE("GPL"); | ||
346 | MODULE_DESCRIPTION("Asynchronous block chaining cipher type"); | ||
diff --git a/crypto/blkcipher.c b/crypto/blkcipher.c index 4a7e65c4df..185f955fb0 100644 --- a/crypto/blkcipher.c +++ b/crypto/blkcipher.c | |||
@@ -696,5 +696,34 @@ void skcipher_geniv_exit(struct crypto_tfm *tfm) | |||
696 | } | 696 | } |
697 | EXPORT_SYMBOL_GPL(skcipher_geniv_exit); | 697 | EXPORT_SYMBOL_GPL(skcipher_geniv_exit); |
698 | 698 | ||
699 | static int __init blkcipher_module_init(void) | ||
700 | { | ||
701 | int err; | ||
702 | |||
703 | err = chainiv_module_init(); | ||
704 | if (err) | ||
705 | goto out; | ||
706 | |||
707 | err = eseqiv_module_init(); | ||
708 | if (err) | ||
709 | goto eseqiv_err; | ||
710 | |||
711 | out: | ||
712 | return err; | ||
713 | |||
714 | eseqiv_err: | ||
715 | chainiv_module_exit(); | ||
716 | goto out; | ||
717 | } | ||
718 | |||
719 | static void __exit blkcipher_module_exit(void) | ||
720 | { | ||
721 | eseqiv_module_exit(); | ||
722 | chainiv_module_exit(); | ||
723 | } | ||
724 | |||
725 | module_init(blkcipher_module_init); | ||
726 | module_exit(blkcipher_module_exit); | ||
727 | |||
699 | MODULE_LICENSE("GPL"); | 728 | MODULE_LICENSE("GPL"); |
700 | MODULE_DESCRIPTION("Generic block chaining cipher type"); | 729 | MODULE_DESCRIPTION("Generic block chaining cipher type"); |
diff --git a/crypto/chainiv.c b/crypto/chainiv.c index d17fa0454d..6da3f577e4 100644 --- a/crypto/chainiv.c +++ b/crypto/chainiv.c | |||
@@ -314,18 +314,12 @@ static struct crypto_template chainiv_tmpl = { | |||
314 | .module = THIS_MODULE, | 314 | .module = THIS_MODULE, |
315 | }; | 315 | }; |
316 | 316 | ||
317 | static int __init chainiv_module_init(void) | 317 | int __init chainiv_module_init(void) |
318 | { | 318 | { |
319 | return crypto_register_template(&chainiv_tmpl); | 319 | return crypto_register_template(&chainiv_tmpl); |
320 | } | 320 | } |
321 | 321 | ||
322 | static void __exit chainiv_module_exit(void) | 322 | void chainiv_module_exit(void) |
323 | { | 323 | { |
324 | crypto_unregister_template(&chainiv_tmpl); | 324 | crypto_unregister_template(&chainiv_tmpl); |
325 | } | 325 | } |
326 | |||
327 | module_init(chainiv_module_init); | ||
328 | module_exit(chainiv_module_exit); | ||
329 | |||
330 | MODULE_LICENSE("GPL"); | ||
331 | MODULE_DESCRIPTION("Chain IV Generator"); | ||
diff --git a/crypto/digest.c b/crypto/digest.c index 6fd43bddd5..b526cc348b 100644 --- a/crypto/digest.c +++ b/crypto/digest.c | |||
@@ -21,6 +21,8 @@ | |||
21 | #include <linux/module.h> | 21 | #include <linux/module.h> |
22 | #include <linux/scatterlist.h> | 22 | #include <linux/scatterlist.h> |
23 | 23 | ||
24 | #include "internal.h" | ||
25 | |||
24 | static int init(struct hash_desc *desc) | 26 | static int init(struct hash_desc *desc) |
25 | { | 27 | { |
26 | struct crypto_tfm *tfm = crypto_hash_tfm(desc->tfm); | 28 | struct crypto_tfm *tfm = crypto_hash_tfm(desc->tfm); |
diff --git a/crypto/eseqiv.c b/crypto/eseqiv.c index eb90d27ae1..b14f14e314 100644 --- a/crypto/eseqiv.c +++ b/crypto/eseqiv.c | |||
@@ -247,18 +247,12 @@ static struct crypto_template eseqiv_tmpl = { | |||
247 | .module = THIS_MODULE, | 247 | .module = THIS_MODULE, |
248 | }; | 248 | }; |
249 | 249 | ||
250 | static int __init eseqiv_module_init(void) | 250 | int __init eseqiv_module_init(void) |
251 | { | 251 | { |
252 | return crypto_register_template(&eseqiv_tmpl); | 252 | return crypto_register_template(&eseqiv_tmpl); |
253 | } | 253 | } |
254 | 254 | ||
255 | static void __exit eseqiv_module_exit(void) | 255 | void __exit eseqiv_module_exit(void) |
256 | { | 256 | { |
257 | crypto_unregister_template(&eseqiv_tmpl); | 257 | crypto_unregister_template(&eseqiv_tmpl); |
258 | } | 258 | } |
259 | |||
260 | module_init(eseqiv_module_init); | ||
261 | module_exit(eseqiv_module_exit); | ||
262 | |||
263 | MODULE_LICENSE("GPL"); | ||
264 | MODULE_DESCRIPTION("Encrypted Sequence Number IV Generator"); | ||
diff --git a/crypto/xcbc.c b/crypto/xcbc.c index 86727403e5..2feb0f239c 100644 --- a/crypto/xcbc.c +++ b/crypto/xcbc.c | |||
@@ -124,6 +124,11 @@ static int crypto_xcbc_digest_update2(struct hash_desc *pdesc, | |||
124 | unsigned int offset = sg[i].offset; | 124 | unsigned int offset = sg[i].offset; |
125 | unsigned int slen = sg[i].length; | 125 | unsigned int slen = sg[i].length; |
126 | 126 | ||
127 | if (unlikely(slen > nbytes)) | ||
128 | slen = nbytes; | ||
129 | |||
130 | nbytes -= slen; | ||
131 | |||
127 | while (slen > 0) { | 132 | while (slen > 0) { |
128 | unsigned int len = min(slen, ((unsigned int)(PAGE_SIZE)) - offset); | 133 | unsigned int len = min(slen, ((unsigned int)(PAGE_SIZE)) - offset); |
129 | char *p = crypto_kmap(pg, 0) + offset; | 134 | char *p = crypto_kmap(pg, 0) + offset; |
@@ -177,7 +182,6 @@ static int crypto_xcbc_digest_update2(struct hash_desc *pdesc, | |||
177 | offset = 0; | 182 | offset = 0; |
178 | pg++; | 183 | pg++; |
179 | } | 184 | } |
180 | nbytes-=sg[i].length; | ||
181 | i++; | 185 | i++; |
182 | } while (nbytes>0); | 186 | } while (nbytes>0); |
183 | 187 | ||
diff --git a/crypto/xts.c b/crypto/xts.c index 8eb08bfaf7..d87b0f3102 100644 --- a/crypto/xts.c +++ b/crypto/xts.c | |||
@@ -77,16 +77,16 @@ static int setkey(struct crypto_tfm *parent, const u8 *key, | |||
77 | } | 77 | } |
78 | 78 | ||
79 | struct sinfo { | 79 | struct sinfo { |
80 | be128 t; | 80 | be128 *t; |
81 | struct crypto_tfm *tfm; | 81 | struct crypto_tfm *tfm; |
82 | void (*fn)(struct crypto_tfm *, u8 *, const u8 *); | 82 | void (*fn)(struct crypto_tfm *, u8 *, const u8 *); |
83 | }; | 83 | }; |
84 | 84 | ||
85 | static inline void xts_round(struct sinfo *s, void *dst, const void *src) | 85 | static inline void xts_round(struct sinfo *s, void *dst, const void *src) |
86 | { | 86 | { |
87 | be128_xor(dst, &s->t, src); /* PP <- T xor P */ | 87 | be128_xor(dst, s->t, src); /* PP <- T xor P */ |
88 | s->fn(s->tfm, dst, dst); /* CC <- E(Key1,PP) */ | 88 | s->fn(s->tfm, dst, dst); /* CC <- E(Key1,PP) */ |
89 | be128_xor(dst, dst, &s->t); /* C <- T xor CC */ | 89 | be128_xor(dst, dst, s->t); /* C <- T xor CC */ |
90 | } | 90 | } |
91 | 91 | ||
92 | static int crypt(struct blkcipher_desc *d, | 92 | static int crypt(struct blkcipher_desc *d, |
@@ -101,7 +101,6 @@ static int crypt(struct blkcipher_desc *d, | |||
101 | .tfm = crypto_cipher_tfm(ctx->child), | 101 | .tfm = crypto_cipher_tfm(ctx->child), |
102 | .fn = fn | 102 | .fn = fn |
103 | }; | 103 | }; |
104 | be128 *iv; | ||
105 | u8 *wsrc; | 104 | u8 *wsrc; |
106 | u8 *wdst; | 105 | u8 *wdst; |
107 | 106 | ||
@@ -109,20 +108,20 @@ static int crypt(struct blkcipher_desc *d, | |||
109 | if (!w->nbytes) | 108 | if (!w->nbytes) |
110 | return err; | 109 | return err; |
111 | 110 | ||
111 | s.t = (be128 *)w->iv; | ||
112 | avail = w->nbytes; | 112 | avail = w->nbytes; |
113 | 113 | ||
114 | wsrc = w->src.virt.addr; | 114 | wsrc = w->src.virt.addr; |
115 | wdst = w->dst.virt.addr; | 115 | wdst = w->dst.virt.addr; |
116 | 116 | ||
117 | /* calculate first value of T */ | 117 | /* calculate first value of T */ |
118 | iv = (be128 *)w->iv; | 118 | tw(crypto_cipher_tfm(ctx->tweak), w->iv, w->iv); |
119 | tw(crypto_cipher_tfm(ctx->tweak), (void *)&s.t, w->iv); | ||
120 | 119 | ||
121 | goto first; | 120 | goto first; |
122 | 121 | ||
123 | for (;;) { | 122 | for (;;) { |
124 | do { | 123 | do { |
125 | gf128mul_x_ble(&s.t, &s.t); | 124 | gf128mul_x_ble(s.t, s.t); |
126 | 125 | ||
127 | first: | 126 | first: |
128 | xts_round(&s, wdst, wsrc); | 127 | xts_round(&s, wdst, wsrc); |
diff --git a/drivers/bluetooth/hci_usb.c b/drivers/bluetooth/hci_usb.c index 372c7ef633..f16c94cbf4 100644 --- a/drivers/bluetooth/hci_usb.c +++ b/drivers/bluetooth/hci_usb.c | |||
@@ -116,6 +116,7 @@ static struct usb_device_id blacklist_ids[] = { | |||
116 | { USB_DEVICE(0x0a5c, 0x2009), .driver_info = HCI_BCM92035 }, | 116 | { USB_DEVICE(0x0a5c, 0x2009), .driver_info = HCI_BCM92035 }, |
117 | 117 | ||
118 | /* Broadcom BCM2045 */ | 118 | /* Broadcom BCM2045 */ |
119 | { USB_DEVICE(0x0a5c, 0x2039), .driver_info = HCI_RESET | HCI_WRONG_SCO_MTU }, | ||
119 | { USB_DEVICE(0x0a5c, 0x2101), .driver_info = HCI_RESET | HCI_WRONG_SCO_MTU }, | 120 | { USB_DEVICE(0x0a5c, 0x2101), .driver_info = HCI_RESET | HCI_WRONG_SCO_MTU }, |
120 | 121 | ||
121 | /* IBM/Lenovo ThinkPad with Broadcom chip */ | 122 | /* IBM/Lenovo ThinkPad with Broadcom chip */ |
diff --git a/drivers/char/esp.c b/drivers/char/esp.c index c01e26d9ee..f3fe620673 100644 --- a/drivers/char/esp.c +++ b/drivers/char/esp.c | |||
@@ -2484,6 +2484,7 @@ static int __init espserial_init(void) | |||
2484 | return 0; | 2484 | return 0; |
2485 | } | 2485 | } |
2486 | 2486 | ||
2487 | spin_lock_init(&info->lock); | ||
2487 | /* rx_trigger, tx_trigger are needed by autoconfig */ | 2488 | /* rx_trigger, tx_trigger are needed by autoconfig */ |
2488 | info->config.rx_trigger = rx_trigger; | 2489 | info->config.rx_trigger = rx_trigger; |
2489 | info->config.tx_trigger = tx_trigger; | 2490 | info->config.tx_trigger = tx_trigger; |
diff --git a/drivers/char/riscom8.c b/drivers/char/riscom8.c index 8fc4fe4e38..589ac6f65b 100644 --- a/drivers/char/riscom8.c +++ b/drivers/char/riscom8.c | |||
@@ -1620,14 +1620,8 @@ static int __init rc_init_drivers(void) | |||
1620 | 1620 | ||
1621 | static void rc_release_drivers(void) | 1621 | static void rc_release_drivers(void) |
1622 | { | 1622 | { |
1623 | unsigned long flags; | ||
1624 | |||
1625 | spin_lock_irqsave(&riscom_lock, flags); | ||
1626 | |||
1627 | tty_unregister_driver(riscom_driver); | 1623 | tty_unregister_driver(riscom_driver); |
1628 | put_tty_driver(riscom_driver); | 1624 | put_tty_driver(riscom_driver); |
1629 | |||
1630 | spin_unlock_irqrestore(&riscom_lock, flags); | ||
1631 | } | 1625 | } |
1632 | 1626 | ||
1633 | #ifndef MODULE | 1627 | #ifndef MODULE |
diff --git a/drivers/gpio/pca953x.c b/drivers/gpio/pca953x.c index 92583cd4bf..6e72fd3118 100644 --- a/drivers/gpio/pca953x.c +++ b/drivers/gpio/pca953x.c | |||
@@ -184,6 +184,7 @@ static void pca953x_setup_gpio(struct pca953x_chip *chip, int gpios) | |||
184 | gc->direction_output = pca953x_gpio_direction_output; | 184 | gc->direction_output = pca953x_gpio_direction_output; |
185 | gc->get = pca953x_gpio_get_value; | 185 | gc->get = pca953x_gpio_get_value; |
186 | gc->set = pca953x_gpio_set_value; | 186 | gc->set = pca953x_gpio_set_value; |
187 | gc->can_sleep = 1; | ||
187 | 188 | ||
188 | gc->base = chip->gpio_start; | 189 | gc->base = chip->gpio_start; |
189 | gc->ngpio = gpios; | 190 | gc->ngpio = gpios; |
diff --git a/drivers/ide/Kconfig b/drivers/ide/Kconfig index df752e690e..eed6d8e1b5 100644 --- a/drivers/ide/Kconfig +++ b/drivers/ide/Kconfig | |||
@@ -50,7 +50,7 @@ menuconfig IDE | |||
50 | To compile this driver as a module, choose M here: the | 50 | To compile this driver as a module, choose M here: the |
51 | module will be called ide. | 51 | module will be called ide. |
52 | 52 | ||
53 | For further information, please read <file:Documentation/ide.txt>. | 53 | For further information, please read <file:Documentation/ide/ide.txt>. |
54 | 54 | ||
55 | If unsure, say Y. | 55 | If unsure, say Y. |
56 | 56 | ||
@@ -77,7 +77,7 @@ config BLK_DEV_IDE | |||
77 | Useful information about large (>540 MB) IDE disks, multiple | 77 | Useful information about large (>540 MB) IDE disks, multiple |
78 | interfaces, what to do if ATA/IDE devices are not automatically | 78 | interfaces, what to do if ATA/IDE devices are not automatically |
79 | detected, sound card ATA/IDE ports, module support, and other | 79 | detected, sound card ATA/IDE ports, module support, and other |
80 | topics, is contained in <file:Documentation/ide.txt>. For detailed | 80 | topics, is contained in <file:Documentation/ide/ide.txt>. For detailed |
81 | information about hard drives, consult the Disk-HOWTO and the | 81 | information about hard drives, consult the Disk-HOWTO and the |
82 | Multi-Disk-HOWTO, available from | 82 | Multi-Disk-HOWTO, available from |
83 | <http://www.tldp.org/docs.html#howto>. | 83 | <http://www.tldp.org/docs.html#howto>. |
@@ -87,7 +87,7 @@ config BLK_DEV_IDE | |||
87 | <ftp://ibiblio.org/pub/Linux/system/hardware/>. | 87 | <ftp://ibiblio.org/pub/Linux/system/hardware/>. |
88 | 88 | ||
89 | To compile this driver as a module, choose M here and read | 89 | To compile this driver as a module, choose M here and read |
90 | <file:Documentation/ide.txt>. The module will be called ide-mod. | 90 | <file:Documentation/ide/ide.txt>. The module will be called ide-mod. |
91 | Do not compile this driver as a module if your root file system (the | 91 | Do not compile this driver as a module if your root file system (the |
92 | one containing the directory /) is located on an IDE device. | 92 | one containing the directory /) is located on an IDE device. |
93 | 93 | ||
@@ -98,7 +98,7 @@ config BLK_DEV_IDE | |||
98 | 98 | ||
99 | if BLK_DEV_IDE | 99 | if BLK_DEV_IDE |
100 | 100 | ||
101 | comment "Please see Documentation/ide.txt for help/info on IDE drives" | 101 | comment "Please see Documentation/ide/ide.txt for help/info on IDE drives" |
102 | 102 | ||
103 | config BLK_DEV_IDE_SATA | 103 | config BLK_DEV_IDE_SATA |
104 | bool "Support for SATA (deprecated; conflicts with libata SATA driver)" | 104 | bool "Support for SATA (deprecated; conflicts with libata SATA driver)" |
@@ -235,8 +235,8 @@ config BLK_DEV_IDETAPE | |||
235 | along with other IDE devices, as "hdb" or "hdc", or something | 235 | along with other IDE devices, as "hdb" or "hdc", or something |
236 | similar, and will be mapped to a character device such as "ht0" | 236 | similar, and will be mapped to a character device such as "ht0" |
237 | (check the boot messages with dmesg). Be sure to consult the | 237 | (check the boot messages with dmesg). Be sure to consult the |
238 | <file:drivers/ide/ide-tape.c> and <file:Documentation/ide.txt> files | 238 | <file:drivers/ide/ide-tape.c> and <file:Documentation/ide/ide.txt> |
239 | for usage information. | 239 | files for usage information. |
240 | 240 | ||
241 | To compile this driver as a module, choose M here: the | 241 | To compile this driver as a module, choose M here: the |
242 | module will be called ide-tape. | 242 | module will be called ide-tape. |
@@ -358,7 +358,7 @@ config BLK_DEV_CMD640 | |||
358 | 358 | ||
359 | The CMD640 chip is also used on add-in cards by Acculogic, and on | 359 | The CMD640 chip is also used on add-in cards by Acculogic, and on |
360 | the "CSA-6400E PCI to IDE controller" that some people have. For | 360 | the "CSA-6400E PCI to IDE controller" that some people have. For |
361 | details, read <file:Documentation/ide.txt>. | 361 | details, read <file:Documentation/ide/ide.txt>. |
362 | 362 | ||
363 | config BLK_DEV_CMD640_ENHANCED | 363 | config BLK_DEV_CMD640_ENHANCED |
364 | bool "CMD640 enhanced support" | 364 | bool "CMD640 enhanced support" |
@@ -366,7 +366,7 @@ config BLK_DEV_CMD640_ENHANCED | |||
366 | help | 366 | help |
367 | This option includes support for setting/autotuning PIO modes and | 367 | This option includes support for setting/autotuning PIO modes and |
368 | prefetch on CMD640 IDE interfaces. For details, read | 368 | prefetch on CMD640 IDE interfaces. For details, read |
369 | <file:Documentation/ide.txt>. If you have a CMD640 IDE interface | 369 | <file:Documentation/ide/ide.txt>. If you have a CMD640 IDE interface |
370 | and your BIOS does not already do this for you, then say Y here. | 370 | and your BIOS does not already do this for you, then say Y here. |
371 | Otherwise say N. | 371 | Otherwise say N. |
372 | 372 | ||
@@ -1069,9 +1069,9 @@ config BLK_DEV_ALI14XX | |||
1069 | This driver is enabled at runtime using the "ali14xx.probe" kernel | 1069 | This driver is enabled at runtime using the "ali14xx.probe" kernel |
1070 | boot parameter. It enables support for the secondary IDE interface | 1070 | boot parameter. It enables support for the secondary IDE interface |
1071 | of the ALI M1439/1443/1445/1487/1489 chipsets, and permits faster | 1071 | of the ALI M1439/1443/1445/1487/1489 chipsets, and permits faster |
1072 | I/O speeds to be set as well. See the files | 1072 | I/O speeds to be set as well. |
1073 | <file:Documentation/ide.txt> and <file:drivers/ide/legacy/ali14xx.c> | 1073 | See the files <file:Documentation/ide/ide.txt> and |
1074 | for more info. | 1074 | <file:drivers/ide/legacy/ali14xx.c> for more info. |
1075 | 1075 | ||
1076 | config BLK_DEV_DTC2278 | 1076 | config BLK_DEV_DTC2278 |
1077 | tristate "DTC-2278 support" | 1077 | tristate "DTC-2278 support" |
@@ -1079,7 +1079,7 @@ config BLK_DEV_DTC2278 | |||
1079 | This driver is enabled at runtime using the "dtc2278.probe" kernel | 1079 | This driver is enabled at runtime using the "dtc2278.probe" kernel |
1080 | boot parameter. It enables support for the secondary IDE interface | 1080 | boot parameter. It enables support for the secondary IDE interface |
1081 | of the DTC-2278 card, and permits faster I/O speeds to be set as | 1081 | of the DTC-2278 card, and permits faster I/O speeds to be set as |
1082 | well. See the <file:Documentation/ide.txt> and | 1082 | well. See the <file:Documentation/ide/ide.txt> and |
1083 | <file:drivers/ide/legacy/dtc2278.c> files for more info. | 1083 | <file:drivers/ide/legacy/dtc2278.c> files for more info. |
1084 | 1084 | ||
1085 | config BLK_DEV_HT6560B | 1085 | config BLK_DEV_HT6560B |
@@ -1088,7 +1088,7 @@ config BLK_DEV_HT6560B | |||
1088 | This driver is enabled at runtime using the "ht6560b.probe" kernel | 1088 | This driver is enabled at runtime using the "ht6560b.probe" kernel |
1089 | boot parameter. It enables support for the secondary IDE interface | 1089 | boot parameter. It enables support for the secondary IDE interface |
1090 | of the Holtek card, and permits faster I/O speeds to be set as well. | 1090 | of the Holtek card, and permits faster I/O speeds to be set as well. |
1091 | See the <file:Documentation/ide.txt> and | 1091 | See the <file:Documentation/ide/ide.txt> and |
1092 | <file:drivers/ide/legacy/ht6560b.c> files for more info. | 1092 | <file:drivers/ide/legacy/ht6560b.c> files for more info. |
1093 | 1093 | ||
1094 | config BLK_DEV_QD65XX | 1094 | config BLK_DEV_QD65XX |
@@ -1096,7 +1096,7 @@ config BLK_DEV_QD65XX | |||
1096 | help | 1096 | help |
1097 | This driver is enabled at runtime using the "qd65xx.probe" kernel | 1097 | This driver is enabled at runtime using the "qd65xx.probe" kernel |
1098 | boot parameter. It permits faster I/O speeds to be set. See the | 1098 | boot parameter. It permits faster I/O speeds to be set. See the |
1099 | <file:Documentation/ide.txt> and <file:drivers/ide/legacy/qd65xx.c> | 1099 | <file:Documentation/ide/ide.txt> and <file:drivers/ide/legacy/qd65xx.c> |
1100 | for more info. | 1100 | for more info. |
1101 | 1101 | ||
1102 | config BLK_DEV_UMC8672 | 1102 | config BLK_DEV_UMC8672 |
@@ -1105,7 +1105,7 @@ config BLK_DEV_UMC8672 | |||
1105 | This driver is enabled at runtime using the "umc8672.probe" kernel | 1105 | This driver is enabled at runtime using the "umc8672.probe" kernel |
1106 | boot parameter. It enables support for the secondary IDE interface | 1106 | boot parameter. It enables support for the secondary IDE interface |
1107 | of the UMC-8672, and permits faster I/O speeds to be set as well. | 1107 | of the UMC-8672, and permits faster I/O speeds to be set as well. |
1108 | See the files <file:Documentation/ide.txt> and | 1108 | See the files <file:Documentation/ide/ide.txt> and |
1109 | <file:drivers/ide/legacy/umc8672.c> for more info. | 1109 | <file:drivers/ide/legacy/umc8672.c> for more info. |
1110 | 1110 | ||
1111 | endif | 1111 | endif |
diff --git a/drivers/ide/ide-cd_ioctl.c b/drivers/ide/ide-cd_ioctl.c index b68284de4e..6d147ce678 100644 --- a/drivers/ide/ide-cd_ioctl.c +++ b/drivers/ide/ide-cd_ioctl.c | |||
@@ -457,6 +457,10 @@ int ide_cdrom_packet(struct cdrom_device_info *cdi, | |||
457 | layer. the packet must be complete, as we do not | 457 | layer. the packet must be complete, as we do not |
458 | touch it at all. */ | 458 | touch it at all. */ |
459 | ide_cd_init_rq(drive, &req); | 459 | ide_cd_init_rq(drive, &req); |
460 | |||
461 | if (cgc->data_direction == CGC_DATA_WRITE) | ||
462 | req.cmd_flags |= REQ_RW; | ||
463 | |||
460 | memcpy(req.cmd, cgc->cmd, CDROM_PACKET_SIZE); | 464 | memcpy(req.cmd, cgc->cmd, CDROM_PACKET_SIZE); |
461 | if (cgc->sense) | 465 | if (cgc->sense) |
462 | memset(cgc->sense, 0, sizeof(struct request_sense)); | 466 | memset(cgc->sense, 0, sizeof(struct request_sense)); |
diff --git a/drivers/ide/ide-dma.c b/drivers/ide/ide-dma.c index 2de99e4be5..d61e5788d3 100644 --- a/drivers/ide/ide-dma.c +++ b/drivers/ide/ide-dma.c | |||
@@ -713,7 +713,7 @@ static int ide_tune_dma(ide_drive_t *drive) | |||
713 | } | 713 | } |
714 | 714 | ||
715 | if (hwif->host_flags & IDE_HFLAG_NO_SET_MODE) | 715 | if (hwif->host_flags & IDE_HFLAG_NO_SET_MODE) |
716 | return 0; | 716 | return 1; |
717 | 717 | ||
718 | if (ide_set_dma_mode(drive, speed)) | 718 | if (ide_set_dma_mode(drive, speed)) |
719 | return 0; | 719 | return 0; |
diff --git a/drivers/ide/ide.c b/drivers/ide/ide.c index fa16bc30bb..9976f9d627 100644 --- a/drivers/ide/ide.c +++ b/drivers/ide/ide.c | |||
@@ -667,7 +667,6 @@ int ide_register_hw(hw_regs_t *hw, void (*quirkproc)(ide_drive_t *), | |||
667 | 667 | ||
668 | do { | 668 | do { |
669 | hwif = ide_deprecated_find_port(hw->io_ports[IDE_DATA_OFFSET]); | 669 | hwif = ide_deprecated_find_port(hw->io_ports[IDE_DATA_OFFSET]); |
670 | index = hwif->index; | ||
671 | if (hwif) | 670 | if (hwif) |
672 | goto found; | 671 | goto found; |
673 | for (index = 0; index < MAX_HWIFS; index++) | 672 | for (index = 0; index < MAX_HWIFS; index++) |
@@ -675,6 +674,7 @@ int ide_register_hw(hw_regs_t *hw, void (*quirkproc)(ide_drive_t *), | |||
675 | } while (retry--); | 674 | } while (retry--); |
676 | return -1; | 675 | return -1; |
677 | found: | 676 | found: |
677 | index = hwif->index; | ||
678 | if (hwif->present) | 678 | if (hwif->present) |
679 | ide_unregister(index, 0, 1); | 679 | ide_unregister(index, 0, 1); |
680 | else if (!hwif->hold) | 680 | else if (!hwif->hold) |
@@ -1180,7 +1180,7 @@ static int __initdata is_chipset_set[MAX_HWIFS]; | |||
1180 | * ide_setup() gets called VERY EARLY during initialization, | 1180 | * ide_setup() gets called VERY EARLY during initialization, |
1181 | * to handle kernel "command line" strings beginning with "hdx=" or "ide". | 1181 | * to handle kernel "command line" strings beginning with "hdx=" or "ide". |
1182 | * | 1182 | * |
1183 | * Remember to update Documentation/ide.txt if you change something here. | 1183 | * Remember to update Documentation/ide/ide.txt if you change something here. |
1184 | */ | 1184 | */ |
1185 | static int __init ide_setup(char *s) | 1185 | static int __init ide_setup(char *s) |
1186 | { | 1186 | { |
diff --git a/drivers/input/serio/i8042.h b/drivers/input/serio/i8042.h index dd22d91f8b..c972e5d03a 100644 --- a/drivers/input/serio/i8042.h +++ b/drivers/input/serio/i8042.h | |||
@@ -16,7 +16,7 @@ | |||
16 | 16 | ||
17 | #if defined(CONFIG_MACH_JAZZ) | 17 | #if defined(CONFIG_MACH_JAZZ) |
18 | #include "i8042-jazzio.h" | 18 | #include "i8042-jazzio.h" |
19 | #elif defined(CONFIG_SGI_IP22) | 19 | #elif defined(CONFIG_SGI_HAS_I8042) |
20 | #include "i8042-ip22io.h" | 20 | #include "i8042-ip22io.h" |
21 | #elif defined(CONFIG_PPC) | 21 | #elif defined(CONFIG_PPC) |
22 | #include "i8042-ppcio.h" | 22 | #include "i8042-ppcio.h" |
diff --git a/drivers/isdn/gigaset/common.c b/drivers/isdn/gigaset/common.c index aacedec498..827c32c167 100644 --- a/drivers/isdn/gigaset/common.c +++ b/drivers/isdn/gigaset/common.c | |||
@@ -637,7 +637,6 @@ struct cardstate *gigaset_initcs(struct gigaset_driver *drv, int channels, | |||
637 | err("maximum number of devices exceeded"); | 637 | err("maximum number of devices exceeded"); |
638 | return NULL; | 638 | return NULL; |
639 | } | 639 | } |
640 | mutex_init(&cs->mutex); | ||
641 | 640 | ||
642 | gig_dbg(DEBUG_INIT, "allocating bcs[0..%d]", channels - 1); | 641 | gig_dbg(DEBUG_INIT, "allocating bcs[0..%d]", channels - 1); |
643 | cs->bcs = kmalloc(channels * sizeof(struct bc_state), GFP_KERNEL); | 642 | cs->bcs = kmalloc(channels * sizeof(struct bc_state), GFP_KERNEL); |
@@ -898,8 +897,10 @@ int gigaset_shutdown(struct cardstate *cs) | |||
898 | { | 897 | { |
899 | mutex_lock(&cs->mutex); | 898 | mutex_lock(&cs->mutex); |
900 | 899 | ||
901 | if (!(cs->flags & VALID_MINOR)) | 900 | if (!(cs->flags & VALID_MINOR)) { |
901 | mutex_unlock(&cs->mutex); | ||
902 | return -1; | 902 | return -1; |
903 | } | ||
903 | 904 | ||
904 | cs->waiting = 1; | 905 | cs->waiting = 1; |
905 | 906 | ||
@@ -1086,6 +1087,7 @@ struct gigaset_driver *gigaset_initdriver(unsigned minor, unsigned minors, | |||
1086 | drv->cs[i].driver = drv; | 1087 | drv->cs[i].driver = drv; |
1087 | drv->cs[i].ops = drv->ops; | 1088 | drv->cs[i].ops = drv->ops; |
1088 | drv->cs[i].minor_index = i; | 1089 | drv->cs[i].minor_index = i; |
1090 | mutex_init(&drv->cs[i].mutex); | ||
1089 | } | 1091 | } |
1090 | 1092 | ||
1091 | gigaset_if_initdriver(drv, procname, devname); | 1093 | gigaset_if_initdriver(drv, procname, devname); |
diff --git a/drivers/md/bitmap.c b/drivers/md/bitmap.c index 831aed9c56..c14dacdacf 100644 --- a/drivers/md/bitmap.c +++ b/drivers/md/bitmap.c | |||
@@ -1045,7 +1045,8 @@ void bitmap_daemon_work(struct bitmap *bitmap) | |||
1045 | if (bitmap == NULL) | 1045 | if (bitmap == NULL) |
1046 | return; | 1046 | return; |
1047 | if (time_before(jiffies, bitmap->daemon_lastrun + bitmap->daemon_sleep*HZ)) | 1047 | if (time_before(jiffies, bitmap->daemon_lastrun + bitmap->daemon_sleep*HZ)) |
1048 | return; | 1048 | goto done; |
1049 | |||
1049 | bitmap->daemon_lastrun = jiffies; | 1050 | bitmap->daemon_lastrun = jiffies; |
1050 | if (bitmap->allclean) { | 1051 | if (bitmap->allclean) { |
1051 | bitmap->mddev->thread->timeout = MAX_SCHEDULE_TIMEOUT; | 1052 | bitmap->mddev->thread->timeout = MAX_SCHEDULE_TIMEOUT; |
@@ -1142,6 +1143,7 @@ void bitmap_daemon_work(struct bitmap *bitmap) | |||
1142 | } | 1143 | } |
1143 | } | 1144 | } |
1144 | 1145 | ||
1146 | done: | ||
1145 | if (bitmap->allclean == 0) | 1147 | if (bitmap->allclean == 0) |
1146 | bitmap->mddev->thread->timeout = bitmap->daemon_sleep * HZ; | 1148 | bitmap->mddev->thread->timeout = bitmap->daemon_sleep * HZ; |
1147 | } | 1149 | } |
diff --git a/drivers/md/md.c b/drivers/md/md.c index 827824a9f3..ccbbf63727 100644 --- a/drivers/md/md.c +++ b/drivers/md/md.c | |||
@@ -5149,7 +5149,7 @@ static int md_seq_show(struct seq_file *seq, void *v) | |||
5149 | if (mddev->ro==1) | 5149 | if (mddev->ro==1) |
5150 | seq_printf(seq, " (read-only)"); | 5150 | seq_printf(seq, " (read-only)"); |
5151 | if (mddev->ro==2) | 5151 | if (mddev->ro==2) |
5152 | seq_printf(seq, "(auto-read-only)"); | 5152 | seq_printf(seq, " (auto-read-only)"); |
5153 | seq_printf(seq, " %s", mddev->pers->name); | 5153 | seq_printf(seq, " %s", mddev->pers->name); |
5154 | } | 5154 | } |
5155 | 5155 | ||
diff --git a/drivers/memstick/Kconfig b/drivers/memstick/Kconfig index 1093fdb072..f0ca41c203 100644 --- a/drivers/memstick/Kconfig +++ b/drivers/memstick/Kconfig | |||
@@ -8,7 +8,7 @@ menuconfig MEMSTICK | |||
8 | Sony MemoryStick is a proprietary storage/extension card protocol. | 8 | Sony MemoryStick is a proprietary storage/extension card protocol. |
9 | 9 | ||
10 | If you want MemoryStick support, you should say Y here and also | 10 | If you want MemoryStick support, you should say Y here and also |
11 | to the specific driver for your MMC interface. | 11 | to the specific driver for your MemoryStick interface. |
12 | 12 | ||
13 | if MEMSTICK | 13 | if MEMSTICK |
14 | 14 | ||
diff --git a/drivers/memstick/core/memstick.c b/drivers/memstick/core/memstick.c index bba467fe4b..de80dba12f 100644 --- a/drivers/memstick/core/memstick.c +++ b/drivers/memstick/core/memstick.c | |||
@@ -18,7 +18,6 @@ | |||
18 | #include <linux/delay.h> | 18 | #include <linux/delay.h> |
19 | 19 | ||
20 | #define DRIVER_NAME "memstick" | 20 | #define DRIVER_NAME "memstick" |
21 | #define DRIVER_VERSION "0.2" | ||
22 | 21 | ||
23 | static unsigned int cmd_retries = 3; | 22 | static unsigned int cmd_retries = 3; |
24 | module_param(cmd_retries, uint, 0644); | 23 | module_param(cmd_retries, uint, 0644); |
@@ -236,7 +235,7 @@ int memstick_next_req(struct memstick_host *host, struct memstick_request **mrq) | |||
236 | rc = host->card->next_request(host->card, mrq); | 235 | rc = host->card->next_request(host->card, mrq); |
237 | 236 | ||
238 | if (!rc) | 237 | if (!rc) |
239 | host->retries = cmd_retries; | 238 | host->retries = cmd_retries > 1 ? cmd_retries - 1 : 1; |
240 | else | 239 | else |
241 | *mrq = NULL; | 240 | *mrq = NULL; |
242 | 241 | ||
@@ -271,7 +270,7 @@ void memstick_init_req_sg(struct memstick_request *mrq, unsigned char tpc, | |||
271 | mrq->data_dir = READ; | 270 | mrq->data_dir = READ; |
272 | 271 | ||
273 | mrq->sg = *sg; | 272 | mrq->sg = *sg; |
274 | mrq->io_type = MEMSTICK_IO_SG; | 273 | mrq->long_data = 1; |
275 | 274 | ||
276 | if (tpc == MS_TPC_SET_CMD || tpc == MS_TPC_EX_SET_CMD) | 275 | if (tpc == MS_TPC_SET_CMD || tpc == MS_TPC_EX_SET_CMD) |
277 | mrq->need_card_int = 1; | 276 | mrq->need_card_int = 1; |
@@ -306,7 +305,7 @@ void memstick_init_req(struct memstick_request *mrq, unsigned char tpc, | |||
306 | if (mrq->data_dir == WRITE) | 305 | if (mrq->data_dir == WRITE) |
307 | memcpy(mrq->data, buf, mrq->data_len); | 306 | memcpy(mrq->data, buf, mrq->data_len); |
308 | 307 | ||
309 | mrq->io_type = MEMSTICK_IO_VAL; | 308 | mrq->long_data = 0; |
310 | 309 | ||
311 | if (tpc == MS_TPC_SET_CMD || tpc == MS_TPC_EX_SET_CMD) | 310 | if (tpc == MS_TPC_SET_CMD || tpc == MS_TPC_EX_SET_CMD) |
312 | mrq->need_card_int = 1; | 311 | mrq->need_card_int = 1; |
@@ -561,6 +560,31 @@ void memstick_free_host(struct memstick_host *host) | |||
561 | } | 560 | } |
562 | EXPORT_SYMBOL(memstick_free_host); | 561 | EXPORT_SYMBOL(memstick_free_host); |
563 | 562 | ||
563 | /** | ||
564 | * memstick_suspend_host - notify bus driver of host suspension | ||
565 | * @host - host to use | ||
566 | */ | ||
567 | void memstick_suspend_host(struct memstick_host *host) | ||
568 | { | ||
569 | mutex_lock(&host->lock); | ||
570 | host->set_param(host, MEMSTICK_POWER, MEMSTICK_POWER_OFF); | ||
571 | mutex_unlock(&host->lock); | ||
572 | } | ||
573 | EXPORT_SYMBOL(memstick_suspend_host); | ||
574 | |||
575 | /** | ||
576 | * memstick_resume_host - notify bus driver of host resumption | ||
577 | * @host - host to use | ||
578 | */ | ||
579 | void memstick_resume_host(struct memstick_host *host) | ||
580 | { | ||
581 | mutex_lock(&host->lock); | ||
582 | host->set_param(host, MEMSTICK_POWER, MEMSTICK_POWER_ON); | ||
583 | mutex_unlock(&host->lock); | ||
584 | memstick_detect_change(host); | ||
585 | } | ||
586 | EXPORT_SYMBOL(memstick_resume_host); | ||
587 | |||
564 | int memstick_register_driver(struct memstick_driver *drv) | 588 | int memstick_register_driver(struct memstick_driver *drv) |
565 | { | 589 | { |
566 | drv->driver.bus = &memstick_bus_type; | 590 | drv->driver.bus = &memstick_bus_type; |
@@ -611,4 +635,3 @@ module_exit(memstick_exit); | |||
611 | MODULE_AUTHOR("Alex Dubov"); | 635 | MODULE_AUTHOR("Alex Dubov"); |
612 | MODULE_LICENSE("GPL"); | 636 | MODULE_LICENSE("GPL"); |
613 | MODULE_DESCRIPTION("Sony MemoryStick core driver"); | 637 | MODULE_DESCRIPTION("Sony MemoryStick core driver"); |
614 | MODULE_VERSION(DRIVER_VERSION); | ||
diff --git a/drivers/memstick/core/mspro_block.c b/drivers/memstick/core/mspro_block.c index 423ad8cf4b..1d637e4561 100644 --- a/drivers/memstick/core/mspro_block.c +++ b/drivers/memstick/core/mspro_block.c | |||
@@ -16,10 +16,10 @@ | |||
16 | #include <linux/idr.h> | 16 | #include <linux/idr.h> |
17 | #include <linux/hdreg.h> | 17 | #include <linux/hdreg.h> |
18 | #include <linux/kthread.h> | 18 | #include <linux/kthread.h> |
19 | #include <linux/delay.h> | ||
19 | #include <linux/memstick.h> | 20 | #include <linux/memstick.h> |
20 | 21 | ||
21 | #define DRIVER_NAME "mspro_block" | 22 | #define DRIVER_NAME "mspro_block" |
22 | #define DRIVER_VERSION "0.2" | ||
23 | 23 | ||
24 | static int major; | 24 | static int major; |
25 | module_param(major, int, 0644); | 25 | module_param(major, int, 0644); |
@@ -110,6 +110,17 @@ struct mspro_mbr { | |||
110 | unsigned int sectors_per_partition; | 110 | unsigned int sectors_per_partition; |
111 | } __attribute__((packed)); | 111 | } __attribute__((packed)); |
112 | 112 | ||
113 | struct mspro_specfile { | ||
114 | char name[8]; | ||
115 | char ext[3]; | ||
116 | unsigned char attr; | ||
117 | unsigned char reserved[10]; | ||
118 | unsigned short time; | ||
119 | unsigned short date; | ||
120 | unsigned short cluster; | ||
121 | unsigned int size; | ||
122 | } __attribute__((packed)); | ||
123 | |||
113 | struct mspro_devinfo { | 124 | struct mspro_devinfo { |
114 | unsigned short cylinders; | 125 | unsigned short cylinders; |
115 | unsigned short heads; | 126 | unsigned short heads; |
@@ -293,6 +304,20 @@ static ssize_t mspro_block_attr_show_sysinfo(struct device *dev, | |||
293 | dev_attr); | 304 | dev_attr); |
294 | struct mspro_sys_info *x_sys = x_attr->data; | 305 | struct mspro_sys_info *x_sys = x_attr->data; |
295 | ssize_t rc = 0; | 306 | ssize_t rc = 0; |
307 | int date_tz = 0, date_tz_f = 0; | ||
308 | |||
309 | if (x_sys->assembly_date[0] > 0x80U) { | ||
310 | date_tz = (~x_sys->assembly_date[0]) + 1; | ||
311 | date_tz_f = date_tz & 3; | ||
312 | date_tz >>= 2; | ||
313 | date_tz = -date_tz; | ||
314 | date_tz_f *= 15; | ||
315 | } else if (x_sys->assembly_date[0] < 0x80U) { | ||
316 | date_tz = x_sys->assembly_date[0]; | ||
317 | date_tz_f = date_tz & 3; | ||
318 | date_tz >>= 2; | ||
319 | date_tz_f *= 15; | ||
320 | } | ||
296 | 321 | ||
297 | rc += scnprintf(buffer + rc, PAGE_SIZE - rc, "class: %x\n", | 322 | rc += scnprintf(buffer + rc, PAGE_SIZE - rc, "class: %x\n", |
298 | x_sys->class); | 323 | x_sys->class); |
@@ -305,8 +330,8 @@ static ssize_t mspro_block_attr_show_sysinfo(struct device *dev, | |||
305 | rc += scnprintf(buffer + rc, PAGE_SIZE - rc, "page size: %x\n", | 330 | rc += scnprintf(buffer + rc, PAGE_SIZE - rc, "page size: %x\n", |
306 | be16_to_cpu(x_sys->page_size)); | 331 | be16_to_cpu(x_sys->page_size)); |
307 | rc += scnprintf(buffer + rc, PAGE_SIZE - rc, "assembly date: " | 332 | rc += scnprintf(buffer + rc, PAGE_SIZE - rc, "assembly date: " |
308 | "%d %04u-%02u-%02u %02u:%02u:%02u\n", | 333 | "GMT%+d:%d %04u-%02u-%02u %02u:%02u:%02u\n", |
309 | x_sys->assembly_date[0], | 334 | date_tz, date_tz_f, |
310 | be16_to_cpu(*(unsigned short *) | 335 | be16_to_cpu(*(unsigned short *) |
311 | &x_sys->assembly_date[1]), | 336 | &x_sys->assembly_date[1]), |
312 | x_sys->assembly_date[3], x_sys->assembly_date[4], | 337 | x_sys->assembly_date[3], x_sys->assembly_date[4], |
@@ -398,6 +423,41 @@ static ssize_t mspro_block_attr_show_mbr(struct device *dev, | |||
398 | return rc; | 423 | return rc; |
399 | } | 424 | } |
400 | 425 | ||
426 | static ssize_t mspro_block_attr_show_specfile(struct device *dev, | ||
427 | struct device_attribute *attr, | ||
428 | char *buffer) | ||
429 | { | ||
430 | struct mspro_sys_attr *x_attr = container_of(attr, | ||
431 | struct mspro_sys_attr, | ||
432 | dev_attr); | ||
433 | struct mspro_specfile *x_spfile = x_attr->data; | ||
434 | char name[9], ext[4]; | ||
435 | ssize_t rc = 0; | ||
436 | |||
437 | memcpy(name, x_spfile->name, 8); | ||
438 | name[8] = 0; | ||
439 | memcpy(ext, x_spfile->ext, 3); | ||
440 | ext[3] = 0; | ||
441 | |||
442 | rc += scnprintf(buffer + rc, PAGE_SIZE - rc, "name: %s\n", name); | ||
443 | rc += scnprintf(buffer + rc, PAGE_SIZE - rc, "ext: %s\n", ext); | ||
444 | rc += scnprintf(buffer + rc, PAGE_SIZE - rc, "attribute: %x\n", | ||
445 | x_spfile->attr); | ||
446 | rc += scnprintf(buffer + rc, PAGE_SIZE - rc, "time: %d:%d:%d\n", | ||
447 | x_spfile->time >> 11, | ||
448 | (x_spfile->time >> 5) & 0x3f, | ||
449 | (x_spfile->time & 0x1f) * 2); | ||
450 | rc += scnprintf(buffer + rc, PAGE_SIZE - rc, "date: %d-%d-%d\n", | ||
451 | (x_spfile->date >> 9) + 1980, | ||
452 | (x_spfile->date >> 5) & 0xf, | ||
453 | x_spfile->date & 0x1f); | ||
454 | rc += scnprintf(buffer + rc, PAGE_SIZE - rc, "start cluster: %x\n", | ||
455 | x_spfile->cluster); | ||
456 | rc += scnprintf(buffer + rc, PAGE_SIZE - rc, "size: %x\n", | ||
457 | x_spfile->size); | ||
458 | return rc; | ||
459 | } | ||
460 | |||
401 | static ssize_t mspro_block_attr_show_devinfo(struct device *dev, | 461 | static ssize_t mspro_block_attr_show_devinfo(struct device *dev, |
402 | struct device_attribute *attr, | 462 | struct device_attribute *attr, |
403 | char *buffer) | 463 | char *buffer) |
@@ -430,6 +490,9 @@ static sysfs_show_t mspro_block_attr_show(unsigned char tag) | |||
430 | return mspro_block_attr_show_modelname; | 490 | return mspro_block_attr_show_modelname; |
431 | case MSPRO_BLOCK_ID_MBR: | 491 | case MSPRO_BLOCK_ID_MBR: |
432 | return mspro_block_attr_show_mbr; | 492 | return mspro_block_attr_show_mbr; |
493 | case MSPRO_BLOCK_ID_SPECFILEVALUES1: | ||
494 | case MSPRO_BLOCK_ID_SPECFILEVALUES2: | ||
495 | return mspro_block_attr_show_specfile; | ||
433 | case MSPRO_BLOCK_ID_DEVINFO: | 496 | case MSPRO_BLOCK_ID_DEVINFO: |
434 | return mspro_block_attr_show_devinfo; | 497 | return mspro_block_attr_show_devinfo; |
435 | default: | 498 | default: |
@@ -629,7 +692,7 @@ static void mspro_block_process_request(struct memstick_dev *card, | |||
629 | param.system = msb->system; | 692 | param.system = msb->system; |
630 | param.data_count = cpu_to_be16(page_count); | 693 | param.data_count = cpu_to_be16(page_count); |
631 | param.data_address = cpu_to_be32((uint32_t)t_sec); | 694 | param.data_address = cpu_to_be32((uint32_t)t_sec); |
632 | param.cmd_param = 0; | 695 | param.tpc_param = 0; |
633 | 696 | ||
634 | msb->data_dir = rq_data_dir(req); | 697 | msb->data_dir = rq_data_dir(req); |
635 | msb->transfer_cmd = msb->data_dir == READ | 698 | msb->transfer_cmd = msb->data_dir == READ |
@@ -758,10 +821,10 @@ static int mspro_block_switch_to_parallel(struct memstick_dev *card) | |||
758 | struct memstick_host *host = card->host; | 821 | struct memstick_host *host = card->host; |
759 | struct mspro_block_data *msb = memstick_get_drvdata(card); | 822 | struct mspro_block_data *msb = memstick_get_drvdata(card); |
760 | struct mspro_param_register param = { | 823 | struct mspro_param_register param = { |
761 | .system = 0, | 824 | .system = MEMSTICK_SYS_PAR4, |
762 | .data_count = 0, | 825 | .data_count = 0, |
763 | .data_address = 0, | 826 | .data_address = 0, |
764 | .cmd_param = 0 | 827 | .tpc_param = 0 |
765 | }; | 828 | }; |
766 | 829 | ||
767 | card->next_request = h_mspro_block_req_init; | 830 | card->next_request = h_mspro_block_req_init; |
@@ -773,8 +836,8 @@ static int mspro_block_switch_to_parallel(struct memstick_dev *card) | |||
773 | if (card->current_mrq.error) | 836 | if (card->current_mrq.error) |
774 | return card->current_mrq.error; | 837 | return card->current_mrq.error; |
775 | 838 | ||
776 | msb->system = 0; | 839 | msb->system = MEMSTICK_SYS_PAR4; |
777 | host->set_param(host, MEMSTICK_INTERFACE, MEMSTICK_PARALLEL); | 840 | host->set_param(host, MEMSTICK_INTERFACE, MEMSTICK_PAR4); |
778 | 841 | ||
779 | card->next_request = h_mspro_block_req_init; | 842 | card->next_request = h_mspro_block_req_init; |
780 | msb->mrq_handler = h_mspro_block_default; | 843 | msb->mrq_handler = h_mspro_block_default; |
@@ -783,8 +846,24 @@ static int mspro_block_switch_to_parallel(struct memstick_dev *card) | |||
783 | wait_for_completion(&card->mrq_complete); | 846 | wait_for_completion(&card->mrq_complete); |
784 | 847 | ||
785 | if (card->current_mrq.error) { | 848 | if (card->current_mrq.error) { |
786 | msb->system = 0x80; | 849 | msb->system = MEMSTICK_SYS_SERIAL; |
850 | host->set_param(host, MEMSTICK_POWER, MEMSTICK_POWER_OFF); | ||
851 | msleep(1000); | ||
852 | host->set_param(host, MEMSTICK_POWER, MEMSTICK_POWER_ON); | ||
787 | host->set_param(host, MEMSTICK_INTERFACE, MEMSTICK_SERIAL); | 853 | host->set_param(host, MEMSTICK_INTERFACE, MEMSTICK_SERIAL); |
854 | |||
855 | if (memstick_set_rw_addr(card)) | ||
856 | return card->current_mrq.error; | ||
857 | |||
858 | param.system = msb->system; | ||
859 | |||
860 | card->next_request = h_mspro_block_req_init; | ||
861 | msb->mrq_handler = h_mspro_block_default; | ||
862 | memstick_init_req(&card->current_mrq, MS_TPC_WRITE_REG, ¶m, | ||
863 | sizeof(param)); | ||
864 | memstick_new_req(host); | ||
865 | wait_for_completion(&card->mrq_complete); | ||
866 | |||
788 | return -EFAULT; | 867 | return -EFAULT; |
789 | } | 868 | } |
790 | 869 | ||
@@ -802,7 +881,7 @@ static int mspro_block_read_attributes(struct memstick_dev *card) | |||
802 | .system = msb->system, | 881 | .system = msb->system, |
803 | .data_count = cpu_to_be16(1), | 882 | .data_count = cpu_to_be16(1), |
804 | .data_address = 0, | 883 | .data_address = 0, |
805 | .cmd_param = 0 | 884 | .tpc_param = 0 |
806 | }; | 885 | }; |
807 | struct mspro_attribute *attr = NULL; | 886 | struct mspro_attribute *attr = NULL; |
808 | struct mspro_sys_attr *s_attr = NULL; | 887 | struct mspro_sys_attr *s_attr = NULL; |
@@ -922,7 +1001,7 @@ static int mspro_block_read_attributes(struct memstick_dev *card) | |||
922 | param.system = msb->system; | 1001 | param.system = msb->system; |
923 | param.data_count = cpu_to_be16((rc / msb->page_size) + 1); | 1002 | param.data_count = cpu_to_be16((rc / msb->page_size) + 1); |
924 | param.data_address = cpu_to_be32(addr / msb->page_size); | 1003 | param.data_address = cpu_to_be32(addr / msb->page_size); |
925 | param.cmd_param = 0; | 1004 | param.tpc_param = 0; |
926 | 1005 | ||
927 | sg_init_one(&msb->req_sg[0], buffer, | 1006 | sg_init_one(&msb->req_sg[0], buffer, |
928 | be16_to_cpu(param.data_count) * msb->page_size); | 1007 | be16_to_cpu(param.data_count) * msb->page_size); |
@@ -964,7 +1043,7 @@ static int mspro_block_init_card(struct memstick_dev *card) | |||
964 | struct memstick_host *host = card->host; | 1043 | struct memstick_host *host = card->host; |
965 | int rc = 0; | 1044 | int rc = 0; |
966 | 1045 | ||
967 | msb->system = 0x80; | 1046 | msb->system = MEMSTICK_SYS_SERIAL; |
968 | card->reg_addr.r_offset = offsetof(struct mspro_register, status); | 1047 | card->reg_addr.r_offset = offsetof(struct mspro_register, status); |
969 | card->reg_addr.r_length = sizeof(struct ms_status_register); | 1048 | card->reg_addr.r_length = sizeof(struct ms_status_register); |
970 | card->reg_addr.w_offset = offsetof(struct mspro_register, param); | 1049 | card->reg_addr.w_offset = offsetof(struct mspro_register, param); |
@@ -973,7 +1052,7 @@ static int mspro_block_init_card(struct memstick_dev *card) | |||
973 | if (memstick_set_rw_addr(card)) | 1052 | if (memstick_set_rw_addr(card)) |
974 | return -EIO; | 1053 | return -EIO; |
975 | 1054 | ||
976 | if (host->caps & MEMSTICK_CAP_PARALLEL) { | 1055 | if (host->caps & MEMSTICK_CAP_PAR4) { |
977 | if (mspro_block_switch_to_parallel(card)) | 1056 | if (mspro_block_switch_to_parallel(card)) |
978 | printk(KERN_WARNING "%s: could not switch to " | 1057 | printk(KERN_WARNING "%s: could not switch to " |
979 | "parallel interface\n", card->dev.bus_id); | 1058 | "parallel interface\n", card->dev.bus_id); |
@@ -1348,4 +1427,3 @@ MODULE_LICENSE("GPL"); | |||
1348 | MODULE_AUTHOR("Alex Dubov"); | 1427 | MODULE_AUTHOR("Alex Dubov"); |
1349 | MODULE_DESCRIPTION("Sony MemoryStickPro block device driver"); | 1428 | MODULE_DESCRIPTION("Sony MemoryStickPro block device driver"); |
1350 | MODULE_DEVICE_TABLE(memstick, mspro_block_id_tbl); | 1429 | MODULE_DEVICE_TABLE(memstick, mspro_block_id_tbl); |
1351 | MODULE_VERSION(DRIVER_VERSION); | ||
diff --git a/drivers/memstick/host/Kconfig b/drivers/memstick/host/Kconfig index c002fcc3c8..4ce5c8dffb 100644 --- a/drivers/memstick/host/Kconfig +++ b/drivers/memstick/host/Kconfig | |||
@@ -20,3 +20,13 @@ config MEMSTICK_TIFM_MS | |||
20 | To compile this driver as a module, choose M here: the | 20 | To compile this driver as a module, choose M here: the |
21 | module will be called tifm_ms. | 21 | module will be called tifm_ms. |
22 | 22 | ||
23 | config MEMSTICK_JMICRON_38X | ||
24 | tristate "JMicron JMB38X MemoryStick interface support (EXPERIMENTAL)" | ||
25 | depends on EXPERIMENTAL && PCI | ||
26 | |||
27 | help | ||
28 | Say Y here if you want to be able to access MemoryStick cards with | ||
29 | the JMicron(R) JMB38X MemoryStick card reader. | ||
30 | |||
31 | To compile this driver as a module, choose M here: the | ||
32 | module will be called jmb38x_ms. | ||
diff --git a/drivers/memstick/host/Makefile b/drivers/memstick/host/Makefile index ee666380ef..12530e4311 100644 --- a/drivers/memstick/host/Makefile +++ b/drivers/memstick/host/Makefile | |||
@@ -3,8 +3,8 @@ | |||
3 | # | 3 | # |
4 | 4 | ||
5 | ifeq ($(CONFIG_MEMSTICK_DEBUG),y) | 5 | ifeq ($(CONFIG_MEMSTICK_DEBUG),y) |
6 | EXTRA_CFLAGS += -DDEBUG | 6 | EXTRA_CFLAGS += -DDEBUG |
7 | endif | 7 | endif |
8 | 8 | ||
9 | obj-$(CONFIG_MEMSTICK_TIFM_MS) += tifm_ms.o | 9 | obj-$(CONFIG_MEMSTICK_TIFM_MS) += tifm_ms.o |
10 | 10 | obj-$(CONFIG_MEMSTICK_JMICRON_38X) += jmb38x_ms.o | |
diff --git a/drivers/memstick/host/jmb38x_ms.c b/drivers/memstick/host/jmb38x_ms.c new file mode 100644 index 0000000000..03fe8783b1 --- /dev/null +++ b/drivers/memstick/host/jmb38x_ms.c | |||
@@ -0,0 +1,945 @@ | |||
1 | /* | ||
2 | * jmb38x_ms.c - JMicron jmb38x MemoryStick card reader | ||
3 | * | ||
4 | * Copyright (C) 2008 Alex Dubov <oakad@yahoo.com> | ||
5 | * | ||
6 | * This program is free software; you can redistribute it and/or modify | ||
7 | * it under the terms of the GNU General Public License version 2 as | ||
8 | * published by the Free Software Foundation. | ||
9 | * | ||
10 | */ | ||
11 | |||
12 | #include <linux/spinlock.h> | ||
13 | #include <linux/interrupt.h> | ||
14 | #include <linux/pci.h> | ||
15 | #include <linux/delay.h> | ||
16 | #include <linux/highmem.h> | ||
17 | #include <linux/memstick.h> | ||
18 | |||
19 | #define DRIVER_NAME "jmb38x_ms" | ||
20 | |||
21 | static int no_dma; | ||
22 | module_param(no_dma, bool, 0644); | ||
23 | |||
24 | enum { | ||
25 | DMA_ADDRESS = 0x00, | ||
26 | BLOCK = 0x04, | ||
27 | DMA_CONTROL = 0x08, | ||
28 | TPC_P0 = 0x0c, | ||
29 | TPC_P1 = 0x10, | ||
30 | TPC = 0x14, | ||
31 | HOST_CONTROL = 0x18, | ||
32 | DATA = 0x1c, | ||
33 | STATUS = 0x20, | ||
34 | INT_STATUS = 0x24, | ||
35 | INT_STATUS_ENABLE = 0x28, | ||
36 | INT_SIGNAL_ENABLE = 0x2c, | ||
37 | TIMER = 0x30, | ||
38 | TIMER_CONTROL = 0x34, | ||
39 | PAD_OUTPUT_ENABLE = 0x38, | ||
40 | PAD_PU_PD = 0x3c, | ||
41 | CLOCK_DELAY = 0x40, | ||
42 | ADMA_ADDRESS = 0x44, | ||
43 | CLOCK_CONTROL = 0x48, | ||
44 | LED_CONTROL = 0x4c, | ||
45 | VERSION = 0x50 | ||
46 | }; | ||
47 | |||
48 | struct jmb38x_ms_host { | ||
49 | struct jmb38x_ms *chip; | ||
50 | void __iomem *addr; | ||
51 | spinlock_t lock; | ||
52 | int id; | ||
53 | char host_id[DEVICE_ID_SIZE]; | ||
54 | int irq; | ||
55 | unsigned int block_pos; | ||
56 | unsigned long timeout_jiffies; | ||
57 | struct timer_list timer; | ||
58 | struct memstick_request *req; | ||
59 | unsigned char eject:1, | ||
60 | use_dma:1; | ||
61 | unsigned char cmd_flags; | ||
62 | unsigned char io_pos; | ||
63 | unsigned int io_word[2]; | ||
64 | }; | ||
65 | |||
66 | struct jmb38x_ms { | ||
67 | struct pci_dev *pdev; | ||
68 | int host_cnt; | ||
69 | struct memstick_host *hosts[]; | ||
70 | }; | ||
71 | |||
72 | #define BLOCK_COUNT_MASK 0xffff0000 | ||
73 | #define BLOCK_SIZE_MASK 0x00000fff | ||
74 | |||
75 | #define DMA_CONTROL_ENABLE 0x00000001 | ||
76 | |||
77 | #define TPC_DATA_SEL 0x00008000 | ||
78 | #define TPC_DIR 0x00004000 | ||
79 | #define TPC_WAIT_INT 0x00002000 | ||
80 | #define TPC_GET_INT 0x00000800 | ||
81 | #define TPC_CODE_SZ_MASK 0x00000700 | ||
82 | #define TPC_DATA_SZ_MASK 0x00000007 | ||
83 | |||
84 | #define HOST_CONTROL_RESET_REQ 0x00008000 | ||
85 | #define HOST_CONTROL_REI 0x00004000 | ||
86 | #define HOST_CONTROL_LED 0x00000400 | ||
87 | #define HOST_CONTROL_FAST_CLK 0x00000200 | ||
88 | #define HOST_CONTROL_RESET 0x00000100 | ||
89 | #define HOST_CONTROL_POWER_EN 0x00000080 | ||
90 | #define HOST_CONTROL_CLOCK_EN 0x00000040 | ||
91 | #define HOST_CONTROL_IF_SHIFT 4 | ||
92 | |||
93 | #define HOST_CONTROL_IF_SERIAL 0x0 | ||
94 | #define HOST_CONTROL_IF_PAR4 0x1 | ||
95 | #define HOST_CONTROL_IF_PAR8 0x3 | ||
96 | |||
97 | #define STATUS_HAS_MEDIA 0x00000400 | ||
98 | #define STATUS_FIFO_EMPTY 0x00000200 | ||
99 | #define STATUS_FIFO_FULL 0x00000100 | ||
100 | |||
101 | #define INT_STATUS_TPC_ERR 0x00080000 | ||
102 | #define INT_STATUS_CRC_ERR 0x00040000 | ||
103 | #define INT_STATUS_TIMER_TO 0x00020000 | ||
104 | #define INT_STATUS_HSK_TO 0x00010000 | ||
105 | #define INT_STATUS_ANY_ERR 0x00008000 | ||
106 | #define INT_STATUS_FIFO_WRDY 0x00000080 | ||
107 | #define INT_STATUS_FIFO_RRDY 0x00000040 | ||
108 | #define INT_STATUS_MEDIA_OUT 0x00000010 | ||
109 | #define INT_STATUS_MEDIA_IN 0x00000008 | ||
110 | #define INT_STATUS_DMA_BOUNDARY 0x00000004 | ||
111 | #define INT_STATUS_EOTRAN 0x00000002 | ||
112 | #define INT_STATUS_EOTPC 0x00000001 | ||
113 | |||
114 | #define INT_STATUS_ALL 0x000f801f | ||
115 | |||
116 | #define PAD_OUTPUT_ENABLE_MS 0x0F3F | ||
117 | |||
118 | #define PAD_PU_PD_OFF 0x7FFF0000 | ||
119 | #define PAD_PU_PD_ON_MS_SOCK0 0x5f8f0000 | ||
120 | #define PAD_PU_PD_ON_MS_SOCK1 0x0f0f0000 | ||
121 | |||
122 | enum { | ||
123 | CMD_READY = 0x01, | ||
124 | FIFO_READY = 0x02, | ||
125 | REG_DATA = 0x04, | ||
126 | AUTO_GET_INT = 0x08 | ||
127 | }; | ||
128 | |||
129 | static unsigned int jmb38x_ms_read_data(struct jmb38x_ms_host *host, | ||
130 | unsigned char *buf, unsigned int length) | ||
131 | { | ||
132 | unsigned int off = 0; | ||
133 | |||
134 | while (host->io_pos && length) { | ||
135 | buf[off++] = host->io_word[0] & 0xff; | ||
136 | host->io_word[0] >>= 8; | ||
137 | length--; | ||
138 | host->io_pos--; | ||
139 | } | ||
140 | |||
141 | if (!length) | ||
142 | return off; | ||
143 | |||
144 | while (!(STATUS_FIFO_EMPTY & readl(host->addr + STATUS))) { | ||
145 | if (length < 4) | ||
146 | break; | ||
147 | *(unsigned int *)(buf + off) = __raw_readl(host->addr + DATA); | ||
148 | length -= 4; | ||
149 | off += 4; | ||
150 | } | ||
151 | |||
152 | if (length | ||
153 | && !(STATUS_FIFO_EMPTY & readl(host->addr + STATUS))) { | ||
154 | host->io_word[0] = readl(host->addr + DATA); | ||
155 | for (host->io_pos = 4; host->io_pos; --host->io_pos) { | ||
156 | buf[off++] = host->io_word[0] & 0xff; | ||
157 | host->io_word[0] >>= 8; | ||
158 | length--; | ||
159 | if (!length) | ||
160 | break; | ||
161 | } | ||
162 | } | ||
163 | |||
164 | return off; | ||
165 | } | ||
166 | |||
167 | static unsigned int jmb38x_ms_read_reg_data(struct jmb38x_ms_host *host, | ||
168 | unsigned char *buf, | ||
169 | unsigned int length) | ||
170 | { | ||
171 | unsigned int off = 0; | ||
172 | |||
173 | while (host->io_pos > 4 && length) { | ||
174 | buf[off++] = host->io_word[0] & 0xff; | ||
175 | host->io_word[0] >>= 8; | ||
176 | length--; | ||
177 | host->io_pos--; | ||
178 | } | ||
179 | |||
180 | if (!length) | ||
181 | return off; | ||
182 | |||
183 | while (host->io_pos && length) { | ||
184 | buf[off++] = host->io_word[1] & 0xff; | ||
185 | host->io_word[1] >>= 8; | ||
186 | length--; | ||
187 | host->io_pos--; | ||
188 | } | ||
189 | |||
190 | return off; | ||
191 | } | ||
192 | |||
193 | static unsigned int jmb38x_ms_write_data(struct jmb38x_ms_host *host, | ||
194 | unsigned char *buf, | ||
195 | unsigned int length) | ||
196 | { | ||
197 | unsigned int off = 0; | ||
198 | |||
199 | if (host->io_pos) { | ||
200 | while (host->io_pos < 4 && length) { | ||
201 | host->io_word[0] |= buf[off++] << (host->io_pos * 8); | ||
202 | host->io_pos++; | ||
203 | length--; | ||
204 | } | ||
205 | } | ||
206 | |||
207 | if (host->io_pos == 4 | ||
208 | && !(STATUS_FIFO_FULL & readl(host->addr + STATUS))) { | ||
209 | writel(host->io_word[0], host->addr + DATA); | ||
210 | host->io_pos = 0; | ||
211 | host->io_word[0] = 0; | ||
212 | } else if (host->io_pos) { | ||
213 | return off; | ||
214 | } | ||
215 | |||
216 | if (!length) | ||
217 | return off; | ||
218 | |||
219 | while (!(STATUS_FIFO_FULL & readl(host->addr + STATUS))) { | ||
220 | if (length < 4) | ||
221 | break; | ||
222 | |||
223 | __raw_writel(*(unsigned int *)(buf + off), | ||
224 | host->addr + DATA); | ||
225 | length -= 4; | ||
226 | off += 4; | ||
227 | } | ||
228 | |||
229 | switch (length) { | ||
230 | case 3: | ||
231 | host->io_word[0] |= buf[off + 2] << 16; | ||
232 | host->io_pos++; | ||
233 | case 2: | ||
234 | host->io_word[0] |= buf[off + 1] << 8; | ||
235 | host->io_pos++; | ||
236 | case 1: | ||
237 | host->io_word[0] |= buf[off]; | ||
238 | host->io_pos++; | ||
239 | } | ||
240 | |||
241 | off += host->io_pos; | ||
242 | |||
243 | return off; | ||
244 | } | ||
245 | |||
246 | static unsigned int jmb38x_ms_write_reg_data(struct jmb38x_ms_host *host, | ||
247 | unsigned char *buf, | ||
248 | unsigned int length) | ||
249 | { | ||
250 | unsigned int off = 0; | ||
251 | |||
252 | while (host->io_pos < 4 && length) { | ||
253 | host->io_word[0] &= ~(0xff << (host->io_pos * 8)); | ||
254 | host->io_word[0] |= buf[off++] << (host->io_pos * 8); | ||
255 | host->io_pos++; | ||
256 | length--; | ||
257 | } | ||
258 | |||
259 | if (!length) | ||
260 | return off; | ||
261 | |||
262 | while (host->io_pos < 8 && length) { | ||
263 | host->io_word[1] &= ~(0xff << (host->io_pos * 8)); | ||
264 | host->io_word[1] |= buf[off++] << (host->io_pos * 8); | ||
265 | host->io_pos++; | ||
266 | length--; | ||
267 | } | ||
268 | |||
269 | return off; | ||
270 | } | ||
271 | |||
272 | static int jmb38x_ms_transfer_data(struct jmb38x_ms_host *host) | ||
273 | { | ||
274 | unsigned int length; | ||
275 | unsigned int off; | ||
276 | unsigned int t_size, p_off, p_cnt; | ||
277 | unsigned char *buf; | ||
278 | struct page *pg; | ||
279 | unsigned long flags = 0; | ||
280 | |||
281 | if (host->req->long_data) { | ||
282 | length = host->req->sg.length - host->block_pos; | ||
283 | off = host->req->sg.offset + host->block_pos; | ||
284 | } else { | ||
285 | length = host->req->data_len - host->block_pos; | ||
286 | off = 0; | ||
287 | } | ||
288 | |||
289 | while (length) { | ||
290 | if (host->req->long_data) { | ||
291 | pg = nth_page(sg_page(&host->req->sg), | ||
292 | off >> PAGE_SHIFT); | ||
293 | p_off = offset_in_page(off); | ||
294 | p_cnt = PAGE_SIZE - p_off; | ||
295 | p_cnt = min(p_cnt, length); | ||
296 | |||
297 | local_irq_save(flags); | ||
298 | buf = kmap_atomic(pg, KM_BIO_SRC_IRQ) + p_off; | ||
299 | } else { | ||
300 | buf = host->req->data + host->block_pos; | ||
301 | p_cnt = host->req->data_len - host->block_pos; | ||
302 | } | ||
303 | |||
304 | if (host->req->data_dir == WRITE) | ||
305 | t_size = !(host->cmd_flags & REG_DATA) | ||
306 | ? jmb38x_ms_write_data(host, buf, p_cnt) | ||
307 | : jmb38x_ms_write_reg_data(host, buf, p_cnt); | ||
308 | else | ||
309 | t_size = !(host->cmd_flags & REG_DATA) | ||
310 | ? jmb38x_ms_read_data(host, buf, p_cnt) | ||
311 | : jmb38x_ms_read_reg_data(host, buf, p_cnt); | ||
312 | |||
313 | if (host->req->long_data) { | ||
314 | kunmap_atomic(buf - p_off, KM_BIO_SRC_IRQ); | ||
315 | local_irq_restore(flags); | ||
316 | } | ||
317 | |||
318 | if (!t_size) | ||
319 | break; | ||
320 | host->block_pos += t_size; | ||
321 | length -= t_size; | ||
322 | off += t_size; | ||
323 | } | ||
324 | |||
325 | if (!length && host->req->data_dir == WRITE) { | ||
326 | if (host->cmd_flags & REG_DATA) { | ||
327 | writel(host->io_word[0], host->addr + TPC_P0); | ||
328 | writel(host->io_word[1], host->addr + TPC_P1); | ||
329 | } else if (host->io_pos) { | ||
330 | writel(host->io_word[0], host->addr + DATA); | ||
331 | } | ||
332 | } | ||
333 | |||
334 | return length; | ||
335 | } | ||
336 | |||
337 | static int jmb38x_ms_issue_cmd(struct memstick_host *msh) | ||
338 | { | ||
339 | struct jmb38x_ms_host *host = memstick_priv(msh); | ||
340 | unsigned char *data; | ||
341 | unsigned int data_len, cmd, t_val; | ||
342 | |||
343 | if (!(STATUS_HAS_MEDIA & readl(host->addr + STATUS))) { | ||
344 | dev_dbg(msh->cdev.dev, "no media status\n"); | ||
345 | host->req->error = -ETIME; | ||
346 | return host->req->error; | ||
347 | } | ||
348 | |||
349 | dev_dbg(msh->cdev.dev, "control %08x\n", | ||
350 | readl(host->addr + HOST_CONTROL)); | ||
351 | dev_dbg(msh->cdev.dev, "status %08x\n", readl(host->addr + INT_STATUS)); | ||
352 | dev_dbg(msh->cdev.dev, "hstatus %08x\n", readl(host->addr + STATUS)); | ||
353 | |||
354 | host->cmd_flags = 0; | ||
355 | host->block_pos = 0; | ||
356 | host->io_pos = 0; | ||
357 | host->io_word[0] = 0; | ||
358 | host->io_word[1] = 0; | ||
359 | |||
360 | cmd = host->req->tpc << 16; | ||
361 | cmd |= TPC_DATA_SEL; | ||
362 | |||
363 | if (host->req->data_dir == READ) | ||
364 | cmd |= TPC_DIR; | ||
365 | if (host->req->need_card_int) | ||
366 | cmd |= TPC_WAIT_INT; | ||
367 | if (host->req->get_int_reg) | ||
368 | cmd |= TPC_GET_INT; | ||
369 | |||
370 | data = host->req->data; | ||
371 | |||
372 | host->use_dma = !no_dma; | ||
373 | |||
374 | if (host->req->long_data) { | ||
375 | data_len = host->req->sg.length; | ||
376 | } else { | ||
377 | data_len = host->req->data_len; | ||
378 | host->use_dma = 0; | ||
379 | } | ||
380 | |||
381 | if (data_len <= 8) { | ||
382 | cmd &= ~(TPC_DATA_SEL | 0xf); | ||
383 | host->cmd_flags |= REG_DATA; | ||
384 | cmd |= data_len & 0xf; | ||
385 | host->use_dma = 0; | ||
386 | } | ||
387 | |||
388 | if (host->use_dma) { | ||
389 | if (1 != pci_map_sg(host->chip->pdev, &host->req->sg, 1, | ||
390 | host->req->data_dir == READ | ||
391 | ? PCI_DMA_FROMDEVICE | ||
392 | : PCI_DMA_TODEVICE)) { | ||
393 | host->req->error = -ENOMEM; | ||
394 | return host->req->error; | ||
395 | } | ||
396 | data_len = sg_dma_len(&host->req->sg); | ||
397 | writel(sg_dma_address(&host->req->sg), | ||
398 | host->addr + DMA_ADDRESS); | ||
399 | writel(((1 << 16) & BLOCK_COUNT_MASK) | ||
400 | | (data_len & BLOCK_SIZE_MASK), | ||
401 | host->addr + BLOCK); | ||
402 | writel(DMA_CONTROL_ENABLE, host->addr + DMA_CONTROL); | ||
403 | } else if (!(host->cmd_flags & REG_DATA)) { | ||
404 | writel(((1 << 16) & BLOCK_COUNT_MASK) | ||
405 | | (data_len & BLOCK_SIZE_MASK), | ||
406 | host->addr + BLOCK); | ||
407 | t_val = readl(host->addr + INT_STATUS_ENABLE); | ||
408 | t_val |= host->req->data_dir == READ | ||
409 | ? INT_STATUS_FIFO_RRDY | ||
410 | : INT_STATUS_FIFO_WRDY; | ||
411 | |||
412 | writel(t_val, host->addr + INT_STATUS_ENABLE); | ||
413 | writel(t_val, host->addr + INT_SIGNAL_ENABLE); | ||
414 | } else { | ||
415 | cmd &= ~(TPC_DATA_SEL | 0xf); | ||
416 | host->cmd_flags |= REG_DATA; | ||
417 | cmd |= data_len & 0xf; | ||
418 | |||
419 | if (host->req->data_dir == WRITE) { | ||
420 | jmb38x_ms_transfer_data(host); | ||
421 | writel(host->io_word[0], host->addr + TPC_P0); | ||
422 | writel(host->io_word[1], host->addr + TPC_P1); | ||
423 | } | ||
424 | } | ||
425 | |||
426 | mod_timer(&host->timer, jiffies + host->timeout_jiffies); | ||
427 | writel(HOST_CONTROL_LED | readl(host->addr + HOST_CONTROL), | ||
428 | host->addr + HOST_CONTROL); | ||
429 | host->req->error = 0; | ||
430 | |||
431 | writel(cmd, host->addr + TPC); | ||
432 | dev_dbg(msh->cdev.dev, "executing TPC %08x, len %x\n", cmd, data_len); | ||
433 | |||
434 | return 0; | ||
435 | } | ||
436 | |||
437 | static void jmb38x_ms_complete_cmd(struct memstick_host *msh, int last) | ||
438 | { | ||
439 | struct jmb38x_ms_host *host = memstick_priv(msh); | ||
440 | unsigned int t_val = 0; | ||
441 | int rc; | ||
442 | |||
443 | del_timer(&host->timer); | ||
444 | |||
445 | dev_dbg(msh->cdev.dev, "c control %08x\n", | ||
446 | readl(host->addr + HOST_CONTROL)); | ||
447 | dev_dbg(msh->cdev.dev, "c status %08x\n", | ||
448 | readl(host->addr + INT_STATUS)); | ||
449 | dev_dbg(msh->cdev.dev, "c hstatus %08x\n", readl(host->addr + STATUS)); | ||
450 | |||
451 | if (host->req->get_int_reg) { | ||
452 | t_val = readl(host->addr + TPC_P0); | ||
453 | host->req->int_reg = (t_val & 0xff); | ||
454 | } | ||
455 | |||
456 | if (host->use_dma) { | ||
457 | writel(0, host->addr + DMA_CONTROL); | ||
458 | pci_unmap_sg(host->chip->pdev, &host->req->sg, 1, | ||
459 | host->req->data_dir == READ | ||
460 | ? PCI_DMA_FROMDEVICE : PCI_DMA_TODEVICE); | ||
461 | } else { | ||
462 | t_val = readl(host->addr + INT_STATUS_ENABLE); | ||
463 | if (host->req->data_dir == READ) | ||
464 | t_val &= ~INT_STATUS_FIFO_RRDY; | ||
465 | else | ||
466 | t_val &= ~INT_STATUS_FIFO_WRDY; | ||
467 | |||
468 | writel(t_val, host->addr + INT_STATUS_ENABLE); | ||
469 | writel(t_val, host->addr + INT_SIGNAL_ENABLE); | ||
470 | } | ||
471 | |||
472 | writel((~HOST_CONTROL_LED) & readl(host->addr + HOST_CONTROL), | ||
473 | host->addr + HOST_CONTROL); | ||
474 | |||
475 | if (!last) { | ||
476 | do { | ||
477 | rc = memstick_next_req(msh, &host->req); | ||
478 | } while (!rc && jmb38x_ms_issue_cmd(msh)); | ||
479 | } else { | ||
480 | do { | ||
481 | rc = memstick_next_req(msh, &host->req); | ||
482 | if (!rc) | ||
483 | host->req->error = -ETIME; | ||
484 | } while (!rc); | ||
485 | } | ||
486 | } | ||
487 | |||
488 | static irqreturn_t jmb38x_ms_isr(int irq, void *dev_id) | ||
489 | { | ||
490 | struct memstick_host *msh = dev_id; | ||
491 | struct jmb38x_ms_host *host = memstick_priv(msh); | ||
492 | unsigned int irq_status; | ||
493 | |||
494 | spin_lock(&host->lock); | ||
495 | irq_status = readl(host->addr + INT_STATUS); | ||
496 | dev_dbg(&host->chip->pdev->dev, "irq_status = %08x\n", irq_status); | ||
497 | if (irq_status == 0 || irq_status == (~0)) { | ||
498 | spin_unlock(&host->lock); | ||
499 | return IRQ_NONE; | ||
500 | } | ||
501 | |||
502 | if (host->req) { | ||
503 | if (irq_status & INT_STATUS_ANY_ERR) { | ||
504 | if (irq_status & INT_STATUS_CRC_ERR) | ||
505 | host->req->error = -EILSEQ; | ||
506 | else | ||
507 | host->req->error = -ETIME; | ||
508 | } else { | ||
509 | if (host->use_dma) { | ||
510 | if (irq_status & INT_STATUS_EOTRAN) | ||
511 | host->cmd_flags |= FIFO_READY; | ||
512 | } else { | ||
513 | if (irq_status & (INT_STATUS_FIFO_RRDY | ||
514 | | INT_STATUS_FIFO_WRDY)) | ||
515 | jmb38x_ms_transfer_data(host); | ||
516 | |||
517 | if (irq_status & INT_STATUS_EOTRAN) { | ||
518 | jmb38x_ms_transfer_data(host); | ||
519 | host->cmd_flags |= FIFO_READY; | ||
520 | } | ||
521 | } | ||
522 | |||
523 | if (irq_status & INT_STATUS_EOTPC) { | ||
524 | host->cmd_flags |= CMD_READY; | ||
525 | if (host->cmd_flags & REG_DATA) { | ||
526 | if (host->req->data_dir == READ) { | ||
527 | host->io_word[0] | ||
528 | = readl(host->addr | ||
529 | + TPC_P0); | ||
530 | host->io_word[1] | ||
531 | = readl(host->addr | ||
532 | + TPC_P1); | ||
533 | host->io_pos = 8; | ||
534 | |||
535 | jmb38x_ms_transfer_data(host); | ||
536 | } | ||
537 | host->cmd_flags |= FIFO_READY; | ||
538 | } | ||
539 | } | ||
540 | } | ||
541 | } | ||
542 | |||
543 | if (irq_status & (INT_STATUS_MEDIA_IN | INT_STATUS_MEDIA_OUT)) { | ||
544 | dev_dbg(&host->chip->pdev->dev, "media changed\n"); | ||
545 | memstick_detect_change(msh); | ||
546 | } | ||
547 | |||
548 | writel(irq_status, host->addr + INT_STATUS); | ||
549 | |||
550 | if (host->req | ||
551 | && (((host->cmd_flags & CMD_READY) | ||
552 | && (host->cmd_flags & FIFO_READY)) | ||
553 | || host->req->error)) | ||
554 | jmb38x_ms_complete_cmd(msh, 0); | ||
555 | |||
556 | spin_unlock(&host->lock); | ||
557 | return IRQ_HANDLED; | ||
558 | } | ||
559 | |||
560 | static void jmb38x_ms_abort(unsigned long data) | ||
561 | { | ||
562 | struct memstick_host *msh = (struct memstick_host *)data; | ||
563 | struct jmb38x_ms_host *host = memstick_priv(msh); | ||
564 | unsigned long flags; | ||
565 | |||
566 | dev_dbg(&host->chip->pdev->dev, "abort\n"); | ||
567 | spin_lock_irqsave(&host->lock, flags); | ||
568 | if (host->req) { | ||
569 | host->req->error = -ETIME; | ||
570 | jmb38x_ms_complete_cmd(msh, 0); | ||
571 | } | ||
572 | spin_unlock_irqrestore(&host->lock, flags); | ||
573 | } | ||
574 | |||
575 | static void jmb38x_ms_request(struct memstick_host *msh) | ||
576 | { | ||
577 | struct jmb38x_ms_host *host = memstick_priv(msh); | ||
578 | unsigned long flags; | ||
579 | int rc; | ||
580 | |||
581 | spin_lock_irqsave(&host->lock, flags); | ||
582 | if (host->req) { | ||
583 | spin_unlock_irqrestore(&host->lock, flags); | ||
584 | BUG(); | ||
585 | return; | ||
586 | } | ||
587 | |||
588 | do { | ||
589 | rc = memstick_next_req(msh, &host->req); | ||
590 | } while (!rc && jmb38x_ms_issue_cmd(msh)); | ||
591 | spin_unlock_irqrestore(&host->lock, flags); | ||
592 | } | ||
593 | |||
594 | static void jmb38x_ms_reset(struct jmb38x_ms_host *host) | ||
595 | { | ||
596 | unsigned int host_ctl = readl(host->addr + HOST_CONTROL); | ||
597 | |||
598 | writel(host_ctl | HOST_CONTROL_RESET_REQ | HOST_CONTROL_RESET, | ||
599 | host->addr + HOST_CONTROL); | ||
600 | |||
601 | while (HOST_CONTROL_RESET_REQ | ||
602 | & (host_ctl = readl(host->addr + HOST_CONTROL))) { | ||
603 | ndelay(100); | ||
604 | dev_dbg(&host->chip->pdev->dev, "reset\n"); | ||
605 | } | ||
606 | |||
607 | writel(INT_STATUS_ALL, host->addr + INT_STATUS_ENABLE); | ||
608 | writel(INT_STATUS_ALL, host->addr + INT_SIGNAL_ENABLE); | ||
609 | |||
610 | dev_dbg(&host->chip->pdev->dev, "reset\n"); | ||
611 | } | ||
612 | |||
613 | static void jmb38x_ms_set_param(struct memstick_host *msh, | ||
614 | enum memstick_param param, | ||
615 | int value) | ||
616 | { | ||
617 | struct jmb38x_ms_host *host = memstick_priv(msh); | ||
618 | unsigned int host_ctl; | ||
619 | unsigned long flags; | ||
620 | |||
621 | spin_lock_irqsave(&host->lock, flags); | ||
622 | |||
623 | switch (param) { | ||
624 | case MEMSTICK_POWER: | ||
625 | if (value == MEMSTICK_POWER_ON) { | ||
626 | jmb38x_ms_reset(host); | ||
627 | |||
628 | writel(host->id ? PAD_PU_PD_ON_MS_SOCK1 | ||
629 | : PAD_PU_PD_ON_MS_SOCK0, | ||
630 | host->addr + PAD_PU_PD); | ||
631 | |||
632 | writel(PAD_OUTPUT_ENABLE_MS, | ||
633 | host->addr + PAD_OUTPUT_ENABLE); | ||
634 | |||
635 | host_ctl = readl(host->addr + HOST_CONTROL); | ||
636 | host_ctl |= 7; | ||
637 | writel(host_ctl | (HOST_CONTROL_POWER_EN | ||
638 | | HOST_CONTROL_CLOCK_EN), | ||
639 | host->addr + HOST_CONTROL); | ||
640 | |||
641 | dev_dbg(&host->chip->pdev->dev, "power on\n"); | ||
642 | } else if (value == MEMSTICK_POWER_OFF) { | ||
643 | writel(readl(host->addr + HOST_CONTROL) | ||
644 | & ~(HOST_CONTROL_POWER_EN | ||
645 | | HOST_CONTROL_CLOCK_EN), | ||
646 | host->addr + HOST_CONTROL); | ||
647 | writel(0, host->addr + PAD_OUTPUT_ENABLE); | ||
648 | writel(PAD_PU_PD_OFF, host->addr + PAD_PU_PD); | ||
649 | dev_dbg(&host->chip->pdev->dev, "power off\n"); | ||
650 | } | ||
651 | break; | ||
652 | case MEMSTICK_INTERFACE: | ||
653 | /* jmb38x_ms_reset(host); */ | ||
654 | |||
655 | host_ctl = readl(host->addr + HOST_CONTROL); | ||
656 | host_ctl &= ~(3 << HOST_CONTROL_IF_SHIFT); | ||
657 | /* host_ctl |= 7; */ | ||
658 | |||
659 | if (value == MEMSTICK_SERIAL) { | ||
660 | host_ctl &= ~HOST_CONTROL_FAST_CLK; | ||
661 | host_ctl |= HOST_CONTROL_IF_SERIAL | ||
662 | << HOST_CONTROL_IF_SHIFT; | ||
663 | host_ctl |= HOST_CONTROL_REI; | ||
664 | writel(0, host->addr + CLOCK_DELAY); | ||
665 | } else if (value == MEMSTICK_PAR4) { | ||
666 | host_ctl |= HOST_CONTROL_FAST_CLK; | ||
667 | host_ctl |= HOST_CONTROL_IF_PAR4 | ||
668 | << HOST_CONTROL_IF_SHIFT; | ||
669 | host_ctl &= ~HOST_CONTROL_REI; | ||
670 | writel(4, host->addr + CLOCK_DELAY); | ||
671 | } else if (value == MEMSTICK_PAR8) { | ||
672 | host_ctl |= HOST_CONTROL_FAST_CLK; | ||
673 | host_ctl |= HOST_CONTROL_IF_PAR8 | ||
674 | << HOST_CONTROL_IF_SHIFT; | ||
675 | host_ctl &= ~HOST_CONTROL_REI; | ||
676 | writel(4, host->addr + CLOCK_DELAY); | ||
677 | } | ||
678 | writel(host_ctl, host->addr + HOST_CONTROL); | ||
679 | break; | ||
680 | }; | ||
681 | |||
682 | spin_unlock_irqrestore(&host->lock, flags); | ||
683 | } | ||
684 | |||
685 | #ifdef CONFIG_PM | ||
686 | |||
687 | static int jmb38x_ms_suspend(struct pci_dev *dev, pm_message_t state) | ||
688 | { | ||
689 | struct jmb38x_ms *jm = pci_get_drvdata(dev); | ||
690 | int cnt; | ||
691 | |||
692 | for (cnt = 0; cnt < jm->host_cnt; ++cnt) { | ||
693 | if (!jm->hosts[cnt]) | ||
694 | break; | ||
695 | memstick_suspend_host(jm->hosts[cnt]); | ||
696 | } | ||
697 | |||
698 | pci_save_state(dev); | ||
699 | pci_enable_wake(dev, pci_choose_state(dev, state), 0); | ||
700 | pci_disable_device(dev); | ||
701 | pci_set_power_state(dev, pci_choose_state(dev, state)); | ||
702 | return 0; | ||
703 | } | ||
704 | |||
705 | static int jmb38x_ms_resume(struct pci_dev *dev) | ||
706 | { | ||
707 | struct jmb38x_ms *jm = pci_get_drvdata(dev); | ||
708 | int rc; | ||
709 | |||
710 | pci_set_power_state(dev, PCI_D0); | ||
711 | pci_restore_state(dev); | ||
712 | rc = pci_enable_device(dev); | ||
713 | if (rc) | ||
714 | return rc; | ||
715 | pci_set_master(dev); | ||
716 | |||
717 | pci_read_config_dword(dev, 0xac, &rc); | ||
718 | pci_write_config_dword(dev, 0xac, rc | 0x00470000); | ||
719 | |||
720 | for (rc = 0; rc < jm->host_cnt; ++rc) { | ||
721 | if (!jm->hosts[rc]) | ||
722 | break; | ||
723 | memstick_resume_host(jm->hosts[rc]); | ||
724 | memstick_detect_change(jm->hosts[rc]); | ||
725 | } | ||
726 | |||
727 | return 0; | ||
728 | } | ||
729 | |||
730 | #else | ||
731 | |||
732 | #define jmb38x_ms_suspend NULL | ||
733 | #define jmb38x_ms_resume NULL | ||
734 | |||
735 | #endif /* CONFIG_PM */ | ||
736 | |||
737 | static int jmb38x_ms_count_slots(struct pci_dev *pdev) | ||
738 | { | ||
739 | int cnt, rc = 0; | ||
740 | |||
741 | for (cnt = 0; cnt < PCI_ROM_RESOURCE; ++cnt) { | ||
742 | if (!(IORESOURCE_MEM & pci_resource_flags(pdev, cnt))) | ||
743 | break; | ||
744 | |||
745 | if (256 != pci_resource_len(pdev, cnt)) | ||
746 | break; | ||
747 | |||
748 | ++rc; | ||
749 | } | ||
750 | return rc; | ||
751 | } | ||
752 | |||
753 | static struct memstick_host *jmb38x_ms_alloc_host(struct jmb38x_ms *jm, int cnt) | ||
754 | { | ||
755 | struct memstick_host *msh; | ||
756 | struct jmb38x_ms_host *host; | ||
757 | |||
758 | msh = memstick_alloc_host(sizeof(struct jmb38x_ms_host), | ||
759 | &jm->pdev->dev); | ||
760 | if (!msh) | ||
761 | return NULL; | ||
762 | |||
763 | host = memstick_priv(msh); | ||
764 | host->chip = jm; | ||
765 | host->addr = ioremap(pci_resource_start(jm->pdev, cnt), | ||
766 | pci_resource_len(jm->pdev, cnt)); | ||
767 | if (!host->addr) | ||
768 | goto err_out_free; | ||
769 | |||
770 | spin_lock_init(&host->lock); | ||
771 | host->id = cnt; | ||
772 | snprintf(host->host_id, DEVICE_ID_SIZE, DRIVER_NAME ":slot%d", | ||
773 | host->id); | ||
774 | host->irq = jm->pdev->irq; | ||
775 | host->timeout_jiffies = msecs_to_jiffies(4000); | ||
776 | msh->request = jmb38x_ms_request; | ||
777 | msh->set_param = jmb38x_ms_set_param; | ||
778 | /* | ||
779 | msh->caps = MEMSTICK_CAP_AUTO_GET_INT | MEMSTICK_CAP_PAR4 | ||
780 | | MEMSTICK_CAP_PAR8; | ||
781 | */ | ||
782 | msh->caps = MEMSTICK_CAP_PAR4 | MEMSTICK_CAP_PAR8; | ||
783 | |||
784 | setup_timer(&host->timer, jmb38x_ms_abort, (unsigned long)msh); | ||
785 | |||
786 | if (!request_irq(host->irq, jmb38x_ms_isr, IRQF_SHARED, host->host_id, | ||
787 | msh)) | ||
788 | return msh; | ||
789 | |||
790 | iounmap(host->addr); | ||
791 | err_out_free: | ||
792 | kfree(msh); | ||
793 | return NULL; | ||
794 | } | ||
795 | |||
796 | static void jmb38x_ms_free_host(struct memstick_host *msh) | ||
797 | { | ||
798 | struct jmb38x_ms_host *host = memstick_priv(msh); | ||
799 | |||
800 | free_irq(host->irq, msh); | ||
801 | iounmap(host->addr); | ||
802 | memstick_free_host(msh); | ||
803 | } | ||
804 | |||
805 | static int jmb38x_ms_probe(struct pci_dev *pdev, | ||
806 | const struct pci_device_id *dev_id) | ||
807 | { | ||
808 | struct jmb38x_ms *jm; | ||
809 | int pci_dev_busy = 0; | ||
810 | int rc, cnt; | ||
811 | |||
812 | rc = pci_set_dma_mask(pdev, DMA_32BIT_MASK); | ||
813 | if (rc) | ||
814 | return rc; | ||
815 | |||
816 | rc = pci_enable_device(pdev); | ||
817 | if (rc) | ||
818 | return rc; | ||
819 | |||
820 | pci_set_master(pdev); | ||
821 | |||
822 | rc = pci_request_regions(pdev, DRIVER_NAME); | ||
823 | if (rc) { | ||
824 | pci_dev_busy = 1; | ||
825 | goto err_out; | ||
826 | } | ||
827 | |||
828 | pci_read_config_dword(pdev, 0xac, &rc); | ||
829 | pci_write_config_dword(pdev, 0xac, rc | 0x00470000); | ||
830 | |||
831 | cnt = jmb38x_ms_count_slots(pdev); | ||
832 | if (!cnt) { | ||
833 | rc = -ENODEV; | ||
834 | pci_dev_busy = 1; | ||
835 | goto err_out; | ||
836 | } | ||
837 | |||
838 | jm = kzalloc(sizeof(struct jmb38x_ms) | ||
839 | + cnt * sizeof(struct memstick_host *), GFP_KERNEL); | ||
840 | if (!jm) { | ||
841 | rc = -ENOMEM; | ||
842 | goto err_out_int; | ||
843 | } | ||
844 | |||
845 | jm->pdev = pdev; | ||
846 | jm->host_cnt = cnt; | ||
847 | pci_set_drvdata(pdev, jm); | ||
848 | |||
849 | for (cnt = 0; cnt < jm->host_cnt; ++cnt) { | ||
850 | jm->hosts[cnt] = jmb38x_ms_alloc_host(jm, cnt); | ||
851 | if (!jm->hosts[cnt]) | ||
852 | break; | ||
853 | |||
854 | rc = memstick_add_host(jm->hosts[cnt]); | ||
855 | |||
856 | if (rc) { | ||
857 | jmb38x_ms_free_host(jm->hosts[cnt]); | ||
858 | jm->hosts[cnt] = NULL; | ||
859 | break; | ||
860 | } | ||
861 | } | ||
862 | |||
863 | if (cnt) | ||
864 | return 0; | ||
865 | |||
866 | rc = -ENODEV; | ||
867 | |||
868 | pci_set_drvdata(pdev, NULL); | ||
869 | kfree(jm); | ||
870 | err_out_int: | ||
871 | pci_release_regions(pdev); | ||
872 | err_out: | ||
873 | if (!pci_dev_busy) | ||
874 | pci_disable_device(pdev); | ||
875 | return rc; | ||
876 | } | ||
877 | |||
878 | static void jmb38x_ms_remove(struct pci_dev *dev) | ||
879 | { | ||
880 | struct jmb38x_ms *jm = pci_get_drvdata(dev); | ||
881 | struct jmb38x_ms_host *host; | ||
882 | int cnt; | ||
883 | unsigned long flags; | ||
884 | |||
885 | for (cnt = 0; cnt < jm->host_cnt; ++cnt) { | ||
886 | if (!jm->hosts[cnt]) | ||
887 | break; | ||
888 | |||
889 | host = memstick_priv(jm->hosts[cnt]); | ||
890 | |||
891 | writel(0, host->addr + INT_SIGNAL_ENABLE); | ||
892 | writel(0, host->addr + INT_STATUS_ENABLE); | ||
893 | mmiowb(); | ||
894 | dev_dbg(&jm->pdev->dev, "interrupts off\n"); | ||
895 | spin_lock_irqsave(&host->lock, flags); | ||
896 | if (host->req) { | ||
897 | host->req->error = -ETIME; | ||
898 | jmb38x_ms_complete_cmd(jm->hosts[cnt], 1); | ||
899 | } | ||
900 | spin_unlock_irqrestore(&host->lock, flags); | ||
901 | |||
902 | memstick_remove_host(jm->hosts[cnt]); | ||
903 | dev_dbg(&jm->pdev->dev, "host removed\n"); | ||
904 | |||
905 | jmb38x_ms_free_host(jm->hosts[cnt]); | ||
906 | } | ||
907 | |||
908 | pci_set_drvdata(dev, NULL); | ||
909 | pci_release_regions(dev); | ||
910 | pci_disable_device(dev); | ||
911 | kfree(jm); | ||
912 | } | ||
913 | |||
914 | static struct pci_device_id jmb38x_ms_id_tbl [] = { | ||
915 | { PCI_VENDOR_ID_JMICRON, PCI_DEVICE_ID_JMICRON_JMB38X_MS, PCI_ANY_ID, | ||
916 | PCI_ANY_ID, 0, 0, 0 }, | ||
917 | { } | ||
918 | }; | ||
919 | |||
920 | static struct pci_driver jmb38x_ms_driver = { | ||
921 | .name = DRIVER_NAME, | ||
922 | .id_table = jmb38x_ms_id_tbl, | ||
923 | .probe = jmb38x_ms_probe, | ||
924 | .remove = jmb38x_ms_remove, | ||
925 | .suspend = jmb38x_ms_suspend, | ||
926 | .resume = jmb38x_ms_resume | ||
927 | }; | ||
928 | |||
929 | static int __init jmb38x_ms_init(void) | ||
930 | { | ||
931 | return pci_register_driver(&jmb38x_ms_driver); | ||
932 | } | ||
933 | |||
934 | static void __exit jmb38x_ms_exit(void) | ||
935 | { | ||
936 | pci_unregister_driver(&jmb38x_ms_driver); | ||
937 | } | ||
938 | |||
939 | MODULE_AUTHOR("Alex Dubov"); | ||
940 | MODULE_DESCRIPTION("JMicron jmb38x MemoryStick driver"); | ||
941 | MODULE_LICENSE("GPL"); | ||
942 | MODULE_DEVICE_TABLE(pci, jmb38x_ms_id_tbl); | ||
943 | |||
944 | module_init(jmb38x_ms_init); | ||
945 | module_exit(jmb38x_ms_exit); | ||
diff --git a/drivers/memstick/host/tifm_ms.c b/drivers/memstick/host/tifm_ms.c index 4fb24215bd..2b5bf52a83 100644 --- a/drivers/memstick/host/tifm_ms.c +++ b/drivers/memstick/host/tifm_ms.c | |||
@@ -20,293 +20,315 @@ | |||
20 | #include <asm/io.h> | 20 | #include <asm/io.h> |
21 | 21 | ||
22 | #define DRIVER_NAME "tifm_ms" | 22 | #define DRIVER_NAME "tifm_ms" |
23 | #define DRIVER_VERSION "0.1" | ||
24 | 23 | ||
25 | static int no_dma; | 24 | static int no_dma; |
26 | module_param(no_dma, bool, 0644); | 25 | module_param(no_dma, bool, 0644); |
27 | 26 | ||
28 | #define TIFM_MS_TIMEOUT 0x00100 | 27 | /* |
29 | #define TIFM_MS_BADCRC 0x00200 | 28 | * Some control bits of TIFM appear to conform to Sony's reference design, |
30 | #define TIFM_MS_EOTPC 0x01000 | 29 | * so I'm just assuming they all are. |
31 | #define TIFM_MS_INT 0x02000 | 30 | */ |
32 | |||
33 | /* The meaning of the bit majority in this constant is unknown. */ | ||
34 | #define TIFM_MS_SERIAL 0x04010 | ||
35 | 31 | ||
36 | #define TIFM_MS_SYS_LATCH 0x00100 | 32 | #define TIFM_MS_STAT_DRQ 0x04000 |
37 | #define TIFM_MS_SYS_NOT_RDY 0x00800 | 33 | #define TIFM_MS_STAT_MSINT 0x02000 |
38 | #define TIFM_MS_SYS_DATA 0x10000 | 34 | #define TIFM_MS_STAT_RDY 0x01000 |
35 | #define TIFM_MS_STAT_CRC 0x00200 | ||
36 | #define TIFM_MS_STAT_TOE 0x00100 | ||
37 | #define TIFM_MS_STAT_EMP 0x00020 | ||
38 | #define TIFM_MS_STAT_FUL 0x00010 | ||
39 | #define TIFM_MS_STAT_CED 0x00008 | ||
40 | #define TIFM_MS_STAT_ERR 0x00004 | ||
41 | #define TIFM_MS_STAT_BRQ 0x00002 | ||
42 | #define TIFM_MS_STAT_CNK 0x00001 | ||
43 | |||
44 | #define TIFM_MS_SYS_DMA 0x10000 | ||
45 | #define TIFM_MS_SYS_RESET 0x08000 | ||
46 | #define TIFM_MS_SYS_SRAC 0x04000 | ||
47 | #define TIFM_MS_SYS_INTEN 0x02000 | ||
48 | #define TIFM_MS_SYS_NOCRC 0x01000 | ||
49 | #define TIFM_MS_SYS_INTCLR 0x00800 | ||
50 | #define TIFM_MS_SYS_MSIEN 0x00400 | ||
51 | #define TIFM_MS_SYS_FCLR 0x00200 | ||
52 | #define TIFM_MS_SYS_FDIR 0x00100 | ||
53 | #define TIFM_MS_SYS_DAM 0x00080 | ||
54 | #define TIFM_MS_SYS_DRM 0x00040 | ||
55 | #define TIFM_MS_SYS_DRQSL 0x00020 | ||
56 | #define TIFM_MS_SYS_REI 0x00010 | ||
57 | #define TIFM_MS_SYS_REO 0x00008 | ||
58 | #define TIFM_MS_SYS_BSY_MASK 0x00007 | ||
59 | |||
60 | #define TIFM_MS_SYS_FIFO (TIFM_MS_SYS_INTEN | TIFM_MS_SYS_MSIEN \ | ||
61 | | TIFM_MS_SYS_FCLR | TIFM_MS_SYS_BSY_MASK) | ||
39 | 62 | ||
40 | /* Hardware flags */ | 63 | /* Hardware flags */ |
41 | enum { | 64 | enum { |
42 | CMD_READY = 0x0001, | 65 | CMD_READY = 0x01, |
43 | FIFO_READY = 0x0002, | 66 | FIFO_READY = 0x02, |
44 | CARD_READY = 0x0004, | 67 | CARD_INT = 0x04 |
45 | DATA_CARRY = 0x0008 | ||
46 | }; | 68 | }; |
47 | 69 | ||
48 | struct tifm_ms { | 70 | struct tifm_ms { |
49 | struct tifm_dev *dev; | 71 | struct tifm_dev *dev; |
50 | unsigned short eject:1, | 72 | struct timer_list timer; |
51 | no_dma:1; | 73 | struct memstick_request *req; |
52 | unsigned short cmd_flags; | ||
53 | unsigned int mode_mask; | 74 | unsigned int mode_mask; |
54 | unsigned int block_pos; | 75 | unsigned int block_pos; |
55 | unsigned long timeout_jiffies; | 76 | unsigned long timeout_jiffies; |
56 | 77 | unsigned char eject:1, | |
57 | struct timer_list timer; | 78 | use_dma:1; |
58 | struct memstick_request *req; | 79 | unsigned char cmd_flags; |
80 | unsigned char io_pos; | ||
59 | unsigned int io_word; | 81 | unsigned int io_word; |
60 | }; | 82 | }; |
61 | 83 | ||
62 | static void tifm_ms_read_fifo(struct tifm_ms *host, unsigned int fifo_offset, | 84 | static unsigned int tifm_ms_read_data(struct tifm_ms *host, |
63 | struct page *pg, unsigned int page_off, | 85 | unsigned char *buf, unsigned int length) |
64 | unsigned int length) | ||
65 | { | 86 | { |
66 | struct tifm_dev *sock = host->dev; | 87 | struct tifm_dev *sock = host->dev; |
67 | unsigned int cnt = 0, off = 0; | 88 | unsigned int off = 0; |
68 | unsigned char *buf = kmap_atomic(pg, KM_BIO_DST_IRQ) + page_off; | 89 | |
90 | while (host->io_pos && length) { | ||
91 | buf[off++] = host->io_word & 0xff; | ||
92 | host->io_word >>= 8; | ||
93 | length--; | ||
94 | host->io_pos--; | ||
95 | } | ||
69 | 96 | ||
70 | if (host->cmd_flags & DATA_CARRY) { | 97 | if (!length) |
71 | while ((fifo_offset & 3) && length) { | 98 | return off; |
99 | |||
100 | while (!(TIFM_MS_STAT_EMP & readl(sock->addr + SOCK_MS_STATUS))) { | ||
101 | if (length < 4) | ||
102 | break; | ||
103 | *(unsigned int *)(buf + off) = __raw_readl(sock->addr | ||
104 | + SOCK_MS_DATA); | ||
105 | length -= 4; | ||
106 | off += 4; | ||
107 | } | ||
108 | |||
109 | if (length | ||
110 | && !(TIFM_MS_STAT_EMP & readl(sock->addr + SOCK_MS_STATUS))) { | ||
111 | host->io_word = readl(sock->addr + SOCK_MS_DATA); | ||
112 | for (host->io_pos = 4; host->io_pos; --host->io_pos) { | ||
72 | buf[off++] = host->io_word & 0xff; | 113 | buf[off++] = host->io_word & 0xff; |
73 | host->io_word >>= 8; | 114 | host->io_word >>= 8; |
74 | length--; | 115 | length--; |
75 | fifo_offset++; | 116 | if (!length) |
117 | break; | ||
76 | } | 118 | } |
77 | if (!(fifo_offset & 3)) | ||
78 | host->cmd_flags &= ~DATA_CARRY; | ||
79 | if (!length) | ||
80 | return; | ||
81 | } | 119 | } |
82 | 120 | ||
83 | do { | 121 | return off; |
84 | host->io_word = readl(sock->addr + SOCK_FIFO_ACCESS | ||
85 | + fifo_offset); | ||
86 | cnt = 4; | ||
87 | while (length && cnt) { | ||
88 | buf[off++] = (host->io_word >> 8) & 0xff; | ||
89 | cnt--; | ||
90 | length--; | ||
91 | } | ||
92 | fifo_offset += 4 - cnt; | ||
93 | } while (length); | ||
94 | |||
95 | if (cnt) | ||
96 | host->cmd_flags |= DATA_CARRY; | ||
97 | |||
98 | kunmap_atomic(buf - page_off, KM_BIO_DST_IRQ); | ||
99 | } | 122 | } |
100 | 123 | ||
101 | static void tifm_ms_write_fifo(struct tifm_ms *host, unsigned int fifo_offset, | 124 | static unsigned int tifm_ms_write_data(struct tifm_ms *host, |
102 | struct page *pg, unsigned int page_off, | 125 | unsigned char *buf, unsigned int length) |
103 | unsigned int length) | ||
104 | { | 126 | { |
105 | struct tifm_dev *sock = host->dev; | 127 | struct tifm_dev *sock = host->dev; |
106 | unsigned int cnt = 0, off = 0; | 128 | unsigned int off = 0; |
107 | unsigned char *buf = kmap_atomic(pg, KM_BIO_SRC_IRQ) + page_off; | ||
108 | 129 | ||
109 | if (host->cmd_flags & DATA_CARRY) { | 130 | if (host->io_pos) { |
110 | while (fifo_offset & 3) { | 131 | while (host->io_pos < 4 && length) { |
111 | host->io_word |= buf[off++] << (8 * (fifo_offset & 3)); | 132 | host->io_word |= buf[off++] << (host->io_pos * 8); |
133 | host->io_pos++; | ||
112 | length--; | 134 | length--; |
113 | fifo_offset++; | ||
114 | } | 135 | } |
115 | if (!(fifo_offset & 3)) { | ||
116 | writel(host->io_word, sock->addr + SOCK_FIFO_ACCESS | ||
117 | + fifo_offset - 4); | ||
118 | |||
119 | host->cmd_flags &= ~DATA_CARRY; | ||
120 | } | ||
121 | if (!length) | ||
122 | return; | ||
123 | } | 136 | } |
124 | 137 | ||
125 | do { | 138 | if (host->io_pos == 4 |
126 | cnt = 4; | 139 | && !(TIFM_MS_STAT_FUL & readl(sock->addr + SOCK_MS_STATUS))) { |
140 | writel(TIFM_MS_SYS_FDIR | readl(sock->addr + SOCK_MS_SYSTEM), | ||
141 | sock->addr + SOCK_MS_SYSTEM); | ||
142 | writel(host->io_word, sock->addr + SOCK_MS_DATA); | ||
143 | host->io_pos = 0; | ||
127 | host->io_word = 0; | 144 | host->io_word = 0; |
128 | while (length && cnt) { | 145 | } else if (host->io_pos) { |
129 | host->io_word |= buf[off++] << (4 - cnt); | 146 | return off; |
130 | cnt--; | 147 | } |
131 | length--; | ||
132 | } | ||
133 | fifo_offset += 4 - cnt; | ||
134 | if (!cnt) | ||
135 | writel(host->io_word, sock->addr + SOCK_FIFO_ACCESS | ||
136 | + fifo_offset - 4); | ||
137 | |||
138 | } while (length); | ||
139 | |||
140 | if (cnt) | ||
141 | host->cmd_flags |= DATA_CARRY; | ||
142 | 148 | ||
143 | kunmap_atomic(buf - page_off, KM_BIO_SRC_IRQ); | 149 | if (!length) |
144 | } | 150 | return off; |
145 | 151 | ||
146 | static void tifm_ms_move_block(struct tifm_ms *host, unsigned int length) | 152 | while (!(TIFM_MS_STAT_FUL & readl(sock->addr + SOCK_MS_STATUS))) { |
147 | { | 153 | if (length < 4) |
148 | unsigned int t_size; | 154 | break; |
149 | unsigned int off = host->req->sg.offset + host->block_pos; | 155 | writel(TIFM_MS_SYS_FDIR | readl(sock->addr + SOCK_MS_SYSTEM), |
150 | unsigned int p_off, p_cnt; | 156 | sock->addr + SOCK_MS_SYSTEM); |
151 | struct page *pg; | 157 | __raw_writel(*(unsigned int *)(buf + off), |
152 | unsigned long flags; | 158 | sock->addr + SOCK_MS_DATA); |
159 | length -= 4; | ||
160 | off += 4; | ||
161 | } | ||
153 | 162 | ||
154 | dev_dbg(&host->dev->dev, "moving block\n"); | 163 | switch (length) { |
155 | local_irq_save(flags); | 164 | case 3: |
156 | t_size = length; | 165 | host->io_word |= buf[off + 2] << 16; |
157 | while (t_size) { | 166 | host->io_pos++; |
158 | pg = nth_page(sg_page(&host->req->sg), off >> PAGE_SHIFT); | 167 | case 2: |
159 | p_off = offset_in_page(off); | 168 | host->io_word |= buf[off + 1] << 8; |
160 | p_cnt = PAGE_SIZE - p_off; | 169 | host->io_pos++; |
161 | p_cnt = min(p_cnt, t_size); | 170 | case 1: |
171 | host->io_word |= buf[off]; | ||
172 | host->io_pos++; | ||
173 | } | ||
162 | 174 | ||
163 | if (host->req->data_dir == WRITE) | 175 | off += host->io_pos; |
164 | tifm_ms_write_fifo(host, length - t_size, | ||
165 | pg, p_off, p_cnt); | ||
166 | else | ||
167 | tifm_ms_read_fifo(host, length - t_size, | ||
168 | pg, p_off, p_cnt); | ||
169 | 176 | ||
170 | t_size -= p_cnt; | 177 | return off; |
171 | } | ||
172 | local_irq_restore(flags); | ||
173 | } | 178 | } |
174 | 179 | ||
175 | static int tifm_ms_transfer_data(struct tifm_ms *host, int skip) | 180 | static unsigned int tifm_ms_transfer_data(struct tifm_ms *host) |
176 | { | 181 | { |
177 | struct tifm_dev *sock = host->dev; | 182 | struct tifm_dev *sock = host->dev; |
178 | unsigned int length = host->req->sg.length - host->block_pos; | 183 | unsigned int length; |
184 | unsigned int off; | ||
185 | unsigned int t_size, p_off, p_cnt; | ||
186 | unsigned char *buf; | ||
187 | struct page *pg; | ||
188 | unsigned long flags = 0; | ||
189 | |||
190 | if (host->req->long_data) { | ||
191 | length = host->req->sg.length - host->block_pos; | ||
192 | off = host->req->sg.offset + host->block_pos; | ||
193 | } else { | ||
194 | length = host->req->data_len - host->block_pos; | ||
195 | off = 0; | ||
196 | } | ||
197 | dev_dbg(&sock->dev, "fifo data transfer, %d, %d\n", length, | ||
198 | host->block_pos); | ||
199 | |||
200 | while (length) { | ||
201 | if (host->req->long_data) { | ||
202 | pg = nth_page(sg_page(&host->req->sg), | ||
203 | off >> PAGE_SHIFT); | ||
204 | p_off = offset_in_page(off); | ||
205 | p_cnt = PAGE_SIZE - p_off; | ||
206 | p_cnt = min(p_cnt, length); | ||
207 | |||
208 | local_irq_save(flags); | ||
209 | buf = kmap_atomic(pg, KM_BIO_SRC_IRQ) + p_off; | ||
210 | } else { | ||
211 | buf = host->req->data + host->block_pos; | ||
212 | p_cnt = host->req->data_len - host->block_pos; | ||
213 | } | ||
179 | 214 | ||
180 | if (!length) | 215 | t_size = host->req->data_dir == WRITE |
181 | return 1; | 216 | ? tifm_ms_write_data(host, buf, p_cnt) |
217 | : tifm_ms_read_data(host, buf, p_cnt); | ||
182 | 218 | ||
183 | if (length > TIFM_FIFO_SIZE) | 219 | if (host->req->long_data) { |
184 | length = TIFM_FIFO_SIZE; | 220 | kunmap_atomic(buf - p_off, KM_BIO_SRC_IRQ); |
221 | local_irq_restore(flags); | ||
222 | } | ||
185 | 223 | ||
186 | if (!skip) { | 224 | if (!t_size) |
187 | tifm_ms_move_block(host, length); | 225 | break; |
188 | host->block_pos += length; | 226 | host->block_pos += t_size; |
227 | length -= t_size; | ||
228 | off += t_size; | ||
189 | } | 229 | } |
190 | 230 | ||
191 | if ((host->req->data_dir == READ) | 231 | dev_dbg(&sock->dev, "fifo data transfer, %d remaining\n", length); |
192 | && (host->block_pos == host->req->sg.length)) | 232 | if (!length && (host->req->data_dir == WRITE)) { |
193 | return 1; | 233 | if (host->io_pos) { |
194 | 234 | writel(TIFM_MS_SYS_FDIR | |
195 | writel(ilog2(length) - 2, sock->addr + SOCK_FIFO_PAGE_SIZE); | 235 | | readl(sock->addr + SOCK_MS_SYSTEM), |
196 | if (host->req->data_dir == WRITE) | 236 | sock->addr + SOCK_MS_SYSTEM); |
197 | writel((1 << 8) | TIFM_DMA_TX, sock->addr + SOCK_DMA_CONTROL); | 237 | writel(host->io_word, sock->addr + SOCK_MS_DATA); |
198 | else | 238 | } |
199 | writel((1 << 8), sock->addr + SOCK_DMA_CONTROL); | 239 | writel(TIFM_MS_SYS_FDIR |
240 | | readl(sock->addr + SOCK_MS_SYSTEM), | ||
241 | sock->addr + SOCK_MS_SYSTEM); | ||
242 | writel(0, sock->addr + SOCK_MS_DATA); | ||
243 | } else { | ||
244 | readl(sock->addr + SOCK_MS_DATA); | ||
245 | } | ||
200 | 246 | ||
201 | return 0; | 247 | return length; |
202 | } | 248 | } |
203 | 249 | ||
204 | static int tifm_ms_issue_cmd(struct tifm_ms *host) | 250 | static int tifm_ms_issue_cmd(struct tifm_ms *host) |
205 | { | 251 | { |
206 | struct tifm_dev *sock = host->dev; | 252 | struct tifm_dev *sock = host->dev; |
207 | unsigned char *data; | 253 | unsigned char *data; |
208 | unsigned int data_len = 0, cmd = 0, cmd_mask = 0, cnt, tval = 0; | 254 | unsigned int data_len, cmd, sys_param; |
209 | 255 | ||
210 | host->cmd_flags = 0; | 256 | host->cmd_flags = 0; |
257 | host->block_pos = 0; | ||
258 | host->io_pos = 0; | ||
259 | host->io_word = 0; | ||
260 | host->cmd_flags = 0; | ||
211 | 261 | ||
212 | if (host->req->io_type == MEMSTICK_IO_SG) { | 262 | data = host->req->data; |
213 | if (!host->no_dma) { | ||
214 | if (1 != tifm_map_sg(sock, &host->req->sg, 1, | ||
215 | host->req->data_dir == READ | ||
216 | ? PCI_DMA_FROMDEVICE | ||
217 | : PCI_DMA_TODEVICE)) { | ||
218 | host->req->error = -ENOMEM; | ||
219 | return host->req->error; | ||
220 | } | ||
221 | data_len = sg_dma_len(&host->req->sg); | ||
222 | } else | ||
223 | data_len = host->req->sg.length; | ||
224 | |||
225 | writel(TIFM_FIFO_INT_SETALL, | ||
226 | sock->addr + SOCK_DMA_FIFO_INT_ENABLE_CLEAR); | ||
227 | writel(TIFM_FIFO_ENABLE, | ||
228 | sock->addr + SOCK_FIFO_CONTROL); | ||
229 | writel(TIFM_FIFO_INTMASK, | ||
230 | sock->addr + SOCK_DMA_FIFO_INT_ENABLE_SET); | ||
231 | 263 | ||
232 | if (!host->no_dma) { | 264 | host->use_dma = !no_dma; |
233 | writel(ilog2(data_len) - 2, | ||
234 | sock->addr + SOCK_FIFO_PAGE_SIZE); | ||
235 | writel(sg_dma_address(&host->req->sg), | ||
236 | sock->addr + SOCK_DMA_ADDRESS); | ||
237 | if (host->req->data_dir == WRITE) | ||
238 | writel((1 << 8) | TIFM_DMA_TX | TIFM_DMA_EN, | ||
239 | sock->addr + SOCK_DMA_CONTROL); | ||
240 | else | ||
241 | writel((1 << 8) | TIFM_DMA_EN, | ||
242 | sock->addr + SOCK_DMA_CONTROL); | ||
243 | } else { | ||
244 | tifm_ms_transfer_data(host, | ||
245 | host->req->data_dir == READ); | ||
246 | } | ||
247 | 265 | ||
248 | cmd_mask = readl(sock->addr + SOCK_MS_SYSTEM); | 266 | if (host->req->long_data) { |
249 | cmd_mask |= TIFM_MS_SYS_DATA | TIFM_MS_SYS_NOT_RDY; | 267 | data_len = host->req->sg.length; |
250 | writel(cmd_mask, sock->addr + SOCK_MS_SYSTEM); | 268 | if (!is_power_of_2(data_len)) |
251 | } else if (host->req->io_type == MEMSTICK_IO_VAL) { | 269 | host->use_dma = 0; |
252 | data = host->req->data; | 270 | } else { |
253 | data_len = host->req->data_len; | 271 | data_len = host->req->data_len; |
272 | host->use_dma = 0; | ||
273 | } | ||
254 | 274 | ||
255 | cmd_mask = host->mode_mask | 0x2607; /* unknown constant */ | 275 | writel(TIFM_FIFO_INT_SETALL, |
256 | 276 | sock->addr + SOCK_DMA_FIFO_INT_ENABLE_CLEAR); | |
257 | if (host->req->data_dir == WRITE) { | 277 | writel(TIFM_FIFO_ENABLE, |
258 | cmd_mask |= TIFM_MS_SYS_LATCH; | 278 | sock->addr + SOCK_FIFO_CONTROL); |
259 | writel(cmd_mask, sock->addr + SOCK_MS_SYSTEM); | 279 | |
260 | for (cnt = 0; (data_len - cnt) >= 4; cnt += 4) { | 280 | if (host->use_dma) { |
261 | writel(TIFM_MS_SYS_LATCH | 281 | if (1 != tifm_map_sg(sock, &host->req->sg, 1, |
262 | | readl(sock->addr + SOCK_MS_SYSTEM), | 282 | host->req->data_dir == READ |
263 | sock->addr + SOCK_MS_SYSTEM); | 283 | ? PCI_DMA_FROMDEVICE |
264 | __raw_writel(*(unsigned int *)(data + cnt), | 284 | : PCI_DMA_TODEVICE)) { |
265 | sock->addr + SOCK_MS_DATA); | 285 | host->req->error = -ENOMEM; |
266 | dev_dbg(&sock->dev, "writing %x\n", | 286 | return host->req->error; |
267 | *(int *)(data + cnt)); | 287 | } |
268 | } | 288 | data_len = sg_dma_len(&host->req->sg); |
269 | switch (data_len - cnt) { | ||
270 | case 3: | ||
271 | tval |= data[cnt + 2] << 16; | ||
272 | case 2: | ||
273 | tval |= data[cnt + 1] << 8; | ||
274 | case 1: | ||
275 | tval |= data[cnt]; | ||
276 | writel(TIFM_MS_SYS_LATCH | ||
277 | | readl(sock->addr + SOCK_MS_SYSTEM), | ||
278 | sock->addr + SOCK_MS_SYSTEM); | ||
279 | writel(tval, sock->addr + SOCK_MS_DATA); | ||
280 | dev_dbg(&sock->dev, "writing %x\n", tval); | ||
281 | } | ||
282 | 289 | ||
283 | writel(TIFM_MS_SYS_LATCH | 290 | writel(ilog2(data_len) - 2, |
284 | | readl(sock->addr + SOCK_MS_SYSTEM), | 291 | sock->addr + SOCK_FIFO_PAGE_SIZE); |
285 | sock->addr + SOCK_MS_SYSTEM); | 292 | writel(TIFM_FIFO_INTMASK, |
286 | writel(0, sock->addr + SOCK_MS_DATA); | 293 | sock->addr + SOCK_DMA_FIFO_INT_ENABLE_SET); |
287 | dev_dbg(&sock->dev, "writing %x\n", 0); | 294 | sys_param = TIFM_DMA_EN | (1 << 8); |
295 | if (host->req->data_dir == WRITE) | ||
296 | sys_param |= TIFM_DMA_TX; | ||
297 | |||
298 | writel(TIFM_FIFO_INTMASK, | ||
299 | sock->addr + SOCK_DMA_FIFO_INT_ENABLE_SET); | ||
288 | 300 | ||
289 | } else | 301 | writel(sg_dma_address(&host->req->sg), |
290 | writel(cmd_mask, sock->addr + SOCK_MS_SYSTEM); | 302 | sock->addr + SOCK_DMA_ADDRESS); |
303 | writel(sys_param, sock->addr + SOCK_DMA_CONTROL); | ||
304 | } else { | ||
305 | writel(host->mode_mask | TIFM_MS_SYS_FIFO, | ||
306 | sock->addr + SOCK_MS_SYSTEM); | ||
291 | 307 | ||
292 | cmd_mask = readl(sock->addr + SOCK_MS_SYSTEM); | 308 | writel(TIFM_FIFO_MORE, |
293 | cmd_mask &= ~TIFM_MS_SYS_DATA; | 309 | sock->addr + SOCK_DMA_FIFO_INT_ENABLE_SET); |
294 | cmd_mask |= TIFM_MS_SYS_NOT_RDY; | 310 | } |
295 | dev_dbg(&sock->dev, "mask %x\n", cmd_mask); | ||
296 | writel(cmd_mask, sock->addr + SOCK_MS_SYSTEM); | ||
297 | } else | ||
298 | BUG(); | ||
299 | 311 | ||
300 | mod_timer(&host->timer, jiffies + host->timeout_jiffies); | 312 | mod_timer(&host->timer, jiffies + host->timeout_jiffies); |
301 | writel(TIFM_CTRL_LED | readl(sock->addr + SOCK_CONTROL), | 313 | writel(TIFM_CTRL_LED | readl(sock->addr + SOCK_CONTROL), |
302 | sock->addr + SOCK_CONTROL); | 314 | sock->addr + SOCK_CONTROL); |
303 | host->req->error = 0; | 315 | host->req->error = 0; |
304 | 316 | ||
317 | sys_param = readl(sock->addr + SOCK_MS_SYSTEM); | ||
318 | sys_param |= TIFM_MS_SYS_INTCLR; | ||
319 | |||
320 | if (host->use_dma) | ||
321 | sys_param |= TIFM_MS_SYS_DMA; | ||
322 | else | ||
323 | sys_param &= ~TIFM_MS_SYS_DMA; | ||
324 | |||
325 | writel(sys_param, sock->addr + SOCK_MS_SYSTEM); | ||
326 | |||
305 | cmd = (host->req->tpc & 0xf) << 12; | 327 | cmd = (host->req->tpc & 0xf) << 12; |
306 | cmd |= data_len; | 328 | cmd |= data_len; |
307 | writel(cmd, sock->addr + SOCK_MS_COMMAND); | 329 | writel(cmd, sock->addr + SOCK_MS_COMMAND); |
308 | 330 | ||
309 | dev_dbg(&sock->dev, "executing TPC %x, %x\n", cmd, cmd_mask); | 331 | dev_dbg(&sock->dev, "executing TPC %x, %x\n", cmd, sys_param); |
310 | return 0; | 332 | return 0; |
311 | } | 333 | } |
312 | 334 | ||
@@ -314,47 +336,20 @@ static void tifm_ms_complete_cmd(struct tifm_ms *host) | |||
314 | { | 336 | { |
315 | struct tifm_dev *sock = host->dev; | 337 | struct tifm_dev *sock = host->dev; |
316 | struct memstick_host *msh = tifm_get_drvdata(sock); | 338 | struct memstick_host *msh = tifm_get_drvdata(sock); |
317 | unsigned int tval = 0, data_len; | ||
318 | unsigned char *data; | ||
319 | int rc; | 339 | int rc; |
320 | 340 | ||
321 | del_timer(&host->timer); | 341 | del_timer(&host->timer); |
322 | if (host->req->io_type == MEMSTICK_IO_SG) { | ||
323 | if (!host->no_dma) | ||
324 | tifm_unmap_sg(sock, &host->req->sg, 1, | ||
325 | host->req->data_dir == READ | ||
326 | ? PCI_DMA_FROMDEVICE | ||
327 | : PCI_DMA_TODEVICE); | ||
328 | } else if (host->req->io_type == MEMSTICK_IO_VAL) { | ||
329 | writel(~TIFM_MS_SYS_DATA & readl(sock->addr + SOCK_MS_SYSTEM), | ||
330 | sock->addr + SOCK_MS_SYSTEM); | ||
331 | |||
332 | data = host->req->data; | ||
333 | data_len = host->req->data_len; | ||
334 | 342 | ||
335 | if (host->req->data_dir == READ) { | 343 | if (host->use_dma) |
336 | for (rc = 0; (data_len - rc) >= 4; rc += 4) | 344 | tifm_unmap_sg(sock, &host->req->sg, 1, |
337 | *(int *)(data + rc) | 345 | host->req->data_dir == READ |
338 | = __raw_readl(sock->addr | 346 | ? PCI_DMA_FROMDEVICE |
339 | + SOCK_MS_DATA); | 347 | : PCI_DMA_TODEVICE); |
340 | |||
341 | if (data_len - rc) | ||
342 | tval = readl(sock->addr + SOCK_MS_DATA); | ||
343 | switch (data_len - rc) { | ||
344 | case 3: | ||
345 | data[rc + 2] = (tval >> 16) & 0xff; | ||
346 | case 2: | ||
347 | data[rc + 1] = (tval >> 8) & 0xff; | ||
348 | case 1: | ||
349 | data[rc] = tval & 0xff; | ||
350 | } | ||
351 | readl(sock->addr + SOCK_MS_DATA); | ||
352 | } | ||
353 | } | ||
354 | 348 | ||
355 | writel((~TIFM_CTRL_LED) & readl(sock->addr + SOCK_CONTROL), | 349 | writel((~TIFM_CTRL_LED) & readl(sock->addr + SOCK_CONTROL), |
356 | sock->addr + SOCK_CONTROL); | 350 | sock->addr + SOCK_CONTROL); |
357 | 351 | ||
352 | dev_dbg(&sock->dev, "TPC complete\n"); | ||
358 | do { | 353 | do { |
359 | rc = memstick_next_req(msh, &host->req); | 354 | rc = memstick_next_req(msh, &host->req); |
360 | } while (!rc && tifm_ms_issue_cmd(host)); | 355 | } while (!rc && tifm_ms_issue_cmd(host)); |
@@ -365,11 +360,10 @@ static int tifm_ms_check_status(struct tifm_ms *host) | |||
365 | if (!host->req->error) { | 360 | if (!host->req->error) { |
366 | if (!(host->cmd_flags & CMD_READY)) | 361 | if (!(host->cmd_flags & CMD_READY)) |
367 | return 1; | 362 | return 1; |
368 | if ((host->req->io_type == MEMSTICK_IO_SG) | 363 | if (!(host->cmd_flags & FIFO_READY)) |
369 | && !(host->cmd_flags & FIFO_READY)) | ||
370 | return 1; | 364 | return 1; |
371 | if (host->req->need_card_int | 365 | if (host->req->need_card_int |
372 | && !(host->cmd_flags & CARD_READY)) | 366 | && !(host->cmd_flags & CARD_INT)) |
373 | return 1; | 367 | return 1; |
374 | } | 368 | } |
375 | return 0; | 369 | return 0; |
@@ -379,18 +373,24 @@ static int tifm_ms_check_status(struct tifm_ms *host) | |||
379 | static void tifm_ms_data_event(struct tifm_dev *sock) | 373 | static void tifm_ms_data_event(struct tifm_dev *sock) |
380 | { | 374 | { |
381 | struct tifm_ms *host; | 375 | struct tifm_ms *host; |
382 | unsigned int fifo_status = 0; | 376 | unsigned int fifo_status = 0, host_status = 0; |
383 | int rc = 1; | 377 | int rc = 1; |
384 | 378 | ||
385 | spin_lock(&sock->lock); | 379 | spin_lock(&sock->lock); |
386 | host = memstick_priv((struct memstick_host *)tifm_get_drvdata(sock)); | 380 | host = memstick_priv((struct memstick_host *)tifm_get_drvdata(sock)); |
387 | fifo_status = readl(sock->addr + SOCK_DMA_FIFO_STATUS); | 381 | fifo_status = readl(sock->addr + SOCK_DMA_FIFO_STATUS); |
388 | dev_dbg(&sock->dev, "data event: fifo_status %x, flags %x\n", | 382 | host_status = readl(sock->addr + SOCK_MS_STATUS); |
389 | fifo_status, host->cmd_flags); | 383 | dev_dbg(&sock->dev, |
384 | "data event: fifo_status %x, host_status %x, flags %x\n", | ||
385 | fifo_status, host_status, host->cmd_flags); | ||
390 | 386 | ||
391 | if (host->req) { | 387 | if (host->req) { |
392 | if (fifo_status & TIFM_FIFO_READY) { | 388 | if (host->use_dma && (fifo_status & 1)) { |
393 | if (!host->no_dma || tifm_ms_transfer_data(host, 0)) { | 389 | host->cmd_flags |= FIFO_READY; |
390 | rc = tifm_ms_check_status(host); | ||
391 | } | ||
392 | if (!host->use_dma && (fifo_status & TIFM_FIFO_MORE)) { | ||
393 | if (!tifm_ms_transfer_data(host)) { | ||
394 | host->cmd_flags |= FIFO_READY; | 394 | host->cmd_flags |= FIFO_READY; |
395 | rc = tifm_ms_check_status(host); | 395 | rc = tifm_ms_check_status(host); |
396 | } | 396 | } |
@@ -419,9 +419,9 @@ static void tifm_ms_card_event(struct tifm_dev *sock) | |||
419 | host_status, host->cmd_flags); | 419 | host_status, host->cmd_flags); |
420 | 420 | ||
421 | if (host->req) { | 421 | if (host->req) { |
422 | if (host_status & TIFM_MS_TIMEOUT) | 422 | if (host_status & TIFM_MS_STAT_TOE) |
423 | host->req->error = -ETIME; | 423 | host->req->error = -ETIME; |
424 | else if (host_status & TIFM_MS_BADCRC) | 424 | else if (host_status & TIFM_MS_STAT_CRC) |
425 | host->req->error = -EILSEQ; | 425 | host->req->error = -EILSEQ; |
426 | 426 | ||
427 | if (host->req->error) { | 427 | if (host->req->error) { |
@@ -430,18 +430,17 @@ static void tifm_ms_card_event(struct tifm_dev *sock) | |||
430 | writel(TIFM_DMA_RESET, sock->addr + SOCK_DMA_CONTROL); | 430 | writel(TIFM_DMA_RESET, sock->addr + SOCK_DMA_CONTROL); |
431 | } | 431 | } |
432 | 432 | ||
433 | if (host_status & TIFM_MS_EOTPC) | 433 | if (host_status & TIFM_MS_STAT_RDY) |
434 | host->cmd_flags |= CMD_READY; | 434 | host->cmd_flags |= CMD_READY; |
435 | if (host_status & TIFM_MS_INT) | 435 | |
436 | host->cmd_flags |= CARD_READY; | 436 | if (host_status & TIFM_MS_STAT_MSINT) |
437 | host->cmd_flags |= CARD_INT; | ||
437 | 438 | ||
438 | rc = tifm_ms_check_status(host); | 439 | rc = tifm_ms_check_status(host); |
439 | 440 | ||
440 | } | 441 | } |
441 | 442 | ||
442 | writel(TIFM_MS_SYS_NOT_RDY | readl(sock->addr + SOCK_MS_SYSTEM), | 443 | writel(TIFM_MS_SYS_INTCLR | readl(sock->addr + SOCK_MS_SYSTEM), |
443 | sock->addr + SOCK_MS_SYSTEM); | ||
444 | writel((~TIFM_MS_SYS_DATA) & readl(sock->addr + SOCK_MS_SYSTEM), | ||
445 | sock->addr + SOCK_MS_SYSTEM); | 444 | sock->addr + SOCK_MS_SYSTEM); |
446 | 445 | ||
447 | if (!rc) | 446 | if (!rc) |
@@ -497,15 +496,26 @@ static void tifm_ms_set_param(struct memstick_host *msh, | |||
497 | 496 | ||
498 | switch (param) { | 497 | switch (param) { |
499 | case MEMSTICK_POWER: | 498 | case MEMSTICK_POWER: |
500 | /* this is set by card detection mechanism */ | 499 | /* also affected by media detection mechanism */ |
500 | if (value == MEMSTICK_POWER_ON) { | ||
501 | host->mode_mask = TIFM_MS_SYS_SRAC | TIFM_MS_SYS_REI; | ||
502 | writel(TIFM_MS_SYS_RESET, sock->addr + SOCK_MS_SYSTEM); | ||
503 | writel(TIFM_MS_SYS_FCLR | TIFM_MS_SYS_INTCLR, | ||
504 | sock->addr + SOCK_MS_SYSTEM); | ||
505 | writel(0xffffffff, sock->addr + SOCK_MS_STATUS); | ||
506 | } else if (value == MEMSTICK_POWER_OFF) { | ||
507 | writel(TIFM_MS_SYS_FCLR | TIFM_MS_SYS_INTCLR, | ||
508 | sock->addr + SOCK_MS_SYSTEM); | ||
509 | writel(0xffffffff, sock->addr + SOCK_MS_STATUS); | ||
510 | } | ||
501 | break; | 511 | break; |
502 | case MEMSTICK_INTERFACE: | 512 | case MEMSTICK_INTERFACE: |
503 | if (value == MEMSTICK_SERIAL) { | 513 | if (value == MEMSTICK_SERIAL) { |
504 | host->mode_mask = TIFM_MS_SERIAL; | 514 | host->mode_mask = TIFM_MS_SYS_SRAC | TIFM_MS_SYS_REI; |
505 | writel((~TIFM_CTRL_FAST_CLK) | 515 | writel((~TIFM_CTRL_FAST_CLK) |
506 | & readl(sock->addr + SOCK_CONTROL), | 516 | & readl(sock->addr + SOCK_CONTROL), |
507 | sock->addr + SOCK_CONTROL); | 517 | sock->addr + SOCK_CONTROL); |
508 | } else if (value == MEMSTICK_PARALLEL) { | 518 | } else if (value == MEMSTICK_PAR4) { |
509 | host->mode_mask = 0; | 519 | host->mode_mask = 0; |
510 | writel(TIFM_CTRL_FAST_CLK | 520 | writel(TIFM_CTRL_FAST_CLK |
511 | | readl(sock->addr + SOCK_CONTROL), | 521 | | readl(sock->addr + SOCK_CONTROL), |
@@ -532,21 +542,6 @@ static void tifm_ms_abort(unsigned long data) | |||
532 | tifm_eject(host->dev); | 542 | tifm_eject(host->dev); |
533 | } | 543 | } |
534 | 544 | ||
535 | static int tifm_ms_initialize_host(struct tifm_ms *host) | ||
536 | { | ||
537 | struct tifm_dev *sock = host->dev; | ||
538 | struct memstick_host *msh = tifm_get_drvdata(sock); | ||
539 | |||
540 | host->mode_mask = TIFM_MS_SERIAL; | ||
541 | writel(0x8000, sock->addr + SOCK_MS_SYSTEM); | ||
542 | writel(0x0200 | TIFM_MS_SYS_NOT_RDY, sock->addr + SOCK_MS_SYSTEM); | ||
543 | writel(0xffffffff, sock->addr + SOCK_MS_STATUS); | ||
544 | if (tifm_has_ms_pif(sock)) | ||
545 | msh->caps |= MEMSTICK_CAP_PARALLEL; | ||
546 | |||
547 | return 0; | ||
548 | } | ||
549 | |||
550 | static int tifm_ms_probe(struct tifm_dev *sock) | 545 | static int tifm_ms_probe(struct tifm_dev *sock) |
551 | { | 546 | { |
552 | struct memstick_host *msh; | 547 | struct memstick_host *msh; |
@@ -568,7 +563,6 @@ static int tifm_ms_probe(struct tifm_dev *sock) | |||
568 | tifm_set_drvdata(sock, msh); | 563 | tifm_set_drvdata(sock, msh); |
569 | host->dev = sock; | 564 | host->dev = sock; |
570 | host->timeout_jiffies = msecs_to_jiffies(1000); | 565 | host->timeout_jiffies = msecs_to_jiffies(1000); |
571 | host->no_dma = no_dma; | ||
572 | 566 | ||
573 | setup_timer(&host->timer, tifm_ms_abort, (unsigned long)host); | 567 | setup_timer(&host->timer, tifm_ms_abort, (unsigned long)host); |
574 | 568 | ||
@@ -576,10 +570,10 @@ static int tifm_ms_probe(struct tifm_dev *sock) | |||
576 | msh->set_param = tifm_ms_set_param; | 570 | msh->set_param = tifm_ms_set_param; |
577 | sock->card_event = tifm_ms_card_event; | 571 | sock->card_event = tifm_ms_card_event; |
578 | sock->data_event = tifm_ms_data_event; | 572 | sock->data_event = tifm_ms_data_event; |
579 | rc = tifm_ms_initialize_host(host); | 573 | if (tifm_has_ms_pif(sock)) |
574 | msh->caps |= MEMSTICK_CAP_PAR4; | ||
580 | 575 | ||
581 | if (!rc) | 576 | rc = memstick_add_host(msh); |
582 | rc = memstick_add_host(msh); | ||
583 | if (!rc) | 577 | if (!rc) |
584 | return 0; | 578 | return 0; |
585 | 579 | ||
@@ -601,7 +595,7 @@ static void tifm_ms_remove(struct tifm_dev *sock) | |||
601 | writel(TIFM_FIFO_INT_SETALL, | 595 | writel(TIFM_FIFO_INT_SETALL, |
602 | sock->addr + SOCK_DMA_FIFO_INT_ENABLE_CLEAR); | 596 | sock->addr + SOCK_DMA_FIFO_INT_ENABLE_CLEAR); |
603 | writel(TIFM_DMA_RESET, sock->addr + SOCK_DMA_CONTROL); | 597 | writel(TIFM_DMA_RESET, sock->addr + SOCK_DMA_CONTROL); |
604 | if ((host->req->io_type == MEMSTICK_IO_SG) && !host->no_dma) | 598 | if (host->use_dma) |
605 | tifm_unmap_sg(sock, &host->req->sg, 1, | 599 | tifm_unmap_sg(sock, &host->req->sg, 1, |
606 | host->req->data_dir == READ | 600 | host->req->data_dir == READ |
607 | ? PCI_DMA_TODEVICE | 601 | ? PCI_DMA_TODEVICE |
@@ -617,10 +611,6 @@ static void tifm_ms_remove(struct tifm_dev *sock) | |||
617 | spin_unlock_irqrestore(&sock->lock, flags); | 611 | spin_unlock_irqrestore(&sock->lock, flags); |
618 | 612 | ||
619 | memstick_remove_host(msh); | 613 | memstick_remove_host(msh); |
620 | |||
621 | writel(0x0200 | TIFM_MS_SYS_NOT_RDY, sock->addr + SOCK_MS_SYSTEM); | ||
622 | writel(0xffffffff, sock->addr + SOCK_MS_STATUS); | ||
623 | |||
624 | memstick_free_host(msh); | 614 | memstick_free_host(msh); |
625 | } | 615 | } |
626 | 616 | ||
@@ -628,17 +618,17 @@ static void tifm_ms_remove(struct tifm_dev *sock) | |||
628 | 618 | ||
629 | static int tifm_ms_suspend(struct tifm_dev *sock, pm_message_t state) | 619 | static int tifm_ms_suspend(struct tifm_dev *sock, pm_message_t state) |
630 | { | 620 | { |
621 | struct memstick_host *msh = tifm_get_drvdata(sock); | ||
622 | |||
623 | memstick_suspend_host(msh); | ||
631 | return 0; | 624 | return 0; |
632 | } | 625 | } |
633 | 626 | ||
634 | static int tifm_ms_resume(struct tifm_dev *sock) | 627 | static int tifm_ms_resume(struct tifm_dev *sock) |
635 | { | 628 | { |
636 | struct memstick_host *msh = tifm_get_drvdata(sock); | 629 | struct memstick_host *msh = tifm_get_drvdata(sock); |
637 | struct tifm_ms *host = memstick_priv(msh); | ||
638 | |||
639 | tifm_ms_initialize_host(host); | ||
640 | memstick_detect_change(msh); | ||
641 | 630 | ||
631 | memstick_resume_host(msh); | ||
642 | return 0; | 632 | return 0; |
643 | } | 633 | } |
644 | 634 | ||
@@ -679,7 +669,6 @@ MODULE_AUTHOR("Alex Dubov"); | |||
679 | MODULE_DESCRIPTION("TI FlashMedia MemoryStick driver"); | 669 | MODULE_DESCRIPTION("TI FlashMedia MemoryStick driver"); |
680 | MODULE_LICENSE("GPL"); | 670 | MODULE_LICENSE("GPL"); |
681 | MODULE_DEVICE_TABLE(tifm, tifm_ms_id_tbl); | 671 | MODULE_DEVICE_TABLE(tifm, tifm_ms_id_tbl); |
682 | MODULE_VERSION(DRIVER_VERSION); | ||
683 | 672 | ||
684 | module_init(tifm_ms_init); | 673 | module_init(tifm_ms_init); |
685 | module_exit(tifm_ms_exit); | 674 | module_exit(tifm_ms_exit); |
diff --git a/drivers/misc/tifm_7xx1.c b/drivers/misc/tifm_7xx1.c index 63a089b295..67503ea71d 100644 --- a/drivers/misc/tifm_7xx1.c +++ b/drivers/misc/tifm_7xx1.c | |||
@@ -368,6 +368,8 @@ static int tifm_7xx1_probe(struct pci_dev *dev, | |||
368 | goto err_out_irq; | 368 | goto err_out_irq; |
369 | 369 | ||
370 | writel(TIFM_IRQ_ENABLE | TIFM_IRQ_SOCKMASK((1 << fm->num_sockets) - 1), | 370 | writel(TIFM_IRQ_ENABLE | TIFM_IRQ_SOCKMASK((1 << fm->num_sockets) - 1), |
371 | fm->addr + FM_CLEAR_INTERRUPT_ENABLE); | ||
372 | writel(TIFM_IRQ_ENABLE | TIFM_IRQ_SOCKMASK((1 << fm->num_sockets) - 1), | ||
371 | fm->addr + FM_SET_INTERRUPT_ENABLE); | 373 | fm->addr + FM_SET_INTERRUPT_ENABLE); |
372 | return 0; | 374 | return 0; |
373 | 375 | ||
diff --git a/drivers/serial/of_serial.c b/drivers/serial/of_serial.c index a64d858219..c0e50a4610 100644 --- a/drivers/serial/of_serial.c +++ b/drivers/serial/of_serial.c | |||
@@ -138,7 +138,7 @@ static struct of_device_id __devinitdata of_platform_serial_table[] = { | |||
138 | { /* end of list */ }, | 138 | { /* end of list */ }, |
139 | }; | 139 | }; |
140 | 140 | ||
141 | static struct of_platform_driver __devinitdata of_platform_serial_driver = { | 141 | static struct of_platform_driver of_platform_serial_driver = { |
142 | .owner = THIS_MODULE, | 142 | .owner = THIS_MODULE, |
143 | .name = "of_serial", | 143 | .name = "of_serial", |
144 | .probe = of_platform_serial_probe, | 144 | .probe = of_platform_serial_probe, |
diff --git a/drivers/video/Kconfig b/drivers/video/Kconfig index 758435f8a6..e0b0580705 100644 --- a/drivers/video/Kconfig +++ b/drivers/video/Kconfig | |||
@@ -553,6 +553,19 @@ config FB_BF54X_LQ043 | |||
553 | help | 553 | help |
554 | This is the framebuffer device driver for a SHARP LQ043T1DG01 TFT LCD | 554 | This is the framebuffer device driver for a SHARP LQ043T1DG01 TFT LCD |
555 | 555 | ||
556 | config FB_BFIN_T350MCQB | ||
557 | tristate "Varitronix COG-T350MCQB TFT LCD display (BF527 EZKIT)" | ||
558 | depends on FB && BLACKFIN | ||
559 | select BFIN_GPTIMERS | ||
560 | select FB_CFB_FILLRECT | ||
561 | select FB_CFB_COPYAREA | ||
562 | select FB_CFB_IMAGEBLIT | ||
563 | help | ||
564 | This is the framebuffer device driver for a Varitronix VL-PS-COG-T350MCQB-01 display TFT LCD | ||
565 | This display is a QVGA 320x240 24-bit RGB display interfaced by an 8-bit wide PPI | ||
566 | It uses PPI[0..7] PPI_FS1, PPI_FS2 and PPI_CLK. | ||
567 | |||
568 | |||
556 | config FB_STI | 569 | config FB_STI |
557 | tristate "HP STI frame buffer device support" | 570 | tristate "HP STI frame buffer device support" |
558 | depends on FB && PARISC | 571 | depends on FB && PARISC |
diff --git a/drivers/video/Makefile b/drivers/video/Makefile index 83e02b3429..03371c7890 100644 --- a/drivers/video/Makefile +++ b/drivers/video/Makefile | |||
@@ -122,6 +122,7 @@ obj-$(CONFIG_FB_EFI) += efifb.o | |||
122 | obj-$(CONFIG_FB_VGA16) += vga16fb.o | 122 | obj-$(CONFIG_FB_VGA16) += vga16fb.o |
123 | obj-$(CONFIG_FB_OF) += offb.o | 123 | obj-$(CONFIG_FB_OF) += offb.o |
124 | obj-$(CONFIG_FB_BF54X_LQ043) += bf54x-lq043fb.o | 124 | obj-$(CONFIG_FB_BF54X_LQ043) += bf54x-lq043fb.o |
125 | obj-$(CONFIG_FB_BFIN_T350MCQB) += bfin-t350mcqb-fb.o | ||
125 | 126 | ||
126 | # the test framebuffer is last | 127 | # the test framebuffer is last |
127 | obj-$(CONFIG_FB_VIRTUAL) += vfb.o | 128 | obj-$(CONFIG_FB_VIRTUAL) += vfb.o |
diff --git a/drivers/video/bf54x-lq043fb.c b/drivers/video/bf54x-lq043fb.c index 0ce791e6f7..986a550c04 100644 --- a/drivers/video/bf54x-lq043fb.c +++ b/drivers/video/bf54x-lq043fb.c | |||
@@ -8,7 +8,7 @@ | |||
8 | * | 8 | * |
9 | * | 9 | * |
10 | * Modified: | 10 | * Modified: |
11 | * Copyright 2004-2007 Analog Devices Inc. | 11 | * Copyright 2007-2008 Analog Devices Inc. |
12 | * | 12 | * |
13 | * Bugs: Enter bugs at http://blackfin.uclinux.org/ | 13 | * Bugs: Enter bugs at http://blackfin.uclinux.org/ |
14 | * | 14 | * |
@@ -241,7 +241,7 @@ static int request_ports(struct bfin_bf54xfb_info *fbi) | |||
241 | u16 eppi_req_18[] = EPPI0_18; | 241 | u16 eppi_req_18[] = EPPI0_18; |
242 | u16 disp = fbi->mach_info->disp; | 242 | u16 disp = fbi->mach_info->disp; |
243 | 243 | ||
244 | if (gpio_request(disp, NULL)) { | 244 | if (gpio_request(disp, DRIVER_NAME)) { |
245 | printk(KERN_ERR "Requesting GPIO %d faild\n", disp); | 245 | printk(KERN_ERR "Requesting GPIO %d faild\n", disp); |
246 | return -EFAULT; | 246 | return -EFAULT; |
247 | } | 247 | } |
@@ -672,7 +672,7 @@ static int __init bfin_bf54x_probe(struct platform_device *pdev) | |||
672 | &bfin_lq043fb_bl_ops); | 672 | &bfin_lq043fb_bl_ops); |
673 | bl_dev->props.max_brightness = 255; | 673 | bl_dev->props.max_brightness = 255; |
674 | 674 | ||
675 | lcd_dev = lcd_device_register(DRIVER_NAME, NULL, &bfin_lcd_ops); | 675 | lcd_dev = lcd_device_register(DRIVER_NAME, &pdev->dev, NULL, &bfin_lcd_ops); |
676 | lcd_dev->props.max_contrast = 255, printk(KERN_INFO "Done.\n"); | 676 | lcd_dev->props.max_contrast = 255, printk(KERN_INFO "Done.\n"); |
677 | #endif | 677 | #endif |
678 | 678 | ||
diff --git a/drivers/video/bfin-t350mcqb-fb.c b/drivers/video/bfin-t350mcqb-fb.c new file mode 100644 index 0000000000..a2bb2de9e0 --- /dev/null +++ b/drivers/video/bfin-t350mcqb-fb.c | |||
@@ -0,0 +1,685 @@ | |||
1 | /* | ||
2 | * File: drivers/video/bfin-t350mcqb-fb.c | ||
3 | * Based on: | ||
4 | * Author: Michael Hennerich <hennerich@blackfin.uclinux.org> | ||
5 | * | ||
6 | * Created: | ||
7 | * Description: Blackfin LCD Framebufer driver | ||
8 | * | ||
9 | * | ||
10 | * Modified: | ||
11 | * Copyright 2004-2007 Analog Devices Inc. | ||
12 | * | ||
13 | * Bugs: Enter bugs at http://blackfin.uclinux.org/ | ||
14 | * | ||
15 | * This program is free software; you can redistribute it and/or modify | ||
16 | * it under the terms of the GNU General Public License as published by | ||
17 | * the Free Software Foundation; either version 2 of the License, or | ||
18 | * (at your option) any later version. | ||
19 | * | ||
20 | * This program is distributed in the hope that it will be useful, | ||
21 | * but WITHOUT ANY WARRANTY; without even the implied warranty of | ||
22 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | ||
23 | * GNU General Public License for more details. | ||
24 | * | ||
25 | * You should have received a copy of the GNU General Public License | ||
26 | * along with this program; if not, see the file COPYING, or write | ||
27 | * to the Free Software Foundation, Inc., | ||
28 | * 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA | ||
29 | */ | ||
30 | |||
31 | #include <linux/module.h> | ||
32 | #include <linux/kernel.h> | ||
33 | #include <linux/errno.h> | ||
34 | #include <linux/string.h> | ||
35 | #include <linux/fb.h> | ||
36 | #include <linux/init.h> | ||
37 | #include <linux/types.h> | ||
38 | #include <linux/interrupt.h> | ||
39 | #include <linux/device.h> | ||
40 | #include <linux/backlight.h> | ||
41 | #include <linux/lcd.h> | ||
42 | #include <linux/dma-mapping.h> | ||
43 | #include <linux/platform_device.h> | ||
44 | |||
45 | #include <asm/blackfin.h> | ||
46 | #include <asm/irq.h> | ||
47 | #include <asm/dma-mapping.h> | ||
48 | #include <asm/dma.h> | ||
49 | #include <asm/portmux.h> | ||
50 | #include <asm/gptimers.h> | ||
51 | |||
52 | #define NO_BL_SUPPORT | ||
53 | |||
54 | #define LCD_X_RES 320 /* Horizontal Resolution */ | ||
55 | #define LCD_Y_RES 240 /* Vertical Resolution */ | ||
56 | #define LCD_BPP 24 /* Bit Per Pixel */ | ||
57 | |||
58 | #define DMA_BUS_SIZE 16 | ||
59 | #define LCD_CLK (12*1000*1000) /* 12MHz */ | ||
60 | |||
61 | #define CLOCKS_PER_PIX 3 | ||
62 | |||
63 | /* | ||
64 | * HS and VS timing parameters (all in number of PPI clk ticks) | ||
65 | */ | ||
66 | |||
67 | #define U_LINE 1 /* Blanking Lines */ | ||
68 | |||
69 | #define H_ACTPIX (LCD_X_RES * CLOCKS_PER_PIX) /* active horizontal pixel */ | ||
70 | #define H_PERIOD (408 * CLOCKS_PER_PIX) /* HS period */ | ||
71 | #define H_PULSE 90 /* HS pulse width */ | ||
72 | #define H_START 204 /* first valid pixel */ | ||
73 | |||
74 | #define V_LINES (LCD_Y_RES + U_LINE) /* total vertical lines */ | ||
75 | #define V_PULSE (3 * H_PERIOD) /* VS pulse width (1-5 H_PERIODs) */ | ||
76 | #define V_PERIOD (H_PERIOD * V_LINES) /* VS period */ | ||
77 | |||
78 | #define ACTIVE_VIDEO_MEM_OFFSET (U_LINE * H_ACTPIX) | ||
79 | |||
80 | #define BFIN_LCD_NBR_PALETTE_ENTRIES 256 | ||
81 | |||
82 | #define DRIVER_NAME "bfin-t350mcqb" | ||
83 | static char driver_name[] = DRIVER_NAME; | ||
84 | |||
85 | struct bfin_t350mcqbfb_info { | ||
86 | struct fb_info *fb; | ||
87 | struct device *dev; | ||
88 | unsigned char *fb_buffer; /* RGB Buffer */ | ||
89 | dma_addr_t dma_handle; | ||
90 | int lq043_mmap; | ||
91 | int lq043_open_cnt; | ||
92 | int irq; | ||
93 | spinlock_t lock; /* lock */ | ||
94 | }; | ||
95 | |||
96 | static int nocursor; | ||
97 | module_param(nocursor, int, 0644); | ||
98 | MODULE_PARM_DESC(nocursor, "cursor enable/disable"); | ||
99 | |||
100 | #define PPI_TX_MODE 0x2 | ||
101 | #define PPI_XFER_TYPE_11 0xC | ||
102 | #define PPI_PORT_CFG_01 0x10 | ||
103 | #define PPI_PACK_EN 0x80 | ||
104 | #define PPI_POLS_1 0x8000 | ||
105 | |||
106 | static void bfin_t350mcqb_config_ppi(struct bfin_t350mcqbfb_info *fbi) | ||
107 | { | ||
108 | bfin_write_PPI_DELAY(H_START); | ||
109 | bfin_write_PPI_COUNT(H_ACTPIX-1); | ||
110 | bfin_write_PPI_FRAME(V_LINES); | ||
111 | |||
112 | bfin_write_PPI_CONTROL(PPI_TX_MODE | /* output mode , PORT_DIR */ | ||
113 | PPI_XFER_TYPE_11 | /* sync mode XFR_TYPE */ | ||
114 | PPI_PORT_CFG_01 | /* two frame sync PORT_CFG */ | ||
115 | PPI_PACK_EN | /* packing enabled PACK_EN */ | ||
116 | PPI_POLS_1); /* faling edge syncs POLS */ | ||
117 | } | ||
118 | |||
119 | static inline void bfin_t350mcqb_disable_ppi(void) | ||
120 | { | ||
121 | bfin_write_PPI_CONTROL(bfin_read_PPI_CONTROL() & ~PORT_EN); | ||
122 | } | ||
123 | |||
124 | static inline void bfin_t350mcqb_enable_ppi(void) | ||
125 | { | ||
126 | bfin_write_PPI_CONTROL(bfin_read_PPI_CONTROL() | PORT_EN); | ||
127 | } | ||
128 | |||
129 | static void bfin_t350mcqb_start_timers(void) | ||
130 | { | ||
131 | unsigned long flags; | ||
132 | |||
133 | local_irq_save(flags); | ||
134 | enable_gptimers(TIMER1bit); | ||
135 | enable_gptimers(TIMER0bit); | ||
136 | local_irq_restore(flags); | ||
137 | } | ||
138 | |||
139 | static void bfin_t350mcqb_stop_timers(void) | ||
140 | { | ||
141 | disable_gptimers(TIMER0bit | TIMER1bit); | ||
142 | |||
143 | set_gptimer_status(0, TIMER_STATUS_TRUN0 | TIMER_STATUS_TRUN1 | | ||
144 | TIMER_STATUS_TIMIL0 | TIMER_STATUS_TIMIL1 | | ||
145 | TIMER_STATUS_TOVF0 | TIMER_STATUS_TOVF1); | ||
146 | |||
147 | } | ||
148 | |||
149 | static void bfin_t350mcqb_init_timers(void) | ||
150 | { | ||
151 | |||
152 | bfin_t350mcqb_stop_timers(); | ||
153 | |||
154 | set_gptimer_period(TIMER0_id, H_PERIOD); | ||
155 | set_gptimer_pwidth(TIMER0_id, H_PULSE); | ||
156 | set_gptimer_config(TIMER0_id, TIMER_MODE_PWM | TIMER_PERIOD_CNT | | ||
157 | TIMER_TIN_SEL | TIMER_CLK_SEL| | ||
158 | TIMER_EMU_RUN); | ||
159 | |||
160 | set_gptimer_period(TIMER1_id, V_PERIOD); | ||
161 | set_gptimer_pwidth(TIMER1_id, V_PULSE); | ||
162 | set_gptimer_config(TIMER1_id, TIMER_MODE_PWM | TIMER_PERIOD_CNT | | ||
163 | TIMER_TIN_SEL | TIMER_CLK_SEL | | ||
164 | TIMER_EMU_RUN); | ||
165 | |||
166 | } | ||
167 | |||
168 | static void bfin_t350mcqb_config_dma(struct bfin_t350mcqbfb_info *fbi) | ||
169 | { | ||
170 | |||
171 | set_dma_config(CH_PPI, | ||
172 | set_bfin_dma_config(DIR_READ, DMA_FLOW_AUTO, | ||
173 | INTR_DISABLE, DIMENSION_2D, | ||
174 | DATA_SIZE_16, | ||
175 | DMA_NOSYNC_KEEP_DMA_BUF)); | ||
176 | set_dma_x_count(CH_PPI, (LCD_X_RES * LCD_BPP) / DMA_BUS_SIZE); | ||
177 | set_dma_x_modify(CH_PPI, DMA_BUS_SIZE / 8); | ||
178 | set_dma_y_count(CH_PPI, V_LINES); | ||
179 | |||
180 | set_dma_y_modify(CH_PPI, DMA_BUS_SIZE / 8); | ||
181 | set_dma_start_addr(CH_PPI, (unsigned long)fbi->fb_buffer); | ||
182 | |||
183 | } | ||
184 | |||
185 | static int bfin_t350mcqb_request_ports(int action) | ||
186 | { | ||
187 | u16 ppi0_req_8[] = {P_PPI0_CLK, P_PPI0_FS1, P_PPI0_FS2, | ||
188 | P_PPI0_D0, P_PPI0_D1, P_PPI0_D2, | ||
189 | P_PPI0_D3, P_PPI0_D4, P_PPI0_D5, | ||
190 | P_PPI0_D6, P_PPI0_D7, 0}; | ||
191 | |||
192 | if (action) { | ||
193 | if (peripheral_request_list(ppi0_req_8, DRIVER_NAME)) { | ||
194 | printk(KERN_ERR "Requesting Peripherals faild\n"); | ||
195 | return -EFAULT; | ||
196 | } | ||
197 | } else | ||
198 | peripheral_free_list(ppi0_req_8); | ||
199 | |||
200 | return 0; | ||
201 | } | ||
202 | |||
203 | static int bfin_t350mcqb_fb_open(struct fb_info *info, int user) | ||
204 | { | ||
205 | struct bfin_t350mcqbfb_info *fbi = info->par; | ||
206 | |||
207 | spin_lock(&fbi->lock); | ||
208 | fbi->lq043_open_cnt++; | ||
209 | |||
210 | if (fbi->lq043_open_cnt <= 1) { | ||
211 | |||
212 | bfin_t350mcqb_disable_ppi(); | ||
213 | SSYNC(); | ||
214 | |||
215 | bfin_t350mcqb_config_dma(fbi); | ||
216 | bfin_t350mcqb_config_ppi(fbi); | ||
217 | bfin_t350mcqb_init_timers(); | ||
218 | |||
219 | /* start dma */ | ||
220 | enable_dma(CH_PPI); | ||
221 | bfin_t350mcqb_enable_ppi(); | ||
222 | bfin_t350mcqb_start_timers(); | ||
223 | } | ||
224 | |||
225 | spin_unlock(&fbi->lock); | ||
226 | |||
227 | return 0; | ||
228 | } | ||
229 | |||
230 | static int bfin_t350mcqb_fb_release(struct fb_info *info, int user) | ||
231 | { | ||
232 | struct bfin_t350mcqbfb_info *fbi = info->par; | ||
233 | |||
234 | spin_lock(&fbi->lock); | ||
235 | |||
236 | fbi->lq043_open_cnt--; | ||
237 | fbi->lq043_mmap = 0; | ||
238 | |||
239 | if (fbi->lq043_open_cnt <= 0) { | ||
240 | bfin_t350mcqb_disable_ppi(); | ||
241 | SSYNC(); | ||
242 | disable_dma(CH_PPI); | ||
243 | bfin_t350mcqb_stop_timers(); | ||
244 | memset(fbi->fb_buffer, 0, info->fix.smem_len); | ||
245 | } | ||
246 | |||
247 | spin_unlock(&fbi->lock); | ||
248 | |||
249 | return 0; | ||
250 | } | ||
251 | |||
252 | static int bfin_t350mcqb_fb_check_var(struct fb_var_screeninfo *var, | ||
253 | struct fb_info *info) | ||
254 | { | ||
255 | |||
256 | if (var->bits_per_pixel != LCD_BPP) { | ||
257 | pr_debug("%s: depth not supported: %u BPP\n", __FUNCTION__, | ||
258 | var->bits_per_pixel); | ||
259 | return -EINVAL; | ||
260 | } | ||
261 | |||
262 | if (info->var.xres != var->xres || info->var.yres != var->yres || | ||
263 | info->var.xres_virtual != var->xres_virtual || | ||
264 | info->var.yres_virtual != var->yres_virtual) { | ||
265 | pr_debug("%s: Resolution not supported: X%u x Y%u \n", | ||
266 | __FUNCTION__, var->xres, var->yres); | ||
267 | return -EINVAL; | ||
268 | } | ||
269 | |||
270 | /* | ||
271 | * Memory limit | ||
272 | */ | ||
273 | |||
274 | if ((info->fix.line_length * var->yres_virtual) > info->fix.smem_len) { | ||
275 | pr_debug("%s: Memory Limit requested yres_virtual = %u\n", | ||
276 | __FUNCTION__, var->yres_virtual); | ||
277 | return -ENOMEM; | ||
278 | } | ||
279 | |||
280 | return 0; | ||
281 | } | ||
282 | |||
283 | static int bfin_t350mcqb_fb_mmap(struct fb_info *info, struct vm_area_struct *vma) | ||
284 | { | ||
285 | struct bfin_t350mcqbfb_info *fbi = info->par; | ||
286 | |||
287 | if (fbi->lq043_mmap) | ||
288 | return -1; | ||
289 | |||
290 | spin_lock(&fbi->lock); | ||
291 | fbi->lq043_mmap = 1; | ||
292 | spin_unlock(&fbi->lock); | ||
293 | |||
294 | vma->vm_start = (unsigned long)(fbi->fb_buffer + ACTIVE_VIDEO_MEM_OFFSET); | ||
295 | |||
296 | vma->vm_end = vma->vm_start + info->fix.smem_len; | ||
297 | /* For those who don't understand how mmap works, go read | ||
298 | * Documentation/nommu-mmap.txt. | ||
299 | * For those that do, you will know that the VM_MAYSHARE flag | ||
300 | * must be set in the vma->vm_flags structure on noMMU | ||
301 | * Other flags can be set, and are documented in | ||
302 | * include/linux/mm.h | ||
303 | */ | ||
304 | vma->vm_flags |= VM_MAYSHARE; | ||
305 | |||
306 | return 0; | ||
307 | } | ||
308 | |||
309 | int bfin_t350mcqb_fb_cursor(struct fb_info *info, struct fb_cursor *cursor) | ||
310 | { | ||
311 | if (nocursor) | ||
312 | return 0; | ||
313 | else | ||
314 | return -EINVAL; /* just to force soft_cursor() call */ | ||
315 | } | ||
316 | |||
317 | static int bfin_t350mcqb_fb_setcolreg(u_int regno, u_int red, u_int green, | ||
318 | u_int blue, u_int transp, | ||
319 | struct fb_info *info) | ||
320 | { | ||
321 | if (regno >= BFIN_LCD_NBR_PALETTE_ENTRIES) | ||
322 | return -EINVAL; | ||
323 | |||
324 | if (info->var.grayscale) { | ||
325 | /* grayscale = 0.30*R + 0.59*G + 0.11*B */ | ||
326 | red = green = blue = (red * 77 + green * 151 + blue * 28) >> 8; | ||
327 | } | ||
328 | |||
329 | if (info->fix.visual == FB_VISUAL_TRUECOLOR) { | ||
330 | |||
331 | u32 value; | ||
332 | /* Place color in the pseudopalette */ | ||
333 | if (regno > 16) | ||
334 | return -EINVAL; | ||
335 | |||
336 | red >>= (16 - info->var.red.length); | ||
337 | green >>= (16 - info->var.green.length); | ||
338 | blue >>= (16 - info->var.blue.length); | ||
339 | |||
340 | value = (red << info->var.red.offset) | | ||
341 | (green << info->var.green.offset) | | ||
342 | (blue << info->var.blue.offset); | ||
343 | value &= 0xFFFFFF; | ||
344 | |||
345 | ((u32 *) (info->pseudo_palette))[regno] = value; | ||
346 | |||
347 | } | ||
348 | |||
349 | return 0; | ||
350 | } | ||
351 | |||
352 | static struct fb_ops bfin_t350mcqb_fb_ops = { | ||
353 | .owner = THIS_MODULE, | ||
354 | .fb_open = bfin_t350mcqb_fb_open, | ||
355 | .fb_release = bfin_t350mcqb_fb_release, | ||
356 | .fb_check_var = bfin_t350mcqb_fb_check_var, | ||
357 | .fb_fillrect = cfb_fillrect, | ||
358 | .fb_copyarea = cfb_copyarea, | ||
359 | .fb_imageblit = cfb_imageblit, | ||
360 | .fb_mmap = bfin_t350mcqb_fb_mmap, | ||
361 | .fb_cursor = bfin_t350mcqb_fb_cursor, | ||
362 | .fb_setcolreg = bfin_t350mcqb_fb_setcolreg, | ||
363 | }; | ||
364 | |||
365 | #ifndef NO_BL_SUPPORT | ||
366 | static int bl_get_brightness(struct backlight_device *bd) | ||
367 | { | ||
368 | return 0; | ||
369 | } | ||
370 | |||
371 | static struct backlight_ops bfin_lq043fb_bl_ops = { | ||
372 | .get_brightness = bl_get_brightness, | ||
373 | }; | ||
374 | |||
375 | static struct backlight_device *bl_dev; | ||
376 | |||
377 | static int bfin_lcd_get_power(struct lcd_device *dev) | ||
378 | { | ||
379 | return 0; | ||
380 | } | ||
381 | |||
382 | static int bfin_lcd_set_power(struct lcd_device *dev, int power) | ||
383 | { | ||
384 | return 0; | ||
385 | } | ||
386 | |||
387 | static int bfin_lcd_get_contrast(struct lcd_device *dev) | ||
388 | { | ||
389 | return 0; | ||
390 | } | ||
391 | |||
392 | static int bfin_lcd_set_contrast(struct lcd_device *dev, int contrast) | ||
393 | { | ||
394 | |||
395 | return 0; | ||
396 | } | ||
397 | |||
398 | static int bfin_lcd_check_fb(struct fb_info *fi) | ||
399 | { | ||
400 | if (!fi || (fi == &bfin_t350mcqb_fb)) | ||
401 | return 1; | ||
402 | return 0; | ||
403 | } | ||
404 | |||
405 | static struct lcd_ops bfin_lcd_ops = { | ||
406 | .get_power = bfin_lcd_get_power, | ||
407 | .set_power = bfin_lcd_set_power, | ||
408 | .get_contrast = bfin_lcd_get_contrast, | ||
409 | .set_contrast = bfin_lcd_set_contrast, | ||
410 | .check_fb = bfin_lcd_check_fb, | ||
411 | }; | ||
412 | |||
413 | static struct lcd_device *lcd_dev; | ||
414 | #endif | ||
415 | |||
416 | static irqreturn_t bfin_t350mcqb_irq_error(int irq, void *dev_id) | ||
417 | { | ||
418 | /*struct bfin_t350mcqbfb_info *info = (struct bfin_t350mcqbfb_info *)dev_id;*/ | ||
419 | |||
420 | u16 status = bfin_read_PPI_STATUS(); | ||
421 | bfin_write_PPI_STATUS(0xFFFF); | ||
422 | |||
423 | if (status) { | ||
424 | bfin_t350mcqb_disable_ppi(); | ||
425 | disable_dma(CH_PPI); | ||
426 | |||
427 | /* start dma */ | ||
428 | enable_dma(CH_PPI); | ||
429 | bfin_t350mcqb_enable_ppi(); | ||
430 | bfin_write_PPI_STATUS(0xFFFF); | ||
431 | } | ||
432 | |||
433 | return IRQ_HANDLED; | ||
434 | } | ||
435 | |||
436 | static int __init bfin_t350mcqb_probe(struct platform_device *pdev) | ||
437 | { | ||
438 | struct bfin_t350mcqbfb_info *info; | ||
439 | struct fb_info *fbinfo; | ||
440 | int ret; | ||
441 | |||
442 | printk(KERN_INFO DRIVER_NAME ": %dx%d %d-bit RGB FrameBuffer initializing...\n", | ||
443 | LCD_X_RES, LCD_Y_RES, LCD_BPP); | ||
444 | |||
445 | if (request_dma(CH_PPI, "CH_PPI") < 0) { | ||
446 | printk(KERN_ERR DRIVER_NAME | ||
447 | ": couldn't request CH_PPI DMA\n"); | ||
448 | ret = -EFAULT; | ||
449 | goto out1; | ||
450 | } | ||
451 | |||
452 | fbinfo = | ||
453 | framebuffer_alloc(sizeof(struct bfin_t350mcqbfb_info), &pdev->dev); | ||
454 | if (!fbinfo) { | ||
455 | ret = -ENOMEM; | ||
456 | goto out2; | ||
457 | } | ||
458 | |||
459 | info = fbinfo->par; | ||
460 | info->fb = fbinfo; | ||
461 | info->dev = &pdev->dev; | ||
462 | |||
463 | platform_set_drvdata(pdev, fbinfo); | ||
464 | |||
465 | strcpy(fbinfo->fix.id, driver_name); | ||
466 | |||
467 | fbinfo->fix.type = FB_TYPE_PACKED_PIXELS; | ||
468 | fbinfo->fix.type_aux = 0; | ||
469 | fbinfo->fix.xpanstep = 0; | ||
470 | fbinfo->fix.ypanstep = 0; | ||
471 | fbinfo->fix.ywrapstep = 0; | ||
472 | fbinfo->fix.accel = FB_ACCEL_NONE; | ||
473 | fbinfo->fix.visual = FB_VISUAL_TRUECOLOR; | ||
474 | |||
475 | fbinfo->var.nonstd = 0; | ||
476 | fbinfo->var.activate = FB_ACTIVATE_NOW; | ||
477 | fbinfo->var.height = -1; | ||
478 | fbinfo->var.width = -1; | ||
479 | fbinfo->var.accel_flags = 0; | ||
480 | fbinfo->var.vmode = FB_VMODE_NONINTERLACED; | ||
481 | |||
482 | fbinfo->var.xres = LCD_X_RES; | ||
483 | fbinfo->var.xres_virtual = LCD_X_RES; | ||
484 | fbinfo->var.yres = LCD_Y_RES; | ||
485 | fbinfo->var.yres_virtual = LCD_Y_RES; | ||
486 | fbinfo->var.bits_per_pixel = LCD_BPP; | ||
487 | |||
488 | fbinfo->var.red.offset = 0; | ||
489 | fbinfo->var.green.offset = 8; | ||
490 | fbinfo->var.blue.offset = 16; | ||
491 | fbinfo->var.transp.offset = 0; | ||
492 | fbinfo->var.red.length = 8; | ||
493 | fbinfo->var.green.length = 8; | ||
494 | fbinfo->var.blue.length = 8; | ||
495 | fbinfo->var.transp.length = 0; | ||
496 | fbinfo->fix.smem_len = LCD_X_RES * LCD_Y_RES * LCD_BPP / 8; | ||
497 | |||
498 | fbinfo->fix.line_length = fbinfo->var.xres_virtual * | ||
499 | fbinfo->var.bits_per_pixel / 8; | ||
500 | |||
501 | |||
502 | fbinfo->fbops = &bfin_t350mcqb_fb_ops; | ||
503 | fbinfo->flags = FBINFO_FLAG_DEFAULT; | ||
504 | |||
505 | info->fb_buffer = | ||
506 | dma_alloc_coherent(NULL, fbinfo->fix.smem_len, &info->dma_handle, | ||
507 | GFP_KERNEL); | ||
508 | |||
509 | if (NULL == info->fb_buffer) { | ||
510 | printk(KERN_ERR DRIVER_NAME | ||
511 | ": couldn't allocate dma buffer.\n"); | ||
512 | ret = -ENOMEM; | ||
513 | goto out3; | ||
514 | } | ||
515 | |||
516 | memset(info->fb_buffer, 0, fbinfo->fix.smem_len); | ||
517 | |||
518 | fbinfo->screen_base = (void *)info->fb_buffer + ACTIVE_VIDEO_MEM_OFFSET; | ||
519 | fbinfo->fix.smem_start = (int)info->fb_buffer + ACTIVE_VIDEO_MEM_OFFSET; | ||
520 | |||
521 | fbinfo->fbops = &bfin_t350mcqb_fb_ops; | ||
522 | |||
523 | fbinfo->pseudo_palette = kmalloc(sizeof(u32) * 16, GFP_KERNEL); | ||
524 | if (!fbinfo->pseudo_palette) { | ||
525 | printk(KERN_ERR DRIVER_NAME | ||
526 | "Fail to allocate pseudo_palette\n"); | ||
527 | |||
528 | ret = -ENOMEM; | ||
529 | goto out4; | ||
530 | } | ||
531 | |||
532 | memset(fbinfo->pseudo_palette, 0, sizeof(u32) * 16); | ||
533 | |||
534 | if (fb_alloc_cmap(&fbinfo->cmap, BFIN_LCD_NBR_PALETTE_ENTRIES, 0) | ||
535 | < 0) { | ||
536 | printk(KERN_ERR DRIVER_NAME | ||
537 | "Fail to allocate colormap (%d entries)\n", | ||
538 | BFIN_LCD_NBR_PALETTE_ENTRIES); | ||
539 | ret = -EFAULT; | ||
540 | goto out5; | ||
541 | } | ||
542 | |||
543 | if (bfin_t350mcqb_request_ports(1)) { | ||
544 | printk(KERN_ERR DRIVER_NAME ": couldn't request gpio port.\n"); | ||
545 | ret = -EFAULT; | ||
546 | goto out6; | ||
547 | } | ||
548 | |||
549 | info->irq = platform_get_irq(pdev, 0); | ||
550 | if (info->irq < 0) { | ||
551 | ret = -EINVAL; | ||
552 | goto out7; | ||
553 | } | ||
554 | |||
555 | if (request_irq(info->irq, (void *)bfin_t350mcqb_irq_error, IRQF_DISABLED, | ||
556 | "PPI ERROR", info) < 0) { | ||
557 | printk(KERN_ERR DRIVER_NAME | ||
558 | ": unable to request PPI ERROR IRQ\n"); | ||
559 | ret = -EFAULT; | ||
560 | goto out7; | ||
561 | } | ||
562 | |||
563 | if (register_framebuffer(fbinfo) < 0) { | ||
564 | printk(KERN_ERR DRIVER_NAME | ||
565 | ": unable to register framebuffer.\n"); | ||
566 | ret = -EINVAL; | ||
567 | goto out8; | ||
568 | } | ||
569 | #ifndef NO_BL_SUPPORT | ||
570 | bl_dev = | ||
571 | backlight_device_register("bf52x-bl", NULL, NULL, | ||
572 | &bfin_lq043fb_bl_ops); | ||
573 | bl_dev->props.max_brightness = 255; | ||
574 | |||
575 | lcd_dev = lcd_device_register(DRIVER_NAME, NULL, &bfin_lcd_ops); | ||
576 | lcd_dev->props.max_contrast = 255, printk(KERN_INFO "Done.\n"); | ||
577 | #endif | ||
578 | |||
579 | return 0; | ||
580 | |||
581 | out8: | ||
582 | free_irq(info->irq, info); | ||
583 | out7: | ||
584 | bfin_t350mcqb_request_ports(0); | ||
585 | out6: | ||
586 | fb_dealloc_cmap(&fbinfo->cmap); | ||
587 | out5: | ||
588 | kfree(fbinfo->pseudo_palette); | ||
589 | out4: | ||
590 | dma_free_coherent(NULL, fbinfo->fix.smem_len, info->fb_buffer, | ||
591 | info->dma_handle); | ||
592 | out3: | ||
593 | framebuffer_release(fbinfo); | ||
594 | out2: | ||
595 | free_dma(CH_PPI); | ||
596 | out1: | ||
597 | platform_set_drvdata(pdev, NULL); | ||
598 | |||
599 | return ret; | ||
600 | } | ||
601 | |||
602 | static int bfin_t350mcqb_remove(struct platform_device *pdev) | ||
603 | { | ||
604 | |||
605 | struct fb_info *fbinfo = platform_get_drvdata(pdev); | ||
606 | struct bfin_t350mcqbfb_info *info = fbinfo->par; | ||
607 | |||
608 | free_dma(CH_PPI); | ||
609 | free_irq(info->irq, info); | ||
610 | |||
611 | if (info->fb_buffer != NULL) | ||
612 | dma_free_coherent(NULL, fbinfo->fix.smem_len, info->fb_buffer, | ||
613 | info->dma_handle); | ||
614 | |||
615 | kfree(fbinfo->pseudo_palette); | ||
616 | fb_dealloc_cmap(&fbinfo->cmap); | ||
617 | |||
618 | #ifndef NO_BL_SUPPORT | ||
619 | lcd_device_unregister(lcd_dev); | ||
620 | backlight_device_unregister(bl_dev); | ||
621 | #endif | ||
622 | |||
623 | unregister_framebuffer(fbinfo); | ||
624 | |||
625 | bfin_t350mcqb_request_ports(0); | ||
626 | |||
627 | printk(KERN_INFO DRIVER_NAME ": Unregister LCD driver.\n"); | ||
628 | |||
629 | return 0; | ||
630 | } | ||
631 | |||
632 | #ifdef CONFIG_PM | ||
633 | static int bfin_t350mcqb_suspend(struct platform_device *pdev, pm_message_t state) | ||
634 | { | ||
635 | struct fb_info *fbinfo = platform_get_drvdata(pdev); | ||
636 | struct bfin_t350mcqbfb_info *info = fbinfo->par; | ||
637 | |||
638 | bfin_t350mcqb_disable_ppi(); | ||
639 | disable_dma(CH_PPI); | ||
640 | bfin_write_PPI_STATUS(0xFFFF); | ||
641 | |||
642 | return 0; | ||
643 | } | ||
644 | |||
645 | static int bfin_t350mcqb_resume(struct platform_device *pdev) | ||
646 | { | ||
647 | struct fb_info *fbinfo = platform_get_drvdata(pdev); | ||
648 | struct bfin_t350mcqbfb_info *info = fbinfo->par; | ||
649 | |||
650 | enable_dma(CH_PPI); | ||
651 | bfin_t350mcqb_enable_ppi(); | ||
652 | |||
653 | return 0; | ||
654 | } | ||
655 | #else | ||
656 | #define bfin_t350mcqb_suspend NULL | ||
657 | #define bfin_t350mcqb_resume NULL | ||
658 | #endif | ||
659 | |||
660 | static struct platform_driver bfin_t350mcqb_driver = { | ||
661 | .probe = bfin_t350mcqb_probe, | ||
662 | .remove = bfin_t350mcqb_remove, | ||
663 | .suspend = bfin_t350mcqb_suspend, | ||
664 | .resume = bfin_t350mcqb_resume, | ||
665 | .driver = { | ||
666 | .name = DRIVER_NAME, | ||
667 | .owner = THIS_MODULE, | ||
668 | }, | ||
669 | }; | ||
670 | |||
671 | static int __devinit bfin_t350mcqb_driver_init(void) | ||
672 | { | ||
673 | return platform_driver_register(&bfin_t350mcqb_driver); | ||
674 | } | ||
675 | |||
676 | static void __exit bfin_t350mcqb_driver_cleanup(void) | ||
677 | { | ||
678 | platform_driver_unregister(&bfin_t350mcqb_driver); | ||
679 | } | ||
680 | |||
681 | MODULE_DESCRIPTION("Blackfin TFT LCD Driver"); | ||
682 | MODULE_LICENSE("GPL"); | ||
683 | |||
684 | module_init(bfin_t350mcqb_driver_init); | ||
685 | module_exit(bfin_t350mcqb_driver_cleanup); | ||
diff --git a/drivers/video/hitfb.c b/drivers/video/hitfb.c index 756c0ce859..392a8be6aa 100644 --- a/drivers/video/hitfb.c +++ b/drivers/video/hitfb.c | |||
@@ -403,7 +403,7 @@ static int __init hitfb_probe(struct platform_device *dev) | |||
403 | return 0; | 403 | return 0; |
404 | } | 404 | } |
405 | 405 | ||
406 | static int __devexit hitfb_remove(struct platform_device *dev) | 406 | static int __exit hitfb_remove(struct platform_device *dev) |
407 | { | 407 | { |
408 | return unregister_framebuffer(&fb_info); | 408 | return unregister_framebuffer(&fb_info); |
409 | } | 409 | } |
@@ -439,7 +439,7 @@ static int hitfb_resume(struct platform_device *dev) | |||
439 | 439 | ||
440 | static struct platform_driver hitfb_driver = { | 440 | static struct platform_driver hitfb_driver = { |
441 | .probe = hitfb_probe, | 441 | .probe = hitfb_probe, |
442 | .remove = __devexit_p(hitfb_remove), | 442 | .remove = __exit_p(hitfb_remove), |
443 | #ifdef CONFIG_PM | 443 | #ifdef CONFIG_PM |
444 | .suspend = hitfb_suspend, | 444 | .suspend = hitfb_suspend, |
445 | .resume = hitfb_resume, | 445 | .resume = hitfb_resume, |
diff --git a/drivers/video/mbx/mbxfb.c b/drivers/video/mbx/mbxfb.c index 80cd117ca6..01f77bcc68 100644 --- a/drivers/video/mbx/mbxfb.c +++ b/drivers/video/mbx/mbxfb.c | |||
@@ -889,7 +889,7 @@ static int __devinit mbxfb_probe(struct platform_device *dev) | |||
889 | struct mbxfb_info *mfbi; | 889 | struct mbxfb_info *mfbi; |
890 | struct mbxfb_platform_data *pdata; | 890 | struct mbxfb_platform_data *pdata; |
891 | 891 | ||
892 | dev_dbg(dev, "mbxfb_probe\n"); | 892 | dev_dbg(&dev->dev, "mbxfb_probe\n"); |
893 | 893 | ||
894 | pdata = dev->dev.platform_data; | 894 | pdata = dev->dev.platform_data; |
895 | if (!pdata) { | 895 | if (!pdata) { |
diff --git a/drivers/video/pvr2fb.c b/drivers/video/pvr2fb.c index 6a3d0b5748..8c863a7f65 100644 --- a/drivers/video/pvr2fb.c +++ b/drivers/video/pvr2fb.c | |||
@@ -1,16 +1,12 @@ | |||
1 | /* drivers/video/pvr2fb.c | 1 | /* |
2 | * drivers/video/pvr2fb.c | ||
2 | * | 3 | * |
3 | * Frame buffer and fbcon support for the NEC PowerVR2 found within the Sega | 4 | * Frame buffer and fbcon support for the NEC PowerVR2 found within the Sega |
4 | * Dreamcast. | 5 | * Dreamcast. |
5 | * | 6 | * |
6 | * Copyright (c) 2001 M. R. Brown <mrbrown@0xd6.org> | 7 | * Copyright (c) 2001 M. R. Brown <mrbrown@0xd6.org> |
7 | * Copyright (c) 2001, 2002, 2003, 2004, 2005 Paul Mundt <lethal@linux-sh.org> | 8 | * Copyright (c) 2001 - 2008 Paul Mundt <lethal@linux-sh.org> |
8 | * | ||
9 | * This file is part of the LinuxDC project (linuxdc.sourceforge.net). | ||
10 | * | 9 | * |
11 | */ | ||
12 | |||
13 | /* | ||
14 | * This driver is mostly based on the excellent amifb and vfb sources. It uses | 10 | * This driver is mostly based on the excellent amifb and vfb sources. It uses |
15 | * an odd scheme for converting hardware values to/from framebuffer values, | 11 | * an odd scheme for converting hardware values to/from framebuffer values, |
16 | * here are some hacked-up formulas: | 12 | * here are some hacked-up formulas: |
@@ -490,7 +486,7 @@ static int pvr2fb_check_var(struct fb_var_screeninfo *var, struct fb_info *info) | |||
490 | } else { | 486 | } else { |
491 | var->sync &= ~FB_SYNC_BROADCAST; | 487 | var->sync &= ~FB_SYNC_BROADCAST; |
492 | var->vmode &= ~FB_VMODE_INTERLACED; | 488 | var->vmode &= ~FB_VMODE_INTERLACED; |
493 | var->vmode |= pvr2_var.vmode; | 489 | var->vmode |= FB_VMODE_NONINTERLACED; |
494 | } | 490 | } |
495 | 491 | ||
496 | if ((var->activate & FB_ACTIVATE_MASK) != FB_ACTIVATE_TEST) { | 492 | if ((var->activate & FB_ACTIVATE_MASK) != FB_ACTIVATE_TEST) { |
diff --git a/drivers/video/stifb.c b/drivers/video/stifb.c index e7c8db2eb4..f98be30114 100644 --- a/drivers/video/stifb.c +++ b/drivers/video/stifb.c | |||
@@ -505,16 +505,24 @@ ngleSetupAttrPlanes(struct stifb_info *fb, int BufferNumber) | |||
505 | static void | 505 | static void |
506 | rattlerSetupPlanes(struct stifb_info *fb) | 506 | rattlerSetupPlanes(struct stifb_info *fb) |
507 | { | 507 | { |
508 | int saved_id, y; | ||
509 | |||
510 | /* Write RAMDAC pixel read mask register so all overlay | ||
511 | * planes are display-enabled. (CRX24 uses Bt462 pixel | ||
512 | * read mask register for overlay planes, not image planes). | ||
513 | */ | ||
508 | CRX24_SETUP_RAMDAC(fb); | 514 | CRX24_SETUP_RAMDAC(fb); |
509 | 515 | ||
510 | /* replacement for: SETUP_FB(fb, CRX24_OVERLAY_PLANES); */ | 516 | /* change fb->id temporarily to fool SETUP_FB() */ |
511 | WRITE_WORD(0x83000300, fb, REG_14); | 517 | saved_id = fb->id; |
512 | SETUP_HW(fb); | 518 | fb->id = CRX24_OVERLAY_PLANES; |
513 | WRITE_BYTE(1, fb, REG_16b1); | 519 | SETUP_FB(fb); |
520 | fb->id = saved_id; | ||
521 | |||
522 | for (y = 0; y < fb->info.var.yres; ++y) | ||
523 | memset(fb->info.screen_base + y * fb->info.fix.line_length, | ||
524 | 0xff, fb->info.var.xres * fb->info.var.bits_per_pixel/8); | ||
514 | 525 | ||
515 | fb_memset((void*)fb->info.fix.smem_start, 0xff, | ||
516 | fb->info.var.yres*fb->info.fix.line_length); | ||
517 | |||
518 | CRX24_SET_OVLY_MASK(fb); | 526 | CRX24_SET_OVLY_MASK(fb); |
519 | SETUP_FB(fb); | 527 | SETUP_FB(fb); |
520 | } | 528 | } |
diff --git a/drivers/video/tridentfb.c b/drivers/video/tridentfb.c index 919ce75db9..0a4e07d43d 100644 --- a/drivers/video/tridentfb.c +++ b/drivers/video/tridentfb.c | |||
@@ -566,44 +566,32 @@ static inline void write3CE(int reg, unsigned char val) | |||
566 | 566 | ||
567 | static void enable_mmio(void) | 567 | static void enable_mmio(void) |
568 | { | 568 | { |
569 | unsigned char tmp; | ||
570 | |||
571 | /* Goto New Mode */ | 569 | /* Goto New Mode */ |
572 | outb(0x0B, 0x3C4); | 570 | outb(0x0B, 0x3C4); |
573 | inb(0x3C5); | 571 | inb(0x3C5); |
574 | 572 | ||
575 | /* Unprotect registers */ | 573 | /* Unprotect registers */ |
576 | outb(NewMode1, 0x3C4); | 574 | outb(NewMode1, 0x3C4); |
577 | tmp = inb(0x3C5); | ||
578 | outb(0x80, 0x3C5); | 575 | outb(0x80, 0x3C5); |
579 | 576 | ||
580 | /* Enable MMIO */ | 577 | /* Enable MMIO */ |
581 | outb(PCIReg, 0x3D4); | 578 | outb(PCIReg, 0x3D4); |
582 | outb(inb(0x3D5) | 0x01, 0x3D5); | 579 | outb(inb(0x3D5) | 0x01, 0x3D5); |
583 | |||
584 | t_outb(NewMode1, 0x3C4); | ||
585 | t_outb(tmp, 0x3C5); | ||
586 | } | 580 | } |
587 | 581 | ||
588 | static void disable_mmio(void) | 582 | static void disable_mmio(void) |
589 | { | 583 | { |
590 | unsigned char tmp; | ||
591 | |||
592 | /* Goto New Mode */ | 584 | /* Goto New Mode */ |
593 | t_outb(0x0B, 0x3C4); | 585 | t_outb(0x0B, 0x3C4); |
594 | t_inb(0x3C5); | 586 | t_inb(0x3C5); |
595 | 587 | ||
596 | /* Unprotect registers */ | 588 | /* Unprotect registers */ |
597 | t_outb(NewMode1, 0x3C4); | 589 | t_outb(NewMode1, 0x3C4); |
598 | tmp = t_inb(0x3C5); | ||
599 | t_outb(0x80, 0x3C5); | 590 | t_outb(0x80, 0x3C5); |
600 | 591 | ||
601 | /* Disable MMIO */ | 592 | /* Disable MMIO */ |
602 | t_outb(PCIReg, 0x3D4); | 593 | t_outb(PCIReg, 0x3D4); |
603 | t_outb(t_inb(0x3D5) & ~0x01, 0x3D5); | 594 | t_outb(t_inb(0x3D5) & ~0x01, 0x3D5); |
604 | |||
605 | outb(NewMode1, 0x3C4); | ||
606 | outb(tmp, 0x3C5); | ||
607 | } | 595 | } |
608 | 596 | ||
609 | #define crtc_unlock() write3X4(CRTVSyncEnd, read3X4(CRTVSyncEnd) & 0x7F) | 597 | #define crtc_unlock() write3X4(CRTVSyncEnd, read3X4(CRTVSyncEnd) & 0x7F) |
@@ -757,7 +745,7 @@ static unsigned int __devinit get_memsize(void) | |||
757 | switch (tmp) { | 745 | switch (tmp) { |
758 | 746 | ||
759 | case 0x01: | 747 | case 0x01: |
760 | k = 512; | 748 | k = 512 * Kb; |
761 | break; | 749 | break; |
762 | case 0x02: | 750 | case 0x02: |
763 | k = 6 * Mb; /* XP */ | 751 | k = 6 * Mb; /* XP */ |
diff --git a/fs/nfs/dir.c b/fs/nfs/dir.c index ae04892a5e..6cea7479c5 100644 --- a/fs/nfs/dir.c +++ b/fs/nfs/dir.c | |||
@@ -710,6 +710,8 @@ int nfs_lookup_verify_inode(struct inode *inode, struct nameidata *nd) | |||
710 | { | 710 | { |
711 | struct nfs_server *server = NFS_SERVER(inode); | 711 | struct nfs_server *server = NFS_SERVER(inode); |
712 | 712 | ||
713 | if (test_bit(NFS_INO_MOUNTPOINT, &NFS_I(inode)->flags)) | ||
714 | return 0; | ||
713 | if (nd != NULL) { | 715 | if (nd != NULL) { |
714 | /* VFS wants an on-the-wire revalidation */ | 716 | /* VFS wants an on-the-wire revalidation */ |
715 | if (nd->flags & LOOKUP_REVAL) | 717 | if (nd->flags & LOOKUP_REVAL) |
diff --git a/fs/nfs/inode.c b/fs/nfs/inode.c index 966a8850aa..a4c7cf2bff 100644 --- a/fs/nfs/inode.c +++ b/fs/nfs/inode.c | |||
@@ -299,6 +299,7 @@ nfs_fhget(struct super_block *sb, struct nfs_fh *fh, struct nfs_fattr *fattr) | |||
299 | else | 299 | else |
300 | inode->i_op = &nfs_mountpoint_inode_operations; | 300 | inode->i_op = &nfs_mountpoint_inode_operations; |
301 | inode->i_fop = NULL; | 301 | inode->i_fop = NULL; |
302 | set_bit(NFS_INO_MOUNTPOINT, &nfsi->flags); | ||
302 | } | 303 | } |
303 | } else if (S_ISLNK(inode->i_mode)) | 304 | } else if (S_ISLNK(inode->i_mode)) |
304 | inode->i_op = &nfs_symlink_inode_operations; | 305 | inode->i_op = &nfs_symlink_inode_operations; |
@@ -1003,8 +1004,9 @@ static int nfs_update_inode(struct inode *inode, struct nfs_fattr *fattr) | |||
1003 | 1004 | ||
1004 | server = NFS_SERVER(inode); | 1005 | server = NFS_SERVER(inode); |
1005 | /* Update the fsid? */ | 1006 | /* Update the fsid? */ |
1006 | if (S_ISDIR(inode->i_mode) | 1007 | if (S_ISDIR(inode->i_mode) && |
1007 | && !nfs_fsid_equal(&server->fsid, &fattr->fsid)) | 1008 | !nfs_fsid_equal(&server->fsid, &fattr->fsid) && |
1009 | !test_bit(NFS_INO_MOUNTPOINT, &nfsi->flags)) | ||
1008 | server->fsid = fattr->fsid; | 1010 | server->fsid = fattr->fsid; |
1009 | 1011 | ||
1010 | /* | 1012 | /* |
diff --git a/fs/nfs/write.c b/fs/nfs/write.c index f55c437124..80c61fdb27 100644 --- a/fs/nfs/write.c +++ b/fs/nfs/write.c | |||
@@ -734,7 +734,7 @@ int nfs_updatepage(struct file *file, struct page *page, | |||
734 | */ | 734 | */ |
735 | if (nfs_write_pageuptodate(page, inode) && | 735 | if (nfs_write_pageuptodate(page, inode) && |
736 | inode->i_flock == NULL && | 736 | inode->i_flock == NULL && |
737 | !(file->f_mode & O_SYNC)) { | 737 | !(file->f_flags & O_SYNC)) { |
738 | count = max(count + offset, nfs_page_length(page)); | 738 | count = max(count + offset, nfs_page_length(page)); |
739 | offset = 0; | 739 | offset = 0; |
740 | } | 740 | } |
diff --git a/fs/xfs/xfs_iget.c b/fs/xfs/xfs_iget.c index f01b07687f..8e09b71f41 100644 --- a/fs/xfs/xfs_iget.c +++ b/fs/xfs/xfs_iget.c | |||
@@ -235,6 +235,7 @@ finish_inode: | |||
235 | */ | 235 | */ |
236 | new_icl = kmem_zone_alloc(xfs_icluster_zone, KM_SLEEP); | 236 | new_icl = kmem_zone_alloc(xfs_icluster_zone, KM_SLEEP); |
237 | if (radix_tree_preload(GFP_KERNEL)) { | 237 | if (radix_tree_preload(GFP_KERNEL)) { |
238 | xfs_idestroy(ip); | ||
238 | delay(1); | 239 | delay(1); |
239 | goto again; | 240 | goto again; |
240 | } | 241 | } |
diff --git a/fs/xfs/xfs_trans_ail.c b/fs/xfs/xfs_trans_ail.c index 4d6330eddc..76d470d8a1 100644 --- a/fs/xfs/xfs_trans_ail.c +++ b/fs/xfs/xfs_trans_ail.c | |||
@@ -261,16 +261,19 @@ xfsaild_push( | |||
261 | xfs_log_force(mp, (xfs_lsn_t)0, XFS_LOG_FORCE); | 261 | xfs_log_force(mp, (xfs_lsn_t)0, XFS_LOG_FORCE); |
262 | } | 262 | } |
263 | 263 | ||
264 | /* | 264 | if (!count) { |
265 | * We reached the target so wait a bit longer for I/O to complete and | 265 | /* We're past our target or empty, so idle */ |
266 | * remove pushed items from the AIL before we start the next scan from | 266 | tout = 1000; |
267 | * the start of the AIL. | 267 | } else if (XFS_LSN_CMP(lsn, target) >= 0) { |
268 | */ | 268 | /* |
269 | if ((XFS_LSN_CMP(lsn, target) >= 0)) { | 269 | * We reached the target so wait a bit longer for I/O to |
270 | * complete and remove pushed items from the AIL before we | ||
271 | * start the next scan from the start of the AIL. | ||
272 | */ | ||
270 | tout += 20; | 273 | tout += 20; |
271 | last_pushed_lsn = 0; | 274 | last_pushed_lsn = 0; |
272 | } else if ((restarts > XFS_TRANS_PUSH_AIL_RESTARTS) || | 275 | } else if ((restarts > XFS_TRANS_PUSH_AIL_RESTARTS) || |
273 | (count && ((stuck * 100) / count > 90))) { | 276 | ((stuck * 100) / count > 90)) { |
274 | /* | 277 | /* |
275 | * Either there is a lot of contention on the AIL or we | 278 | * Either there is a lot of contention on the AIL or we |
276 | * are stuck due to operations in progress. "Stuck" in this | 279 | * are stuck due to operations in progress. "Stuck" in this |
diff --git a/include/asm-blackfin/mmu_context.h b/include/asm-blackfin/mmu_context.h index b5eb67596a..f55ec3c23a 100644 --- a/include/asm-blackfin/mmu_context.h +++ b/include/asm-blackfin/mmu_context.h | |||
@@ -73,7 +73,7 @@ static inline void destroy_context(struct mm_struct *mm) | |||
73 | struct sram_list_struct *tmp; | 73 | struct sram_list_struct *tmp; |
74 | 74 | ||
75 | if (current_l1_stack_save == mm->context.l1_stack_save) | 75 | if (current_l1_stack_save == mm->context.l1_stack_save) |
76 | current_l1_stack_save = 0; | 76 | current_l1_stack_save = NULL; |
77 | if (mm->context.l1_stack_save) | 77 | if (mm->context.l1_stack_save) |
78 | free_l1stack(); | 78 | free_l1stack(); |
79 | 79 | ||
diff --git a/include/asm-blackfin/unistd.h b/include/asm-blackfin/unistd.h index e98167358d..c18a399f6e 100644 --- a/include/asm-blackfin/unistd.h +++ b/include/asm-blackfin/unistd.h | |||
@@ -361,7 +361,7 @@ | |||
361 | #define __NR_epoll_pwait 346 | 361 | #define __NR_epoll_pwait 346 |
362 | #define __NR_utimensat 347 | 362 | #define __NR_utimensat 347 |
363 | #define __NR_signalfd 348 | 363 | #define __NR_signalfd 348 |
364 | #define __NR_timerfd 349 | 364 | #define __NR_timerfd_create 349 |
365 | #define __NR_eventfd 350 | 365 | #define __NR_eventfd 350 |
366 | #define __NR_pread64 351 | 366 | #define __NR_pread64 351 |
367 | #define __NR_pwrite64 352 | 367 | #define __NR_pwrite64 352 |
@@ -370,8 +370,10 @@ | |||
370 | #define __NR_get_robust_list 355 | 370 | #define __NR_get_robust_list 355 |
371 | #define __NR_fallocate 356 | 371 | #define __NR_fallocate 356 |
372 | #define __NR_semtimedop 357 | 372 | #define __NR_semtimedop 357 |
373 | #define __NR_timerfd_settime 358 | ||
374 | #define __NR_timerfd_gettime 359 | ||
373 | 375 | ||
374 | #define __NR_syscall 358 | 376 | #define __NR_syscall 360 |
375 | #define NR_syscalls __NR_syscall | 377 | #define NR_syscalls __NR_syscall |
376 | 378 | ||
377 | /* Old optional stuff no one actually uses */ | 379 | /* Old optional stuff no one actually uses */ |
diff --git a/include/asm-ia64/kprobes.h b/include/asm-ia64/kprobes.h index 8233b3a964..d03bf9ff68 100644 --- a/include/asm-ia64/kprobes.h +++ b/include/asm-ia64/kprobes.h | |||
@@ -117,7 +117,7 @@ struct arch_specific_insn { | |||
117 | unsigned short slot; | 117 | unsigned short slot; |
118 | }; | 118 | }; |
119 | 119 | ||
120 | extern int kprobes_fault_handler(struct pt_regs *regs, int trapnr); | 120 | extern int kprobe_fault_handler(struct pt_regs *regs, int trapnr); |
121 | extern int kprobe_exceptions_notify(struct notifier_block *self, | 121 | extern int kprobe_exceptions_notify(struct notifier_block *self, |
122 | unsigned long val, void *data); | 122 | unsigned long val, void *data); |
123 | 123 | ||
diff --git a/include/asm-ia64/ptrace.h b/include/asm-ia64/ptrace.h index 0bdce7dde1..4b2a8d40eb 100644 --- a/include/asm-ia64/ptrace.h +++ b/include/asm-ia64/ptrace.h | |||
@@ -233,8 +233,6 @@ struct switch_stack { | |||
233 | #include <asm/current.h> | 233 | #include <asm/current.h> |
234 | #include <asm/page.h> | 234 | #include <asm/page.h> |
235 | 235 | ||
236 | #define __ARCH_SYS_PTRACE 1 | ||
237 | |||
238 | /* | 236 | /* |
239 | * We use the ia64_psr(regs)->ri to determine which of the three | 237 | * We use the ia64_psr(regs)->ri to determine which of the three |
240 | * instructions in bundle (16 bytes) took the sample. Generate | 238 | * instructions in bundle (16 bytes) took the sample. Generate |
@@ -314,6 +312,13 @@ struct switch_stack { | |||
314 | #define arch_ptrace_attach(child) \ | 312 | #define arch_ptrace_attach(child) \ |
315 | ptrace_attach_sync_user_rbs(child) | 313 | ptrace_attach_sync_user_rbs(child) |
316 | 314 | ||
315 | #define arch_has_single_step() (1) | ||
316 | extern void user_enable_single_step(struct task_struct *); | ||
317 | extern void user_disable_single_step(struct task_struct *); | ||
318 | |||
319 | #define arch_has_block_step() (1) | ||
320 | extern void user_enable_block_step(struct task_struct *); | ||
321 | |||
317 | #endif /* !__KERNEL__ */ | 322 | #endif /* !__KERNEL__ */ |
318 | 323 | ||
319 | /* pt_all_user_regs is used for PTRACE_GETREGS PTRACE_SETREGS */ | 324 | /* pt_all_user_regs is used for PTRACE_GETREGS PTRACE_SETREGS */ |
diff --git a/include/asm-mn10300/Kbuild b/include/asm-mn10300/Kbuild index 79384c537d..c68e1680da 100644 --- a/include/asm-mn10300/Kbuild +++ b/include/asm-mn10300/Kbuild | |||
@@ -1,5 +1 @@ | |||
1 | include include/asm-generic/Kbuild.asm | include include/asm-generic/Kbuild.asm | |
2 | |||
3 | unifdef-y += termios.h | ||
4 | unifdef-y += ptrace.h | ||
5 | unifdef-y += page.h | ||
diff --git a/include/asm-sh/delay.h b/include/asm-sh/delay.h index d5d4640410..4b16bf9b56 100644 --- a/include/asm-sh/delay.h +++ b/include/asm-sh/delay.h | |||
@@ -15,7 +15,6 @@ extern void __ndelay(unsigned long nsecs); | |||
15 | extern void __const_udelay(unsigned long xloops); | 15 | extern void __const_udelay(unsigned long xloops); |
16 | extern void __delay(unsigned long loops); | 16 | extern void __delay(unsigned long loops); |
17 | 17 | ||
18 | #ifdef CONFIG_SUPERH32 | ||
19 | #define udelay(n) (__builtin_constant_p(n) ? \ | 18 | #define udelay(n) (__builtin_constant_p(n) ? \ |
20 | ((n) > 20000 ? __bad_udelay() : __const_udelay((n) * 0x10c6ul)) : \ | 19 | ((n) > 20000 ? __bad_udelay() : __const_udelay((n) * 0x10c6ul)) : \ |
21 | __udelay(n)) | 20 | __udelay(n)) |
@@ -23,9 +22,5 @@ extern void __delay(unsigned long loops); | |||
23 | #define ndelay(n) (__builtin_constant_p(n) ? \ | 22 | #define ndelay(n) (__builtin_constant_p(n) ? \ |
24 | ((n) > 20000 ? __bad_ndelay() : __const_udelay((n) * 5ul)) : \ | 23 | ((n) > 20000 ? __bad_ndelay() : __const_udelay((n) * 5ul)) : \ |
25 | __ndelay(n)) | 24 | __ndelay(n)) |
26 | #else | ||
27 | extern void udelay(unsigned long usecs); | ||
28 | extern void ndelay(unsigned long nsecs); | ||
29 | #endif | ||
30 | 25 | ||
31 | #endif /* __ASM_SH_DELAY_H */ | 26 | #endif /* __ASM_SH_DELAY_H */ |
diff --git a/include/asm-x86/Kbuild b/include/asm-x86/Kbuild index b04a7ff46d..3b8160a2b4 100644 --- a/include/asm-x86/Kbuild +++ b/include/asm-x86/Kbuild | |||
@@ -16,7 +16,6 @@ unifdef-y += ist.h | |||
16 | unifdef-y += mce.h | 16 | unifdef-y += mce.h |
17 | unifdef-y += msr.h | 17 | unifdef-y += msr.h |
18 | unifdef-y += mtrr.h | 18 | unifdef-y += mtrr.h |
19 | unifdef-y += page.h | ||
20 | unifdef-y += posix_types_32.h | 19 | unifdef-y += posix_types_32.h |
21 | unifdef-y += posix_types_64.h | 20 | unifdef-y += posix_types_64.h |
22 | unifdef-y += ptrace.h | 21 | unifdef-y += ptrace.h |
diff --git a/include/crypto/internal/skcipher.h b/include/crypto/internal/skcipher.h index 2ba42cd7d6..ccc32bad9a 100644 --- a/include/crypto/internal/skcipher.h +++ b/include/crypto/internal/skcipher.h | |||
@@ -15,6 +15,7 @@ | |||
15 | 15 | ||
16 | #include <crypto/algapi.h> | 16 | #include <crypto/algapi.h> |
17 | #include <crypto/skcipher.h> | 17 | #include <crypto/skcipher.h> |
18 | #include <linux/init.h> | ||
18 | #include <linux/types.h> | 19 | #include <linux/types.h> |
19 | 20 | ||
20 | struct rtattr; | 21 | struct rtattr; |
@@ -64,6 +65,11 @@ void skcipher_geniv_free(struct crypto_instance *inst); | |||
64 | int skcipher_geniv_init(struct crypto_tfm *tfm); | 65 | int skcipher_geniv_init(struct crypto_tfm *tfm); |
65 | void skcipher_geniv_exit(struct crypto_tfm *tfm); | 66 | void skcipher_geniv_exit(struct crypto_tfm *tfm); |
66 | 67 | ||
68 | int __init eseqiv_module_init(void); | ||
69 | void __exit eseqiv_module_exit(void); | ||
70 | int __init chainiv_module_init(void); | ||
71 | void chainiv_module_exit(void); | ||
72 | |||
67 | static inline struct crypto_ablkcipher *skcipher_geniv_cipher( | 73 | static inline struct crypto_ablkcipher *skcipher_geniv_cipher( |
68 | struct crypto_ablkcipher *geniv) | 74 | struct crypto_ablkcipher *geniv) |
69 | { | 75 | { |
diff --git a/include/linux/memstick.h b/include/linux/memstick.h index 334d059d67..b7ee258888 100644 --- a/include/linux/memstick.h +++ b/include/linux/memstick.h | |||
@@ -22,6 +22,8 @@ struct ms_status_register { | |||
22 | unsigned char reserved; | 22 | unsigned char reserved; |
23 | unsigned char interrupt; | 23 | unsigned char interrupt; |
24 | #define MEMSTICK_INT_CMDNAK 0x0001 | 24 | #define MEMSTICK_INT_CMDNAK 0x0001 |
25 | #define MEMSTICK_INT_IOREQ 0x0008 | ||
26 | #define MEMSTICK_INT_IOBREQ 0x0010 | ||
25 | #define MEMSTICK_INT_BREQ 0x0020 | 27 | #define MEMSTICK_INT_BREQ 0x0020 |
26 | #define MEMSTICK_INT_ERR 0x0040 | 28 | #define MEMSTICK_INT_ERR 0x0040 |
27 | #define MEMSTICK_INT_CED 0x0080 | 29 | #define MEMSTICK_INT_CED 0x0080 |
@@ -47,13 +49,17 @@ struct ms_status_register { | |||
47 | 49 | ||
48 | struct ms_id_register { | 50 | struct ms_id_register { |
49 | unsigned char type; | 51 | unsigned char type; |
50 | unsigned char reserved; | 52 | unsigned char if_mode; |
51 | unsigned char category; | 53 | unsigned char category; |
52 | unsigned char class; | 54 | unsigned char class; |
53 | } __attribute__((packed)); | 55 | } __attribute__((packed)); |
54 | 56 | ||
55 | struct ms_param_register { | 57 | struct ms_param_register { |
56 | unsigned char system; | 58 | unsigned char system; |
59 | #define MEMSTICK_SYS_ATEN 0xc0 | ||
60 | #define MEMSTICK_SYS_BAMD 0x80 | ||
61 | #define MEMSTICK_SYS_PAM 0x08 | ||
62 | |||
57 | unsigned char block_address_msb; | 63 | unsigned char block_address_msb; |
58 | unsigned short block_address; | 64 | unsigned short block_address; |
59 | unsigned char cp; | 65 | unsigned char cp; |
@@ -90,16 +96,48 @@ struct ms_register { | |||
90 | 96 | ||
91 | struct mspro_param_register { | 97 | struct mspro_param_register { |
92 | unsigned char system; | 98 | unsigned char system; |
99 | #define MEMSTICK_SYS_SERIAL 0x80 | ||
100 | #define MEMSTICK_SYS_PAR4 0x00 | ||
101 | #define MEMSTICK_SYS_PAR8 0x40 | ||
102 | |||
103 | unsigned short data_count; | ||
104 | unsigned int data_address; | ||
105 | unsigned char tpc_param; | ||
106 | } __attribute__((packed)); | ||
107 | |||
108 | struct mspro_io_info_register { | ||
109 | unsigned char version; | ||
110 | unsigned char io_category; | ||
111 | unsigned char current_req; | ||
112 | unsigned char card_opt_info; | ||
113 | unsigned char rdy_wait_time; | ||
114 | } __attribute__((packed)); | ||
115 | |||
116 | struct mspro_io_func_register { | ||
117 | unsigned char func_enable; | ||
118 | unsigned char func_select; | ||
119 | unsigned char func_intmask; | ||
120 | unsigned char transfer_mode; | ||
121 | } __attribute__((packed)); | ||
122 | |||
123 | struct mspro_io_cmd_register { | ||
124 | unsigned short tpc_param; | ||
93 | unsigned short data_count; | 125 | unsigned short data_count; |
94 | unsigned int data_address; | 126 | unsigned int data_address; |
95 | unsigned char cmd_param; | ||
96 | } __attribute__((packed)); | 127 | } __attribute__((packed)); |
97 | 128 | ||
98 | struct mspro_register { | 129 | struct mspro_register { |
99 | struct ms_status_register status; | 130 | struct ms_status_register status; |
100 | struct ms_id_register id; | 131 | struct ms_id_register id; |
101 | unsigned char reserved[8]; | 132 | unsigned char reserved0[8]; |
102 | struct mspro_param_register param; | 133 | struct mspro_param_register param; |
134 | unsigned char reserved1[8]; | ||
135 | struct mspro_io_info_register io_info; | ||
136 | struct mspro_io_func_register io_func; | ||
137 | unsigned char reserved2[7]; | ||
138 | struct mspro_io_cmd_register io_cmd; | ||
139 | unsigned char io_int; | ||
140 | unsigned char io_int_func; | ||
103 | } __attribute__((packed)); | 141 | } __attribute__((packed)); |
104 | 142 | ||
105 | struct ms_register_addr { | 143 | struct ms_register_addr { |
@@ -110,49 +148,55 @@ struct ms_register_addr { | |||
110 | } __attribute__((packed)); | 148 | } __attribute__((packed)); |
111 | 149 | ||
112 | enum { | 150 | enum { |
151 | MS_TPC_READ_MG_STATUS = 0x01, | ||
113 | MS_TPC_READ_LONG_DATA = 0x02, | 152 | MS_TPC_READ_LONG_DATA = 0x02, |
114 | MS_TPC_READ_SHORT_DATA = 0x03, | 153 | MS_TPC_READ_SHORT_DATA = 0x03, |
154 | MS_TPC_READ_MG_DATA = 0x03, | ||
115 | MS_TPC_READ_REG = 0x04, | 155 | MS_TPC_READ_REG = 0x04, |
116 | MS_TPC_READ_IO_DATA = 0x05, /* unverified */ | 156 | MS_TPC_READ_QUAD_DATA = 0x05, |
157 | MS_TPC_READ_IO_DATA = 0x05, | ||
117 | MS_TPC_GET_INT = 0x07, | 158 | MS_TPC_GET_INT = 0x07, |
118 | MS_TPC_SET_RW_REG_ADRS = 0x08, | 159 | MS_TPC_SET_RW_REG_ADRS = 0x08, |
119 | MS_TPC_EX_SET_CMD = 0x09, | 160 | MS_TPC_EX_SET_CMD = 0x09, |
120 | MS_TPC_WRITE_IO_DATA = 0x0a, /* unverified */ | 161 | MS_TPC_WRITE_QUAD_DATA = 0x0a, |
162 | MS_TPC_WRITE_IO_DATA = 0x0a, | ||
121 | MS_TPC_WRITE_REG = 0x0b, | 163 | MS_TPC_WRITE_REG = 0x0b, |
122 | MS_TPC_WRITE_SHORT_DATA = 0x0c, | 164 | MS_TPC_WRITE_SHORT_DATA = 0x0c, |
165 | MS_TPC_WRITE_MG_DATA = 0x0c, | ||
123 | MS_TPC_WRITE_LONG_DATA = 0x0d, | 166 | MS_TPC_WRITE_LONG_DATA = 0x0d, |
124 | MS_TPC_SET_CMD = 0x0e | 167 | MS_TPC_SET_CMD = 0x0e |
125 | }; | 168 | }; |
126 | 169 | ||
127 | enum { | 170 | enum { |
128 | MS_CMD_BLOCK_END = 0x33, | 171 | MS_CMD_BLOCK_END = 0x33, |
129 | MS_CMD_RESET = 0x3c, | 172 | MS_CMD_RESET = 0x3c, |
130 | MS_CMD_BLOCK_WRITE = 0x55, | 173 | MS_CMD_BLOCK_WRITE = 0x55, |
131 | MS_CMD_SLEEP = 0x5a, | 174 | MS_CMD_SLEEP = 0x5a, |
132 | MS_CMD_BLOCK_ERASE = 0x99, | 175 | MS_CMD_BLOCK_ERASE = 0x99, |
133 | MS_CMD_BLOCK_READ = 0xaa, | 176 | MS_CMD_BLOCK_READ = 0xaa, |
134 | MS_CMD_CLEAR_BUF = 0xc3, | 177 | MS_CMD_CLEAR_BUF = 0xc3, |
135 | MS_CMD_FLASH_STOP = 0xcc, | 178 | MS_CMD_FLASH_STOP = 0xcc, |
136 | MSPRO_CMD_FORMAT = 0x10, | 179 | MS_CMD_LOAD_ID = 0x60, |
137 | MSPRO_CMD_SLEEP = 0x11, | 180 | MS_CMD_CMP_ICV = 0x7f, |
138 | MSPRO_CMD_READ_DATA = 0x20, | 181 | MSPRO_CMD_FORMAT = 0x10, |
139 | MSPRO_CMD_WRITE_DATA = 0x21, | 182 | MSPRO_CMD_SLEEP = 0x11, |
140 | MSPRO_CMD_READ_ATRB = 0x24, | 183 | MSPRO_CMD_WAKEUP = 0x12, |
141 | MSPRO_CMD_STOP = 0x25, | 184 | MSPRO_CMD_READ_DATA = 0x20, |
142 | MSPRO_CMD_ERASE = 0x26, | 185 | MSPRO_CMD_WRITE_DATA = 0x21, |
143 | MSPRO_CMD_SET_IBA = 0x46, | 186 | MSPRO_CMD_READ_ATRB = 0x24, |
144 | MSPRO_CMD_SET_IBD = 0x47 | 187 | MSPRO_CMD_STOP = 0x25, |
145 | /* | 188 | MSPRO_CMD_ERASE = 0x26, |
146 | MSPRO_CMD_RESET | 189 | MSPRO_CMD_READ_QUAD = 0x27, |
147 | MSPRO_CMD_WAKEUP | 190 | MSPRO_CMD_WRITE_QUAD = 0x28, |
148 | MSPRO_CMD_IN_IO_DATA | 191 | MSPRO_CMD_SET_IBD = 0x46, |
149 | MSPRO_CMD_OUT_IO_DATA | 192 | MSPRO_CMD_GET_IBD = 0x47, |
150 | MSPRO_CMD_READ_IO_ATRB | 193 | MSPRO_CMD_IN_IO_DATA = 0xb0, |
151 | MSPRO_CMD_IN_IO_FIFO | 194 | MSPRO_CMD_OUT_IO_DATA = 0xb1, |
152 | MSPRO_CMD_OUT_IO_FIFO | 195 | MSPRO_CMD_READ_IO_ATRB = 0xb2, |
153 | MSPRO_CMD_IN_IOM | 196 | MSPRO_CMD_IN_IO_FIFO = 0xb3, |
154 | MSPRO_CMD_OUT_IOM | 197 | MSPRO_CMD_OUT_IO_FIFO = 0xb4, |
155 | */ | 198 | MSPRO_CMD_IN_IOM = 0xb5, |
199 | MSPRO_CMD_OUT_IOM = 0xb6, | ||
156 | }; | 200 | }; |
157 | 201 | ||
158 | /*** Driver structures and functions ***/ | 202 | /*** Driver structures and functions ***/ |
@@ -165,7 +209,8 @@ enum memstick_param { MEMSTICK_POWER = 1, MEMSTICK_INTERFACE }; | |||
165 | #define MEMSTICK_POWER_ON 1 | 209 | #define MEMSTICK_POWER_ON 1 |
166 | 210 | ||
167 | #define MEMSTICK_SERIAL 0 | 211 | #define MEMSTICK_SERIAL 0 |
168 | #define MEMSTICK_PARALLEL 1 | 212 | #define MEMSTICK_PAR4 1 |
213 | #define MEMSTICK_PAR8 2 | ||
169 | 214 | ||
170 | struct memstick_host; | 215 | struct memstick_host; |
171 | struct memstick_driver; | 216 | struct memstick_driver; |
@@ -195,11 +240,7 @@ struct memstick_request { | |||
195 | unsigned char data_dir:1, | 240 | unsigned char data_dir:1, |
196 | need_card_int:1, | 241 | need_card_int:1, |
197 | get_int_reg:1, | 242 | get_int_reg:1, |
198 | io_type:2; | 243 | long_data:1; |
199 | #define MEMSTICK_IO_NONE 0 | ||
200 | #define MEMSTICK_IO_VAL 1 | ||
201 | #define MEMSTICK_IO_SG 2 | ||
202 | |||
203 | unsigned char int_reg; | 244 | unsigned char int_reg; |
204 | int error; | 245 | int error; |
205 | union { | 246 | union { |
@@ -231,8 +272,9 @@ struct memstick_host { | |||
231 | struct mutex lock; | 272 | struct mutex lock; |
232 | unsigned int id; | 273 | unsigned int id; |
233 | unsigned int caps; | 274 | unsigned int caps; |
234 | #define MEMSTICK_CAP_PARALLEL 1 | 275 | #define MEMSTICK_CAP_AUTO_GET_INT 1 |
235 | #define MEMSTICK_CAP_AUTO_GET_INT 2 | 276 | #define MEMSTICK_CAP_PAR4 2 |
277 | #define MEMSTICK_CAP_PAR8 4 | ||
236 | 278 | ||
237 | struct work_struct media_checker; | 279 | struct work_struct media_checker; |
238 | struct class_device cdev; | 280 | struct class_device cdev; |
@@ -270,6 +312,8 @@ int memstick_add_host(struct memstick_host *host); | |||
270 | void memstick_remove_host(struct memstick_host *host); | 312 | void memstick_remove_host(struct memstick_host *host); |
271 | void memstick_free_host(struct memstick_host *host); | 313 | void memstick_free_host(struct memstick_host *host); |
272 | void memstick_detect_change(struct memstick_host *host); | 314 | void memstick_detect_change(struct memstick_host *host); |
315 | void memstick_suspend_host(struct memstick_host *host); | ||
316 | void memstick_resume_host(struct memstick_host *host); | ||
273 | 317 | ||
274 | void memstick_init_req_sg(struct memstick_request *mrq, unsigned char tpc, | 318 | void memstick_init_req_sg(struct memstick_request *mrq, unsigned char tpc, |
275 | struct scatterlist *sg); | 319 | struct scatterlist *sg); |
diff --git a/include/linux/nfs_fs.h b/include/linux/nfs_fs.h index a69ba80f2d..f4a0e4c218 100644 --- a/include/linux/nfs_fs.h +++ b/include/linux/nfs_fs.h | |||
@@ -195,6 +195,7 @@ struct nfs_inode { | |||
195 | #define NFS_INO_ADVISE_RDPLUS (1) /* advise readdirplus */ | 195 | #define NFS_INO_ADVISE_RDPLUS (1) /* advise readdirplus */ |
196 | #define NFS_INO_STALE (2) /* possible stale inode */ | 196 | #define NFS_INO_STALE (2) /* possible stale inode */ |
197 | #define NFS_INO_ACL_LRU_SET (3) /* Inode is on the LRU list */ | 197 | #define NFS_INO_ACL_LRU_SET (3) /* Inode is on the LRU list */ |
198 | #define NFS_INO_MOUNTPOINT (4) /* inode is remote mountpoint */ | ||
198 | 199 | ||
199 | static inline struct nfs_inode *NFS_I(const struct inode *inode) | 200 | static inline struct nfs_inode *NFS_I(const struct inode *inode) |
200 | { | 201 | { |
diff --git a/include/linux/pci.h b/include/linux/pci.h index f3165e7ac4..38eff19477 100644 --- a/include/linux/pci.h +++ b/include/linux/pci.h | |||
@@ -389,13 +389,13 @@ struct pci_driver { | |||
389 | #define to_pci_driver(drv) container_of(drv, struct pci_driver, driver) | 389 | #define to_pci_driver(drv) container_of(drv, struct pci_driver, driver) |
390 | 390 | ||
391 | /** | 391 | /** |
392 | * DECLARE_PCI_DEVICE_TABLE - macro used to describe a pci device table | 392 | * DEFINE_PCI_DEVICE_TABLE - macro used to describe a pci device table |
393 | * @_table: device table name | 393 | * @_table: device table name |
394 | * | 394 | * |
395 | * This macro is used to create a struct pci_device_id array (a device table) | 395 | * This macro is used to create a struct pci_device_id array (a device table) |
396 | * in a generic manner. | 396 | * in a generic manner. |
397 | */ | 397 | */ |
398 | #define DECLARE_PCI_DEVICE_TABLE(_table) \ | 398 | #define DEFINE_PCI_DEVICE_TABLE(_table) \ |
399 | const struct pci_device_id _table[] __devinitconst | 399 | const struct pci_device_id _table[] __devinitconst |
400 | 400 | ||
401 | /** | 401 | /** |
diff --git a/include/linux/pci_ids.h b/include/linux/pci_ids.h index effdb558a5..70eb3c803d 100644 --- a/include/linux/pci_ids.h +++ b/include/linux/pci_ids.h | |||
@@ -2184,6 +2184,7 @@ | |||
2184 | #define PCI_DEVICE_ID_JMICRON_JMB366 0x2366 | 2184 | #define PCI_DEVICE_ID_JMICRON_JMB366 0x2366 |
2185 | #define PCI_DEVICE_ID_JMICRON_JMB368 0x2368 | 2185 | #define PCI_DEVICE_ID_JMICRON_JMB368 0x2368 |
2186 | #define PCI_DEVICE_ID_JMICRON_JMB38X_SD 0x2381 | 2186 | #define PCI_DEVICE_ID_JMICRON_JMB38X_SD 0x2381 |
2187 | #define PCI_DEVICE_ID_JMICRON_JMB38X_MS 0x2383 | ||
2187 | 2188 | ||
2188 | #define PCI_VENDOR_ID_KORENIX 0x1982 | 2189 | #define PCI_VENDOR_ID_KORENIX 0x1982 |
2189 | #define PCI_DEVICE_ID_KORENIX_JETCARDF0 0x1600 | 2190 | #define PCI_DEVICE_ID_KORENIX_JETCARDF0 0x1600 |
diff --git a/include/linux/sched.h b/include/linux/sched.h index 9ae4030067..11d8e9a74e 100644 --- a/include/linux/sched.h +++ b/include/linux/sched.h | |||
@@ -899,6 +899,10 @@ struct sched_class { | |||
899 | int running); | 899 | int running); |
900 | void (*prio_changed) (struct rq *this_rq, struct task_struct *task, | 900 | void (*prio_changed) (struct rq *this_rq, struct task_struct *task, |
901 | int oldprio, int running); | 901 | int oldprio, int running); |
902 | |||
903 | #ifdef CONFIG_FAIR_GROUP_SCHED | ||
904 | void (*moved_group) (struct task_struct *p); | ||
905 | #endif | ||
902 | }; | 906 | }; |
903 | 907 | ||
904 | struct load_weight { | 908 | struct load_weight { |
diff --git a/include/linux/slab_def.h b/include/linux/slab_def.h index fcc48096ee..39c3a5eb8e 100644 --- a/include/linux/slab_def.h +++ b/include/linux/slab_def.h | |||
@@ -41,7 +41,7 @@ static inline void *kmalloc(size_t size, gfp_t flags) | |||
41 | goto found; \ | 41 | goto found; \ |
42 | else \ | 42 | else \ |
43 | i++; | 43 | i++; |
44 | #include "kmalloc_sizes.h" | 44 | #include <linux/kmalloc_sizes.h> |
45 | #undef CACHE | 45 | #undef CACHE |
46 | { | 46 | { |
47 | extern void __you_cannot_kmalloc_that_much(void); | 47 | extern void __you_cannot_kmalloc_that_much(void); |
@@ -75,7 +75,7 @@ static inline void *kmalloc_node(size_t size, gfp_t flags, int node) | |||
75 | goto found; \ | 75 | goto found; \ |
76 | else \ | 76 | else \ |
77 | i++; | 77 | i++; |
78 | #include "kmalloc_sizes.h" | 78 | #include <linux/kmalloc_sizes.h> |
79 | #undef CACHE | 79 | #undef CACHE |
80 | { | 80 | { |
81 | extern void __you_cannot_kmalloc_that_much(void); | 81 | extern void __you_cannot_kmalloc_that_much(void); |
diff --git a/include/linux/tifm.h b/include/linux/tifm.h index da76ed85f5..848c0f3925 100644 --- a/include/linux/tifm.h +++ b/include/linux/tifm.h | |||
@@ -70,9 +70,9 @@ enum { | |||
70 | 70 | ||
71 | #define TIFM_FIFO_ENABLE 0x00000001 | 71 | #define TIFM_FIFO_ENABLE 0x00000001 |
72 | #define TIFM_FIFO_READY 0x00000001 | 72 | #define TIFM_FIFO_READY 0x00000001 |
73 | #define TIFM_FIFO_MORE 0x00000008 | ||
73 | #define TIFM_FIFO_INT_SETALL 0x0000ffff | 74 | #define TIFM_FIFO_INT_SETALL 0x0000ffff |
74 | #define TIFM_FIFO_INTMASK 0x00000005 | 75 | #define TIFM_FIFO_INTMASK 0x00000005 |
75 | #define TIFM_FIFO_SIZE 0x00000200 | ||
76 | 76 | ||
77 | #define TIFM_DMA_RESET 0x00000002 | 77 | #define TIFM_DMA_RESET 0x00000002 |
78 | #define TIFM_DMA_TX 0x00008000 | 78 | #define TIFM_DMA_TX 0x00008000 |
diff --git a/include/linux/time.h b/include/linux/time.h index 2091a19f16..d32ef0ad4c 100644 --- a/include/linux/time.h +++ b/include/linux/time.h | |||
@@ -174,6 +174,10 @@ static inline void timespec_add_ns(struct timespec *a, u64 ns) | |||
174 | { | 174 | { |
175 | ns += a->tv_nsec; | 175 | ns += a->tv_nsec; |
176 | while(unlikely(ns >= NSEC_PER_SEC)) { | 176 | while(unlikely(ns >= NSEC_PER_SEC)) { |
177 | /* The following asm() prevents the compiler from | ||
178 | * optimising this loop into a modulo operation. */ | ||
179 | asm("" : "+r"(ns)); | ||
180 | |||
177 | ns -= NSEC_PER_SEC; | 181 | ns -= NSEC_PER_SEC; |
178 | a->tv_sec++; | 182 | a->tv_sec++; |
179 | } | 183 | } |
diff --git a/include/linux/timex.h b/include/linux/timex.h index c3f374786a..8ea3e71ba7 100644 --- a/include/linux/timex.h +++ b/include/linux/timex.h | |||
@@ -232,14 +232,7 @@ static inline int ntp_synced(void) | |||
232 | #else | 232 | #else |
233 | #define NTP_INTERVAL_FREQ (HZ) | 233 | #define NTP_INTERVAL_FREQ (HZ) |
234 | #endif | 234 | #endif |
235 | 235 | #define NTP_INTERVAL_LENGTH (NSEC_PER_SEC/NTP_INTERVAL_FREQ) | |
236 | #define CLOCK_TICK_OVERFLOW (LATCH * HZ - CLOCK_TICK_RATE) | ||
237 | #define CLOCK_TICK_ADJUST (((s64)CLOCK_TICK_OVERFLOW * NSEC_PER_SEC) / \ | ||
238 | (s64)CLOCK_TICK_RATE) | ||
239 | |||
240 | /* Because using NSEC_PER_SEC would be too easy */ | ||
241 | #define NTP_INTERVAL_LENGTH ((((s64)TICK_USEC * NSEC_PER_USEC * USER_HZ) + \ | ||
242 | CLOCK_TICK_ADJUST) / NTP_INTERVAL_FREQ) | ||
243 | 236 | ||
244 | /* Returns how long ticks are at present, in ns / 2^(SHIFT_SCALE-10). */ | 237 | /* Returns how long ticks are at present, in ns / 2^(SHIFT_SCALE-10). */ |
245 | extern u64 current_tick_length(void); | 238 | extern u64 current_tick_length(void); |
diff --git a/init/Kconfig b/init/Kconfig index 074ac97f55..a97924bc5b 100644 --- a/init/Kconfig +++ b/init/Kconfig | |||
@@ -865,38 +865,10 @@ source "block/Kconfig" | |||
865 | config PREEMPT_NOTIFIERS | 865 | config PREEMPT_NOTIFIERS |
866 | bool | 866 | bool |
867 | 867 | ||
868 | choice | ||
869 | prompt "RCU implementation type:" | ||
870 | default CLASSIC_RCU | ||
871 | help | ||
872 | This allows you to choose either the classic RCU implementation | ||
873 | that is designed for best read-side performance on non-realtime | ||
874 | systems, or the preemptible RCU implementation for best latency | ||
875 | on realtime systems. Note that some kernel preemption modes | ||
876 | will restrict your choice. | ||
877 | |||
878 | Select the default if you are unsure. | ||
879 | |||
880 | config CLASSIC_RCU | 868 | config CLASSIC_RCU |
881 | bool "Classic RCU" | 869 | def_bool !PREEMPT_RCU |
882 | help | 870 | help |
883 | This option selects the classic RCU implementation that is | 871 | This option selects the classic RCU implementation that is |
884 | designed for best read-side performance on non-realtime | 872 | designed for best read-side performance on non-realtime |
885 | systems. | 873 | systems. Classic RCU is the default. Note that the |
886 | 874 | PREEMPT_RCU symbol is used to select/deselect this option. | |
887 | Say Y if you are unsure. | ||
888 | |||
889 | config PREEMPT_RCU | ||
890 | bool "Preemptible RCU" | ||
891 | depends on PREEMPT | ||
892 | help | ||
893 | This option reduces the latency of the kernel by making certain | ||
894 | RCU sections preemptible. Normally RCU code is non-preemptible, if | ||
895 | this option is selected then read-only RCU sections become | ||
896 | preemptible. This helps latency, but may expose bugs due to | ||
897 | now-naive assumptions about each RCU read-side critical section | ||
898 | remaining on a given CPU through its execution. | ||
899 | |||
900 | Say N if you are unsure. | ||
901 | |||
902 | endchoice | ||
@@ -271,9 +271,10 @@ static struct mempolicy *shm_get_policy(struct vm_area_struct *vma, | |||
271 | 271 | ||
272 | if (sfd->vm_ops->get_policy) | 272 | if (sfd->vm_ops->get_policy) |
273 | pol = sfd->vm_ops->get_policy(vma, addr); | 273 | pol = sfd->vm_ops->get_policy(vma, addr); |
274 | else if (vma->vm_policy) | 274 | else if (vma->vm_policy) { |
275 | pol = vma->vm_policy; | 275 | pol = vma->vm_policy; |
276 | else | 276 | mpol_get(pol); /* get_vma_policy() expects this */ |
277 | } else | ||
277 | pol = current->mempolicy; | 278 | pol = current->mempolicy; |
278 | return pol; | 279 | return pol; |
279 | } | 280 | } |
diff --git a/kernel/Kconfig.preempt b/kernel/Kconfig.preempt index 0669b70fa6..9fdba03dc1 100644 --- a/kernel/Kconfig.preempt +++ b/kernel/Kconfig.preempt | |||
@@ -52,8 +52,23 @@ config PREEMPT | |||
52 | 52 | ||
53 | endchoice | 53 | endchoice |
54 | 54 | ||
55 | config PREEMPT_RCU | ||
56 | bool "Preemptible RCU" | ||
57 | depends on PREEMPT | ||
58 | default n | ||
59 | help | ||
60 | This option reduces the latency of the kernel by making certain | ||
61 | RCU sections preemptible. Normally RCU code is non-preemptible, if | ||
62 | this option is selected then read-only RCU sections become | ||
63 | preemptible. This helps latency, but may expose bugs due to | ||
64 | now-naive assumptions about each RCU read-side critical section | ||
65 | remaining on a given CPU through its execution. | ||
66 | |||
67 | Say N if you are unsure. | ||
68 | |||
55 | config RCU_TRACE | 69 | config RCU_TRACE |
56 | bool "Enable tracing for RCU - currently stats in debugfs" | 70 | bool "Enable tracing for RCU - currently stats in debugfs" |
71 | depends on PREEMPT_RCU | ||
57 | select DEBUG_FS | 72 | select DEBUG_FS |
58 | default y | 73 | default y |
59 | help | 74 | help |
diff --git a/kernel/exit.c b/kernel/exit.c index cd20bf07e9..53872bf993 100644 --- a/kernel/exit.c +++ b/kernel/exit.c | |||
@@ -1378,7 +1378,7 @@ unlock_sig: | |||
1378 | if (!retval && infop) | 1378 | if (!retval && infop) |
1379 | retval = put_user(0, &infop->si_errno); | 1379 | retval = put_user(0, &infop->si_errno); |
1380 | if (!retval && infop) | 1380 | if (!retval && infop) |
1381 | retval = put_user(why, &infop->si_code); | 1381 | retval = put_user((short)why, &infop->si_code); |
1382 | if (!retval && infop) | 1382 | if (!retval && infop) |
1383 | retval = put_user(exit_code, &infop->si_status); | 1383 | retval = put_user(exit_code, &infop->si_status); |
1384 | if (!retval && infop) | 1384 | if (!retval && infop) |
diff --git a/kernel/module.c b/kernel/module.c index be4807fb90..5d437bffd8 100644 --- a/kernel/module.c +++ b/kernel/module.c | |||
@@ -2178,10 +2178,20 @@ sys_init_module(void __user *umod, | |||
2178 | wake_up(&module_wq); | 2178 | wake_up(&module_wq); |
2179 | return ret; | 2179 | return ret; |
2180 | } | 2180 | } |
2181 | if (ret > 0) { | ||
2182 | printk(KERN_WARNING "%s: '%s'->init suspiciously returned %d, " | ||
2183 | "it should follow 0/-E convention\n" | ||
2184 | KERN_WARNING "%s: loading module anyway...\n", | ||
2185 | __func__, mod->name, ret, | ||
2186 | __func__); | ||
2187 | dump_stack(); | ||
2188 | } | ||
2181 | 2189 | ||
2182 | /* Now it's a first class citizen! */ | 2190 | /* Now it's a first class citizen! Wake up anyone waiting for it. */ |
2183 | mutex_lock(&module_mutex); | ||
2184 | mod->state = MODULE_STATE_LIVE; | 2191 | mod->state = MODULE_STATE_LIVE; |
2192 | wake_up(&module_wq); | ||
2193 | |||
2194 | mutex_lock(&module_mutex); | ||
2185 | /* Drop initial reference. */ | 2195 | /* Drop initial reference. */ |
2186 | module_put(mod); | 2196 | module_put(mod); |
2187 | unwind_remove_table(mod->unwind_info, 1); | 2197 | unwind_remove_table(mod->unwind_info, 1); |
@@ -2190,7 +2200,6 @@ sys_init_module(void __user *umod, | |||
2190 | mod->init_size = 0; | 2200 | mod->init_size = 0; |
2191 | mod->init_text_size = 0; | 2201 | mod->init_text_size = 0; |
2192 | mutex_unlock(&module_mutex); | 2202 | mutex_unlock(&module_mutex); |
2193 | wake_up(&module_wq); | ||
2194 | 2203 | ||
2195 | return 0; | 2204 | return 0; |
2196 | } | 2205 | } |
diff --git a/kernel/sched.c b/kernel/sched.c index dcd553cc4e..b02e4fc256 100644 --- a/kernel/sched.c +++ b/kernel/sched.c | |||
@@ -4422,7 +4422,7 @@ int task_nice(const struct task_struct *p) | |||
4422 | { | 4422 | { |
4423 | return TASK_NICE(p); | 4423 | return TASK_NICE(p); |
4424 | } | 4424 | } |
4425 | EXPORT_SYMBOL_GPL(task_nice); | 4425 | EXPORT_SYMBOL(task_nice); |
4426 | 4426 | ||
4427 | /** | 4427 | /** |
4428 | * idle_cpu - is a given cpu idle currently? | 4428 | * idle_cpu - is a given cpu idle currently? |
@@ -5100,7 +5100,7 @@ long sys_sched_rr_get_interval(pid_t pid, struct timespec __user *interval) | |||
5100 | time_slice = 0; | 5100 | time_slice = 0; |
5101 | if (p->policy == SCHED_RR) { | 5101 | if (p->policy == SCHED_RR) { |
5102 | time_slice = DEF_TIMESLICE; | 5102 | time_slice = DEF_TIMESLICE; |
5103 | } else { | 5103 | } else if (p->policy != SCHED_FIFO) { |
5104 | struct sched_entity *se = &p->se; | 5104 | struct sched_entity *se = &p->se; |
5105 | unsigned long flags; | 5105 | unsigned long flags; |
5106 | struct rq *rq; | 5106 | struct rq *rq; |
@@ -5813,6 +5813,13 @@ migration_call(struct notifier_block *nfb, unsigned long action, void *hcpu) | |||
5813 | /* Must be high prio: stop_machine expects to yield to it. */ | 5813 | /* Must be high prio: stop_machine expects to yield to it. */ |
5814 | rq = task_rq_lock(p, &flags); | 5814 | rq = task_rq_lock(p, &flags); |
5815 | __setscheduler(rq, p, SCHED_FIFO, MAX_RT_PRIO-1); | 5815 | __setscheduler(rq, p, SCHED_FIFO, MAX_RT_PRIO-1); |
5816 | |||
5817 | /* Update our root-domain */ | ||
5818 | if (rq->rd) { | ||
5819 | BUG_ON(!cpu_isset(cpu, rq->rd->span)); | ||
5820 | cpu_set(cpu, rq->rd->online); | ||
5821 | } | ||
5822 | |||
5816 | task_rq_unlock(rq, &flags); | 5823 | task_rq_unlock(rq, &flags); |
5817 | cpu_rq(cpu)->migration_thread = p; | 5824 | cpu_rq(cpu)->migration_thread = p; |
5818 | break; | 5825 | break; |
@@ -5821,15 +5828,6 @@ migration_call(struct notifier_block *nfb, unsigned long action, void *hcpu) | |||
5821 | case CPU_ONLINE_FROZEN: | 5828 | case CPU_ONLINE_FROZEN: |
5822 | /* Strictly unnecessary, as first user will wake it. */ | 5829 | /* Strictly unnecessary, as first user will wake it. */ |
5823 | wake_up_process(cpu_rq(cpu)->migration_thread); | 5830 | wake_up_process(cpu_rq(cpu)->migration_thread); |
5824 | |||
5825 | /* Update our root-domain */ | ||
5826 | rq = cpu_rq(cpu); | ||
5827 | spin_lock_irqsave(&rq->lock, flags); | ||
5828 | if (rq->rd) { | ||
5829 | BUG_ON(!cpu_isset(cpu, rq->rd->span)); | ||
5830 | cpu_set(cpu, rq->rd->online); | ||
5831 | } | ||
5832 | spin_unlock_irqrestore(&rq->lock, flags); | ||
5833 | break; | 5831 | break; |
5834 | 5832 | ||
5835 | #ifdef CONFIG_HOTPLUG_CPU | 5833 | #ifdef CONFIG_HOTPLUG_CPU |
@@ -6105,8 +6103,6 @@ static void rq_attach_root(struct rq *rq, struct root_domain *rd) | |||
6105 | rq->rd = rd; | 6103 | rq->rd = rd; |
6106 | 6104 | ||
6107 | cpu_set(rq->cpu, rd->span); | 6105 | cpu_set(rq->cpu, rd->span); |
6108 | if (cpu_isset(rq->cpu, cpu_online_map)) | ||
6109 | cpu_set(rq->cpu, rd->online); | ||
6110 | 6106 | ||
6111 | for (class = sched_class_highest; class; class = class->next) { | 6107 | for (class = sched_class_highest; class; class = class->next) { |
6112 | if (class->join_domain) | 6108 | if (class->join_domain) |
@@ -7625,6 +7621,11 @@ void sched_move_task(struct task_struct *tsk) | |||
7625 | 7621 | ||
7626 | set_task_rq(tsk, task_cpu(tsk)); | 7622 | set_task_rq(tsk, task_cpu(tsk)); |
7627 | 7623 | ||
7624 | #ifdef CONFIG_FAIR_GROUP_SCHED | ||
7625 | if (tsk->sched_class->moved_group) | ||
7626 | tsk->sched_class->moved_group(tsk); | ||
7627 | #endif | ||
7628 | |||
7628 | if (on_rq) { | 7629 | if (on_rq) { |
7629 | if (unlikely(running)) | 7630 | if (unlikely(running)) |
7630 | tsk->sched_class->set_curr_task(rq); | 7631 | tsk->sched_class->set_curr_task(rq); |
@@ -7721,9 +7722,7 @@ static unsigned long to_ratio(u64 period, u64 runtime) | |||
7721 | if (runtime == RUNTIME_INF) | 7722 | if (runtime == RUNTIME_INF) |
7722 | return 1ULL << 16; | 7723 | return 1ULL << 16; |
7723 | 7724 | ||
7724 | runtime *= (1ULL << 16); | 7725 | return div64_64(runtime << 16, period); |
7725 | div64_64(runtime, period); | ||
7726 | return runtime; | ||
7727 | } | 7726 | } |
7728 | 7727 | ||
7729 | static int __rt_schedulable(struct task_group *tg, u64 period, u64 runtime) | 7728 | static int __rt_schedulable(struct task_group *tg, u64 period, u64 runtime) |
@@ -7747,25 +7746,40 @@ static int __rt_schedulable(struct task_group *tg, u64 period, u64 runtime) | |||
7747 | return total + to_ratio(period, runtime) < global_ratio; | 7746 | return total + to_ratio(period, runtime) < global_ratio; |
7748 | } | 7747 | } |
7749 | 7748 | ||
7749 | /* Must be called with tasklist_lock held */ | ||
7750 | static inline int tg_has_rt_tasks(struct task_group *tg) | ||
7751 | { | ||
7752 | struct task_struct *g, *p; | ||
7753 | do_each_thread(g, p) { | ||
7754 | if (rt_task(p) && rt_rq_of_se(&p->rt)->tg == tg) | ||
7755 | return 1; | ||
7756 | } while_each_thread(g, p); | ||
7757 | return 0; | ||
7758 | } | ||
7759 | |||
7750 | int sched_group_set_rt_runtime(struct task_group *tg, long rt_runtime_us) | 7760 | int sched_group_set_rt_runtime(struct task_group *tg, long rt_runtime_us) |
7751 | { | 7761 | { |
7752 | u64 rt_runtime, rt_period; | 7762 | u64 rt_runtime, rt_period; |
7753 | int err = 0; | 7763 | int err = 0; |
7754 | 7764 | ||
7755 | rt_period = sysctl_sched_rt_period * NSEC_PER_USEC; | 7765 | rt_period = (u64)sysctl_sched_rt_period * NSEC_PER_USEC; |
7756 | rt_runtime = (u64)rt_runtime_us * NSEC_PER_USEC; | 7766 | rt_runtime = (u64)rt_runtime_us * NSEC_PER_USEC; |
7757 | if (rt_runtime_us == -1) | 7767 | if (rt_runtime_us == -1) |
7758 | rt_runtime = rt_period; | 7768 | rt_runtime = RUNTIME_INF; |
7759 | 7769 | ||
7760 | mutex_lock(&rt_constraints_mutex); | 7770 | mutex_lock(&rt_constraints_mutex); |
7771 | read_lock(&tasklist_lock); | ||
7772 | if (rt_runtime_us == 0 && tg_has_rt_tasks(tg)) { | ||
7773 | err = -EBUSY; | ||
7774 | goto unlock; | ||
7775 | } | ||
7761 | if (!__rt_schedulable(tg, rt_period, rt_runtime)) { | 7776 | if (!__rt_schedulable(tg, rt_period, rt_runtime)) { |
7762 | err = -EINVAL; | 7777 | err = -EINVAL; |
7763 | goto unlock; | 7778 | goto unlock; |
7764 | } | 7779 | } |
7765 | if (rt_runtime_us == -1) | ||
7766 | rt_runtime = RUNTIME_INF; | ||
7767 | tg->rt_runtime = rt_runtime; | 7780 | tg->rt_runtime = rt_runtime; |
7768 | unlock: | 7781 | unlock: |
7782 | read_unlock(&tasklist_lock); | ||
7769 | mutex_unlock(&rt_constraints_mutex); | 7783 | mutex_unlock(&rt_constraints_mutex); |
7770 | 7784 | ||
7771 | return err; | 7785 | return err; |
diff --git a/kernel/sched_fair.c b/kernel/sched_fair.c index 3df4d46994..e2a5305156 100644 --- a/kernel/sched_fair.c +++ b/kernel/sched_fair.c | |||
@@ -1353,6 +1353,16 @@ static void set_curr_task_fair(struct rq *rq) | |||
1353 | set_next_entity(cfs_rq_of(se), se); | 1353 | set_next_entity(cfs_rq_of(se), se); |
1354 | } | 1354 | } |
1355 | 1355 | ||
1356 | #ifdef CONFIG_FAIR_GROUP_SCHED | ||
1357 | static void moved_group_fair(struct task_struct *p) | ||
1358 | { | ||
1359 | struct cfs_rq *cfs_rq = task_cfs_rq(p); | ||
1360 | |||
1361 | update_curr(cfs_rq); | ||
1362 | place_entity(cfs_rq, &p->se, 1); | ||
1363 | } | ||
1364 | #endif | ||
1365 | |||
1356 | /* | 1366 | /* |
1357 | * All the scheduling class methods: | 1367 | * All the scheduling class methods: |
1358 | */ | 1368 | */ |
@@ -1381,6 +1391,10 @@ static const struct sched_class fair_sched_class = { | |||
1381 | 1391 | ||
1382 | .prio_changed = prio_changed_fair, | 1392 | .prio_changed = prio_changed_fair, |
1383 | .switched_to = switched_to_fair, | 1393 | .switched_to = switched_to_fair, |
1394 | |||
1395 | #ifdef CONFIG_FAIR_GROUP_SCHED | ||
1396 | .moved_group = moved_group_fair, | ||
1397 | #endif | ||
1384 | }; | 1398 | }; |
1385 | 1399 | ||
1386 | #ifdef CONFIG_SCHED_DEBUG | 1400 | #ifdef CONFIG_SCHED_DEBUG |
diff --git a/kernel/sched_rt.c b/kernel/sched_rt.c index 76e8285175..0a6d2e5164 100644 --- a/kernel/sched_rt.c +++ b/kernel/sched_rt.c | |||
@@ -1107,9 +1107,11 @@ static void prio_changed_rt(struct rq *rq, struct task_struct *p, | |||
1107 | pull_rt_task(rq); | 1107 | pull_rt_task(rq); |
1108 | /* | 1108 | /* |
1109 | * If there's a higher priority task waiting to run | 1109 | * If there's a higher priority task waiting to run |
1110 | * then reschedule. | 1110 | * then reschedule. Note, the above pull_rt_task |
1111 | * can release the rq lock and p could migrate. | ||
1112 | * Only reschedule if p is still on the same runqueue. | ||
1111 | */ | 1113 | */ |
1112 | if (p->prio > rq->rt.highest_prio) | 1114 | if (p->prio > rq->rt.highest_prio && rq->curr == p) |
1113 | resched_task(p); | 1115 | resched_task(p); |
1114 | #else | 1116 | #else |
1115 | /* For UP simply resched on drop of prio */ | 1117 | /* For UP simply resched on drop of prio */ |
diff --git a/kernel/time/ntp.c b/kernel/time/ntp.c index c88b5910e7..5fd9b94697 100644 --- a/kernel/time/ntp.c +++ b/kernel/time/ntp.c | |||
@@ -42,12 +42,13 @@ long time_esterror = NTP_PHASE_LIMIT; /* estimated error (us) */ | |||
42 | long time_freq; /* frequency offset (scaled ppm)*/ | 42 | long time_freq; /* frequency offset (scaled ppm)*/ |
43 | static long time_reftime; /* time at last adjustment (s) */ | 43 | static long time_reftime; /* time at last adjustment (s) */ |
44 | long time_adjust; | 44 | long time_adjust; |
45 | static long ntp_tick_adj; | ||
45 | 46 | ||
46 | static void ntp_update_frequency(void) | 47 | static void ntp_update_frequency(void) |
47 | { | 48 | { |
48 | u64 second_length = (u64)(tick_usec * NSEC_PER_USEC * USER_HZ) | 49 | u64 second_length = (u64)(tick_usec * NSEC_PER_USEC * USER_HZ) |
49 | << TICK_LENGTH_SHIFT; | 50 | << TICK_LENGTH_SHIFT; |
50 | second_length += (s64)CLOCK_TICK_ADJUST << TICK_LENGTH_SHIFT; | 51 | second_length += (s64)ntp_tick_adj << TICK_LENGTH_SHIFT; |
51 | second_length += (s64)time_freq << (TICK_LENGTH_SHIFT - SHIFT_NSEC); | 52 | second_length += (s64)time_freq << (TICK_LENGTH_SHIFT - SHIFT_NSEC); |
52 | 53 | ||
53 | tick_length_base = second_length; | 54 | tick_length_base = second_length; |
@@ -342,14 +343,16 @@ int do_adjtimex(struct timex *txc) | |||
342 | freq_adj = shift_right(freq_adj, time_constant * 2 + | 343 | freq_adj = shift_right(freq_adj, time_constant * 2 + |
343 | (SHIFT_PLL + 2) * 2 - SHIFT_NSEC); | 344 | (SHIFT_PLL + 2) * 2 - SHIFT_NSEC); |
344 | if (mtemp >= MINSEC && (time_status & STA_FLL || mtemp > MAXSEC)) { | 345 | if (mtemp >= MINSEC && (time_status & STA_FLL || mtemp > MAXSEC)) { |
346 | u64 utemp64; | ||
345 | temp64 = time_offset << (SHIFT_NSEC - SHIFT_FLL); | 347 | temp64 = time_offset << (SHIFT_NSEC - SHIFT_FLL); |
346 | if (time_offset < 0) { | 348 | if (time_offset < 0) { |
347 | temp64 = -temp64; | 349 | utemp64 = -temp64; |
348 | do_div(temp64, mtemp); | 350 | do_div(utemp64, mtemp); |
349 | freq_adj -= temp64; | 351 | freq_adj -= utemp64; |
350 | } else { | 352 | } else { |
351 | do_div(temp64, mtemp); | 353 | utemp64 = temp64; |
352 | freq_adj += temp64; | 354 | do_div(utemp64, mtemp); |
355 | freq_adj += utemp64; | ||
353 | } | 356 | } |
354 | } | 357 | } |
355 | freq_adj += time_freq; | 358 | freq_adj += time_freq; |
@@ -400,3 +403,11 @@ leave: if ((time_status & (STA_UNSYNC|STA_CLOCKERR)) != 0) | |||
400 | notify_cmos_timer(); | 403 | notify_cmos_timer(); |
401 | return(result); | 404 | return(result); |
402 | } | 405 | } |
406 | |||
407 | static int __init ntp_tick_adj_setup(char *str) | ||
408 | { | ||
409 | ntp_tick_adj = simple_strtol(str, NULL, 0); | ||
410 | return 1; | ||
411 | } | ||
412 | |||
413 | __setup("ntp_tick_adj=", ntp_tick_adj_setup); | ||
diff --git a/kernel/time/tick-sched.c b/kernel/time/tick-sched.c index 2968298f8f..686da821d3 100644 --- a/kernel/time/tick-sched.c +++ b/kernel/time/tick-sched.c | |||
@@ -640,7 +640,7 @@ void tick_cancel_sched_timer(int cpu) | |||
640 | 640 | ||
641 | if (ts->sched_timer.base) | 641 | if (ts->sched_timer.base) |
642 | hrtimer_cancel(&ts->sched_timer); | 642 | hrtimer_cancel(&ts->sched_timer); |
643 | ts->tick_stopped = 0; | 643 | |
644 | ts->nohz_mode = NOHZ_MODE_INACTIVE; | 644 | ts->nohz_mode = NOHZ_MODE_INACTIVE; |
645 | } | 645 | } |
646 | #endif /* HIGH_RES_TIMERS */ | 646 | #endif /* HIGH_RES_TIMERS */ |
diff --git a/kernel/time/timekeeping.c b/kernel/time/timekeeping.c index 1af9fb050f..671af612b7 100644 --- a/kernel/time/timekeeping.c +++ b/kernel/time/timekeeping.c | |||
@@ -187,8 +187,7 @@ static void change_clocksource(void) | |||
187 | 187 | ||
188 | clock->error = 0; | 188 | clock->error = 0; |
189 | clock->xtime_nsec = 0; | 189 | clock->xtime_nsec = 0; |
190 | clocksource_calculate_interval(clock, | 190 | clocksource_calculate_interval(clock, NTP_INTERVAL_LENGTH); |
191 | (unsigned long)(current_tick_length()>>TICK_LENGTH_SHIFT)); | ||
192 | 191 | ||
193 | tick_clock_notify(); | 192 | tick_clock_notify(); |
194 | 193 | ||
@@ -245,8 +244,7 @@ void __init timekeeping_init(void) | |||
245 | ntp_clear(); | 244 | ntp_clear(); |
246 | 245 | ||
247 | clock = clocksource_get_next(); | 246 | clock = clocksource_get_next(); |
248 | clocksource_calculate_interval(clock, | 247 | clocksource_calculate_interval(clock, NTP_INTERVAL_LENGTH); |
249 | (unsigned long)(current_tick_length()>>TICK_LENGTH_SHIFT)); | ||
250 | clock->cycle_last = clocksource_read(clock); | 248 | clock->cycle_last = clocksource_read(clock); |
251 | 249 | ||
252 | xtime.tv_sec = sec; | 250 | xtime.tv_sec = sec; |
diff --git a/mm/filemap.c b/mm/filemap.c index 5c74b68935..df343d1e63 100644 --- a/mm/filemap.c +++ b/mm/filemap.c | |||
@@ -28,7 +28,6 @@ | |||
28 | #include <linux/backing-dev.h> | 28 | #include <linux/backing-dev.h> |
29 | #include <linux/pagevec.h> | 29 | #include <linux/pagevec.h> |
30 | #include <linux/blkdev.h> | 30 | #include <linux/blkdev.h> |
31 | #include <linux/backing-dev.h> | ||
32 | #include <linux/security.h> | 31 | #include <linux/security.h> |
33 | #include <linux/syscalls.h> | 32 | #include <linux/syscalls.h> |
34 | #include <linux/cpuset.h> | 33 | #include <linux/cpuset.h> |
@@ -1743,21 +1742,27 @@ size_t iov_iter_copy_from_user(struct page *page, | |||
1743 | } | 1742 | } |
1744 | EXPORT_SYMBOL(iov_iter_copy_from_user); | 1743 | EXPORT_SYMBOL(iov_iter_copy_from_user); |
1745 | 1744 | ||
1746 | static void __iov_iter_advance_iov(struct iov_iter *i, size_t bytes) | 1745 | void iov_iter_advance(struct iov_iter *i, size_t bytes) |
1747 | { | 1746 | { |
1747 | BUG_ON(i->count < bytes); | ||
1748 | |||
1748 | if (likely(i->nr_segs == 1)) { | 1749 | if (likely(i->nr_segs == 1)) { |
1749 | i->iov_offset += bytes; | 1750 | i->iov_offset += bytes; |
1751 | i->count -= bytes; | ||
1750 | } else { | 1752 | } else { |
1751 | const struct iovec *iov = i->iov; | 1753 | const struct iovec *iov = i->iov; |
1752 | size_t base = i->iov_offset; | 1754 | size_t base = i->iov_offset; |
1753 | 1755 | ||
1754 | /* | 1756 | /* |
1755 | * The !iov->iov_len check ensures we skip over unlikely | 1757 | * The !iov->iov_len check ensures we skip over unlikely |
1756 | * zero-length segments. | 1758 | * zero-length segments (without overruning the iovec). |
1757 | */ | 1759 | */ |
1758 | while (bytes || !iov->iov_len) { | 1760 | while (bytes || unlikely(!iov->iov_len && i->count)) { |
1759 | int copy = min(bytes, iov->iov_len - base); | 1761 | int copy; |
1760 | 1762 | ||
1763 | copy = min(bytes, iov->iov_len - base); | ||
1764 | BUG_ON(!i->count || i->count < copy); | ||
1765 | i->count -= copy; | ||
1761 | bytes -= copy; | 1766 | bytes -= copy; |
1762 | base += copy; | 1767 | base += copy; |
1763 | if (iov->iov_len == base) { | 1768 | if (iov->iov_len == base) { |
@@ -1769,14 +1774,6 @@ static void __iov_iter_advance_iov(struct iov_iter *i, size_t bytes) | |||
1769 | i->iov_offset = base; | 1774 | i->iov_offset = base; |
1770 | } | 1775 | } |
1771 | } | 1776 | } |
1772 | |||
1773 | void iov_iter_advance(struct iov_iter *i, size_t bytes) | ||
1774 | { | ||
1775 | BUG_ON(i->count < bytes); | ||
1776 | |||
1777 | __iov_iter_advance_iov(i, bytes); | ||
1778 | i->count -= bytes; | ||
1779 | } | ||
1780 | EXPORT_SYMBOL(iov_iter_advance); | 1777 | EXPORT_SYMBOL(iov_iter_advance); |
1781 | 1778 | ||
1782 | /* | 1779 | /* |
diff --git a/mm/hugetlb.c b/mm/hugetlb.c index dcacc811e7..74c1b6b0b3 100644 --- a/mm/hugetlb.c +++ b/mm/hugetlb.c | |||
@@ -286,6 +286,12 @@ static struct page *alloc_buddy_huge_page(struct vm_area_struct *vma, | |||
286 | 286 | ||
287 | spin_lock(&hugetlb_lock); | 287 | spin_lock(&hugetlb_lock); |
288 | if (page) { | 288 | if (page) { |
289 | /* | ||
290 | * This page is now managed by the hugetlb allocator and has | ||
291 | * no users -- drop the buddy allocator's reference. | ||
292 | */ | ||
293 | put_page_testzero(page); | ||
294 | VM_BUG_ON(page_count(page)); | ||
289 | nid = page_to_nid(page); | 295 | nid = page_to_nid(page); |
290 | set_compound_page_dtor(page, free_huge_page); | 296 | set_compound_page_dtor(page, free_huge_page); |
291 | /* | 297 | /* |
@@ -369,13 +375,14 @@ free: | |||
369 | enqueue_huge_page(page); | 375 | enqueue_huge_page(page); |
370 | else { | 376 | else { |
371 | /* | 377 | /* |
372 | * Decrement the refcount and free the page using its | 378 | * The page has a reference count of zero already, so |
373 | * destructor. This must be done with hugetlb_lock | 379 | * call free_huge_page directly instead of using |
380 | * put_page. This must be done with hugetlb_lock | ||
374 | * unlocked which is safe because free_huge_page takes | 381 | * unlocked which is safe because free_huge_page takes |
375 | * hugetlb_lock before deciding how to free the page. | 382 | * hugetlb_lock before deciding how to free the page. |
376 | */ | 383 | */ |
377 | spin_unlock(&hugetlb_lock); | 384 | spin_unlock(&hugetlb_lock); |
378 | put_page(page); | 385 | free_huge_page(page); |
379 | spin_lock(&hugetlb_lock); | 386 | spin_lock(&hugetlb_lock); |
380 | } | 387 | } |
381 | } | 388 | } |
diff --git a/mm/mempolicy.c b/mm/mempolicy.c index 6c7ba1a63d..3c36011215 100644 --- a/mm/mempolicy.c +++ b/mm/mempolicy.c | |||
@@ -1296,7 +1296,9 @@ struct zonelist *huge_zonelist(struct vm_area_struct *vma, unsigned long addr, | |||
1296 | unsigned nid; | 1296 | unsigned nid; |
1297 | 1297 | ||
1298 | nid = interleave_nid(pol, vma, addr, HPAGE_SHIFT); | 1298 | nid = interleave_nid(pol, vma, addr, HPAGE_SHIFT); |
1299 | __mpol_free(pol); /* finished with pol */ | 1299 | if (unlikely(pol != &default_policy && |
1300 | pol != current->mempolicy)) | ||
1301 | __mpol_free(pol); /* finished with pol */ | ||
1300 | return NODE_DATA(nid)->node_zonelists + gfp_zone(gfp_flags); | 1302 | return NODE_DATA(nid)->node_zonelists + gfp_zone(gfp_flags); |
1301 | } | 1303 | } |
1302 | 1304 | ||
@@ -1360,6 +1362,9 @@ alloc_page_vma(gfp_t gfp, struct vm_area_struct *vma, unsigned long addr) | |||
1360 | unsigned nid; | 1362 | unsigned nid; |
1361 | 1363 | ||
1362 | nid = interleave_nid(pol, vma, addr, PAGE_SHIFT); | 1364 | nid = interleave_nid(pol, vma, addr, PAGE_SHIFT); |
1365 | if (unlikely(pol != &default_policy && | ||
1366 | pol != current->mempolicy)) | ||
1367 | __mpol_free(pol); /* finished with pol */ | ||
1363 | return alloc_page_interleave(gfp, 0, nid); | 1368 | return alloc_page_interleave(gfp, 0, nid); |
1364 | } | 1369 | } |
1365 | zl = zonelist_policy(gfp, pol); | 1370 | zl = zonelist_policy(gfp, pol); |
@@ -333,7 +333,7 @@ static __always_inline int index_of(const size_t size) | |||
333 | return i; \ | 333 | return i; \ |
334 | else \ | 334 | else \ |
335 | i++; | 335 | i++; |
336 | #include "linux/kmalloc_sizes.h" | 336 | #include <linux/kmalloc_sizes.h> |
337 | #undef CACHE | 337 | #undef CACHE |
338 | __bad_size(); | 338 | __bad_size(); |
339 | } else | 339 | } else |
@@ -2964,11 +2964,10 @@ static void *cache_alloc_refill(struct kmem_cache *cachep, gfp_t flags) | |||
2964 | struct array_cache *ac; | 2964 | struct array_cache *ac; |
2965 | int node; | 2965 | int node; |
2966 | 2966 | ||
2967 | node = numa_node_id(); | 2967 | retry: |
2968 | |||
2969 | check_irq_off(); | 2968 | check_irq_off(); |
2969 | node = numa_node_id(); | ||
2970 | ac = cpu_cache_get(cachep); | 2970 | ac = cpu_cache_get(cachep); |
2971 | retry: | ||
2972 | batchcount = ac->batchcount; | 2971 | batchcount = ac->batchcount; |
2973 | if (!ac->touched && batchcount > BATCHREFILL_LIMIT) { | 2972 | if (!ac->touched && batchcount > BATCHREFILL_LIMIT) { |
2974 | /* | 2973 | /* |
@@ -3280,7 +3279,7 @@ retry: | |||
3280 | if (local_flags & __GFP_WAIT) | 3279 | if (local_flags & __GFP_WAIT) |
3281 | local_irq_enable(); | 3280 | local_irq_enable(); |
3282 | kmem_flagcheck(cache, flags); | 3281 | kmem_flagcheck(cache, flags); |
3283 | obj = kmem_getpages(cache, flags, -1); | 3282 | obj = kmem_getpages(cache, local_flags, -1); |
3284 | if (local_flags & __GFP_WAIT) | 3283 | if (local_flags & __GFP_WAIT) |
3285 | local_irq_disable(); | 3284 | local_irq_disable(); |
3286 | if (obj) { | 3285 | if (obj) { |
@@ -1368,7 +1368,7 @@ static void deactivate_slab(struct kmem_cache *s, struct kmem_cache_cpu *c) | |||
1368 | struct page *page = c->page; | 1368 | struct page *page = c->page; |
1369 | int tail = 1; | 1369 | int tail = 1; |
1370 | 1370 | ||
1371 | if (c->freelist) | 1371 | if (page->freelist) |
1372 | stat(c, DEACTIVATE_REMOTE_FREES); | 1372 | stat(c, DEACTIVATE_REMOTE_FREES); |
1373 | /* | 1373 | /* |
1374 | * Merge cpu freelist into slab freelist. Typically we get here | 1374 | * Merge cpu freelist into slab freelist. Typically we get here |
@@ -1856,12 +1856,15 @@ static unsigned long calculate_alignment(unsigned long flags, | |||
1856 | * The hardware cache alignment cannot override the specified | 1856 | * The hardware cache alignment cannot override the specified |
1857 | * alignment though. If that is greater then use it. | 1857 | * alignment though. If that is greater then use it. |
1858 | */ | 1858 | */ |
1859 | if ((flags & SLAB_HWCACHE_ALIGN) && | 1859 | if (flags & SLAB_HWCACHE_ALIGN) { |
1860 | size > cache_line_size() / 2) | 1860 | unsigned long ralign = cache_line_size(); |
1861 | return max_t(unsigned long, align, cache_line_size()); | 1861 | while (size <= ralign / 2) |
1862 | ralign /= 2; | ||
1863 | align = max(align, ralign); | ||
1864 | } | ||
1862 | 1865 | ||
1863 | if (align < ARCH_SLAB_MINALIGN) | 1866 | if (align < ARCH_SLAB_MINALIGN) |
1864 | return ARCH_SLAB_MINALIGN; | 1867 | align = ARCH_SLAB_MINALIGN; |
1865 | 1868 | ||
1866 | return ALIGN(align, sizeof(void *)); | 1869 | return ALIGN(align, sizeof(void *)); |
1867 | } | 1870 | } |
diff --git a/net/sunrpc/xprtrdma/transport.c b/net/sunrpc/xprtrdma/transport.c index 02c522c17d..a564c1a39e 100644 --- a/net/sunrpc/xprtrdma/transport.c +++ b/net/sunrpc/xprtrdma/transport.c | |||
@@ -614,7 +614,11 @@ xprt_rdma_free(void *buffer) | |||
614 | return; | 614 | return; |
615 | 615 | ||
616 | req = container_of(buffer, struct rpcrdma_req, rl_xdr_buf[0]); | 616 | req = container_of(buffer, struct rpcrdma_req, rl_xdr_buf[0]); |
617 | r_xprt = container_of(req->rl_buffer, struct rpcrdma_xprt, rx_buf); | 617 | if (req->rl_iov.length == 0) { /* see allocate above */ |
618 | r_xprt = container_of(((struct rpcrdma_req *) req->rl_buffer)->rl_buffer, | ||
619 | struct rpcrdma_xprt, rx_buf); | ||
620 | } else | ||
621 | r_xprt = container_of(req->rl_buffer, struct rpcrdma_xprt, rx_buf); | ||
618 | rep = req->rl_reply; | 622 | rep = req->rl_reply; |
619 | 623 | ||
620 | dprintk("RPC: %s: called on 0x%p%s\n", | 624 | dprintk("RPC: %s: called on 0x%p%s\n", |